summaryrefslogtreecommitdiffstats
path: root/hcid/dbus-security.c
diff options
context:
space:
mode:
Diffstat (limited to 'hcid/dbus-security.c')
-rw-r--r--hcid/dbus-security.c15
1 files changed, 6 insertions, 9 deletions
diff --git a/hcid/dbus-security.c b/hcid/dbus-security.c
index b69c9441..507a6475 100644
--- a/hcid/dbus-security.c
+++ b/hcid/dbus-security.c
@@ -397,12 +397,11 @@ done:
dbus_pending_call_unref(call);
}
-static int call_passkey_agent(struct passkey_agent *agent, int dev, const char *path,
- bdaddr_t *sba, bdaddr_t *dba)
+static int call_passkey_agent(DBusConnection *conn, struct passkey_agent *agent,
+ int dev, const char *path, bdaddr_t *sba, bdaddr_t *dba)
{
DBusMessage *message = NULL;
DBusPendingCall *pending = NULL;
- DBusConnection *connection;
struct pin_request *req;
char bda[18];
char *ptr = bda;
@@ -431,14 +430,12 @@ static int call_passkey_agent(struct passkey_agent *agent, int dev, const char *
bacpy(&req->sba, sba);
bacpy(&req->bda, dba);
- connection = get_dbus_connection();
-
dbus_message_append_args(message,
DBUS_TYPE_STRING, &path,
DBUS_TYPE_STRING, &ptr,
DBUS_TYPE_INVALID);
- if (dbus_connection_send_with_reply(connection, message,
+ if (dbus_connection_send_with_reply(conn, message,
&pending, TIMEOUT) == FALSE) {
error("D-Bus send failed");
goto failed;
@@ -471,7 +468,7 @@ DBusHandlerResult handle_security_method(DBusConnection *conn, DBusMessage *msg,
return error_unknown_method(conn, msg);
}
-int handle_passkey_request(int dev, const char *path, bdaddr_t *sba, bdaddr_t *dba)
+int handle_passkey_request(DBusConnection *conn, int dev, const char *path, bdaddr_t *sba, bdaddr_t *dba)
{
struct passkey_agent *agent = default_agent;
struct hci_dbus_data *adapter = NULL;
@@ -479,7 +476,7 @@ int handle_passkey_request(int dev, const char *path, bdaddr_t *sba, bdaddr_t *d
char addr[18];
void *data;
- dbus_connection_get_object_path_data(get_dbus_connection(), path, &data);
+ dbus_connection_get_object_path_data(conn, path, &data);
if (!data)
goto done;
@@ -499,5 +496,5 @@ int handle_passkey_request(int dev, const char *path, bdaddr_t *sba, bdaddr_t *d
}
done:
- return call_passkey_agent(agent, dev, path, sba, dba);
+ return call_passkey_agent(conn, agent, dev, path, sba, dba);
}