summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMartijn Coenen <maco@google.com>2013-03-05 17:17:20 -0800
committerMartijn Coenen <maco@google.com>2013-03-05 17:32:58 -0800
commit837efc3194a03beaaa32b370c63a9270ed9664d8 (patch)
tree884477a467dc78a5e1658b7a437a35c98c3e324e
parent7c4b4fadb66959c50c170182847886e83393eebf (diff)
downloadlibnfc-nxp-837efc3194a03beaaa32b370c63a9270ed9664d8.tar.gz
Fix wrong callback being cleared.
When a call to disconnect() failed, the connect() callback was cleared, not the disconnect() one. This would cause deadlocks, where JNI threads were forever blocked on doConnect(). Bug: 7324226 Change-Id: I784c8d700c87d643315f2417610ca75ef8f9aa7c
-rw-r--r--src/phFriNfc_LlcpTransport.c2
-rw-r--r--src/phFriNfc_LlcpTransport.h2
-rw-r--r--src/phFriNfc_LlcpTransport_Connection.c12
-rw-r--r--src/phFriNfc_LlcpTransport_Connectionless.c2
4 files changed, 9 insertions, 9 deletions
diff --git a/src/phFriNfc_LlcpTransport.c b/src/phFriNfc_LlcpTransport.c
index b3aee54..447eae6 100644
--- a/src/phFriNfc_LlcpTransport.c
+++ b/src/phFriNfc_LlcpTransport.c
@@ -687,7 +687,7 @@ NFCSTATUS phFriNfc_LlcpTransport_Reset (phFriNfc_LlcpTransport_t *pLlcpTran
pLlcpTransport->pSocketTable[i].pAcceptContext = NULL;
pLlcpTransport->pSocketTable[i].pRejectContext = NULL;
pLlcpTransport->pSocketTable[i].pConnectContext = NULL;
- pLlcpTransport->pSocketTable[i].pDisonnectContext = NULL;
+ pLlcpTransport->pSocketTable[i].pDisconnectContext = NULL;
pLlcpTransport->pSocketTable[i].pSendContext = NULL;
pLlcpTransport->pSocketTable[i].pRecvContext = NULL;
pLlcpTransport->pSocketTable[i].pSocketErrCb = NULL;
diff --git a/src/phFriNfc_LlcpTransport.h b/src/phFriNfc_LlcpTransport.h
index 2bb0eac..2f83439 100644
--- a/src/phFriNfc_LlcpTransport.h
+++ b/src/phFriNfc_LlcpTransport.h
@@ -225,7 +225,7 @@ struct phFriNfc_LlcpTransport_Socket
void *pAcceptContext;
void *pRejectContext;
void *pConnectContext;
- void *pDisonnectContext;
+ void *pDisconnectContext;
void *pSendContext;
void *pRecvContext;
void *pContext;
diff --git a/src/phFriNfc_LlcpTransport_Connection.c b/src/phFriNfc_LlcpTransport_Connection.c
index d23398f..4f7badf 100644
--- a/src/phFriNfc_LlcpTransport_Connection.c
+++ b/src/phFriNfc_LlcpTransport_Connection.c
@@ -296,10 +296,10 @@ static void phFriNfc_LlcpTransport_ConnectionOriented_Abort(phFriNfc_LlcpTranspo
pLlcpSocket->pConnectContext = NULL;
if (pLlcpSocket->pfSocketDisconnect_Cb != NULL)
{
- pLlcpSocket->pfSocketDisconnect_Cb(pLlcpSocket->pDisonnectContext, NFCSTATUS_ABORTED);
+ pLlcpSocket->pfSocketDisconnect_Cb(pLlcpSocket->pDisconnectContext, NFCSTATUS_ABORTED);
pLlcpSocket->pfSocketDisconnect_Cb = NULL;
}
- pLlcpSocket->pDisonnectContext = NULL;
+ pLlcpSocket->pDisconnectContext = NULL;
pLlcpSocket->pfSocketRecvFrom_Cb = NULL;
pLlcpSocket->pfSocketListen_Cb = NULL;
@@ -866,7 +866,7 @@ static void Handle_DisconnetModeFrame(phFriNfc_LlcpTransport_t *psTransport
/* Call Disconnect CB */
if (psLocalLlcpSocket->pfSocketDisconnect_Cb != NULL)
{
- psLocalLlcpSocket->pfSocketDisconnect_Cb(psLocalLlcpSocket->pDisonnectContext,NFCSTATUS_SUCCESS);
+ psLocalLlcpSocket->pfSocketDisconnect_Cb(psLocalLlcpSocket->pDisconnectContext,NFCSTATUS_SUCCESS);
psLocalLlcpSocket->pfSocketDisconnect_Cb = NULL;
}
@@ -2016,7 +2016,7 @@ NFCSTATUS phLibNfc_LlcpTransport_ConnectionOriented_Disconnect(phFriNfc_LlcpTran
/* Store the Disconnect callback and context*/
pLlcpSocket->pfSocketDisconnect_Cb = pDisconnect_RspCb;
- pLlcpSocket->pDisonnectContext = pContext;
+ pLlcpSocket->pDisconnectContext = pContext;
/* Set the socket in connecting state */
pLlcpSocket->eSocket_State = phFriNfc_LlcpTransportSocket_eSocketDisconnecting;
@@ -2077,8 +2077,8 @@ NFCSTATUS phLibNfc_LlcpTransport_ConnectionOriented_Disconnect(phFriNfc_LlcpTran
{
clearSendPending(pLlcpSocket->psTransport);
LLCP_PRINT("Release Disconnect callback");
- pLlcpSocket->pfSocketConnect_Cb = NULL;
- pLlcpSocket->pConnectContext = NULL;
+ pLlcpSocket->pfSocketDisconnect_Cb = NULL;
+ pLlcpSocket->pDisconnectContext = NULL;
}
}
diff --git a/src/phFriNfc_LlcpTransport_Connectionless.c b/src/phFriNfc_LlcpTransport_Connectionless.c
index 99f01bc..4b084a8 100644
--- a/src/phFriNfc_LlcpTransport_Connectionless.c
+++ b/src/phFriNfc_LlcpTransport_Connectionless.c
@@ -164,7 +164,7 @@ static void phFriNfc_LlcpTransport_Connectionless_Abort(phFriNfc_LlcpTransport_S
pLlcpSocket->pfSocketListen_Cb = NULL;
pLlcpSocket->pConnectContext = NULL;
pLlcpSocket->pfSocketConnect_Cb = NULL;
- pLlcpSocket->pDisonnectContext = NULL;
+ pLlcpSocket->pDisconnectContext = NULL;
pLlcpSocket->pfSocketDisconnect_Cb = NULL;
}