Diff between 3daaf7ae5f605dce3d9fc19b5c61843e9d89729c and 1dc46d56c2c709abde9163845b27a17093739571

Changed Files

File Additions Deletions Status
src/adapter.c +93 -93 modified

Full Patch

diff --git a/src/adapter.c b/src/adapter.c
index 58ebaf6..a91a302 100644
--- a/src/adapter.c
+++ b/src/adapter.c
@@ -766,99 +766,6 @@ struct btd_device *adapter_find_device(struct btd_adapter *adapter,
 	return device;
 }
 
-static uint8_t get_uuid_mask(uuid_t *uuid)
-{
-	if (uuid->type != SDP_UUID16)
-		return 0;
-
-	switch (uuid->value.uuid16) {
-	case DIALUP_NET_SVCLASS_ID:
-	case CIP_SVCLASS_ID:
-		return 0x42;	/* Telephony & Networking */
-	case IRMC_SYNC_SVCLASS_ID:
-	case OBEX_OBJPUSH_SVCLASS_ID:
-	case OBEX_FILETRANS_SVCLASS_ID:
-	case IRMC_SYNC_CMD_SVCLASS_ID:
-	case PBAP_PSE_SVCLASS_ID:
-		return 0x10;	/* Object Transfer */
-	case HEADSET_SVCLASS_ID:
-	case HANDSFREE_SVCLASS_ID:
-		return 0x20;	/* Audio */
-	case CORDLESS_TELEPHONY_SVCLASS_ID:
-	case INTERCOM_SVCLASS_ID:
-	case FAX_SVCLASS_ID:
-	case SAP_SVCLASS_ID:
-	/*
-	 * Setting the telephony bit for the handsfree audio gateway
-	 * role is not required by the HFP specification, but the
-	 * Nokia 616 carkit is just plain broken! It will refuse
-	 * pairing without this bit set.
-	 */
-	case HANDSFREE_AGW_SVCLASS_ID:
-		return 0x40;	/* Telephony */
-	case AUDIO_SOURCE_SVCLASS_ID:
-	case VIDEO_SOURCE_SVCLASS_ID:
-		return 0x08;	/* Capturing */
-	case AUDIO_SINK_SVCLASS_ID:
-	case VIDEO_SINK_SVCLASS_ID:
-		return 0x04;	/* Rendering */
-	case PANU_SVCLASS_ID:
-	case NAP_SVCLASS_ID:
-	case GN_SVCLASS_ID:
-		return 0x02;	/* Networking */
-	default:
-		return 0;
-	}
-}
-
-static int uuid_cmp(const void *a, const void *b)
-{
-	const sdp_record_t *rec = a;
-	const uuid_t *uuid = b;
-
-	return sdp_uuid_cmp(&rec->svclass, uuid);
-}
-
-void adapter_service_insert(struct btd_adapter *adapter, void *r)
-{
-	sdp_record_t *rec = r;
-	sdp_list_t *browse_list = NULL;
-	uuid_t browse_uuid;
-	gboolean new_uuid;
-
-	DBG("%s", adapter->path);
-
-	/* skip record without a browse group */
-	if (sdp_get_browse_groups(rec, &browse_list) < 0)
-		return;
-
-	sdp_uuid16_create(&browse_uuid, PUBLIC_BROWSE_GROUP);
-
-	/* skip record without public browse group */
-	if (!sdp_list_find(browse_list, &browse_uuid, sdp_uuid_cmp))
-		goto done;
-
-	if (sdp_list_find(adapter->services, &rec->svclass, uuid_cmp) == NULL)
-		new_uuid = TRUE;
-	else
-		new_uuid = FALSE;
-
-	adapter->services = sdp_list_insert_sorted(adapter->services, rec,
-								record_sort);
-
-	if (new_uuid) {
-		uint8_t svc_hint = get_uuid_mask(&rec->svclass);
-		mgmt_add_uuid(adapter->dev_id, &rec->svclass, svc_hint);
-	}
-
-	if (adapter->initialized)
-		g_dbus_emit_property_changed(btd_get_dbus_connection(),
-				adapter->path, ADAPTER_INTERFACE, "UUIDs");
-
-done:
-	sdp_list_free(browse_list, free);
-}
-
 static void remove_uuid_complete(uint8_t status, uint16_t length,
 					const void *param, void *user_data)
 {
@@ -978,6 +885,99 @@ static int clear_uuids(struct btd_adapter *adapter)
 	return -EIO;
 }
 
