On Wed, Mar 08, 2017 at 10:54:37AM +0200, Andrei Otcheretianski wrote: > When requesting a scan for beacon report request, the number of > SSIDs is always set to one, even when no SSID subelement is > present in the measurement request. Only when Measurement Mode is set to Active; not always (i.e., Measurement Mode set to Passive would not do this).. > Fix this by setting the SSID in the scan parameters only if the > SSID subelement is actually present in the measurement request. What is the incorrect behavior that this is fixing? > diff --git a/wpa_supplicant/rrm.c b/wpa_supplicant/rrm.c > @@ -1085,7 +1085,7 @@ wpas_rm_handle_beacon_req(struct wpa_supplicant *wpa_s, > > params->only_new_results = 1; > > - if (req->mode == BEACON_REPORT_MODE_ACTIVE) { > + if (req->mode == BEACON_REPORT_MODE_ACTIVE && data->ssid_len) { > params->ssids[params->num_ssids].ssid = data->ssid; > params->ssids[params->num_ssids++].ssid_len = data->ssid_len; > } This is a beacon report request with Measurement Mode having value Active. That indicates that there is a request to do an active scan. If the SSID subelement is not included in the Beacon request, this is a request to report all BSSs regardless of the SSID. For this to use an active scan, params->num_ssids needs to be 1 and a zero length SSID needs to be specified as the SSID to scan for. The proposed change seems to break the expected behavior for Measurement Mode = Active. As such, I'm not applying this without more thorough commit message explaining why the current behavior is incorrect (ideally, point to the IEEE 802.11 standard clause describing this; IEEE Std 802.11-2016, 11.11.9.1 (Beacon report) seems to match the current implementation behavior). -- Jouni Malinen PGP id EFC895FA _______________________________________________ Hostap mailing list Hostap@xxxxxxxxxxxxxxxxxxx http://lists.infradead.org/mailman/listinfo/hostap