summaryrefslogtreecommitdiff
path: root/src/plugin.c
diff options
context:
space:
mode:
authorDavid Herrmann <dh.herrmann@gmail.com>2013-10-02 17:57:30 +0200
committerJohan Hedberg <johan.hedberg@intel.com>2013-10-03 09:54:15 +0300
commite7f623e09adc7858dbc1adb72d212a27bc9b2066 (patch)
tree4002d07362a54c8747be429efc4694d586d4e162 /src/plugin.c
parentc287f304df87b814399f9844794422ef72857673 (diff)
downloadbluez-e7f623e09adc7858dbc1adb72d212a27bc9b2066.tar.gz
plugin: handle ENOSYS as not-supported
Allow plugins to return -ENOSYS during registration and handle it as "not-supported" error. It makes the error messages slightly more useful in case kernel-support is missing for a particular subsystem.
Diffstat (limited to 'src/plugin.c')
-rw-r--r--src/plugin.c13
1 files changed, 10 insertions, 3 deletions
diff --git a/src/plugin.c b/src/plugin.c
index 51c98bc90..085e7a526 100644
--- a/src/plugin.c
+++ b/src/plugin.c
@@ -195,9 +195,16 @@ gboolean plugin_init(const char *enable, const char *disable)
start:
for (list = plugins; list; list = list->next) {
struct bluetooth_plugin *plugin = list->data;
-
- if (plugin->desc->init() < 0) {
- error("Failed to init %s plugin", plugin->desc->name);
+ int err;
+
+ err = plugin->desc->init();
+ if (err < 0) {
+ if (err == -ENOSYS)
+ warn("System does not support %s plugin",
+ plugin->desc->name);
+ else
+ error("Failed to init %s plugin",
+ plugin->desc->name);
continue;
}