]> git.ipfire.org Git - thirdparty/hostap.git/commitdiff
P2P: Send P2P-DEVICE-FOUND event on peer changing device name
authorMayank Haarit <mayank.h@samsung.com>
Wed, 7 Dec 2016 16:46:04 +0000 (22:16 +0530)
committerJouni Malinen <j@w1.fi>
Sun, 11 Dec 2016 10:45:08 +0000 (12:45 +0200)
This is to handle the case when peer changes device name and same needs
to be updated to upper layers by P2P-DEVICE-FOUND event. It is similar
to the case when a peer changes wfd_subelems and P2P-DEVICE-FOUND event
goes to upper layers.

Signed-off-by: Mayank Haarit <mayank.h@samsung.com>
Signed-off-by: Avichal Agarwal <avichal.a@samsung.com>
src/p2p/p2p.c

index 3e1e8961a655c1f23262c52ec597b257accaf834..372e4abf7f606a75425425670867017b9b028815 100644 (file)
@@ -711,6 +711,7 @@ int p2p_add_device(struct p2p_data *p2p, const u8 *addr, int freq,
        struct p2p_message msg;
        const u8 *p2p_dev_addr;
        int wfd_changed;
+       int dev_name_changed;
        int i;
        struct os_reltime time_now;
 
@@ -821,6 +822,9 @@ int p2p_add_device(struct p2p_data *p2p, const u8 *addr, int freq,
        }
        dev->info.level = level;
 
+       dev_name_changed = msg.device_name &&
+               os_strcmp(dev->info.device_name, msg.device_name) != 0;
+
        p2p_copy_wps_info(p2p, dev, 0, &msg);
 
        for (i = 0; i < P2P_MAX_WPS_VENDOR_EXT; i++) {
@@ -858,6 +862,7 @@ int p2p_add_device(struct p2p_data *p2p, const u8 *addr, int freq,
        p2p_update_peer_vendor_elems(dev, ies, ies_len);
 
        if (dev->flags & P2P_DEV_REPORTED && !wfd_changed &&
+           !dev_name_changed &&
            (!msg.adv_service_instance ||
             (dev->flags & P2P_DEV_P2PS_REPORTED)))
                return 0;