diff options
author | Claudio Takahasi <claudio.takahasi@openbossa.org> | 2008-05-01 01:05:46 +0000 |
---|---|---|
committer | Claudio Takahasi <claudio.takahasi@openbossa.org> | 2008-05-01 01:05:46 +0000 |
commit | 098cd10838193272c669348c5ffd0410218e1bcc (patch) | |
tree | eb7fffb0e440dbb33391029c607de2b678bb3c2e /hcid/dbus-database.c | |
parent | 2d5441331d402a0d78c4b84a028df076f6aab8cf (diff) |
fixed service authorization
Diffstat (limited to 'hcid/dbus-database.c')
-rw-r--r-- | hcid/dbus-database.c | 16 |
1 files changed, 11 insertions, 5 deletions
diff --git a/hcid/dbus-database.c b/hcid/dbus-database.c index a32bc810..d37b4d97 100644 --- a/hcid/dbus-database.c +++ b/hcid/dbus-database.c @@ -422,7 +422,10 @@ static DBusHandlerResult request_authorization_old(DBusConnection *conn, sender = dbus_message_get_sender(msg); - service = search_service(sender); + service = search_service_by_uuid(uuid); + if (!service) + service = search_service(sender); + if (!service) { debug("Got RequestAuthorization from non-service owner %s", sender); @@ -458,20 +461,23 @@ static DBusHandlerResult request_authorization_old(DBusConnection *conn, static DBusHandlerResult cancel_authorization_request(DBusConnection *conn, DBusMessage *msg, void *data) { - const char *sender, *address, *path; + const char *sender, *address, *uuid; struct service *service; if (dbus_message_get_args(msg, NULL, DBUS_TYPE_STRING, &address, - DBUS_TYPE_STRING, &path, DBUS_TYPE_INVALID) == FALSE) + DBUS_TYPE_STRING, &uuid, DBUS_TYPE_INVALID) == FALSE) return error_invalid_arguments(conn, msg, NULL); sender = dbus_message_get_sender(msg); - service = search_service(sender); + service = search_service_by_uuid(uuid); + if (!service) + service = search_service(sender); + if (!service) return error_not_authorized(conn, msg); - return cancel_authorize_request_old(conn, msg, service, address, path); + return cancel_authorize_request_old(conn, msg, service, address, uuid); } static DBusMethodVTable database_methods[] = { |