diff options
author | Claudio Takahasi <claudio.takahasi@openbossa.org> | 2007-06-15 17:02:24 +0000 |
---|---|---|
committer | Claudio Takahasi <claudio.takahasi@openbossa.org> | 2007-06-15 17:02:24 +0000 |
commit | 7d7726dc7380c71ba0531aea07921421e3c74b5a (patch) | |
tree | 5fa0aa892ddcddf339d8c92eb5faaff758476a53 /hcid/dbus-sdp.c | |
parent | 9fa7184246b640fef262aa6cd731fcc0dd49f422 (diff) |
GetRemoteServiceIdentifiers: store the received records
Diffstat (limited to 'hcid/dbus-sdp.c')
-rw-r--r-- | hcid/dbus-sdp.c | 14 |
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); |