diff --git a/src/sdp-client.c b/src/sdp-client.c
index 3e78dde..55e59c2 100644
--- a/src/sdp-client.c
+++ b/src/sdp-client.c
return FALSE;
}
-static sdp_session_t *get_sdp_session(const bdaddr_t *src, const bdaddr_t *dst)
+static sdp_session_t *get_cached_sdp_session(const bdaddr_t *src, const bdaddr_t *dst)
{
GSList *l;
return session;
}
+ return NULL;
+}
+
+static sdp_session_t *get_sdp_session(const bdaddr_t *src, const bdaddr_t *dst)
+{
+ sdp_session_t *session;
+
+ session = get_cached_sdp_session(src, dst);
+ if (session)
+ return session;
+
return sdp_connect(src, dst, SDP_NON_BLOCKING);
}
return 0;
}
+
+void bt_clear_cached_session(const bdaddr_t *src, const bdaddr_t *dst)
+{
+ sdp_session_t *session;
+
+ session = get_cached_sdp_session(src, dst);
+ if (session)
+ sdp_close(session);
+}
diff --git a/src/sdp-client.h b/src/sdp-client.h
index 13d9121..9191594 100644
--- a/src/sdp-client.h
+++ b/src/sdp-client.h
uuid_t *uuid, bt_callback_t cb, void *user_data,
bt_destroy_t destroy);
int bt_cancel_discovery(const bdaddr_t *src, const bdaddr_t *dst);
+void bt_clear_cached_session(const bdaddr_t *src, const bdaddr_t *dst);