diff options
author | Claudio Takahasi <claudio.takahasi@openbossa.org> | 2007-08-01 14:23:13 +0000 |
---|---|---|
committer | Claudio Takahasi <claudio.takahasi@openbossa.org> | 2007-08-01 14:23:13 +0000 |
commit | 45b9e246914b37b72966734f788dc3d9de190204 (patch) | |
tree | 7d42afb392fe99dcf8d9f0640a30e78ecb04249d /hcid/dbus-manager.c | |
parent | b42e7c67689f7c93e2eb7a54dd677a5c5e23df59 (diff) |
hcid: don't register the adapter D-Bus path when it is on raw mode
Diffstat (limited to 'hcid/dbus-manager.c')
-rw-r--r-- | hcid/dbus-manager.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/hcid/dbus-manager.c b/hcid/dbus-manager.c index 68c732f5..695b3112 100644 --- a/hcid/dbus-manager.c +++ b/hcid/dbus-manager.c @@ -103,6 +103,7 @@ static DBusHandlerResult find_adapter(DBusConnection *conn, { DBusMessage *reply; char path[MAX_PATH_LENGTH], *path_ptr = path; + struct hci_dev_info di; const char *pattern; int dev_id; @@ -115,6 +116,12 @@ static DBusHandlerResult find_adapter(DBusConnection *conn, if (dev_id < 0) return error_no_such_adapter(conn, msg); + if (hci_devinfo(dev_id, &di) < 0) + return error_no_such_adapter(conn, msg); + + if (hci_test_bit(HCI_RAW, &di.flags)) + return error_no_such_adapter(conn, msg); + reply = dbus_message_new_method_return(msg); if (!reply) return DBUS_HANDLER_RESULT_NEED_MEMORY; @@ -177,6 +184,9 @@ static DBusHandlerResult list_adapters(DBusConnection *conn, if (hci_devinfo(dr->dev_id, &di) < 0) continue; + if (hci_test_bit(HCI_RAW, &di.flags)) + continue; + snprintf(path, sizeof(path), "%s/%s", BASE_PATH, di.name); dbus_message_iter_append_basic(&array_iter, |