From c853057d20c7539d5214d0a126055baacb60887f Mon Sep 17 00:00:00 2001 From: Johan Hedberg Date: Tue, 10 Apr 2007 14:06:44 +0000 Subject: Implement global trust setting --- hcid/dbus-database.c | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) (limited to 'hcid/dbus-database.c') diff --git a/hcid/dbus-database.c b/hcid/dbus-database.c index 755de673..413fcffa 100644 --- a/hcid/dbus-database.c +++ b/hcid/dbus-database.c @@ -30,6 +30,8 @@ #include #include +#include +#include #include #include @@ -323,6 +325,9 @@ static DBusHandlerResult request_authorization(DBusConnection *conn, { const char *sender, *address, *path; struct service *service; + bdaddr_t bdaddr; + gboolean trusted; + int adapter_id; debug("RequestAuthorization"); @@ -339,7 +344,18 @@ static DBusHandlerResult request_authorization(DBusConnection *conn, if (!service) return error_not_authorized(conn, msg); - if (read_trust(address, service->ident)) { + str2ba(address, &bdaddr); + adapter_id = hci_for_each_dev(HCI_UP, find_conn, (long) &bdaddr); + if (adapter_id < 0) + return error_not_connected(conn, msg); + + hci_devba(adapter_id, &bdaddr); + + trusted = read_trust(&bdaddr, address, GLOBAL_TRUST); + if (!trusted) + trusted = read_trust(BDADDR_ANY, address, service->ident); + + if (trusted) { DBusMessage *reply; reply = dbus_message_new_method_return(msg); -- cgit