summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--include/sdp_lib.h3
-rw-r--r--src/sdp.c28
2 files changed, 30 insertions, 1 deletions
diff --git a/include/sdp_lib.h b/include/sdp_lib.h
index a4b2cb4b..eaf4cdb0 100644
--- a/include/sdp_lib.h
+++ b/include/sdp_lib.h
@@ -114,8 +114,9 @@ uint16_t sdp_gen_tid(sdp_session_t *session);
/*
* SDP transaction: functions for asynchronous search.
*/
-typedef void sdp_callback_t(uint8_t type, sdp_list_t *rsp, void *udata, int err);
+typedef void sdp_callback_t(uint8_t type, uint16_t status, uint8_t *rsp, size_t *size, void *udata);
sdp_session_t *sdp_create(int sk, uint32_t flags);
+int sdp_set_notify(sdp_session_t *session, sdp_callback_t *func, void *udata);
/*
* find all devices in the piconet
diff --git a/src/sdp.c b/src/sdp.c
index f535ad48..5bbc8ec8 100644
--- a/src/sdp.c
+++ b/src/sdp.c
@@ -3086,6 +3086,34 @@ sdp_session_t *sdp_create(int sk, uint32_t flags)
}
/*
+ * Set the callback function to called when the transaction finishes
+ *
+ * INPUT:
+ * sdp_session_t *session
+ * Current sdp session to be handled
+ * sdp_callback_t *cb
+ * callback to be called when the transaction finishes
+ * void *udata
+ * user data passed to callback
+ * RETURN:
+ * 0 - Success
+ * -1 - Failure
+ */
+int sdp_set_notify(sdp_session_t *session, sdp_callback_t *func, void *udata)
+{
+ struct sdp_transaction *t;
+
+ if (!session || !session->priv)
+ return -1;
+
+ t = session->priv;
+ t->cb = func;
+ t->udata = udata;
+
+ return 0;
+}
+
+/*
* This is a service search request combined with the service
* attribute request. First a service class match is done and
* for matching service, requested attributes are extracted