summaryrefslogtreecommitdiffstats
path: root/src/phFriNfc_Llcp.c
diff options
context:
space:
mode:
authorMartijn Coenen <maco@google.com>2011-07-27 07:27:53 -0700
committerAndroid (Google) Code Review <android-gerrit@google.com>2011-07-27 07:27:53 -0700
commit979c4c6363f8d0bc42770884ec79f022fdfb8de0 (patch)
treea95b86a7f536c0b76e44562469d20a868e43c90a /src/phFriNfc_Llcp.c
parent9ce2972f3f2051d71239f8b9ebba4f164c7a35be (diff)
parent54b847c7f7a5bc2e36ebe877ce832cdfefabc733 (diff)
downloadexternal_libnfc-nxp-979c4c6363f8d0bc42770884ec79f022fdfb8de0.zip
external_libnfc-nxp-979c4c6363f8d0bc42770884ec79f022fdfb8de0.tar.gz
external_libnfc-nxp-979c4c6363f8d0bc42770884ec79f022fdfb8de0.tar.bz2
Merge "Don't wait for timeout to send SYMM PDU's."
Diffstat (limited to 'src/phFriNfc_Llcp.c')
-rw-r--r--src/phFriNfc_Llcp.c26
1 files changed, 9 insertions, 17 deletions
diff --git a/src/phFriNfc_Llcp.c b/src/phFriNfc_Llcp.c
index 8b2624e..2a4fcb4 100644
--- a/src/phFriNfc_Llcp.c
+++ b/src/phFriNfc_Llcp.c
@@ -196,24 +196,11 @@ static NFCSTATUS phFriNfc_Llcp_InternalDeactivate( phFriNfc_Llcp_t *Llcp )
static NFCSTATUS phFriNfc_Llcp_SendSymm( phFriNfc_Llcp_t *Llcp )
{
phFriNfc_Llcp_sPacketHeader_t sHeader;
- bool_t bPendingFlag;
- /* Check for pending messages to send */
- bPendingFlag = phFriNfc_Llcp_HandlePendingSend(Llcp);
-
- if (bPendingFlag == FALSE)
- {
- /* No send pending, send a SYMM instead */
- sHeader.dsap = PHFRINFC_LLCP_SAP_LINK;
- sHeader.ssap = PHFRINFC_LLCP_SAP_LINK;
- sHeader.ptype = PHFRINFC_LLCP_PTYPE_SYMM;
- return phFriNfc_Llcp_InternalSend(Llcp, &sHeader, NULL, NULL);
- }
- else
- {
- /* A pending send has been sent, there is no need to send SYMM */
- return NFCSTATUS_SUCCESS;
- }
+ sHeader.dsap = PHFRINFC_LLCP_SAP_LINK;
+ sHeader.ssap = PHFRINFC_LLCP_SAP_LINK;
+ sHeader.ptype = PHFRINFC_LLCP_PTYPE_SYMM;
+ return phFriNfc_Llcp_InternalSend(Llcp, &sHeader, NULL, NULL);
}
@@ -917,6 +904,11 @@ static bool_t phFriNfc_Llcp_HandlePendingSend ( phFriNfc_Llcp_t *Llcp )
phFriNfc_Llcp_InternalDeactivate(Llcp);
}
return_value = TRUE;
+ } else if (Llcp->pfSendCB == NULL) {
+ // Nothing to send, send SYMM instead to allow peer to send something
+ // if it wants.
+ phFriNfc_Llcp_SendSymm(Llcp);
+ return_value = TRUE;
}
clean_and_return: