From 6dbf1f9ab26bff98f25bd52d2d9fbf3fb3e8861d Mon Sep 17 00:00:00 2001 From: Milanka Ringwald Date: Tue, 22 Aug 2017 11:11:10 +0200 Subject: [PATCH] handle SDP query error --- example/sdp_bnep_query.c | 6 +++++- example/sdp_general_query.c | 6 +++++- example/sdp_rfcomm_query.c | 5 +++++ src/classic/goep_client.c | 7 +++++++ 4 files changed, 22 insertions(+), 2 deletions(-) diff --git a/example/sdp_bnep_query.c b/example/sdp_bnep_query.c index 5a5e93e79..50d532175 100644 --- a/example/sdp_bnep_query.c +++ b/example/sdp_bnep_query.c @@ -257,7 +257,11 @@ static void handle_sdp_client_query_result(uint8_t packet_type, uint16_t channel } break; case SDP_EVENT_QUERY_COMPLETE: - printf("General query done with status %d.\n\n", sdp_event_query_complete_get_status(packet)); + if (sdp_event_query_complete_get_status(packet)){ + printf("SDP query failed 0x%02x\n", sdp_event_query_complete_get_status(packet)); + break; + } + printf("SDP query done.\n"); break; } /* LISTING_RESUME */ diff --git a/example/sdp_general_query.c b/example/sdp_general_query.c index 9a64df3dd..d53af70d6 100644 --- a/example/sdp_general_query.c +++ b/example/sdp_general_query.c @@ -162,7 +162,11 @@ static void handle_sdp_client_query_result(uint8_t packet_type, uint16_t channel } break; case SDP_EVENT_QUERY_COMPLETE: - printf("General query done with status %d.\n\n", sdp_event_query_complete_get_status(packet)); + if (sdp_event_query_complete_get_status(packet)){ + printf("SDP query failed 0x%02x\n", sdp_event_query_complete_get_status(packet)); + break; + } + printf("SDP query done.\n"); break; } } diff --git a/example/sdp_rfcomm_query.c b/example/sdp_rfcomm_query.c index 44dbcc811..9dfc06110 100644 --- a/example/sdp_rfcomm_query.c +++ b/example/sdp_rfcomm_query.c @@ -120,6 +120,11 @@ static void handle_query_rfcomm_event(uint8_t packet_type, uint16_t channel, uin sdp_event_query_rfcomm_service_get_rfcomm_channel(packet)); break; case SDP_EVENT_QUERY_COMPLETE: + if (sdp_event_query_complete_get_status(packet)){ + printf("SDP query failed 0x%02x\n", sdp_event_query_complete_get_status(packet)); + break; + } + printf("SDP query done.\n"); report_found_services(); break; } diff --git a/src/classic/goep_client.c b/src/classic/goep_client.c index 646ef537d..5c2e5f5fc 100644 --- a/src/classic/goep_client.c +++ b/src/classic/goep_client.c @@ -179,6 +179,13 @@ static void goep_client_handle_query_rfcomm_event(uint8_t packet_type, uint16_t goep_client->bearer_port = sdp_event_query_rfcomm_service_get_rfcomm_channel(packet); break; case SDP_EVENT_QUERY_COMPLETE: + if (sdp_event_query_complete_get_status(packet)){ + log_info("GOEP client, SDP query failed 0x%02x", sdp_event_query_complete_get_status(packet)); + goep_client->state = GOEP_INIT; + goep_client_emit_connected_event(goep_client, sdp_event_query_complete_get_status(packet)); + break; + } + if (goep_client->bearer_port == 0){ log_info("Remote GOEP RFCOMM Server Channel not found"); goep_client->state = GOEP_INIT;