[PATCH 1/2] ibss: fix control freq if IBSS already found
Antonio Quartulli
antonio
Mon Jan 19 07:09:52 PST 2015
Hello,
On 19/01/15 10:02, Janusz Dziedzic wrote:
> If IBSS already found in scan results change
> requested frequency and disable OBSS scan.
>
> Signed-off-by: Janusz Dziedzic <janusz.dziedzic at tieto.com>
> ---
> wpa_supplicant/wpa_supplicant.c | 31 ++++++++++++++++++++++++++++---
> 1 file changed, 28 insertions(+), 3 deletions(-)
>
> diff --git a/wpa_supplicant/wpa_supplicant.c b/wpa_supplicant/wpa_supplicant.c
> index 000c9ba..56f4c44 100644
> --- a/wpa_supplicant/wpa_supplicant.c
> +++ b/wpa_supplicant/wpa_supplicant.c
> @@ -1650,6 +1650,12 @@ void wpa_supplicant_associate(struct wpa_supplicant *wpa_s,
> }
>
>
> +static int bss_is_ibss(struct wpa_bss *bss)
> +{
> + return ((bss->caps & (IEEE80211_CAP_ESS | IEEE80211_CAP_IBSS)) ==
> + IEEE80211_CAP_IBSS);
> +}
> +
> void ibss_mesh_setup_freq(struct wpa_supplicant *wpa_s,
> const struct wpa_ssid *ssid,
> struct hostapd_freq_params *freq)
> @@ -1660,17 +1666,36 @@ void ibss_mesh_setup_freq(struct wpa_supplicant *wpa_s,
> 184, 192 };
> struct hostapd_channel_data *pri_chan = NULL, *sec_chan = NULL;
> u8 channel;
> - int i, chan_idx, ht40 = -1, res;
> + int i, chan_idx, ht40 = -1, res, obss_scan = 1;
> unsigned int j;
>
> freq->freq = ssid->frequency;
>
> + for (i = 0; i < wpa_s->last_scan_res_used; i++) {
> + struct wpa_bss *bss = wpa_s->last_scan_res[i];
> +
> + if (ssid->mode != WPAS_MODE_IBSS)
> + break;
> +
> + if (!bss_is_ibss(bss))
> + continue;
> +
> + if (ssid->ssid_len == bss->ssid_len &&
> + !memcmp(ssid->ssid, bss->ssid, bss->ssid_len)) {
> + wpa_printf(MSG_DEBUG, "IBSS already found in scan results, "
> + "adjust control freq: %d", bss->freq);
> + freq->freq = bss->freq;
> + obss_scan = 0;
> + break;
> + }
> + }
What if the user really wanted to start the IBSS on the specify
frequency rather than joining an already existing cell ?
--
Antonio Quartulli
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: OpenPGP digital signature
URL: <http://lists.shmoo.com/pipermail/hostap/attachments/20150119/e1292cac/attachment.pgp>
More information about the Hostap
mailing list