summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/phFriNfc_LlcpTransport.c19
-rw-r--r--src/phFriNfc_LlcpTransport.h2
-rw-r--r--src/phLibNfc.h31
-rw-r--r--src/phLibNfc_llcp.c229
4 files changed, 201 insertions, 80 deletions
diff --git a/src/phFriNfc_LlcpTransport.c b/src/phFriNfc_LlcpTransport.c
index 8613669..22f1e32 100644
--- a/src/phFriNfc_LlcpTransport.c
+++ b/src/phFriNfc_LlcpTransport.c
@@ -215,7 +215,24 @@ NFCSTATUS phFriNfc_LlcpTransport_CloseAll (phFriNfc_LlcpTransport_t *pLlcpTransp
/* Close all sockets */
for(i=0;i<PHFRINFC_LLCP_NB_SOCKET_MAX;i++)
{
- phFriNfc_LlcpTransport_Close(&pLlcpTransport->pSocketTable[i]);
+ if(pLlcpTransport->pSocketTable[i].eSocket_Type == phFriNfc_LlcpTransport_eConnectionOriented)
+ {
+ switch(pLlcpTransport->pSocketTable[i].eSocket_State)
+ {
+ case phFriNfc_LlcpTransportSocket_eSocketConnected:
+ case phFriNfc_LlcpTransportSocket_eSocketConnecting:
+ case phFriNfc_LlcpTransportSocket_eSocketAccepted:
+ case phFriNfc_LlcpTransportSocket_eSocketDisconnected:
+ case phFriNfc_LlcpTransportSocket_eSocketDisconnecting:
+ case phFriNfc_LlcpTransportSocket_eSocketRejected:
+ phFriNfc_LlcpTransport_Close(&pLlcpTransport->pSocketTable[i]);
+ break;
+ }
+ }
+ else
+ {
+ phFriNfc_LlcpTransport_Close(&pLlcpTransport->pSocketTable[i]);
+ }
}
return status;
diff --git a/src/phFriNfc_LlcpTransport.h b/src/phFriNfc_LlcpTransport.h
index 7d77634..9b35482 100644
--- a/src/phFriNfc_LlcpTransport.h
+++ b/src/phFriNfc_LlcpTransport.h
@@ -62,8 +62,6 @@ typedef enum phFriNfc_LlcpTransportSocket_eSocketState
phFriNfc_LlcpTransportSocket_eSocketDisconnected,
phFriNfc_LlcpTransportSocket_eSocketDisconnecting,
phFriNfc_LlcpTransportSocket_eSocketRejected,
- phFriNfc_LlcpTransportSocket_eSocketClosed,
- phFriNfc_LlcpTransportSocket_eSocketClosing,
}phFriNfc_LlcpTransportSocket_eSocketState_t;
diff --git a/src/phLibNfc.h b/src/phLibNfc.h
index bfd3eb7..216196f 100644
--- a/src/phLibNfc.h
+++ b/src/phLibNfc.h
@@ -2550,7 +2550,6 @@ extern NFCSTATUS phLibNfc_Llcp_GetRemoteInfo( phLibNfc_Handle
* The options and working buffer are not required if the socket is used as a listening socket,
* since it cannot be directly used for communication.
*
-* \param[in] hRemoteDevice Peer handle obtained during device discovery process.
* \param[in] eType The socket type.
* \param[in] psOptions The options to be used with the socket.
* \param[in] psWorkingBuffer A working buffer to be used by the library.
@@ -2570,8 +2569,7 @@ extern NFCSTATUS phLibNfc_Llcp_GetRemoteInfo( phLibNfc_Handle
* \retval NFCSTATUS_SHUTDOWN Shutdown in progress.
* \retval NFCSTATUS_FAILED Operation failed.
*/
-extern NFCSTATUS phLibNfc_Llcp_Socket( phLibNfc_Handle hRemoteDevice,
- phLibNfc_Llcp_eSocketType_t eType,
+extern NFCSTATUS phLibNfc_Llcp_Socket( phLibNfc_Llcp_eSocketType_t eType,
phLibNfc_Llcp_sSocketOptions_t* psOptions,
phNfc_sData_t* psWorkingBuffer,
phLibNfc_Handle* phSocket,
@@ -2644,7 +2642,8 @@ extern NFCSTATUS phLibNfc_Llcp_SocketGetLocalOptions( phLibNfc_Handle
* \retval NFCSTATUS_SHUTDOWN Shutdown in progress.
* \retval NFCSTATUS_FAILED Operation failed.
*/
-extern NFCSTATUS phLibNfc_Llcp_SocketGetRemoteOptions( phLibNfc_Handle hSocket,
+extern NFCSTATUS phLibNfc_Llcp_SocketGetRemoteOptions( phLibNfc_Handle hRemoteDevice,
+ phLibNfc_Handle hSocket,
phLibNfc_Llcp_sSocketOptions_t* psRemoteOptions
);
@@ -2764,7 +2763,8 @@ extern NFCSTATUS phLibNfc_Llcp_Accept( phLibNfc_Handle hSocket,
* \retval NFCSTATUS_SHUTDOWN Shutdown in progress.
* \retval NFCSTATUS_FAILED Operation failed.
*/
-extern NFCSTATUS phLibNfc_Llcp_Reject( phLibNfc_Handle hSocket,
+extern NFCSTATUS phLibNfc_Llcp_Reject( phLibNfc_Handle hRemoteDevice,
+ phLibNfc_Handle hSocket,
pphLibNfc_LlcpSocketAcceptCb_t pReject_RspCb,
void* pContext);
@@ -2794,7 +2794,8 @@ extern NFCSTATUS phLibNfc_Llcp_Reject( phLibNfc_Handle hSocket,
* \retval NFCSTATUS_SHUTDOWN Shutdown in progress.
* \retval NFCSTATUS_FAILED Operation failed.
*/
-extern NFCSTATUS phLibNfc_Llcp_Connect( phLibNfc_Handle hSocket,
+extern NFCSTATUS phLibNfc_Llcp_Connect( phLibNfc_Handle hRemoteDevice,
+ phLibNfc_Handle hSocket,
uint8_t nSap,
pphLibNfc_LlcpSocketConnectCb_t pConnect_RspCb,
void* pContext
@@ -2826,7 +2827,8 @@ extern NFCSTATUS phLibNfc_Llcp_Connect( phLibNfc_Handle hSocket,
* \retval NFCSTATUS_SHUTDOWN Shutdown in progress.
* \retval NFCSTATUS_FAILED Operation failed.
*/
-extern NFCSTATUS phLibNfc_Llcp_ConnectByUri( phLibNfc_Handle hSocket,
+extern NFCSTATUS phLibNfc_Llcp_ConnectByUri( phLibNfc_Handle hRemoteDevice,
+ phLibNfc_Handle hSocket,
phNfc_sData_t* psUri,
pphLibNfc_LlcpSocketConnectCb_t pConnect_RspCb,
void* pContext
@@ -2856,7 +2858,8 @@ extern NFCSTATUS phLibNfc_Llcp_ConnectByUri( phLibNfc_Handle hSo
* \retval NFCSTATUS_SHUTDOWN Shutdown in progress.
* \retval NFCSTATUS_FAILED Operation failed.
*/
-extern NFCSTATUS phLibNfc_Llcp_Disconnect( phLibNfc_Handle hSocket,
+extern NFCSTATUS phLibNfc_Llcp_Disconnect( phLibNfc_Handle hRemoteDevice,
+ phLibNfc_Handle hSocket,
pphLibNfc_LlcpSocketDisconnectCb_t pDisconnect_RspCb,
void* pContext
);
@@ -2891,7 +2894,8 @@ extern NFCSTATUS phLibNfc_Llcp_Disconnect( phLibNfc_Handle hS
* \retval NFCSTATUS_SHUTDOWN Shutdown in progress.
* \retval NFCSTATUS_FAILED Operation failed.
*/
-extern NFCSTATUS phLibNfc_Llcp_Recv( phLibNfc_Handle hSocket,
+extern NFCSTATUS phLibNfc_Llcp_Recv( phLibNfc_Handle hRemoteDevice,
+ phLibNfc_Handle hSocket,
phNfc_sData_t* psBuffer,
pphLibNfc_LlcpSocketRecvCb_t pRecv_RspCb,
void* pContext
@@ -2924,7 +2928,8 @@ extern NFCSTATUS phLibNfc_Llcp_Recv( phLibNfc_Handle hSocket,
* \retval NFCSTATUS_SHUTDOWN Shutdown in progress.
* \retval NFCSTATUS_FAILED Operation failed.
*/
-extern NFCSTATUS phLibNfc_Llcp_RecvFrom( phLibNfc_Handle hSocket,
+extern NFCSTATUS phLibNfc_Llcp_RecvFrom( phLibNfc_Handle hRemoteDevice,
+ phLibNfc_Handle hSocket,
phNfc_sData_t* psBuffer,
pphLibNfc_LlcpSocketRecvFromCb_t pRecv_Cb,
void* pContext
@@ -2958,7 +2963,8 @@ extern NFCSTATUS phLibNfc_Llcp_RecvFrom( phLibNfc_Handle hSock
* \retval NFCSTATUS_SHUTDOWN Shutdown in progress.
* \retval NFCSTATUS_FAILED Operation failed.
*/
-extern NFCSTATUS phLibNfc_Llcp_Send( phLibNfc_Handle hSocket,
+extern NFCSTATUS phLibNfc_Llcp_Send( phLibNfc_Handle hRemoteDevice,
+ phLibNfc_Handle hSocket,
phNfc_sData_t* psBuffer,
pphLibNfc_LlcpSocketSendCb_t pSend_RspCb,
void* pContext
@@ -2992,7 +2998,8 @@ extern NFCSTATUS phLibNfc_Llcp_Send( phLibNfc_Handle hSocket,
* \retval NFCSTATUS_SHUTDOWN Shutdown in progress.
* \retval NFCSTATUS_FAILED Operation failed.
*/
-extern NFCSTATUS phLibNfc_Llcp_SendTo( phLibNfc_Handle hSocket,
+extern NFCSTATUS phLibNfc_Llcp_SendTo( phLibNfc_Handle hRemoteDevice,
+ phLibNfc_Handle hSocket,
uint8_t nSap,
phNfc_sData_t* psBuffer,
pphLibNfc_LlcpSocketSendCb_t pSend_RspCb,
diff --git a/src/phLibNfc_llcp.c b/src/phLibNfc_llcp.c
index 86b15cf..2f78ab6 100644
--- a/src/phLibNfc_llcp.c
+++ b/src/phLibNfc_llcp.c
@@ -147,7 +147,35 @@ NFCSTATUS phLibNfc_Mgt_SetLlcp_ConfigParams( phLibNfc_Llcp_sLinkParameters_t* pC
/* Set the P2P general bytes */
result = phLibNfc_Mgt_SetP2P_ConfigParams(&sNfcIPCfg, pConfigRspCb, pContext);
- return PHNFCSTATUS(result);
+ if (result != NFCSTATUS_PENDING)
+ {
+ return PHNFCSTATUS(result);
+ }
+
+ /* Resets the LLCP LLC component */
+ result = phFriNfc_Llcp_Reset( &gpphLibContext->llcp_cntx.sLlcpContext,
+ gpphLibContext->psOverHalCtxt,
+ pConfigInfo,
+ gpphLibContext->llcp_cntx.pRxBuffer,
+ sizeof(gpphLibContext->llcp_cntx.pRxBuffer),
+ gpphLibContext->llcp_cntx.pTxBuffer,
+ sizeof(gpphLibContext->llcp_cntx.pTxBuffer),
+ phLibNfc_Llcp_Link_Cb,
+ gpphLibContext);
+ if (result != NFCSTATUS_SUCCESS)
+ {
+ return PHNFCSTATUS(result);
+ }
+
+ /* Resets the LLCP Transport component */
+ result = phFriNfc_LlcpTransport_Reset( &gpphLibContext->llcp_cntx.sLlcpTransportContext,
+ &gpphLibContext->llcp_cntx.sLlcpContext );
+ if (result != NFCSTATUS_SUCCESS)
+ {
+ return PHNFCSTATUS(result);
+ }
+
+ return NFCSTATUS_PENDING;
}
NFCSTATUS phLibNfc_Llcp_CheckLlcp( phLibNfc_Handle hRemoteDevice,
@@ -196,28 +224,8 @@ NFCSTATUS phLibNfc_Llcp_CheckLlcp( phLibNfc_Handle hRemoteDevice,
gpphLibContext->CBInfo.pClientLlcpLinkCb = pLink_Cb;
gpphLibContext->CBInfo.pClientLlcpLinkCntx = pContext;
- /* Resets the LLCP LLC component */
- result = phFriNfc_Llcp_Reset( &gpphLibContext->llcp_cntx.sLlcpContext,
- gpphLibContext->psOverHalCtxt,
- &gpphLibContext->llcp_cntx.sLocalParams,
- gpphLibContext->llcp_cntx.pRxBuffer,
- sizeof(gpphLibContext->llcp_cntx.pRxBuffer),
- gpphLibContext->llcp_cntx.pTxBuffer,
- sizeof(gpphLibContext->llcp_cntx.pTxBuffer),
- phLibNfc_Llcp_Link_Cb,
- gpphLibContext);
- if (result != NFCSTATUS_SUCCESS)
- {
- return PHNFCSTATUS(result);
- }
-
- /* Resets the LLCP Transport component */
- result = phFriNfc_LlcpTransport_Reset( &gpphLibContext->llcp_cntx.sLlcpTransportContext,
- &gpphLibContext->llcp_cntx.sLlcpContext );
- if (result != NFCSTATUS_SUCCESS)
- {
- return result;
- }
+ // DEBUG: Reset at least the state
+ gpphLibContext->llcp_cntx.sLlcpContext.state = 0;
/* Prepare callback */
gpphLibContext->CBInfo.pClientLlcpCheckRespCb = pCheckLlcp_RspCb;
@@ -421,19 +429,11 @@ NFCSTATUS phLibNfc_Llcp_GetLocalInfo( phLibNfc_Handle hRemoteDe
}
/* Parameters checking */
- if ((hRemoteDevice == 0) ||
- (pConfigInfo == NULL))
+ if (pConfigInfo == NULL)
{
return NFCSTATUS_INVALID_PARAMETER;
}
- /* Check device */
- result = static_CheckDevice(hRemoteDevice);
- if (result != NFCSTATUS_SUCCESS)
- {
- return result;
- }
-
/* Get local infos */
result = phFriNfc_Llcp_GetLocalInfo(&gpphLibContext->llcp_cntx.sLlcpContext, pConfigInfo);
@@ -473,8 +473,7 @@ NFCSTATUS phLibNfc_Llcp_GetRemoteInfo( phLibNfc_Handle hRemot
return PHNFCSTATUS(result);
}
-NFCSTATUS phLibNfc_Llcp_Socket( phLibNfc_Handle hRemoteDevice,
- phLibNfc_Llcp_eSocketType_t eType,
+NFCSTATUS phLibNfc_Llcp_Socket( phLibNfc_Llcp_eSocketType_t eType,
phLibNfc_Llcp_sSocketOptions_t* psOptions,
phNfc_sData_t* psWorkingBuffer,
phLibNfc_Handle* phSocket,
@@ -494,20 +493,12 @@ NFCSTATUS phLibNfc_Llcp_Socket( phLibNfc_Handle hRemoteDevice,
/* Parameters checking */
/* NOTE: Transport Layer test psOption and psWorkingBuffer value */
- if ((hRemoteDevice == 0) ||
- (phSocket == NULL) ||
+ if ((phSocket == NULL) ||
(pErr_Cb == NULL))
{
return NFCSTATUS_INVALID_PARAMETER;
}
- /* Check device */
- result = static_CheckDevice(hRemoteDevice);
- if (result != NFCSTATUS_SUCCESS)
- {
- return result;
- }
-
/* Get local infos */
result = phFriNfc_LlcpTransport_Socket(&gpphLibContext->llcp_cntx.sLlcpTransportContext,
eType,
@@ -542,6 +533,7 @@ NFCSTATUS phLibNfc_Llcp_Close( phLibNfc_Handle hSocket )
}
/* Get local infos */
+ /* TODO: if connected abort and close else close only */
result = phFriNfc_LlcpTransport_Close(psSocket);
return PHNFCSTATUS(result);
@@ -574,13 +566,16 @@ NFCSTATUS phLibNfc_Llcp_SocketGetLocalOptions( phLibNfc_Handle
return PHNFCSTATUS(result);
}
-NFCSTATUS phLibNfc_Llcp_SocketGetRemoteOptions( phLibNfc_Handle hSocket,
+NFCSTATUS phLibNfc_Llcp_SocketGetRemoteOptions( phLibNfc_Handle hRemoteDevice,
+ phLibNfc_Handle hSocket,
phLibNfc_Llcp_sSocketOptions_t* psRemoteOptions
)
{
NFCSTATUS result;
phFriNfc_LlcpTransport_Socket_t *psSocket = (phFriNfc_LlcpTransport_Socket_t*)hSocket;
+ LLCP_PRINT("phLibNfc_Llcp_SocketGetRemoteOptions");
+
/* State checking */
result = static_CheckState();
if (result != NFCSTATUS_SUCCESS)
@@ -589,12 +584,20 @@ NFCSTATUS phLibNfc_Llcp_SocketGetRemoteOptions( phLibNfc_Handle
}
/* Parameters checking */
- if ((hSocket == 0) ||
+ if ((hRemoteDevice == 0) ||
+ (hSocket == 0) ||
(psRemoteOptions == NULL))
{
return NFCSTATUS_INVALID_PARAMETER;
}
+ /* Check device */
+ result = static_CheckDevice(hRemoteDevice);
+ if (result != NFCSTATUS_SUCCESS)
+ {
+ return result;
+ }
+
/* Get remote infos */
result = phFriNfc_LlcpTransport_SocketGetRemoteOptions(psSocket, psRemoteOptions);
@@ -608,6 +611,8 @@ NFCSTATUS phLibNfc_Llcp_Bind( phLibNfc_Handle hSocket,
NFCSTATUS result;
phFriNfc_LlcpTransport_Socket_t *psSocket = (phFriNfc_LlcpTransport_Socket_t*)hSocket;
+ LLCP_PRINT("phLibNfc_Llcp_Bind");
+
/* State checking */
result = static_CheckState();
if (result != NFCSTATUS_SUCCESS)
@@ -636,6 +641,8 @@ NFCSTATUS phLibNfc_Llcp_Listen( phLibNfc_Handle hSocket,
NFCSTATUS result;
phFriNfc_LlcpTransport_Socket_t *psSocket = (phFriNfc_LlcpTransport_Socket_t*)hSocket;
+ LLCP_PRINT("phLibNfc_Llcp_Listen");
+
/* State checking */
result = static_CheckState();
if (result != NFCSTATUS_SUCCESS)
@@ -671,6 +678,8 @@ NFCSTATUS phLibNfc_Llcp_Accept( phLibNfc_Handle hSocket,
NFCSTATUS result;
phFriNfc_LlcpTransport_Socket_t *psSocket = (phFriNfc_LlcpTransport_Socket_t*)hSocket;
+ LLCP_PRINT("phLibNfc_Llcp_Accept");
+
/* State checking */
result = static_CheckState();
if (result != NFCSTATUS_SUCCESS)
@@ -699,7 +708,8 @@ NFCSTATUS phLibNfc_Llcp_Accept( phLibNfc_Handle hSocket,
return PHNFCSTATUS(result);
}
-NFCSTATUS phLibNfc_Llcp_Reject( phLibNfc_Handle hSocket,
+NFCSTATUS phLibNfc_Llcp_Reject( phLibNfc_Handle hRemoteDevice,
+ phLibNfc_Handle hSocket,
pphLibNfc_LlcpSocketRejectCb_t pReject_RspCb,
void* pContext
)
@@ -707,6 +717,8 @@ NFCSTATUS phLibNfc_Llcp_Reject( phLibNfc_Handle hSocket,
NFCSTATUS result;
phFriNfc_LlcpTransport_Socket_t *psSocket = (phFriNfc_LlcpTransport_Socket_t*)hSocket;
+ LLCP_PRINT("phLibNfc_Llcp_Reject");
+
/* State checking */
result = static_CheckState();
if (result != NFCSTATUS_SUCCESS)
@@ -715,12 +727,20 @@ NFCSTATUS phLibNfc_Llcp_Reject( phLibNfc_Handle hSocket,
}
/* Parameters checking */
- if ((hSocket == 0) ||
+ if ((hRemoteDevice == 0) ||
+ (hSocket == 0) ||
(pReject_RspCb == NULL))
{
return NFCSTATUS_INVALID_PARAMETER;
}
+ /* Check device */
+ result = static_CheckDevice(hRemoteDevice);
+ if (result != NFCSTATUS_SUCCESS)
+ {
+ return result;
+ }
+
/* Reject incoming connection */
result = phFriNfc_LlcpTransport_Reject( psSocket,
pReject_RspCb,
@@ -729,7 +749,8 @@ NFCSTATUS phLibNfc_Llcp_Reject( phLibNfc_Handle hSocket,
return PHNFCSTATUS(result);
}
-NFCSTATUS phLibNfc_Llcp_Connect( phLibNfc_Handle hSocket,
+NFCSTATUS phLibNfc_Llcp_Connect( phLibNfc_Handle hRemoteDevice,
+ phLibNfc_Handle hSocket,
uint8_t nSap,
pphLibNfc_LlcpSocketConnectCb_t pConnect_RspCb,
void* pContext
@@ -738,6 +759,8 @@ NFCSTATUS phLibNfc_Llcp_Connect( phLibNfc_Handle hSocket,
NFCSTATUS result;
phFriNfc_LlcpTransport_Socket_t *psSocket = (phFriNfc_LlcpTransport_Socket_t*)hSocket;
+ LLCP_PRINT("phLibNfc_Llcp_Connect");
+
/* State checking */
result = static_CheckState();
if (result != NFCSTATUS_SUCCESS)
@@ -746,12 +769,21 @@ NFCSTATUS phLibNfc_Llcp_Connect( phLibNfc_Handle hSocket,
}
/* Parameters checking */
- if ((hSocket == 0) ||
+ if ((hRemoteDevice == 0) ||
+ (hSocket == 0) ||
(pConnect_RspCb == NULL))
{
+ LLCP_PRINT("phLibNfc_Llcp_Connect NFCSTATUS_INVALID_PARAMETER");
return NFCSTATUS_INVALID_PARAMETER;
}
+ /* Check device */
+ result = static_CheckDevice(hRemoteDevice);
+ if (result != NFCSTATUS_SUCCESS)
+ {
+ return result;
+ }
+
/* Try to connect on a remote service, given its SAP */
result = phFriNfc_LlcpTransport_Connect( psSocket,
nSap,
@@ -761,7 +793,8 @@ NFCSTATUS phLibNfc_Llcp_Connect( phLibNfc_Handle hSocket,
return PHNFCSTATUS(result);
}
-NFCSTATUS phLibNfc_Llcp_ConnectByUri( phLibNfc_Handle hSocket,
+NFCSTATUS phLibNfc_Llcp_ConnectByUri( phLibNfc_Handle hRemoteDevice,
+ phLibNfc_Handle hSocket,
phNfc_sData_t* psUri,
pphLibNfc_LlcpSocketConnectCb_t pConnect_RspCb,
void* pContext
@@ -770,6 +803,8 @@ NFCSTATUS phLibNfc_Llcp_ConnectByUri( phLibNfc_Handle hSocket,
NFCSTATUS result;
phFriNfc_LlcpTransport_Socket_t *psSocket = (phFriNfc_LlcpTransport_Socket_t*)hSocket;
+ LLCP_PRINT("phLibNfc_Llcp_ConnectByUri");
+
/* State checking */
result = static_CheckState();
if (result != NFCSTATUS_SUCCESS)
@@ -778,13 +813,22 @@ NFCSTATUS phLibNfc_Llcp_ConnectByUri( phLibNfc_Handle hSocket,
}
/* Parameters checking */
- if ((hSocket == 0) ||
+ if ((hRemoteDevice == 0) ||
+ (hSocket == 0) ||
(psUri == NULL) ||
(pConnect_RspCb == NULL))
{
+ LLCP_PRINT("phLibNfc_Llcp_ConnectByUri NFCSTATUS_INVALID_PARAMETER");
return NFCSTATUS_INVALID_PARAMETER;
}
+ /* Check device */
+ result = static_CheckDevice(hRemoteDevice);
+ if (result != NFCSTATUS_SUCCESS)
+ {
+ return result;
+ }
+
/* Try to connect on a remote service, using SDP */
result = phFriNfc_LlcpTransport_ConnectByUri( psSocket,
psUri,
@@ -794,7 +838,8 @@ NFCSTATUS phLibNfc_Llcp_ConnectByUri( phLibNfc_Handle hSocket,
return PHNFCSTATUS(result);
}
-NFCSTATUS phLibNfc_Llcp_Disconnect( phLibNfc_Handle hSocket,
+NFCSTATUS phLibNfc_Llcp_Disconnect( phLibNfc_Handle hRemoteDevice,
+ phLibNfc_Handle hSocket,
pphLibNfc_LlcpSocketDisconnectCb_t pDisconnect_RspCb,
void* pContext
)
@@ -802,6 +847,8 @@ NFCSTATUS phLibNfc_Llcp_Disconnect( phLibNfc_Handle hSocket,
NFCSTATUS result;
phFriNfc_LlcpTransport_Socket_t *psSocket = (phFriNfc_LlcpTransport_Socket_t*)hSocket;
+ LLCP_PRINT("phLibNfc_Llcp_Disconnect");
+
/* State checking */
result = static_CheckState();
if (result != NFCSTATUS_SUCCESS)
@@ -810,12 +857,20 @@ NFCSTATUS phLibNfc_Llcp_Disconnect( phLibNfc_Handle hSocket,
}
/* Parameters checking */
- if ((hSocket == 0) ||
+ if ((hRemoteDevice == 0) ||
+ (hSocket == 0) ||
(pDisconnect_RspCb == NULL))
{
return NFCSTATUS_INVALID_PARAMETER;
}
+ /* Check device */
+ result = static_CheckDevice(hRemoteDevice);
+ if (result != NFCSTATUS_SUCCESS)
+ {
+ return result;
+ }
+
/* Disconnect a logical link */
result = phFriNfc_LlcpTransport_Disconnect( psSocket,
pDisconnect_RspCb,
@@ -824,7 +879,8 @@ NFCSTATUS phLibNfc_Llcp_Disconnect( phLibNfc_Handle hSocket,
return PHNFCSTATUS(result);
}
-NFCSTATUS phLibNfc_Llcp_Recv( phLibNfc_Handle hSocket,
+NFCSTATUS phLibNfc_Llcp_Recv( phLibNfc_Handle hRemoteDevice,
+ phLibNfc_Handle hSocket,
phNfc_sData_t* psBuffer,
pphLibNfc_LlcpSocketRecvCb_t pRecv_RspCb,
void* pContext
@@ -833,6 +889,8 @@ NFCSTATUS phLibNfc_Llcp_Recv( phLibNfc_Handle hSocket,
NFCSTATUS result;
phFriNfc_LlcpTransport_Socket_t *psSocket = (phFriNfc_LlcpTransport_Socket_t*)hSocket;
+ LLCP_PRINT("phLibNfc_Llcp_Recv");
+
/* State checking */
result = static_CheckState();
if (result != NFCSTATUS_SUCCESS)
@@ -841,13 +899,21 @@ NFCSTATUS phLibNfc_Llcp_Recv( phLibNfc_Handle hSocket,
}
/* Parameters checking */
- if ((hSocket == 0) ||
- (psBuffer == NULL) ||
+ if ((hRemoteDevice == 0) ||
+ (hSocket == 0) ||
+ (psBuffer == NULL) ||
(pRecv_RspCb == NULL))
{
return NFCSTATUS_INVALID_PARAMETER;
}
+ /* Check device */
+ result = static_CheckDevice(hRemoteDevice);
+ if (result != NFCSTATUS_SUCCESS)
+ {
+ return result;
+ }
+
/* Receive data from the logical link */
result = phFriNfc_LlcpTransport_Recv( psSocket,
psBuffer,
@@ -857,7 +923,8 @@ NFCSTATUS phLibNfc_Llcp_Recv( phLibNfc_Handle hSocket,
return PHNFCSTATUS(result);
}
-NFCSTATUS phLibNfc_Llcp_RecvFrom( phLibNfc_Handle hSocket,
+NFCSTATUS phLibNfc_Llcp_RecvFrom( phLibNfc_Handle hRemoteDevice,
+ phLibNfc_Handle hSocket,
phNfc_sData_t* psBuffer,
pphLibNfc_LlcpSocketRecvFromCb_t pRecv_Cb,
void* pContext
@@ -866,6 +933,8 @@ NFCSTATUS phLibNfc_Llcp_RecvFrom( phLibNfc_Handle hSocket,
NFCSTATUS result;
phFriNfc_LlcpTransport_Socket_t *psSocket = (phFriNfc_LlcpTransport_Socket_t*)hSocket;
+ LLCP_PRINT("phLibNfc_Llcp_RecvFrom");
+
/* State checking */
result = static_CheckState();
if (result != NFCSTATUS_SUCCESS)
@@ -874,13 +943,21 @@ NFCSTATUS phLibNfc_Llcp_RecvFrom( phLibNfc_Handle hSocket,
}
/* Parameters checking */
- if ((hSocket == 0) ||
- (psBuffer == NULL) ||
+ if ((hRemoteDevice == 0) ||
+ (hSocket == 0) ||
+ (psBuffer == NULL) ||
(pRecv_Cb == NULL))
{
return NFCSTATUS_INVALID_PARAMETER;
}
+ /* Check device */
+ result = static_CheckDevice(hRemoteDevice);
+ if (result != NFCSTATUS_SUCCESS)
+ {
+ return result;
+ }
+
/* Receive data from the logical link */
result = phFriNfc_LlcpTransport_RecvFrom( psSocket,
psBuffer,
@@ -890,7 +967,8 @@ NFCSTATUS phLibNfc_Llcp_RecvFrom( phLibNfc_Handle hSocket,
return PHNFCSTATUS(result);
}
-NFCSTATUS phLibNfc_Llcp_Send( phLibNfc_Handle hSocket,
+NFCSTATUS phLibNfc_Llcp_Send( phLibNfc_Handle hRemoteDevice,
+ phLibNfc_Handle hSocket,
phNfc_sData_t* psBuffer,
pphLibNfc_LlcpSocketSendCb_t pSend_RspCb,
void* pContext
@@ -899,6 +977,8 @@ NFCSTATUS phLibNfc_Llcp_Send( phLibNfc_Handle hSocket,
NFCSTATUS result;
phFriNfc_LlcpTransport_Socket_t *psSocket = (phFriNfc_LlcpTransport_Socket_t*)hSocket;
+ LLCP_PRINT("phLibNfc_Llcp_Send");
+
/* State checking */
result = static_CheckState();
if (result != NFCSTATUS_SUCCESS)
@@ -907,13 +987,21 @@ NFCSTATUS phLibNfc_Llcp_Send( phLibNfc_Handle hSocket,
}
/* Parameters checking */
- if ((hSocket == 0) ||
- (psBuffer == NULL) ||
+ if ((hRemoteDevice == 0) ||
+ (hSocket == 0) ||
+ (psBuffer == NULL) ||
(pSend_RspCb == NULL))
{
return NFCSTATUS_INVALID_PARAMETER;
}
+ /* Check device */
+ result = static_CheckDevice(hRemoteDevice);
+ if (result != NFCSTATUS_SUCCESS)
+ {
+ return result;
+ }
+
/* Send data to the logical link */
result = phFriNfc_LlcpTransport_Send( psSocket,
psBuffer,
@@ -923,7 +1011,8 @@ NFCSTATUS phLibNfc_Llcp_Send( phLibNfc_Handle hSocket,
return PHNFCSTATUS(result);
}
-NFCSTATUS phLibNfc_Llcp_SendTo( phLibNfc_Handle hSocket,
+NFCSTATUS phLibNfc_Llcp_SendTo( phLibNfc_Handle hRemoteDevice,
+ phLibNfc_Handle hSocket,
uint8_t nSap,
phNfc_sData_t* psBuffer,
pphLibNfc_LlcpSocketSendCb_t pSend_RspCb,
@@ -933,6 +1022,8 @@ NFCSTATUS phLibNfc_Llcp_SendTo( phLibNfc_Handle hSocket,
NFCSTATUS result;
phFriNfc_LlcpTransport_Socket_t *psSocket = (phFriNfc_LlcpTransport_Socket_t*)hSocket;
+ LLCP_PRINT("phLibNfc_Llcp_SendTo");
+
/* State checking */
result = static_CheckState();
if (result != NFCSTATUS_SUCCESS)
@@ -941,13 +1032,21 @@ NFCSTATUS phLibNfc_Llcp_SendTo( phLibNfc_Handle hSocket,
}
/* Parameters checking */
- if ((hSocket == 0) ||
- (psBuffer == NULL) ||
+ if ((hRemoteDevice == 0) ||
+ (hSocket == 0) ||
+ (psBuffer == NULL) ||
(pSend_RspCb == NULL))
{
return NFCSTATUS_INVALID_PARAMETER;
}
+ /* Check device */
+ result = static_CheckDevice(hRemoteDevice);
+ if (result != NFCSTATUS_SUCCESS)
+ {
+ return result;
+ }
+
/* Send data to the logical link */
result = phFriNfc_LlcpTransport_SendTo( psSocket,
nSap,