summaryrefslogtreecommitdiffstats
path: root/hcid
diff options
context:
space:
mode:
authorClaudio Takahasi <claudio.takahasi@openbossa.org>2007-06-15 17:02:24 +0000
committerClaudio Takahasi <claudio.takahasi@openbossa.org>2007-06-15 17:02:24 +0000
commit7d7726dc7380c71ba0531aea07921421e3c74b5a (patch)
tree5fa0aa892ddcddf339d8c92eb5faaff758476a53 /hcid
parent9fa7184246b640fef262aa6cd731fcc0dd49f422 (diff)
GetRemoteServiceIdentifiers: store the received records
Diffstat (limited to 'hcid')
-rw-r--r--hcid/dbus-sdp.c14
1 files changed, 11 insertions, 3 deletions
diff --git a/hcid/dbus-sdp.c b/hcid/dbus-sdp.c
index c2b943cb..8e5758cc 100644
--- a/hcid/dbus-sdp.c
+++ b/hcid/dbus-sdp.c
@@ -740,6 +740,7 @@ static void remote_svc_identifiers_completed_cb(uint8_t type, uint16_t err,
uint8_t *rsp, size_t size, void *udata)
{
struct transaction_context *ctxt = udata;
+ const char *src, *dst;
DBusMessage *reply;
DBusMessageIter iter, array_iter;
int scanned, extracted = 0, len = 0;
@@ -774,6 +775,11 @@ static void remote_svc_identifiers_completed_cb(uint8_t type, uint16_t err,
goto failed;
}
+ src = get_address_from_message(ctxt->conn, ctxt->rq);
+ dbus_message_get_args(ctxt->rq, NULL,
+ DBUS_TYPE_STRING, &dst,
+ DBUS_TYPE_INVALID);
+
reply = dbus_message_new_method_return(ctxt->rq);
dbus_message_iter_init_append(reply, &iter);
dbus_message_iter_open_container(&iter, DBUS_TYPE_ARRAY,
@@ -793,9 +799,6 @@ static void remote_svc_identifiers_completed_cb(uint8_t type, uint16_t err,
if (!rec)
break;
- rsp += recsize;
- extracted += recsize;
-
d = sdp_data_get(rec, SDP_ATTR_SVCLASS_ID_LIST);
if (d) {
const char *puuid;
@@ -804,7 +807,12 @@ static void remote_svc_identifiers_completed_cb(uint8_t type, uint16_t err,
dbus_message_iter_append_basic(&array_iter,
DBUS_TYPE_STRING, &puuid);
}
+
+ sdp_store_record(src, dst, rec->handle, rsp, recsize);
sdp_record_free(rec);
+
+ rsp += recsize;
+ extracted += recsize;
}
dbus_message_iter_close_container(&iter, &array_iter);