diff options
| author | Johan Hedberg <johan.hedberg@nokia.com> | 2007-08-21 08:02:07 +0000 | 
|---|---|---|
| committer | Johan Hedberg <johan.hedberg@nokia.com> | 2007-08-21 08:02:07 +0000 | 
| commit | 053db67fe83c502f5e509522497bed6fb721d4c7 (patch) | |
| tree | 5602a8bf921f05f83743f20da220e8c64d424756 | |
| parent | cfa764640b52854ffa77e962996d716876fdd115 (diff) | |
Handle connect attempts during authorization better
| -rw-r--r-- | audio/avdtp.c | 12 | ||||
| -rw-r--r-- | audio/manager.c | 3 | 
2 files changed, 13 insertions, 2 deletions
| diff --git a/audio/avdtp.c b/audio/avdtp.c index 649e69a4..0b56340f 100644 --- a/audio/avdtp.c +++ b/audio/avdtp.c @@ -2088,7 +2088,17 @@ struct avdtp *avdtp_get(bdaddr_t *src, bdaddr_t *dst)  gboolean avdtp_is_connected(bdaddr_t *src, bdaddr_t *dst)  { -	return find_session(src, dst) == NULL ? FALSE : TRUE; +	struct avdtp *session; +	 +	session = find_session(src, dst); + +	if (!session) +		return FALSE; + +	if (session->state != AVDTP_SESSION_STATE_DISCONNECTED) +		return TRUE; + +	return FALSE;  }  gboolean avdtp_stream_get_transport(struct avdtp_stream *stream, int *sock, diff --git a/audio/manager.c b/audio/manager.c index 4d8d424d..c1a72b8f 100644 --- a/audio/manager.c +++ b/audio/manager.c @@ -1681,7 +1681,8 @@ struct device *manager_get_connected_device(void)  	for (l = devices; l != NULL; l = g_slist_next(l)) {  		struct device *device = l->data; -		if (device->sink && sink_is_active(device)) +		if ((device->sink || device->source) && +				avdtp_is_connected(&device->src, &device->dst))  			return device;  		if (device->headset && headset_is_active(device)) | 
