From e0c9fb0605964ff910a9a17976a4e6c46984dad2 Mon Sep 17 00:00:00 2001 From: "matthias.ringwald@gmail.com" Date: Sun, 24 Aug 2014 20:18:52 +0000 Subject: [PATCH] prevent SDP query from being sent twice in some cases --- src/sdp_client.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/src/sdp_client.c b/src/sdp_client.c index 5bdc0bf59..2d20e8065 100644 --- a/src/sdp_client.c +++ b/src/sdp_client.c @@ -118,22 +118,25 @@ static void try_to_send(uint16_t channel){ request_len = setup_service_search_attribute_request(data); break; default: - log_info("SDP Client try_to_send :: PDU ID invalid. %u", PDU_ID); + log_error("SDP Client try_to_send :: PDU ID invalid. %u", PDU_ID); return; } + // prevent re-entrance + sdp_client_state = W4_RESPONSE; int err = l2cap_send_prepared(channel, request_len); + // l2cap_send_prepared shouldn't have failed as l2ap_can_send_packet_now() was true switch (err){ case 0: - // packet is sent prepare next one - // log_info("l2cap_send_internal() -> OK"); + log_debug("l2cap_send_internal() -> OK"); PDU_ID = SDP_Invalid; - sdp_client_state = W4_RESPONSE; break; case BTSTACK_ACL_BUFFERS_FULL: + sdp_client_state = W2_SEND; log_info("l2cap_send_internal() ->BTSTACK_ACL_BUFFERS_FULL"); break; default: + sdp_client_state = W2_SEND; log_error("l2cap_send_internal() -> err %d", err); break; }