summaryrefslogtreecommitdiffstats
path: root/hcid/dbus-security.c
diff options
context:
space:
mode:
authorMarcel Holtmann <marcel@holtmann.org>2008-06-06 10:32:38 +0000
committerMarcel Holtmann <marcel@holtmann.org>2008-06-06 10:32:38 +0000
commit648ac7812adfc4401ae654055ffb5676393b2fa2 (patch)
tree6718633fb04e2be638862fae4263eaf826061d4d /hcid/dbus-security.c
parentf269e27ce7e39e6484cf02a137dcda7458a7fd85 (diff)
Fix the object user data handling in security callbacks
Diffstat (limited to 'hcid/dbus-security.c')
-rw-r--r--hcid/dbus-security.c39
1 files changed, 12 insertions, 27 deletions
diff --git a/hcid/dbus-security.c b/hcid/dbus-security.c
index a5c39775..dfa2c711 100644
--- a/hcid/dbus-security.c
+++ b/hcid/dbus-security.c
@@ -999,21 +999,13 @@ send:
return -1;
}
-int handle_passkey_request_old(DBusConnection *conn, int dev, const char *path,
- bdaddr_t *sba, bdaddr_t *dba)
+int handle_passkey_request_old(DBusConnection *conn, int dev,
+ struct adapter *adapter,
+ bdaddr_t *sba, bdaddr_t *dba)
{
struct passkey_agent *agent = default_agent;
- struct adapter *adapter = NULL;
GSList *l;
char addr[18];
- void *data;
-
- dbus_connection_get_object_user_data(conn, path, &data);
-
- if (!data)
- goto done;
-
- adapter = data;
ba2str(dba, addr);
@@ -1027,8 +1019,7 @@ int handle_passkey_request_old(DBusConnection *conn, int dev, const char *path,
}
}
-done:
- return call_passkey_agent(conn, agent, dev, path, sba, dba);
+ return call_passkey_agent(conn, agent, dev, adapter->path, sba, dba);
}
static DBusPendingCall *agent_confirm(const char *path, bdaddr_t *bda,
@@ -1175,27 +1166,21 @@ send:
return -1;
}
-int handle_confirm_request_old(DBusConnection *conn, int dev, const char *path,
- bdaddr_t *sba, bdaddr_t *dba, const char *pin)
+int handle_confirm_request_old(DBusConnection *conn, int dev,
+ struct adapter *adapter,
+ bdaddr_t *sba, bdaddr_t *dba,
+ const char *pin)
{
struct passkey_agent *agent = default_agent;
- struct adapter *adapter = NULL;
GSList *l;
char addr[18];
- void *data;
-
- dbus_connection_get_object_user_data(conn, path, &data);
-
- if (!data)
- goto done;
-
- adapter = data;
ba2str(dba, addr);
for (l = adapter->passkey_agents; l != NULL; l = l->next) {
struct passkey_agent *a = l->data;
- if (a != default_agent && g_slist_length(a->pending_requests) >= 1)
+ if (a != default_agent &&
+ g_slist_length(a->pending_requests) >= 1)
continue;
if (!strcmp(a->addr, addr)) {
agent = a;
@@ -1203,8 +1188,8 @@ int handle_confirm_request_old(DBusConnection *conn, int dev, const char *path,
}
}
-done:
- return call_confirm_agent(conn, agent, dev, path, sba, dba, pin);
+ return call_confirm_agent(conn, agent, dev, adapter->path,
+ sba, dba, pin);
}
static void send_cancel_request(struct pending_agent_request *req)