diff options
author | Luiz Augusto von Dentz <luiz.dentz-von@nokia.com> | 2011-03-28 18:27:21 +0300 |
---|---|---|
committer | Johan Hedberg <johan.hedberg@nokia.com> | 2011-03-28 17:29:21 +0300 |
commit | 00d0e76c151cd4ae5348f69767205b703905e068 (patch) | |
tree | 7d68e46edace054ac3d50a8fb27b3e65da6ee532 /audio | |
parent | 0bf67b1fd28a4f928af14a2491f5126d724ef1b6 (diff) | |
download | bluez-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.c | 6 |
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); |