Просмотр исходного кода

mac80211: improve error handling when adding hostapd config

Signed-off-by: Daniel Golle <[email protected]>
Daniel Golle 5 лет назад
Родитель
Сommit
d9d6988434

+ 1 - 1
package/kernel/mac80211/Makefile

@@ -11,7 +11,7 @@ include $(INCLUDE_DIR)/kernel.mk
 PKG_NAME:=mac80211
 
 PKG_VERSION:=5.8.18-1
-PKG_RELEASE:=4
+PKG_RELEASE:=5
 PKG_SOURCE_URL:=@KERNEL/linux/kernel/projects/backports/stable/v5.8.18/
 PKG_HASH:=f04a8172423c6a945fc7d9844b04f33fda9ae574e552f8f18ee3bdfcfb494563
 

+ 7 - 7
package/kernel/mac80211/files/lib/netifd/wireless/mac80211.sh

@@ -1019,14 +1019,14 @@ drv_mac80211_setup() {
 		if [ "$no_reload" != "0" ]; then
 			add_ap=1
 			ubus wait_for hostapd
-			local hostapd_pid=$(ubus call hostapd config_add "{\"iface\":\"$primary_ap\", \"config\":\"${hostapd_conf_file}\"}" | jsonfilter -l 1 -e @.pid)
-			wireless_add_process "$hostapd_pid" "/usr/sbin/hostapd" 1 1
+			local hostapd_res="$(ubus call hostapd config_add "{\"iface\":\"$primary_ap\", \"config\":\"${hostapd_conf_file}\"}")"
+			ret="$?"
+			[ "$ret" != 0 -o -z "$hostapd_res" ] && {
+				wireless_setup_failed HOSTAPD_START_FAILED
+				return
+			}
+			wireless_add_process "$(jsonfilter -s "$hostapd_res" -l 1 -e @.pid)" "/usr/sbin/hostapd" 1 1
 		fi
-		ret="$?"
-		[ "$ret" != 0 ] && {
-			wireless_setup_failed HOSTAPD_START_FAILED
-			return
-		}
 	}
 	uci -q -P /var/state set wireless._${phy}.aplist="${NEWAPLIST}"
 	uci -q -P /var/state set wireless._${phy}.md5="${NEW_MD5}"