mirror of
https://git.kernel.org/pub/scm/bluetooth/bluez.git
synced 2024-11-16 08:44:38 +08:00
Hook up server probe/remove callbacks
This commit is contained in:
parent
cf551c7e70
commit
9a3a941ae4
@ -378,6 +378,8 @@ int unregister_adapter_path(const char *path)
|
||||
|
||||
info("Unregister path: %s", path);
|
||||
|
||||
__remove_servers(path);
|
||||
|
||||
dbus_connection_get_object_user_data(connection, path,
|
||||
(void *) &adapter);
|
||||
|
||||
@ -515,6 +517,8 @@ int hcid_dbus_register_device(uint16_t id)
|
||||
DBUS_TYPE_STRING, &pptr,
|
||||
DBUS_TYPE_INVALID);
|
||||
|
||||
__probe_servers(path);
|
||||
|
||||
return 0;
|
||||
|
||||
failed:
|
||||
|
@ -213,3 +213,5 @@ int write_device_profiles(bdaddr_t *src, bdaddr_t *dst, const char *profiles);
|
||||
|
||||
gboolean plugin_init(void);
|
||||
void plugin_cleanup(void);
|
||||
void __probe_servers(const char *adapter);
|
||||
void __remove_servers(const char *adapter);
|
||||
|
@ -42,3 +42,27 @@ void bt_unregister_server(struct bt_server *server)
|
||||
{
|
||||
servers = g_slist_remove(servers, server);
|
||||
}
|
||||
|
||||
void __probe_servers(const char *adapter)
|
||||
{
|
||||
GSList *list;
|
||||
|
||||
for (list = servers; list; list = list->next) {
|
||||
struct bt_server *server = list->data;
|
||||
|
||||
if (server->probe)
|
||||
server->probe(adapter);
|
||||
}
|
||||
}
|
||||
|
||||
void __remove_servers(const char *adapter)
|
||||
{
|
||||
GSList *list;
|
||||
|
||||
for (list = servers; list; list = list->next) {
|
||||
struct bt_server *server = list->data;
|
||||
|
||||
if (server->remove)
|
||||
server->remove(adapter);
|
||||
}
|
||||
}
|
||||
|
@ -23,6 +23,8 @@
|
||||
|
||||
struct bt_server {
|
||||
const char *uuid;
|
||||
int (*probe) (const char *adapter);
|
||||
void (*remove) (const char *adapter);
|
||||
};
|
||||
|
||||
int bt_register_server(struct bt_server *server);
|
||||
|
Loading…
Reference in New Issue
Block a user