diff options
author | Luiz Augusto von Dentz <luiz.dentz@openbossa.org> | 2008-11-04 19:06:56 -0300 |
---|---|---|
committer | Luiz Augusto von Dentz <luiz.dentz@openbossa.org> | 2008-11-04 19:06:56 -0300 |
commit | a6e82811026f8b2ce6266b4a2ebd95dad118c09f (patch) | |
tree | f373816978e99336dc1db2136be6a7f543d783f6 /plugins/service.c | |
parent | 39529ba3d70d174604af97c766cab92bb8f0ba53 (diff) |
Check ANY record list in case the record is not present on adapter record list.
Diffstat (limited to 'plugins/service.c')
-rw-r--r-- | plugins/service.c | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/plugins/service.c b/plugins/service.c index 0d0efce5..98026e34 100644 --- a/plugins/service.c +++ b/plugins/service.c @@ -77,6 +77,8 @@ struct service_adapter { GSList *records; }; +static struct service_adapter *serv_adapter_any = NULL; + static int compute_seq_size(sdp_data_t *data) { int unit_size = data->unitSize; @@ -632,8 +634,11 @@ static DBusMessage *request_authorization(DBusConnection *conn, return failed(msg); user_record = find_record(serv_adapter, handle, sender); - if (!user_record) - return not_authorized(msg); + if (!user_record) { + user_record = find_record(serv_adapter_any, handle, sender); + if (!user_record) + return not_authorized(msg); + } record = sdp_record_find(user_record->handle); @@ -783,6 +788,9 @@ static int register_interface(const char *path, struct btd_adapter *adapter) info("Registered interface %s on path %s", SERVICE_INTERFACE, path); + if (serv_adapter->adapter == NULL) + serv_adapter_any = serv_adapter; + return 0; } |