diff options
-rw-r--r-- | audio/headset.c | 16 |
1 files changed, 9 insertions, 7 deletions
diff --git a/audio/headset.c b/audio/headset.c index f7cc9ecf..7d227a7b 100644 --- a/audio/headset.c +++ b/audio/headset.c @@ -538,20 +538,22 @@ static void hfp_slc_complete(struct audio_device *dev) if (p == NULL) return; - if (p->msg) { - DBusMessage *reply = dbus_message_new_method_return(p->msg); - dbus_connection_send(dev->conn, reply, NULL); - dbus_message_unref(reply); - } - if (p->target_state == HEADSET_STATE_CONNECTED) { + if (p->msg) { + DBusMessage *reply = dbus_message_new_method_return(p->msg); + dbus_connection_send(dev->conn, reply, NULL); + dbus_message_unref(reply); + } pending_connect_finalize(dev); return; } p->err = sco_connect(dev, NULL, NULL, NULL); - if (p->err < 0) + if (p->err < 0) { + if (p->msg) + error_connection_attempt_failed(dev->conn, p->msg, p->err); pending_connect_finalize(dev); + } } static int telephony_generic_rsp(struct audio_device *device, cme_error_t err) |