wpa-supplicant and scan sharing

Ben Greear greearb at candelatech.com
Tue May 30 14:45:01 PDT 2017

[Sorry for previous email with bogus subject.]


In wpa_supplicant/events.c, there is code similar to this below.

Is there any reason 'ret = 1' other than some drivers may have issues
with multiple association attempts?  I am pretty sure that I used to
bring up many ath9k and ath10k station vdevs at once, so maybe
this is just for Intel NICs (based on the comitter that changed
that code last)?

   * Return a negative value if no scan results could be fetched or if scan
   * results should not be shared with other virtual interfaces.
   * Return 0 if scan results were fetched and may be shared with other
   * interfaces.
   * Return 1 if scan results may be shared with other virtual interfaces but may
   * not trigger any operations.
   * Return 2 if the interface was removed and cannot be used.
static int _wpa_supplicant_event_scan_results(struct wpa_supplicant *wpa_s,
					      union wpa_event_data *data,
					      int own_request, int update_only)


         if (own_request && wpa_s->scan_res_handler &&
	    !(data && data->scan_info.external_scan)) {
		void (*scan_res_handler)(struct wpa_supplicant *wpa_s,
					 struct wpa_scan_results *scan_res);

		scan_res_handler = wpa_s->scan_res_handler;
		wpa_s->scan_res_handler = NULL;
		scan_res_handler(wpa_s, scan_res);
		wpa_dbg(wpa_s, MSG_DEBUG, "Called scan_res_handler, data: %p external-scan: %d, returning 1\n",
			data, data->scan_info.external_scan);
		ret = 0; /* This was 1 upstream, but that means we don't share/use scan results as readily. --Ben */
		goto scan_work_done;

Ben Greear <greearb at candelatech.com>
Candela Technologies Inc  http://www.candelatech.com

More information about the Hostap mailing list