diff options
-rw-r--r-- | serial/manager.c | 6 | ||||
-rw-r--r-- | serial/port.c | 13 | ||||
-rw-r--r-- | serial/port.h | 2 |
3 files changed, 7 insertions, 14 deletions
diff --git a/serial/manager.c b/serial/manager.c index 60aa78e5..13968c09 100644 --- a/serial/manager.c +++ b/serial/manager.c @@ -107,13 +107,13 @@ static int serial_probe(struct btd_device *device, const char *uuid) return port_register(connection, path, &src, &dst, uuid, ch); } -static void serial_remove(struct btd_device *device, const char *uuid) +static void serial_remove(struct btd_device *device) { const gchar *path = device_get_path(device); DBG("path %s", path); - port_unregister(path, uuid); + port_unregister(path); } @@ -129,7 +129,7 @@ static int port_probe(struct btd_device *device, GSList *uuids) static void port_remove(struct btd_device *device) { - return serial_remove(device, SERIAL_PORT_UUID); + return serial_remove(device); } static struct btd_device_driver serial_port_driver = { diff --git a/serial/port.c b/serial/port.c index 1f62b5e4..911c777e 100644 --- a/serial/port.c +++ b/serial/port.c @@ -463,23 +463,16 @@ int port_register(DBusConnection *conn, const char *path, bdaddr_t *src, return 0; } -int port_unregister(const char *path, const char *uuid) +int port_unregister(const char *path) { struct serial_device *device; - struct serial_port *port; device = find_device(devices, path); if (!device) return -ENOENT; - port = find_port(device->ports, uuid); - if (!port) - return -ENOENT; - - device->ports = g_slist_remove(device->ports, port); - serial_port_free(port); - if (device->ports) - return 0; + g_slist_foreach(device->ports, (GFunc) serial_port_free, NULL); + g_slist_free(device->ports); g_dbus_unregister_interface(device->conn, path, SERIAL_PORT_INTERFACE); diff --git a/serial/port.h b/serial/port.h index 6002ae02..9665dc9d 100644 --- a/serial/port.h +++ b/serial/port.h @@ -26,4 +26,4 @@ void port_release_all(void); int port_register(DBusConnection *conn, const char *path, bdaddr_t *src, bdaddr_t *dst, const char *name, uint8_t channel); -int port_unregister(const char *path, const char *uuid); +int port_unregister(const char *path); |