diff options
author | Johan Hedberg <johan.hedberg@nokia.com> | 2011-03-30 06:18:12 -0400 |
---|---|---|
committer | Gustavo F. Padovan <padovan@profusion.mobi> | 2011-04-04 17:47:38 -0400 |
commit | a88a9652d25a63ce10b6a5fe680d0ad8f33b9c9b (patch) | |
tree | 57d8fed21320201e302eb40fafab35284b60409d /net/bluetooth | |
parent | e17acd40f6006d0a0e0b1b3f7359ba4d543011c6 (diff) |
Bluetooth: Add mgmt_remote_name event
This patch adds a new remote_name event to the Management interface
which is sent every time the name of a remote device is resolved (over
BR/EDR).
Signed-off-by: Johan Hedberg <johan.hedberg@nokia.com>
Signed-off-by: Gustavo F. Padovan <padovan@profusion.mobi>
Diffstat (limited to 'net/bluetooth')
-rw-r--r-- | net/bluetooth/hci_event.c | 3 | ||||
-rw-r--r-- | net/bluetooth/mgmt.c | 12 |
2 files changed, 15 insertions, 0 deletions
diff --git a/net/bluetooth/hci_event.c b/net/bluetooth/hci_event.c index d04011c06be0..7a3398d9cd65 100644 --- a/net/bluetooth/hci_event.c +++ b/net/bluetooth/hci_event.c | |||
@@ -1497,6 +1497,9 @@ static inline void hci_remote_name_evt(struct hci_dev *hdev, struct sk_buff *skb | |||
1497 | 1497 | ||
1498 | hci_dev_lock(hdev); | 1498 | hci_dev_lock(hdev); |
1499 | 1499 | ||
1500 | if (ev->status == 0 && test_bit(HCI_MGMT, &hdev->flags)) | ||
1501 | mgmt_remote_name(hdev->id, &ev->bdaddr, ev->name); | ||
1502 | |||
1500 | conn = hci_conn_hash_lookup_ba(hdev, ACL_LINK, &ev->bdaddr); | 1503 | conn = hci_conn_hash_lookup_ba(hdev, ACL_LINK, &ev->bdaddr); |
1501 | if (conn && hci_outgoing_auth_needed(hdev, conn)) { | 1504 | if (conn && hci_outgoing_auth_needed(hdev, conn)) { |
1502 | struct hci_cp_auth_requested cp; | 1505 | struct hci_cp_auth_requested cp; |
diff --git a/net/bluetooth/mgmt.c b/net/bluetooth/mgmt.c index 86fb50215485..9a61320c5f2e 100644 --- a/net/bluetooth/mgmt.c +++ b/net/bluetooth/mgmt.c | |||
@@ -2063,3 +2063,15 @@ int mgmt_device_found(u16 index, bdaddr_t *bdaddr, u8 *dev_class, s8 rssi, | |||
2063 | 2063 | ||
2064 | return mgmt_event(MGMT_EV_DEVICE_FOUND, index, &ev, sizeof(ev), NULL); | 2064 | return mgmt_event(MGMT_EV_DEVICE_FOUND, index, &ev, sizeof(ev), NULL); |
2065 | } | 2065 | } |
2066 | |||
2067 | int mgmt_remote_name(u16 index, bdaddr_t *bdaddr, u8 *name) | ||
2068 | { | ||
2069 | struct mgmt_ev_remote_name ev; | ||
2070 | |||
2071 | memset(&ev, 0, sizeof(ev)); | ||
2072 | |||
2073 | bacpy(&ev.bdaddr, bdaddr); | ||
2074 | memcpy(ev.name, name, HCI_MAX_NAME_LENGTH); | ||
2075 | |||
2076 | return mgmt_event(MGMT_EV_REMOTE_NAME, index, &ev, sizeof(ev), NULL); | ||
2077 | } | ||