diff --git a/tests/hwsim/test_ap_params.py b/tests/hwsim/test_ap_params.py index f65bb015e..61d290c49 100644 --- a/tests/hwsim/test_ap_params.py +++ b/tests/hwsim/test_ap_params.py @@ -638,3 +638,17 @@ def test_ap_dtim_period(dev, apdev): raise Exception("Unexpected DTIM period: %d" % period) if count >= period: raise Exception("Unexpected DTIM count: %d" % count) + +def test_ap_no_probe_resp(dev, apdev): + """AP with Probe Response frame sending from hostapd disabled""" + ssid = "no-probe-resp" + params = { 'ssid': ssid, 'send_probe_response': "0" } + hapd = hostapd.add_ap(apdev[0], params) + bssid = hapd.own_addr() + dev[0].scan_for_bss(bssid, freq="2412", passive=True) + dev[0].scan_for_bss(bssid, freq="2412", force_scan=True) + dev[0].connect(ssid, key_mgmt="NONE", scan_freq="2412") + bss = dev[0].get_bss(bssid) + if 'ie' in bss and 'beacon_ie' in bss and \ + len(bss['ie']) != len(bss['beacon_ie']): + raise Exception("Probe Response frames seen") diff --git a/tests/hwsim/wpasupplicant.py b/tests/hwsim/wpasupplicant.py index f106ab01c..87429b5d5 100644 --- a/tests/hwsim/wpasupplicant.py +++ b/tests/hwsim/wpasupplicant.py @@ -1052,7 +1052,8 @@ class WpaSupplicant: self.select_network(id) return id - def scan(self, type=None, freq=None, no_wait=False, only_new=False): + def scan(self, type=None, freq=None, no_wait=False, only_new=False, + passive=False): if type: cmd = "SCAN TYPE=" + type else: @@ -1061,6 +1062,8 @@ class WpaSupplicant: cmd = cmd + " freq=" + str(freq) if only_new: cmd += " only_new=1" + if passive: + cmd += " passive=1" if not no_wait: self.dump_monitor() if not "OK" in self.request(cmd): @@ -1074,11 +1077,13 @@ class WpaSupplicant: if "CTRL-EVENT-SCAN-FAILED" in ev: raise Exception("Scan failed: " + ev) - def scan_for_bss(self, bssid, freq=None, force_scan=False, only_new=False): + def scan_for_bss(self, bssid, freq=None, force_scan=False, only_new=False, + passive=False): if not force_scan and self.get_bss(bssid) is not None: return for i in range(0, 10): - self.scan(freq=freq, type="ONLY", only_new=only_new) + self.scan(freq=freq, type="ONLY", only_new=only_new, + passive=passive) if self.get_bss(bssid) is not None: return raise Exception("Could not find BSS " + bssid + " in scan")