diff options
author | David Herrmann <dh.herrmann@gmail.com> | 2013-10-02 17:57:30 +0200 |
---|---|---|
committer | Johan Hedberg <johan.hedberg@intel.com> | 2013-10-03 09:54:15 +0300 |
commit | e7f623e09adc7858dbc1adb72d212a27bc9b2066 (patch) | |
tree | 4002d07362a54c8747be429efc4694d586d4e162 /src/plugin.c | |
parent | c287f304df87b814399f9844794422ef72857673 (diff) | |
download | bluez-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.c | 13 |
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; } |