OSDN Git Service

bnep: improve error-msg if bnep.ko is not loaded
authorDavid Herrmann <dh.herrmann@gmail.com>
Wed, 2 Oct 2013 15:57:31 +0000 (17:57 +0200)
committerJohan Hedberg <johan.hedberg@intel.com>
Thu, 3 Oct 2013 06:54:18 +0000 (09:54 +0300)
bnep.ko, besides others, can be disabled in custom kernels if
network-support is not required. To avoid strange error messages, handle
EPROTONOSUPPORT as a special case and emit a warning that kernel support
is missing.

profiles/network/common.c
profiles/network/manager.c

index e069892..0b291bd 100644 (file)
@@ -110,8 +110,13 @@ int bnep_init(void)
 
        if (ctl < 0) {
                int err = -errno;
-               error("Failed to open control socket: %s (%d)",
+
+               if (err == -EPROTONOSUPPORT)
+                       warn("kernel lacks bnep-protocol support");
+               else
+                       error("Failed to open control socket: %s (%d)",
                                                strerror(-err), -err);
+
                return err;
        }
 
index 03b1b3d..ab4224d 100644 (file)
@@ -25,6 +25,7 @@
 #include <config.h>
 #endif
 
+#include <errno.h>
 #include <stdbool.h>
 
 #include <bluetooth/bluetooth.h>
@@ -169,11 +170,15 @@ static struct btd_profile nap_profile = {
 
 static int network_init(void)
 {
+       int err;
+
        read_config(CONFIGDIR "/network.conf");
 
-       if (bnep_init()) {
-               error("Can't init bnep module");
-               return -1;
+       err = bnep_init();
+       if (err) {
+               if (err == -EPROTONOSUPPORT)
+                       err = -ENOSYS;
+               return err;
        }
 
        /*