+static uint8_t get_uuid_mask(uuid_t *uuid)
+{
+	if (uuid->type != SDP_UUID16)
+		return 0;
+
+	switch (uuid->value.uuid16) {
+	case DIALUP_NET_SVCLASS_ID:
+	case CIP_SVCLASS_ID:
+		return 0x42;	/* Telephony & Networking */
+	case IRMC_SYNC_SVCLASS_ID:
+	case OBEX_OBJPUSH_SVCLASS_ID:
+	case OBEX_FILETRANS_SVCLASS_ID:
+	case IRMC_SYNC_CMD_SVCLASS_ID:
+	case PBAP_PSE_SVCLASS_ID:
+		return 0x10;	/* Object Transfer */
+	case HEADSET_SVCLASS_ID:
+	case HANDSFREE_SVCLASS_ID:
+		return 0x20;	/* Audio */
+	case CORDLESS_TELEPHONY_SVCLASS_ID:
+	case INTERCOM_SVCLASS_ID:
+	case FAX_SVCLASS_ID:
+	case SAP_SVCLASS_ID:
+	/*
+	 * Setting the telephony bit for the handsfree audio gateway
+	 * role is not required by the HFP specification, but the
+	 * Nokia 616 carkit is just plain broken! It will refuse
+	 * pairing without this bit set.
+	 */
+	case HANDSFREE_AGW_SVCLASS_ID:
+		return 0x40;	/* Telephony */
+	case AUDIO_SOURCE_SVCLASS_ID:
+	case VIDEO_SOURCE_SVCLASS_ID:
+		return 0x08;	/* Capturing */
+	case AUDIO_SINK_SVCLASS_ID:
+	case VIDEO_SINK_SVCLASS_ID:
+		return 0x04;	/* Rendering */
+	case PANU_SVCLASS_ID:
+	case NAP_SVCLASS_ID:
+	case GN_SVCLASS_ID:
+		return 0x02;	/* Networking */
+	default:
+		return 0;
+	}
+}
+
+static int uuid_cmp(const void *a, const void *b)
+{
+	const sdp_record_t *rec = a;
+	const uuid_t *uuid = b;
+
+	return sdp_uuid_cmp(&rec->svclass, uuid);
+}
+
+void adapter_service_insert(struct btd_adapter *adapter, void *r)
+{
+	sdp_record_t *rec = r;
+	sdp_list_t *browse_list = NULL;
+	uuid_t browse_uuid;
+	gboolean new_uuid;
+
+	DBG("%s", adapter->path);
+
+	/* skip record without a browse group */
+	if (sdp_get_browse_groups(rec, &browse_list) < 0)
+		return;
+
+	sdp_uuid16_create(&browse_uuid, PUBLIC_BROWSE_GROUP);
+
+	/* skip record without public browse group */
+	if (!sdp_list_find(browse_list, &browse_uuid, sdp_uuid_cmp))
+		goto done;
+
+	if (sdp_list_find(adapter->services, &rec->svclass, uuid_cmp) == NULL)
+		new_uuid = TRUE;
+	else
+		new_uuid = FALSE;
+
+	adapter->services = sdp_list_insert_sorted(adapter->services, rec,
+								record_sort);
+
+	if (new_uuid) {
+		uint8_t svc_hint = get_uuid_mask(&rec->svclass);
+		mgmt_add_uuid(adapter->dev_id, &rec->svclass, svc_hint);
+	}
+
+	if (adapter->initialized)
+		g_dbus_emit_property_changed(btd_get_dbus_connection(),
+				adapter->path, ADAPTER_INTERFACE, "UUIDs");
+
+done:
+	sdp_list_free(browse_list, free);
+}
+
 void adapter_service_remove(struct btd_adapter *adapter, void *r)
 {
 	sdp_record_t *rec = r;