diff options
Diffstat (limited to 'hcid/dbus.c')
-rw-r--r-- | hcid/dbus.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/hcid/dbus.c b/hcid/dbus.c index be348b2c..9b9ab270 100644 --- a/hcid/dbus.c +++ b/hcid/dbus.c @@ -64,6 +64,7 @@ static volatile sig_atomic_t __timeout_active = 0; struct pin_request { int dev; + bdaddr_t sba; bdaddr_t bda; }; @@ -193,6 +194,8 @@ static void reply_handler_function(DBusPendingCall *call, void *user_data) dbus_message_iter_get_basic(&iter, &pin); len = strlen(pin); + set_pin_length(&req->sba, len); + memset(&pr, 0, sizeof(pr)); bacpy(&pr.bdaddr, &req->bda); memcpy(pr.pin_code, pin, len); @@ -399,7 +402,7 @@ failed: return ret; } -void hcid_dbus_request_pin(int dev, struct hci_conn_info *ci) +void hcid_dbus_request_pin(int dev, bdaddr_t *sba, struct hci_conn_info *ci) { DBusMessage *message = NULL; DBusPendingCall *pending = NULL; @@ -421,6 +424,7 @@ void hcid_dbus_request_pin(int dev, struct hci_conn_info *ci) req = malloc(sizeof(*req)); req->dev = dev; + bacpy(&req->sba, sba); bacpy(&req->bda, &ci->bdaddr); dbus_message_append_args(message, DBUS_TYPE_BOOLEAN, &out, |