handsfree-audio: Don't listen() if no defer_setup
authorVinicius Costa Gomes <vcgomes@gmail.com>
Wed, 11 Sep 2013 00:09:44 +0000 (21:09 -0300)
committerDenis Kenzior <denkenz@gmail.com>
Thu, 12 Sep 2013 18:17:40 +0000 (13:17 -0500)
As we won't allow any card to be registered when the kernel doesn't
support defer_setup, we don't need to have the listening SCO socket
open in this case.

src/handsfree-audio.c

index f39c49b..ba0b435 100644 (file)
@@ -214,9 +214,12 @@ static int sco_init(void)
 
        if (setsockopt(sk, SOL_BLUETOOTH, BT_DEFER_SETUP,
                                &defer_setup, sizeof(defer_setup)) < 0) {
+               int err = -errno;
                defer_setup = 0;
                ofono_warn("Can't enable deferred setup: %s (%d)",
                                                strerror(errno), errno);
+               close(sk);
+               return err;
        }
 
        memset(&voice, 0, sizeof(voice));