|
|
@@ -0,0 +1,45 @@
|
|
|
+--- a/hostapd/config_file.c
|
|
|
++++ b/hostapd/config_file.c
|
|
|
+@@ -1781,6 +1781,8 @@ static int hostapd_config_fill(struct ho
|
|
|
+ }
|
|
|
+ } else if (os_strcmp(buf, "wds_sta") == 0) {
|
|
|
+ bss->wds_sta = atoi(pos);
|
|
|
++ } else if (os_strcmp(buf, "start_disabled") == 0) {
|
|
|
++ bss->start_disabled = atoi(pos);
|
|
|
+ } else if (os_strcmp(buf, "ap_isolate") == 0) {
|
|
|
+ bss->isolate = atoi(pos);
|
|
|
+ } else if (os_strcmp(buf, "ap_max_inactivity") == 0) {
|
|
|
+--- a/hostapd/hostapd.conf
|
|
|
++++ b/hostapd/hostapd.conf
|
|
|
+@@ -389,6 +389,9 @@ wmm_ac_vo_acm=0
|
|
|
+ # use a separate bridge.
|
|
|
+ #wds_bridge=wds-br0
|
|
|
+
|
|
|
++# Start the AP with beaconing disabled by default.
|
|
|
++#start_disabled=0
|
|
|
++
|
|
|
+ # Client isolation can be used to prevent low-level bridging of frames between
|
|
|
+ # associated stations in the BSS. By default, this bridging is allowed.
|
|
|
+ #ap_isolate=1
|
|
|
+--- a/src/ap/ap_config.h
|
|
|
++++ b/src/ap/ap_config.h
|
|
|
+@@ -243,6 +243,7 @@ struct hostapd_bss_config {
|
|
|
+ int num_deny_mac;
|
|
|
+ int wds_sta;
|
|
|
+ int isolate;
|
|
|
++ int start_disabled;
|
|
|
+
|
|
|
+ int auth_algs; /* bitfield of allowed IEEE 802.11 authentication
|
|
|
+ * algorithms, WPA_AUTH_ALG_{OPEN,SHARED,LEAP} */
|
|
|
+--- a/src/ap/hostapd.c
|
|
|
++++ b/src/ap/hostapd.c
|
|
|
+@@ -819,7 +819,8 @@ static int hostapd_setup_bss(struct host
|
|
|
+ return -1;
|
|
|
+ }
|
|
|
+
|
|
|
+- ieee802_11_set_beacon(hapd);
|
|
|
++ if (!hapd->conf->start_disabled)
|
|
|
++ ieee802_11_set_beacon(hapd);
|
|
|
+
|
|
|
+ if (hapd->wpa_auth && wpa_init_keys(hapd->wpa_auth) < 0)
|
|
|
+ return -1;
|