diff options
Diffstat (limited to 'serial/manager.c')
| -rw-r--r-- | serial/manager.c | 31 | 
1 files changed, 13 insertions, 18 deletions
| diff --git a/serial/manager.c b/serial/manager.c index e9166504..064629f2 100644 --- a/serial/manager.c +++ b/serial/manager.c @@ -74,17 +74,21 @@  static DBusConnection *connection = NULL; -static int serial_probe(struct btd_device *device, const sdp_record_t *rec, -			const char *name, const char *uuid) +static int serial_probe(struct btd_device *device, const char *uuid)  {  	struct btd_adapter *adapter = device_get_adapter(device);  	const gchar *path = device_get_path(device);  	sdp_list_t *protos;  	int ch;  	bdaddr_t src, dst; +	const sdp_record_t *rec;  	DBG("path %s", path); +	rec = btd_device_get_record(device, uuid); +	if (!rec) +		return -EINVAL; +  	if (sdp_get_access_protos(rec, &protos) < 0)  		return -EINVAL; @@ -100,8 +104,7 @@ static int serial_probe(struct btd_device *device, const sdp_record_t *rec,  	adapter_get_address(adapter, &src);  	device_get_address(device, &dst); -	return port_register(connection, path, &src, &dst, name, -			uuid, ch); +	return port_register(connection, path, &src, &dst, uuid, ch);  }  static void serial_remove(struct btd_device *device, const char *uuid) @@ -116,14 +119,12 @@ static void serial_remove(struct btd_device *device, const char *uuid)  static int port_probe(struct btd_device *device, GSList *uuids)  { -	const sdp_record_t *record; - -	record = btd_device_get_record(device, uuids->data); -	if (!record) -		return -1; +	while (uuids) { +		serial_probe(device, uuids->data); +		uuids = uuids->next; +	} -	return serial_probe(device, record, SERIAL_PORT_NAME, -				SERIAL_PORT_UUID); +	return 0;  }  static void port_remove(struct btd_device *device) @@ -133,13 +134,7 @@ static void port_remove(struct btd_device *device)  static int dialup_probe(struct btd_device *device, GSList *uuids)  { -	const sdp_record_t *record; - -	record = btd_device_get_record(device, uuids->data); -	if (!record) -		return -1; - -	return serial_probe(device, record, DIALUP_NET_NAME, DIALUP_NET_UUID); +	return serial_probe(device, DIALUP_NET_UUID);  }  static void dialup_remove(struct btd_device *device) | 
