aboutsummaryrefslogtreecommitdiffstats
path: root/src/p2p
diff options
context:
space:
mode:
authorEliad Peller <eliad@wizery.com>2012-02-29 20:45:58 +0200
committerArik Nemtsov <arik@wizery.com>2012-08-02 13:01:43 +0300
commit75f047b9a355c164e96a5e6b94384107f59da81f (patch)
treedf2ac5010a48533be531eb2976acbd3b5d2cc2c4 /src/p2p
parent6b67a94fe4edcb7d0ecc789362b705f4b58451cb (diff)
downloadexternal_wpa_supplicant_8_ti-75f047b9a355c164e96a5e6b94384107f59da81f.zip
external_wpa_supplicant_8_ti-75f047b9a355c164e96a5e6b94384107f59da81f.tar.gz
external_wpa_supplicant_8_ti-75f047b9a355c164e96a5e6b94384107f59da81f.tar.bz2
P2P: update scan results
(not sure this should go upstream) update p2p scan results (and notify) if the listen_freq or go_state were changed. Signed-off-by: Eliad Peller <eliad@wizery.com>
Diffstat (limited to 'src/p2p')
-rw-r--r--src/p2p/p2p.c15
1 files changed, 13 insertions, 2 deletions
diff --git a/src/p2p/p2p.c b/src/p2p/p2p.c
index f734c73..554df33 100644
--- a/src/p2p/p2p.c
+++ b/src/p2p/p2p.c
@@ -585,8 +585,9 @@ int p2p_add_device(struct p2p_data *p2p, const u8 *addr, int freq,
struct p2p_device *dev;
struct p2p_message msg;
const u8 *p2p_dev_addr;
- int i;
+ int i, changed = 0;
struct os_time time_now, time_tmp_age, entry_ts;
+ enum p2p_go_state old_state;
os_memset(&msg, 0, sizeof(msg));
if (p2p_parse_ies(ies, ies_len, &msg)) {
@@ -672,12 +673,22 @@ int p2p_add_device(struct p2p_data *p2p, const u8 *addr, int freq,
"results (" MACSTR " %d -> %d MHz (DS param %d)",
MAC2STR(dev->info.p2p_device_addr), dev->listen_freq,
freq, msg.ds_params ? *msg.ds_params : -1);
+ changed = 1;
}
+
if (scan_res) {
dev->listen_freq = freq;
if (msg.group_info)
dev->oper_freq = freq;
+
+ old_state = dev->go_state;
+ if (msg.group_info)
+ dev->go_state = REMOTE_GO;
+ else
+ dev->go_state = UNKNOWN_GO;
+ changed |= (old_state != dev->go_state);
}
+
dev->info.level = level;
p2p_copy_wps_info(dev, 0, &msg);
@@ -706,7 +717,7 @@ int p2p_add_device(struct p2p_data *p2p, const u8 *addr, int freq,
if (p2p_pending_sd_req(p2p, dev))
dev->flags |= P2P_DEV_SD_SCHEDULE;
- if (dev->flags & P2P_DEV_REPORTED)
+ if ((dev->flags & P2P_DEV_REPORTED) && !changed)
return 0;
wpa_msg(p2p->cfg->msg_ctx, MSG_DEBUG,