bluetooth: Fail to load driver if discovery module is not loaded

For quite some time now the device driver module doesn't work well
without the discovery module, so for the BlueZ 5 support we'll prevent
the device driver module to be loaded if the discovery module is not
loaded.
This commit is contained in:
João Paulo Rechi Vita 2013-09-24 19:45:56 -03:00 committed by Tanu Kaskinen
parent 774c73309d
commit dc4be17e07
3 changed files with 7 additions and 4 deletions

View file

@ -1514,9 +1514,6 @@ pa_bluetooth_discovery* pa_bluetooth_discovery_get(pa_core *c) {
DBusConnection *conn;
unsigned i;
if ((y = pa_shared_get(c, "bluetooth-discovery")))
return pa_bluetooth_discovery_ref(y);
y = pa_xnew0(pa_bluetooth_discovery, 1);
PA_REFCNT_INIT(y);
y->core = c;

View file

@ -39,6 +39,7 @@
#include <pulsecore/modargs.h>
#include <pulsecore/poll.h>
#include <pulsecore/rtpoll.h>
#include <pulsecore/shared.h>
#include <pulsecore/socket-util.h>
#include <pulsecore/thread.h>
#include <pulsecore/thread-mq.h>
@ -1792,8 +1793,12 @@ int pa__init(pa_module* m) {
goto fail;
}
if (!(u->discovery = pa_bluetooth_discovery_get(m->core)))
if ((u->discovery = pa_shared_get(u->core, "bluetooth-discovery")))
pa_bluetooth_discovery_ref(u->discovery);
else {
pa_log_error("module-bluez5-discover doesn't seem to be loaded, refusing to load module-bluez5-device");
goto fail;
}
if (!(u->device = pa_bluetooth_discovery_get_device_by_path(u->discovery, path))) {
pa_log_error("%s is unknown", path);

View file

@ -27,6 +27,7 @@
#include <pulsecore/core-util.h>
#include <pulsecore/macro.h>
#include <pulsecore/module.h>
#include <pulsecore/shared.h>
#include "bluez5-util.h"