From 39ab281faeca8bbfa0776c989cdcf761f4804e15 Mon Sep 17 00:00:00 2001
From: Felix Fietkau <nbd@openwrt.org>
Date: Tue, 6 Aug 2013 17:59:09 +0000
Subject: [PATCH] mac80211: Handle concurrent AP/STA beaconing properly

Use the "start_disabled" option in hostapd that was added
in the earlier patch.

Signed-off-by: Sujith Manoharan <c_manoha@qca.qualcomm.com>

SVN-Revision: 37732
---
 package/kernel/mac80211/files/lib/wifi/mac80211.sh | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/package/kernel/mac80211/files/lib/wifi/mac80211.sh b/package/kernel/mac80211/files/lib/wifi/mac80211.sh
index fb6cd29676..13afa813b0 100644
--- a/package/kernel/mac80211/files/lib/wifi/mac80211.sh
+++ b/package/kernel/mac80211/files/lib/wifi/mac80211.sh
@@ -110,6 +110,7 @@ EOF
 mac80211_hostapd_setup_bss() {
 	local phy="$1"
 	local vif="$2"
+	local staidx="$3"
 
 	hostapd_cfg=
 	cfgfile="/var/run/hostapd-$phy.conf"
@@ -132,6 +133,8 @@ mac80211_hostapd_setup_bss() {
 	config_get_bool wds "$vif" wds 0
 	[ "$wds" -gt 0 ] && append hostapd_cfg "wds_sta=1" "$N"
 
+	[ "$staidx" -gt 0 ] && append hostapd_cfg "start_disabled=1" "$N"
+
 	local macaddr hidden maxassoc wmm
 	config_get macaddr "$vif" macaddr
 	config_get maxassoc "$vif" maxassoc
@@ -318,6 +321,7 @@ enable_mac80211() {
 	local i=0
 	local macidx=0
 	local apidx=0
+	local staidx=0
 	fixed=""
 	local hostapd_ctrl=""
 
@@ -383,6 +387,7 @@ enable_mac80211() {
 			;;
 			sta)
 				local wdsflag
+				staidx="$(($staidx + 1))"
 				config_get_bool wds "$vif" wds 0
 				[ "$wds" -gt 0 ] && wdsflag="4addr on"
 				iw phy "$phy" interface add "$ifname" type managed $wdsflag
@@ -433,7 +438,7 @@ enable_mac80211() {
 		config_get mode "$vif" mode
 		case "$mode" in
 			ap)
-				mac80211_hostapd_setup_bss "$phy" "$vif"
+				mac80211_hostapd_setup_bss "$phy" "$vif" "$staidx"
 				start_hostapd=1
 			;;
 			mesh)
-- 
2.30.2