From ddf0b3facf8bc26767185708582579a118aa8ed4 Mon Sep 17 00:00:00 2001 From: Marcel Holtmann Date: Wed, 21 Dec 2005 00:08:09 +0000 Subject: Setup D-Bus for PIN agent if needed --- hcid/dbus.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/hcid/dbus.c b/hcid/dbus.c index daeb93bd..e8c5ec41 100644 --- a/hcid/dbus.c +++ b/hcid/dbus.c @@ -460,12 +460,17 @@ static gboolean unregister_dbus_path(const char *path) void hcid_dbus_request_pin(int dev, struct hci_conn_info *ci) { - DBusMessage *message; + DBusMessage *message = NULL; DBusPendingCall *pending = NULL; struct pin_request *req; uint8_t *addr = (uint8_t *) &ci->bdaddr; dbus_bool_t out = ci->out; + if (!connection) { + if (!hcid_dbus_init()) + goto failed; + } + message = dbus_message_new_method_call(PINAGENT_SERVICE_NAME, PINAGENT_PATH, PINAGENT_INTERFACE, PIN_REQUEST); if (message == NULL) { @@ -497,7 +502,9 @@ void hcid_dbus_request_pin(int dev, struct hci_conn_info *ci) return; failed: - dbus_message_unref(message); + if (message) + dbus_message_unref(message); + hci_send_cmd(dev, OGF_LINK_CTL, OCF_PIN_CODE_NEG_REPLY, 6, &ci->bdaddr); } -- cgit