diff options
| author | Claudio Takahasi <claudio.takahasi@openbossa.org> | 2008-03-13 12:34:10 +0000 | 
|---|---|---|
| committer | Claudio Takahasi <claudio.takahasi@openbossa.org> | 2008-03-13 12:34:10 +0000 | 
| commit | 81cfb0fc353b88658aec4c1ee0eb6cc5f851df41 (patch) | |
| tree | 3107427069c2a64b7b2494b8661995ce9bcc362f | |
| parent | 25e819828847f241fe0f77565edf0dffad5700c9 (diff) | |
cleanup: removed device's static D-Bus connection reference
| -rw-r--r-- | hcid/adapter.c | 5 | ||||
| -rw-r--r-- | hcid/dbus-common.c | 3 | ||||
| -rw-r--r-- | hcid/dbus-hci.c | 5 | ||||
| -rw-r--r-- | hcid/device.c | 24 | ||||
| -rw-r--r-- | hcid/device.h | 7 | 
5 files changed, 15 insertions, 29 deletions
| diff --git a/hcid/adapter.c b/hcid/adapter.c index 763118e8..3897bbb1 100644 --- a/hcid/adapter.c +++ b/hcid/adapter.c @@ -3358,7 +3358,8 @@ static void discover_services_cb(gpointer user_data, sdp_list_t *recs, int err)  	sdp_list_free(recs, (sdp_free_func_t) sdp_record_free); -	device = device_create(adapter, adapter->create->address, uuids); +	device = device_create(adapter->create->conn, adapter, +				adapter->create->address, uuids);  	if (!device)  		goto failed; @@ -3490,7 +3491,7 @@ static DBusHandlerResult remove_device(DBusConnection *conn,  			DBUS_TYPE_OBJECT_PATH, &device->path,  			DBUS_TYPE_INVALID); -	device_destroy(device); +	device_destroy(device, conn);  	adapter->devices = g_slist_remove(adapter->devices, device);  	return send_message_and_unref(conn, reply); diff --git a/hcid/dbus-common.c b/hcid/dbus-common.c index 166d7184..d3d3a151 100644 --- a/hcid/dbus-common.c +++ b/hcid/dbus-common.c @@ -349,9 +349,6 @@ int hcid_dbus_init(void)  	if (!security_init(conn, BASE_PATH))  		return -1; -	if (device_init(conn) == FALSE) -		return -1; -  	set_dbus_connection(conn);  	return 0; diff --git a/hcid/dbus-hci.c b/hcid/dbus-hci.c index 837d47af..c1faa4a8 100644 --- a/hcid/dbus-hci.c +++ b/hcid/dbus-hci.c @@ -451,7 +451,8 @@ int unregister_adapter_path(const char *path)  	}  	if (adapter->devices) { -		g_slist_foreach(adapter->devices, (GFunc) device_destroy, NULL); +		g_slist_foreach(adapter->devices, +				(GFunc) device_destroy, connection);  		g_slist_free(adapter->devices);  	} @@ -577,7 +578,7 @@ static void create_stored_device(char *key, char *value, void *user_data)  	GSList *uuids = bt_string2list(value);  	struct device *device; -	device = device_create(adapter, key, uuids); +	device = device_create(connection, adapter, key, uuids);  	if (device)  		adapter->devices = g_slist_append(adapter->devices, device);  } diff --git a/hcid/device.c b/hcid/device.c index 5e129ab5..0f1ab4a4 100644 --- a/hcid/device.c +++ b/hcid/device.c @@ -711,18 +711,6 @@ int get_encryption_key_size(uint16_t dev_id, const bdaddr_t *baddr)  	return size;  } -static DBusConnection *connection = NULL; - -gboolean device_init(DBusConnection *conn) -{ -	/* FIXME: It's not necessary keep a connection reference */ -	connection = dbus_connection_ref(conn); -	if (connection == NULL) -		return FALSE; - -	return TRUE; -} -  static void device_free(struct device *device)  {  	g_slist_foreach(device->uuids, (GFunc) g_free, NULL); @@ -857,8 +845,8 @@ static DBusSignalVTable device_signals[] = {  	{ NULL, NULL }  }; -struct device *device_create(struct adapter *adapter, -		const gchar *address, GSList *uuids) +struct device *device_create(DBusConnection *conn, struct adapter *adapter, +					const gchar *address, GSList *uuids)  {  	struct device *device; @@ -872,13 +860,13 @@ struct device *device_create(struct adapter *adapter,  	debug("Creating device %s", device->path); -	if (dbus_connection_create_object_path(connection, device->path, +	if (dbus_connection_create_object_path(conn, device->path,  					device, device_unregister) == FALSE) {  		device_free(device);  		return NULL;  	} -	dbus_connection_register_interface(connection, device->path, +	dbus_connection_register_interface(conn, device->path,  			DEVICE_INTERFACE, device_methods, device_signals, NULL);  	device->address = g_strdup(address); @@ -888,9 +876,9 @@ struct device *device_create(struct adapter *adapter,  	return device;  } -void device_destroy(struct device *device) +void device_destroy(struct device *device, DBusConnection *conn)  {   	debug("Removing device %s", device->path); -	dbus_connection_destroy_object_path(connection, device->path); +	dbus_connection_destroy_object_path(conn, device->path);  } diff --git a/hcid/device.h b/hcid/device.h index dc55f0a8..524e0441 100644 --- a/hcid/device.h +++ b/hcid/device.h @@ -29,7 +29,6 @@ struct device {  	GSList		*uuids;  }; -gboolean device_init(DBusConnection *conn); -struct device *device_create(struct adapter *adapter, -		const gchar *address, GSList *uuids); -void device_destroy(struct device *device); +struct device *device_create(DBusConnection *conn, struct adapter *adapter, +					const gchar *address, GSList *uuids); +void device_destroy(struct device *device, DBusConnection *conn); | 
