From d9ff801460ee610f98b97571311e4af13bb8e1a1 Mon Sep 17 00:00:00 2001 From: Alok Barsode Date: Tue, 22 Jul 2008 19:08:03 +0530 Subject: Adding adapter_create. Signed-off-by: Alok Barsode --- hcid/adapter.c | 21 +++++++++++++++++++++ hcid/adapter.h | 1 + hcid/manager.c | 22 +++++----------------- 3 files changed, 27 insertions(+), 17 deletions(-) diff --git a/hcid/adapter.c b/hcid/adapter.c index 2d0d6e21..f760ebd0 100644 --- a/hcid/adapter.c +++ b/hcid/adapter.c @@ -2539,3 +2539,24 @@ int adapter_update_ssp_mode(struct adapter *adapter, int dd, uint8_t mode) return 0; } + +struct adapter *adapter_create(int id) +{ + char path[MAX_PATH_LENGTH]; + struct adapter *adapter; + + snprintf(path, sizeof(path), "/hci%d", id); + + adapter = g_try_new0(struct adapter, 1); + if (!adapter) { + error("Failed to alloc memory to D-Bus path register data (%s)", + path); + return NULL; + } + + adapter->dev_id = id; + adapter->pdiscov_resolve_names = 1; + adapter->path = g_strdup(path); + + return adapter; +} diff --git a/hcid/adapter.h b/hcid/adapter.h index 4afe04af..d4d962f5 100644 --- a/hcid/adapter.h +++ b/hcid/adapter.h @@ -174,3 +174,4 @@ void adapter_remove_auth_request(struct adapter *adapter, bdaddr_t *dba); struct pending_auth_info *adapter_new_auth_request(struct adapter *adapter, bdaddr_t *dba, auth_type_t type); +struct adapter *adapter_create(int id); diff --git a/hcid/manager.c b/hcid/manager.c index f7760dc9..91cb93bc 100644 --- a/hcid/manager.c +++ b/hcid/manager.c @@ -423,30 +423,18 @@ static void manager_remove_adapter(struct adapter *adapter) int manager_register_adapter(int id) { - char path[MAX_PATH_LENGTH]; - struct adapter *adapter; - - snprintf(path, sizeof(path), "/hci%d", id); + struct adapter *adapter = adapter_create(id); - adapter = g_try_new0(struct adapter, 1); - if (!adapter) { - error("Failed to alloc memory to D-Bus path register data (%s)", - path); + if(!adapter) return -1; - } - - adapter->dev_id = id; - adapter->pdiscov_resolve_names = 1; - if (!adapter_init(connection, path, adapter)) { - error("Adapter interface init failed on path %s", path); + if (!adapter_init(connection, adapter->path, adapter)) { + error("Adapter interface init failed on path %s", adapter->path); g_free(adapter); return -1; } - adapter->path = g_strdup(path); - - __probe_servers(path); + __probe_servers(adapter->path); manager_add_adapter(adapter); -- cgit