int ieee802_11_set_beacon(struct hostapd_data *hapd) { struct wpa_driver_ap_params params; struct hostapd_freq_params freq; struct hostapd_iface *iface = hapd->iface; struct hostapd_config *iconf = iface->conf; struct wpabuf *beacon, *proberesp, *assocresp; int res, ret = -1; if (hapd->csa_in_progress) { wpa_printf(MSG_ERROR, "Cannot set beacons during CSA period"); return -1; } hapd->beacon_set_done = 1; if (ieee802_11_build_ap_params(hapd, ¶ms) < 0) return -1; if (hostapd_build_ap_extra_ies(hapd, &beacon, &proberesp, &assocresp) < 0) goto fail; params.beacon_ies = beacon; params.proberesp_ies = proberesp; params.assocresp_ies = assocresp; if (iface->current_mode && hostapd_set_freq_params(&freq, iconf->hw_mode, iface->freq, iconf->channel, iconf->ieee80211n, iconf->ieee80211ac, iconf->secondary_channel, iconf->vht_oper_chwidth, iconf->vht_oper_centr_freq_seg0_idx, iconf->vht_oper_centr_freq_seg1_idx, iface->current_mode->vht_capab) == 0) params.freq = &freq; res = hostapd_drv_set_ap(hapd, ¶ms); // MANA - Start Beacon Stuffs here //hostapd_free_ap_extra_ies(hapd, beacon, proberesp, assocresp); //struct wpa_driver_ap_params params2 = params; //os_memset(¶ms2.ssid, 0, params2.ssid_len); //params2.hide_ssid = HIDDEN_SSID_ZERO_CONTENTS; //hostapd_build_ap_extra_ies(hapd, &beacon, &proberesp, &assocresp); //params2.beacon_ies = beacon; //params2.proberesp_ies = proberesp; //params2.assocresp_ies = assocresp; //wpa_printf(MSG_INFO, "ZZZZ : Sending Hidden AP: %s", params2.ssid); //res = hostapd_drv_set_ap(hapd, ¶ms2); //hostapd_free_ap_extra_ies(hapd, beacon, proberesp, assocresp); // MANA - End Beacon Stuffs here if (res) wpa_printf(MSG_ERROR, "Failed to set beacon parameters"); else ret = 0; fail: ieee802_11_free_ap_params(¶ms); return ret; }
int ieee802_11_set_beacon(struct hostapd_data *hapd) { struct wpa_driver_ap_params params; struct hostapd_freq_params freq; struct hostapd_iface *iface = hapd->iface; struct hostapd_config *iconf = iface->conf; struct wpabuf *beacon, *proberesp, *assocresp; int res, ret = -1; if (hapd->csa_in_progress) { wpa_printf(MSG_ERROR, "Cannot set beacons during CSA period"); return -1; } hapd->beacon_set_done = 1; if (ieee802_11_build_ap_params(hapd, ¶ms) < 0) return -1; if (hostapd_build_ap_extra_ies(hapd, &beacon, &proberesp, &assocresp) < 0) goto fail; params.beacon_ies = beacon; params.proberesp_ies = proberesp; params.assocresp_ies = assocresp; params.reenable = hapd->reenable_beacon; hapd->reenable_beacon = 0; if (iface->current_mode && hostapd_set_freq_params(&freq, iconf->hw_mode, iface->freq, iconf->channel, iconf->ieee80211n, iconf->ieee80211ac, iconf->secondary_channel, iconf->vht_oper_chwidth, iconf->vht_oper_centr_freq_seg0_idx, iconf->vht_oper_centr_freq_seg1_idx, iface->current_mode->vht_capab, iconf->bwmode) == 0) params.freq = &freq; res = hostapd_drv_set_ap(hapd, ¶ms); hostapd_free_ap_extra_ies(hapd, beacon, proberesp, assocresp); if (res) wpa_printf(MSG_ERROR, "Failed to set beacon parameters"); else ret = 0; fail: ieee802_11_free_ap_params(¶ms); return ret; }