Linux bluetooth development
 help / color / mirror / Atom feed
* [PATCH BlueZ 1/3] device: Refactor device_discover_services function
@ 2026-06-08 10:39 Simon Mikuda
  2026-06-08 10:39 ` [PATCH BlueZ 2/3] device: Rename start_discovery function Simon Mikuda
                   ` (4 more replies)
  0 siblings, 5 replies; 13+ messages in thread
From: Simon Mikuda @ 2026-06-08 10:39 UTC (permalink / raw)
  To: linux-bluetooth; +Cc: Simon Mikuda

After refactoring we can reuse function once more in function
void device_bonding_complete(...)
---
 profiles/input/server.c |  2 +-
 src/adapter.c           |  2 +-
 src/device.c            | 24 +++++++-----------------
 src/device.h            |  3 ++-
 4 files changed, 11 insertions(+), 20 deletions(-)

diff --git a/profiles/input/server.c b/profiles/input/server.c
index 97579152e..93c73f8d2 100644
--- a/profiles/input/server.c
+++ b/profiles/input/server.c
@@ -102,7 +102,7 @@ static void sixaxis_browse_sdp(const bdaddr_t *src, const bdaddr_t *dst,
 	data->psm = psm;
 
 	if (psm == L2CAP_PSM_HIDP_CTRL)
-		device_discover_services(device);
+		device_discover_services(device, BDADDR_BREDR, NULL);
 
 	device_wait_for_svc_complete(device, sixaxis_sdp_cb, data);
 }
diff --git a/src/adapter.c b/src/adapter.c
index 03593d962..cc753fbd6 100644
--- a/src/adapter.c
+++ b/src/adapter.c
@@ -3717,7 +3717,7 @@ static void device_connect_cb(GIOChannel *io, GError *gerr, gpointer user_data)
 		device_attach_att(device, io);
 	}
 
-	device_discover_services(device);
+	device_discover_services(device, data->dst_type, NULL);
 
 	g_io_channel_unref(io);
 	dbus_message_unref(data->msg);
diff --git a/src/device.c b/src/device.c
index bea893301..0c2ee7d8d 100644
--- a/src/device.c
+++ b/src/device.c
@@ -2812,10 +2812,7 @@ DBusMessage *device_connect_profiles(struct btd_device *dev,
 resolve_services:
 	DBG("Resolving services for %s", dev->path);
 
-	if (bdaddr_type == BDADDR_BREDR)
-		err = device_browse_sdp(dev, msg);
-	else
-		err = device_browse_gatt(dev, msg);
+	err = device_discover_services(dev, bdaddr_type, msg);
 	if (err < 0) {
 		return btd_error_failed(msg, bdaddr_type == BDADDR_BREDR ?
 			ERR_BREDR_CONN_SDP_SEARCH : ERR_LE_CONN_GATT_BROWSE);
@@ -6834,14 +6831,15 @@ void device_cancel_browse(struct btd_device *device, uint8_t bdaddr_type)
 	browse_request_free(device->browse);
 }
 
-int device_discover_services(struct btd_device *device)
+int device_discover_services(struct btd_device *device,
+				uint8_t bdaddr_type, DBusMessage *msg)
 {
 	int err;
 
-	if (device->bredr)
-		err = device_browse_sdp(device, NULL);
+	if (bdaddr_type == BDADDR_BREDR)
+		err = device_browse_sdp(device, msg);
 	else
-		err = device_browse_gatt(device, NULL);
+		err = device_browse_gatt(device, msg);
 
 	if (err == 0 && device->discov_timer) {
 		timeout_remove(device->discov_timer);
@@ -7354,15 +7352,7 @@ void device_bonding_complete(struct btd_device *device, uint8_t bdaddr_type,
 		DBG("Proceeding with service discovery");
 		/* If we are initiators remove any discovery timer and just
 		 * start discovering services directly */
-		if (device->discov_timer) {
-			timeout_remove(device->discov_timer);
-			device->discov_timer = 0;
-		}
-
-		if (bdaddr_type == BDADDR_BREDR)
-			device_browse_sdp(device, bonding->msg);
-		else
-			device_browse_gatt(device, bonding->msg);
+		device_discover_services(device, bdaddr_type, bonding->msg);
 
 		bonding_request_free(bonding);
 	} else if (!state->svc_resolved) {
diff --git a/src/device.h b/src/device.h
index b36f9af66..b890f23d4 100644
--- a/src/device.h
+++ b/src/device.h
@@ -207,7 +207,8 @@ bool device_remove_svc_complete_callback(struct btd_device *dev,
 struct btd_service *btd_device_get_service(struct btd_device *dev,
 						const char *remote_uuid);
 
-int device_discover_services(struct btd_device *device);
+int device_discover_services(struct btd_device *device,
+			uint8_t bdaddr_type, DBusMessage *msg);
 int btd_device_connect_services(struct btd_device *dev, GSList *services);
 
 bool btd_device_flags_enabled(struct btd_device *dev, uint32_t flags);
-- 
2.43.0


^ permalink raw reply related	[flat|nested] 13+ messages in thread

end of thread, other threads:[~2026-06-08 18:20 UTC | newest]

Thread overview: 13+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-06-08 10:39 [PATCH BlueZ 1/3] device: Refactor device_discover_services function Simon Mikuda
2026-06-08 10:39 ` [PATCH BlueZ 2/3] device: Rename start_discovery function Simon Mikuda
2026-06-08 10:39 ` [PATCH BlueZ 3/3] device: Fix returning discovery error for Device.Pair Simon Mikuda
2026-06-08 10:59 ` [PATCH BlueZ v2 1/3] device: Refactor device_discover_services function Simon Mikuda
2026-06-08 10:59   ` [PATCH BlueZ v2 2/3] device: Rename start_discovery function Simon Mikuda
2026-06-08 10:59   ` [PATCH BlueZ v2 3/3] device: Fix returning discovery error for Device.Pair Simon Mikuda
2026-06-08 11:41   ` [BlueZ,v2,1/3] device: Refactor device_discover_services function bluez.test.bot
2026-06-08 11:07 ` [PATCH BlueZ v3 1/3] " Simon Mikuda
2026-06-08 11:07   ` [PATCH BlueZ v3 2/3] device: Rename start_discovery function Simon Mikuda
2026-06-08 11:07   ` [PATCH BlueZ v3 3/3] device: Fix returning discovery error for Device.Pair Simon Mikuda
2026-06-08 12:25   ` [BlueZ,v3,1/3] device: Refactor device_discover_services function bluez.test.bot
2026-06-08 18:20   ` [PATCH BlueZ v3 1/3] " patchwork-bot+bluetooth
2026-06-08 11:40 ` [BlueZ,1/3] " bluez.test.bot

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox