From: Michael Tremer Date: Fri, 5 May 2017 10:31:36 +0000 (+0100) Subject: wlan client: Generate wpa_supplicant configuration file for EAP X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=f2c94780088c6b172e63493705906142dbad0727;p=people%2Fms%2Fipfire-2.x.git wlan client: Generate wpa_supplicant configuration file for EAP Signed-off-by: Michael Tremer --- diff --git a/src/initscripts/system/wlanclient b/src/initscripts/system/wlanclient index ee24c43a19..b32a4cb4ac 100644 --- a/src/initscripts/system/wlanclient +++ b/src/initscripts/system/wlanclient @@ -62,7 +62,11 @@ function wpa_supplicant_make_config() { --wpa-mode="${line[4]}" \ --ssid="${line[5]}" \ --psk="${line[6]}" \ - --priority="${line[7]}" + --priority="${line[7]}" \ + --auth-mode="${line[8]}" \ + --anonymous-identity="${line[9]}" \ + --identity="${line[10]}" \ + --password="${line[11]}" items=$(( ${items} + 1 )) @@ -82,12 +86,16 @@ function wpa_supplicant_config_line() { local config=${2} shift 2 + local anonymous_identity local auth_alg + local auth_mode + local identity local proto local key_mgmt local pairwise local group local mode + local password local priority local psk local ssid @@ -98,9 +106,21 @@ function wpa_supplicant_config_line() { while [ $# -gt 0 ]; do case "${1}" in + --anonymous-identity=*) + anonymous_identity=${1#--anonymous-identity=} + ;; + --auth-mode=*) + auth_mode=${1#--auth-mode=} + ;; + --identity=*) + identity=${1#--identity=} + ;; --mode=*) mode=${1#--mode=} ;; + --password=*) + password=${1#--password=} + ;; --priority=*) priority=${1#--priority=} ;; @@ -121,6 +141,9 @@ function wpa_supplicant_config_line() { done case "${mode}" in + EAP) + key_mgmt="WPA-EAP" + ;; WPA2) auth_alg="OPEN" proto="RSN" @@ -149,7 +172,7 @@ function wpa_supplicant_config_line() { ;; esac - if [ "${mode}" = "WPA" -o "${mode}" = "WPA2" ]; then + if [ "${mode}" = "EAP" -o "${mode}" = "WPA" -o "${mode}" = "WPA2" ]; then case "${wpa_mode}" in CCMP-CCMP) pairwise="CCMP" @@ -205,6 +228,24 @@ function wpa_supplicant_config_line() { echo " priority=${priority}" fi + # EAP + if [ "${mode}" = "EAP" ]; then + if [ -n "${auth_mode}" ]; then + echo " eap=${auth_mode}" + else + echo " eap=PEAP TTLS" + fi + + if [ "${auth_mode}" = "TTLS" -a -n "${anonymous_identity}" ]; then + echo " anonymous_identity=\"${anonymous_identity}\"" + fi + + if [ -n "${identity}" -a -n "${password}" ]; then + echo " identity=\"${identity}\"" + echo " password=\"${password}\"" + fi + fi + echo "}" echo ) >> ${config}