aboutsummaryrefslogtreecommitdiff
path: root/audio
diff options
context:
space:
mode:
authorLuiz Augusto von Dentz <luiz.dentz-von@nokia.com>2011-03-28 18:27:21 +0300
committerJohan Hedberg <johan.hedberg@nokia.com>2011-03-28 17:29:21 +0300
commit00d0e76c151cd4ae5348f69767205b703905e068 (patch)
tree7d68e46edace054ac3d50a8fb27b3e65da6ee532 /audio
parent0bf67b1fd28a4f928af14a2491f5126d724ef1b6 (diff)
downloadbluez-00d0e76c151cd4ae5348f69767205b703905e068.tar.gz
Fix not replying Acquire request when resume fails
Request must be replied before removed.
Diffstat (limited to 'audio')
-rw-r--r--audio/transport.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/audio/transport.c b/audio/transport.c
index 3442e5f5..795b7948 100644
--- a/audio/transport.c
+++ b/audio/transport.c
@@ -191,6 +191,10 @@ static void media_transport_remove(struct media_transport *transport,
media_transport_release(transport, owner->accesstype);
+ /* Reply if owner has a pending request */
+ if (owner->pending)
+ media_request_reply(owner->pending, transport->conn, EIO);
+
transport->owners = g_slist_remove(transport->owners, owner);
if (owner->watch)
@@ -313,6 +317,7 @@ static void a2dp_suspend_complete(struct avdtp *session,
if (owner->pending) {
owner->pending->id = 0;
media_request_reply(owner->pending, transport->conn, 0);
+ media_owner_remove(owner, owner->pending);
}
a2dp_sep_unlock(sep, transport->session);
@@ -413,6 +418,7 @@ static void headset_suspend_complete(struct audio_device *dev, void *user_data)
if (owner->pending) {
owner->pending->id = 0;
media_request_reply(owner->pending, transport->conn, 0);
+ media_owner_remove(owner, owner->pending);
}
headset_unlock(dev, HEADSET_LOCK_READ | HEADSET_LOCK_WRITE);