summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorLuiz Augusto von Dentz <luiz.dentz@openbossa.org>2009-02-17 18:25:00 -0300
committerJohan Hedberg <johan.hedberg@nokia.com>2009-02-19 09:19:38 +0200
commitb075dea3ec7acbd0aae170c21e1c6a857d8250e8 (patch)
tree702343f3736ae21a426c8d1fa538883dcf778640 /src
parent501b5d1a8afbaa56761dd5473e8d5169997b71dd (diff)
Log probe failures.
Diffstat (limited to 'src')
-rw-r--r--src/adapter.c31
1 files changed, 18 insertions, 13 deletions
diff --git a/src/adapter.c b/src/adapter.c
index 93db68bd..e106ae11 100644
--- a/src/adapter.c
+++ b/src/adapter.c
@@ -1904,6 +1904,20 @@ static void load_devices(struct btd_adapter *adapter)
adapter);
}
+static void probe_driver(gpointer data, gpointer user_data)
+{
+ struct btd_adapter *adapter = data;
+ struct btd_adapter_driver *driver = user_data;
+ int err;
+
+ if (!adapter->up)
+ return;
+
+ err = driver->probe(adapter);
+ if (err < 0)
+ error("%s: %s (%d)", driver->name, strerror(-err), -err);
+}
+
static void load_drivers(struct btd_adapter *adapter)
{
GSList *l;
@@ -1911,8 +1925,10 @@ static void load_drivers(struct btd_adapter *adapter)
for (l = adapter_drivers; l; l = l->next) {
struct btd_adapter_driver *driver = l->data;
- if (driver->probe)
- driver->probe(adapter);
+ if (driver->probe == NULL)
+ continue;
+
+ probe_driver(adapter, driver);
}
}
@@ -2731,17 +2747,6 @@ gboolean adapter_has_discov_sessions(struct btd_adapter *adapter)
return TRUE;
}
-static void probe_driver(gpointer data, gpointer user_data)
-{
- struct btd_adapter *adapter = data;
- struct btd_adapter_driver *driver = user_data;
-
- if (!adapter->up)
- return;
-
- driver->probe(adapter);
-}
-
int btd_register_adapter_driver(struct btd_adapter_driver *driver)
{
GSList *adapters;