public inbox for linux-bluetooth@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH] Removing the service_classes_callback mechanism.
@ 2009-07-22 12:06 alokbarsode
  2009-07-22 12:26 ` Johan Hedberg
  0 siblings, 1 reply; 2+ messages in thread
From: alokbarsode @ 2009-07-22 12:06 UTC (permalink / raw)
  To: linux-bluetooth; +Cc: Alok Barsode

From: Alok Barsode <alok.barsode@azingo.com>

---
 src/main.c         |   46 +---------------------------------------------
 src/manager.c      |   25 ++++++++++---------------
 src/manager.h      |    3 +--
 src/sdpd-service.c |   13 +++++--------
 src/sdpd.h         |    3 ---
 5 files changed, 17 insertions(+), 73 deletions(-)

diff --git a/src/main.c b/src/main.c
index 8c2b475..e8b39a7 100644
--- a/src/main.c
+++ b/src/main.c
@@ -203,49 +203,6 @@ static void parse_config(GKeyFile *config)
 						HCI_LP_HOLD | HCI_LP_PARK;
 }
 
-static void update_service_classes(const bdaddr_t *bdaddr, uint8_t value)
-{
-	struct hci_dev_list_req *dl;
-	struct hci_dev_req *dr;
-	int i, sk;
-
-	sk = socket(AF_BLUETOOTH, SOCK_RAW, BTPROTO_HCI);
-	if (sk < 0)
-		return;
-
-	dl = g_malloc0(HCI_MAX_DEV * sizeof(*dr) + sizeof(*dl));
-
-	dl->dev_num = HCI_MAX_DEV;
-
-	if (ioctl(sk, HCIGETDEVLIST, dl) < 0) {
-		close(sk);
-		g_free(dl);
-		return;
-	}
-
-	dr = dl->dev_req;
-
-	for (i = 0; i < dl->dev_num; i++, dr++) {
-		struct hci_dev_info di;
-
-		if (hci_devinfo(dr->dev_id, &di) < 0)
-			continue;
-
-		if (hci_test_bit(HCI_RAW, &di.flags))
-			continue;
-
-		if (bacmp(bdaddr, BDADDR_ANY) != 0 &&
-				bacmp(bdaddr, &di.bdaddr) != 0)
-			continue;
-
-		manager_update_adapter(di.dev_id, value);
-	}
-
-	g_free(dl);
-
-	close(sk);
-}
-
 /*
  * Device name expansion
  *   %d - device id
@@ -460,7 +417,6 @@ int main(int argc, char *argv[])
 	}
 
 	start_sdp_server(mtu, main_opts.deviceid, SDP_SERVER_COMPAT);
-	set_service_classes_callback(update_service_classes);
 
 	/* Loading plugins has to be done after D-Bus has been setup since
 	 * the plugins might wanna expose some paths on the bus. However the
@@ -475,7 +431,7 @@ int main(int argc, char *argv[])
 		exit(1);
 	}
 
-	manager_startup_complete();
+	manager_update_svc(BDADDR_ANY, 0);
 
 	debug("Entering main loop");
 
diff --git a/src/manager.c b/src/manager.c
index ab69e4e..99d16ba 100644
--- a/src/manager.c
+++ b/src/manager.c
@@ -61,27 +61,22 @@ const char *manager_get_base_path(void)
 	return base_path;
 }
 
-int manager_update_adapter(uint16_t dev_id, uint8_t svc)
-{
-	struct btd_adapter *adapter;
-
-	adapter = manager_find_adapter_by_id(dev_id);
-	if (!adapter)
-		return -EINVAL;
-
-	return adapter_update(adapter, svc);
-}
-
-int manager_startup_complete(void)
+void manager_update_svc(const bdaddr_t *bdaddr, uint8_t svc)
 {
 	GSList *l;
+	bdaddr_t src;
 
 	for (l = adapters; l != NULL; l = l->next) {
 		struct btd_adapter *adapter = l->data;
-		adapter_update(adapter, 0);
-	}
 
-	return 0;
+		adapter_get_address(adapter, &src);
+
+		if (bacmp(bdaddr, BDADDR_ANY) != 0 &&
+				bacmp(bdaddr, &src) != 0)
+			continue;
+
+		adapter_update(adapter, svc);
+	}
 }
 
 int manager_get_adapter_class(uint16_t dev_id, uint8_t *cls)
diff --git a/src/manager.h b/src/manager.h
index caf0b61..056d257 100644
--- a/src/manager.h
+++ b/src/manager.h
@@ -40,7 +40,6 @@ int manager_stop_adapter(int id);
 void manager_add_adapter(const char *path);
 int manager_get_default_adapter();
 void manager_set_default_adapter(int id);
-int manager_update_adapter(uint16_t id, uint8_t svc);
-int manager_startup_complete(void);
+void manager_update_svc(const bdaddr_t *bdaddr, uint8_t svc);
 int manager_get_adapter_class(uint16_t dev_id, uint8_t *cls);
 
diff --git a/src/sdpd-service.c b/src/sdpd-service.c
index f19e1d4..66f144f 100644
--- a/src/sdpd-service.c
+++ b/src/sdpd-service.c
@@ -40,13 +40,16 @@
 
 #include <netinet/in.h>
 
+#include <glib.h>
+#include <dbus/dbus.h>
+
 #include "sdpd.h"
 #include "logging.h"
+#include "manager.h"
 
 static sdp_record_t *server = NULL;
 
 static uint8_t service_classes = 0x00;
-static service_classes_callback_t service_classes_callback = NULL;
 
 static uint16_t did_vendor = 0x0000;
 static uint16_t did_product = 0x0000;
@@ -154,8 +157,7 @@ static void update_svclass_list(const bdaddr_t *src)
 
 	service_classes = val;
 
-	if (service_classes_callback)
-		service_classes_callback(src, val);
+	manager_update_svc(src, val);
 }
 
 uint8_t get_service_classes(const bdaddr_t *bdaddr)
@@ -163,11 +165,6 @@ uint8_t get_service_classes(const bdaddr_t *bdaddr)
 	return service_classes;
 }
 
-void set_service_classes_callback(service_classes_callback_t callback)
-{
-	service_classes_callback = callback;
-}
-
 void create_ext_inquiry_response(const char *name, uint8_t *data)
 {
 	sdp_list_t *list = sdp_get_record_list();
diff --git a/src/sdpd.h b/src/sdpd.h
index ac8155e..414bcd4 100644
--- a/src/sdpd.h
+++ b/src/sdpd.h
@@ -93,8 +93,5 @@ void stop_sdp_server(void);
 int add_record_to_server(const bdaddr_t *src, sdp_record_t *rec);
 int remove_record_from_server(uint32_t handle);
 
-typedef void (*service_classes_callback_t) (const bdaddr_t *bdaddr, uint8_t value);
-
 uint8_t get_service_classes(const bdaddr_t *bdaddr);
-void set_service_classes_callback(service_classes_callback_t callback);
 void create_ext_inquiry_response(const char *name, uint8_t *data);
-- 
1.5.6.3


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

* Re: [PATCH] Removing the service_classes_callback mechanism.
  2009-07-22 12:06 [PATCH] Removing the service_classes_callback mechanism alokbarsode
@ 2009-07-22 12:26 ` Johan Hedberg
  0 siblings, 0 replies; 2+ messages in thread
From: Johan Hedberg @ 2009-07-22 12:26 UTC (permalink / raw)
  To: alokbarsode; +Cc: linux-bluetooth, Alok Barsode

Hi Alok,

On Wed, Jul 22, 2009, alokbarsode@gmail.com wrote:
> From: Alok Barsode <alok.barsode@azingo.com>
> 
> ---
>  src/main.c         |   46 +---------------------------------------------
>  src/manager.c      |   25 ++++++++++---------------
>  src/manager.h      |    3 +--
>  src/sdpd-service.c |   13 +++++--------
>  src/sdpd.h         |    3 ---
>  5 files changed, 17 insertions(+), 73 deletions(-)

Pushed upstream with some minor cosmetic changes. Thanks.

Johan

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

end of thread, other threads:[~2009-07-22 12:26 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-07-22 12:06 [PATCH] Removing the service_classes_callback mechanism alokbarsode
2009-07-22 12:26 ` Johan Hedberg

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