diff options
| -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); | 
