diff options
-rw-r--r-- | common/glib-helper.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/common/glib-helper.c b/common/glib-helper.c index f76cdecb..7810ba7e 100644 --- a/common/glib-helper.c +++ b/common/glib-helper.c @@ -63,7 +63,6 @@ static void search_context_cleanup(struct search_context *ctxt) { if (ctxt->destroy) ctxt->destroy(ctxt->user_data); - sdp_close(ctxt->session); g_free(ctxt); } @@ -107,9 +106,9 @@ static void search_completed_cb(uint8_t type, uint16_t status, } while (scanned < size); done: + sdp_close(ctxt->session); if (ctxt->cb) ctxt->cb(recs, err, ctxt->user_data); - search_context_cleanup(ctxt); } @@ -131,6 +130,7 @@ static gboolean search_process_cb(GIOChannel *chan, failed: if (err) { + sdp_close(ctxt->session); if (ctxt->cb) ctxt->cb(NULL, err, ctxt->user_data); search_context_cleanup(ctxt); @@ -182,6 +182,7 @@ static gboolean connect_watch(GIOChannel *chan, GIOCondition cond, gpointer user return FALSE; failed: + sdp_close(ctxt->session); if (ctxt->cb) ctxt->cb(NULL, -err, ctxt->user_data); search_context_cleanup(ctxt); |