summaryrefslogtreecommitdiffstats
path: root/audio/avdtp.c
diff options
context:
space:
mode:
Diffstat (limited to 'audio/avdtp.c')
-rw-r--r--audio/avdtp.c15
1 files changed, 11 insertions, 4 deletions
diff --git a/audio/avdtp.c b/audio/avdtp.c
index 8615a18a..cf6060e4 100644
--- a/audio/avdtp.c
+++ b/audio/avdtp.c
@@ -349,8 +349,6 @@ static gboolean disconnect_timeout(gpointer user_data)
assert(session->ref == 1);
- sessions = g_slist_remove(sessions, session);
-
session->dc_timer = 0;
avdtp_unref(session);
@@ -1612,7 +1610,7 @@ static struct avdtp *find_session(bdaddr_t *src, bdaddr_t *dst)
return NULL;
}
-struct avdtp *avdtp_get(bdaddr_t *src, bdaddr_t *dst)
+static struct avdtp *avdtp_get_internal(bdaddr_t *src, bdaddr_t *dst)
{
struct avdtp *session;
@@ -1633,6 +1631,15 @@ struct avdtp *avdtp_get(bdaddr_t *src, bdaddr_t *dst)
sessions = g_slist_append(sessions, session);
+ return session;
+}
+
+struct avdtp *avdtp_get(bdaddr_t *src, bdaddr_t *dst)
+{
+ struct avdtp *session;
+
+ session = avdtp_get_internal(src, dst);
+
return avdtp_ref(session);
}
@@ -2053,7 +2060,7 @@ static gboolean avdtp_server_cb(GIOChannel *chan, GIOCondition cond, void *data)
return TRUE;
}
- session = avdtp_get(&src, &dst);
+ session = avdtp_get_internal(&src, &dst);
if (session->pending_open && session->pending_open->open_acp) {
handle_transport_connect(session, cli_sk, l2o.imtu);