summaryrefslogtreecommitdiffstats
path: root/hcid/dbus-hci.c
diff options
context:
space:
mode:
authorJohan Hedberg <johan.hedberg@nokia.com>2008-06-09 04:37:29 +0000
committerJohan Hedberg <johan.hedberg@nokia.com>2008-06-09 04:37:29 +0000
commit8eae4fc054a6f522d9cbc24dbe824838056f0dcf (patch)
tree83c35c3a15e9c20ce944add18fbc7fc8d1f6ece1 /hcid/dbus-hci.c
parent4aa07a5ae2035b9ad13c63c3cb85192c85d85252 (diff)
Add support for Simple Pairing User Notification event
Diffstat (limited to 'hcid/dbus-hci.c')
-rw-r--r--hcid/dbus-hci.c34
1 files changed, 34 insertions, 0 deletions
diff --git a/hcid/dbus-hci.c b/hcid/dbus-hci.c
index b2df0e69..6b9d06bd 100644
--- a/hcid/dbus-hci.c
+++ b/hcid/dbus-hci.c
@@ -1174,6 +1174,40 @@ int hcid_dbus_user_passkey(bdaddr_t *sba, bdaddr_t *dba)
return 0;
}
+int hcid_dbus_user_notify(bdaddr_t *sba, bdaddr_t *dba, uint32_t passkey)
+{
+ struct adapter *adapter;
+ struct device *device;
+ struct agent *agent;
+ char addr[18];
+
+ adapter = adapter_find(sba);
+ if (!adapter) {
+ error("No matching adapter found");
+ return -1;
+ }
+
+ ba2str(dba, addr);
+
+ device = adapter_get_device(connection, adapter, addr);
+ if (device && device->agent)
+ agent = device->agent;
+ else
+ agent = adapter->agent;
+
+ if (!agent) {
+ error("No agent available for user confirm request");
+ return -1;
+ }
+
+ if (agent_display_passkey(agent, device, passkey) < 0) {
+ error("Displaying passkey failed");
+ return -1;
+ }
+
+ return 0;
+}
+
void hcid_dbus_bonding_process_complete(bdaddr_t *local, bdaddr_t *peer,
uint8_t status)
{