diff options
author | Johan Hedberg <johan.hedberg@nokia.com> | 2009-01-13 15:06:46 +0200 |
---|---|---|
committer | Johan Hedberg <johan.hedberg@nokia.com> | 2009-01-13 15:08:16 +0200 |
commit | 51382802f433d7ce6ee1d5ceeeb1d90d543d0e6d (patch) | |
tree | ee587a86600736dfac7be1334122ad584525db77 /src/security.c | |
parent | d2244495dfc50c22ce275f6194c19d3293de70cb (diff) |
Fix new pairing detection with SSP
Propagate old and new link key type info to dbus-hci.c so it can know whether
this is a new pairing or not.
Diffstat (limited to 'src/security.c')
-rw-r--r-- | src/security.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/src/security.c b/src/security.c index 267cd27e..1ab952ae 100644 --- a/src/security.c +++ b/src/security.c @@ -341,10 +341,16 @@ static void link_key_notify(int dev, bdaddr_t *sba, void *ptr) bdaddr_t *dba = &evt->bdaddr; char sa[18], da[18]; int dev_id, err; + unsigned char old_key[16]; + uint8_t old_key_type; ba2str(sba, sa); ba2str(dba, da); info("link_key_notify (sba=%s, dba=%s)", sa, da); + err = read_link_key(sba, dba, old_key, &old_key_type); + if (err < 0) + old_key_type = 0xFF; + dev_id = hci_devid(sa); err = write_link_key(sba, dba, evt->link_key, evt->key_type, @@ -367,7 +373,7 @@ static void link_key_notify(int dev, bdaddr_t *sba, void *ptr) DISCONNECT_CP_SIZE, &cp); } } else - hcid_dbus_link_key_notify(sba, dba); + hcid_dbus_link_key_notify(sba, dba, evt->key_type, old_key_type); io_data[dev_id].pin_length = -1; } |