From 0c1d6232e7b4c39d33dfcc759bd19f050d7953e7 Mon Sep 17 00:00:00 2001 From: Johan Hedberg Date: Mon, 20 Oct 2008 00:06:04 +0300 Subject: Perform a proper abort upon stream connect failure --- audio/avdtp.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/audio/avdtp.c b/audio/avdtp.c index 87e19cca..93b40d9b 100644 --- a/audio/avdtp.c +++ b/audio/avdtp.c @@ -1618,9 +1618,13 @@ static void l2cap_connect_cb(GIOChannel *chan, int err, const bdaddr_t *src, failed: if (session->pending_open) { - avdtp_sep_set_state(session, session->pending_open->lsep, - AVDTP_STATE_IDLE); - session->pending_open = NULL; + struct avdtp_stream *stream = session->pending_open; + + handle_transport_connect(session, -1, 0, 0); + + if (avdtp_abort(session, stream) < 0) + avdtp_sep_set_state(session, stream->lsep, + AVDTP_STATE_IDLE); } else connection_lost(session, -err); @@ -2678,7 +2682,7 @@ int avdtp_abort(struct avdtp *session, struct avdtp_stream *stream) avdtp_sep_set_state(session, stream->lsep, AVDTP_STATE_ABORTING); - return 0; + return ret; } struct avdtp_local_sep *avdtp_register_sep(const bdaddr_t *src, uint8_t type, -- cgit