From: jow <jow@3c298f89-4303-0410-b956-a3cf2f4a3e73>
Date: Sat, 20 Aug 2011 00:13:58 +0000 (+0000)
Subject: [package] hostapd: introduce options to configure the logging behaviour.
X-Git-Url: https://git.rohieb.name/openwrt.git/commitdiff_plain/4f0278e702bf179e8982a8fa860fc1f613b81ba1

[package] hostapd: introduce options to configure the logging behaviour.
The config wifi-device section gains the following settings:
	* log_level  (2)    - Defines the minimum message level
	* log_80211  (true) - Log 802.11 events
	* log_8021x  (true) - Log 802.1X events
	* log_radius (true) - Log RADIUS events
	* log_wpa    (true) - Log WPA events
	* log_driver (true) - Log driver interface messages
	* log_iapp   (true) - Log IAPP events
	* log_mlme   (true) - Log MLME events


git-svn-id: svn://svn.openwrt.org/openwrt/trunk@28056 3c298f89-4303-0410-b956-a3cf2f4a3e73
---

diff --git a/package/hostapd/Makefile b/package/hostapd/Makefile
index 6111e9a6e..9f93054db 100644
--- a/package/hostapd/Makefile
+++ b/package/hostapd/Makefile
@@ -1,5 +1,5 @@
 #
-# Copyright (C) 2006-2010 OpenWrt.org
+# Copyright (C) 2006-2011 OpenWrt.org
 #
 # This is free software, licensed under the GNU General Public License v2.
 # See /LICENSE for more information.
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=hostapd
 PKG_VERSION:=20110527
-PKG_RELEASE:=1
+PKG_RELEASE:=2
 PKG_REV:=ceb34f250af7a7082f18c1e0451dc7fbc0f000f3
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
diff --git a/package/hostapd/files/hostapd.sh b/package/hostapd/files/hostapd.sh
index 29d8c7297..3fbe73487 100644
--- a/package/hostapd/files/hostapd.sh
+++ b/package/hostapd/files/hostapd.sh
@@ -192,16 +192,52 @@ hostapd_set_bss_options() {
 	fi
 }
 
+hostapd_set_log_options() {
+	local var="$1"
+	local cfg="$2"
+	local log_level log_80211 log_8021x log_radius log_wpa log_driver log_iapp log_mlme
+
+	config_get log_level "$cfg" log_level 2
+
+	config_get_bool log_80211  "$cfg" log_80211  1
+	config_get_bool log_8021x  "$cfg" log_8021x  1
+	config_get_bool log_radius "$cfg" log_radius 1
+	config_get_bool log_wpa    "$cfg" log_wpa    1
+	config_get_bool log_driver "$cfg" log_driver 1
+	config_get_bool log_iapp   "$cfg" log_iapp   1
+	config_get_bool log_mlme   "$cfg" log_mlme   1
+
+	local log_mask=$((       \
+		($log_80211  << 0) | \
+		($log_8021x  << 1) | \
+		($log_radius << 2) | \
+		($log_wpa    << 3) | \
+		($log_driver << 4) | \
+		($log_iapp   << 5) | \
+		($log_mlme   << 6)   \
+	))
+
+	append "$var" "logger_syslog=$log_mask" "$N"
+	append "$var" "logger_syslog_level=$log_level" "$N"
+	append "$var" "logger_stdout=$log_mask" "$N"
+	append "$var" "logger_stdout_level=$log_level" "$N"
+}
+
 hostapd_setup_vif() {
 	local vif="$1"
 	local driver="$2"
+	local ifname device channel hwmode
+
 	hostapd_cfg=
 
-	hostapd_set_bss_options hostapd_cfg "$vif"
 	config_get ifname "$vif" ifname
 	config_get device "$vif" device
 	config_get channel "$device" channel
 	config_get hwmode "$device" hwmode
+
+	hostapd_set_log_options hostapd_cfg "$device"
+	hostapd_set_bss_options hostapd_cfg "$vif"
+
 	case "$hwmode" in
 		*bg|*gdt|*gst|*fh) hwmode=g;;
 		*adt|*ast) hwmode=a;;