diff options
| -rwxr-xr-x | setnet.sh | 113 | 
1 files changed, 43 insertions, 70 deletions
| @@ -219,7 +219,7 @@ check_shell(){      ## FIXME!!! THIS TEST DOES NOT WORK yet...      ## -	SCRIPT_CMD=$(ps $$ | tail -1 | sed -r -e 's/\ +/\ /g' | cut -d " " -f 5) +	SCRIPT_CMD=$(ps $$ | tail -1 | sed -r -e 's/\ +/\ /g;s/^\ +//g' | cut -d " " -f 5)  	CUR_SH=$(basename ${SCRIPT_CMD})      case ${CUR_SH} in @@ -473,9 +473,9 @@ config_ip_static(){  	##local   	DEVNAME=$1 -	exec 3>&1	 +	  	eval "${DIALOG}   --form 'Set network for device: ${DEVNAME}' \ -	${FORM_HEIGHT} ${FORM_WIDTH} 0 \ +	${FORM_HEIGHT} ${FORM_WIDTH} 6 \  	'IP'            1 1 '${DEV_IP}'    1 16 16 16 \  	'Network'       2 1 '${DEV_NET}'    2 16 16 16 \  	'Netmask'       3 1 '${DEV_NETMASK}'  3 16 16 16 \ @@ -490,12 +490,15 @@ config_ip_static(){  		return  	fi -	read -d "*" DEV_IP DEV_NET DEV_NETMASK DEV_GW DEV_DNS1 DEV_DNS2 < ${TMPFILE} +	cat ${TMPFILE} | tr '\n' ' ' >${TMPFILE}_2 +	 +	read DEV_IP DEV_NET DEV_NETMASK DEV_GW DEV_DNS1 DEV_DNS2 <${TMPFILE}_2  	eval "${DIALOG}  --msgbox 'Proposed configuration of ${DEVNAME}:\n \  IP: ${DEV_IP}\nNetwork: ${DEV_NET}\nNetmask: ${DEV_NETMASK}\nGateway: \  ${DEV_GW}\nDNS1: ${DEV_DNS1}\nDNS2: ${DEV_DNS2}'\  		${WINDOW_HEIGHT} ${WINDOW_WIDTH}" -	 + +	rm -f ${TMPFILE}_2  	## Configure IP  	chk_exit 0 ip link set "${DEVNAME}" down @@ -641,7 +644,7 @@ wpa_authenticate_EAP_PEAP(){  	## We first add the new network  	NET_NUM=$(wpa_cli -i ${DEVNAME} add_network | tail -1) -	log "wifi_authenticate" "NET_NUM: ${NET_NUM}" +	log "wifi_authenticate_EAP_PEAP" "NET_NUM: ${NET_NUM}"  	chk_out "OK" wpa_cli -i ${DEVNAME} set_network ${NET_NUM} ssid "\"${W_ESSID}\"" @@ -649,27 +652,44 @@ wpa_authenticate_EAP_PEAP(){  	##  	## - identity  	## - password +	## - server certificate (ca_cert)  	##  -	eval "${DIALOG} --form 'PEAP credentials:' \ -		 ${FORM_HEIGHT} ${FORM_WIDTH} 0 \ -	'identity'      1 1 ''    1 16 30 80 \ -	'password'      2 1 ''    2 16 30 80 \ +	eval "${DIALOG} --form 'PEAP parameters:' \ +		 ${FORM_HEIGHT} ${FORM_WIDTH} 3 \ +	'identity'      1 1 ''    1 20 30 80 \ +	'password'      2 1 ''    2 20 30 80 \ +    'server certificate' 3 1 '' 3 20 30 80 \  	" 2>${TMPFILE} -	read -d "*" EAP_IDENTITY EAP_PASSWORD  < ${TMPFILE} +	if [ $? != "0" ]; then +		log "wifi_authenticate_EAP_PEAP" "Aborting EAP/PEAP authentication" +		wpa_cli -i ${DEVNAME} remove_network ${NET_NUM} +		return 1 +	fi + +	 +	cat ${TMPFILE} | tr '\n' ' ' >${TMPFILE}_2 +	read EAP_IDENTITY EAP_PASSWORD EAP_CERT <${TMPFILE}_2 +	rm -f ${TMPFILE}_2  	## Remove identity and password from the temp file  	echo "" > ${TMPFILE} - -	chk_out "OK" wpa_cli -i ${DEVNAME} set_network ${NET_NUM} key_mgmt EAP +	log "wpa_authenticate_EAP_PEAP" "EAP_IDENTITY: ${EAP_IDENTITY}" +	log "wpa_authenticate_EAP_PEAP" "EAP_PASSWORD: ${EAP_PASSWORD}" +	log "wpa_authenticate_EAP_PEAP" "EAP_CERT: ${EAP_CERT}" +	 +	chk_out "OK" wpa_cli -i ${DEVNAME} set_network ${NET_NUM} key_mgmt WPA-EAP -	## Set the eap to PEAP +	## Set eap to PEAP  	chk_out "OK" wpa_cli -i ${DEVNAME} set_network ${NET_NUM} eap PEAP  	## Set identity and password -	chk_out "OK" wpa_cli -i ${DEVNAME} set_network ${NET_NUM} identity "${EAP_IDENTITY}" -	chk_out "OK" wpa_cli -i ${DEVNAME} set_network ${NET_NUM} password "${EAP_PASSWORD}" - +	chk_out "OK" wpa_cli -i ${DEVNAME} set_network ${NET_NUM} identity "\"${EAP_IDENTITY}\"" +	chk_out "OK" wpa_cli -i ${DEVNAME} set_network ${NET_NUM} password "\"${EAP_PASSWORD}\"" +	if [ -n "${EAP_CERT}" ]; then  +		chk_out "OK" wpa_cli -i ${DEVNAME} set_network ${NET_NUM} ca_cert ${EAP_CERT} +	fi +	  	eval "${DIALOG}   --defaultno --yesno \  			   'Network \"${W_ESSID}\" configured\nSave configuration file?' \  			   ${INFO_HEIGHT} ${INFO_WIDTH} " 2> ${TMPFILE} @@ -687,55 +707,8 @@ wpa_authenticate_EAP_PEAP(){  } -##function -# wifi_authenticate_EAP(){ - -# 	DEVNAME="$1" -# 	W_ESSID="$2" - -# 	## We first add the new network -# 	NET_NUM=$(wpa_cli -i ${DEVNAME} add_network | tail -1) -     -# 	log "wifi_authenticate" "NET_NUM: ${NET_NUM}" -# 	chk_out "OK" wpa_cli -i ${DEVNAME} set_network ${NET_NUM} ssid "\"${W_ESSID}\"" -	 -# 	## then we check what kind of EAP authentication is available: -# 	## -# 	EAP_TYPE=$(wpa_cli -i ${DEVNAME} get_network ${NET_NUM} eap) - -# 	log "wifi_authenticate_EAP" "EAP_TYPE: ${EAP_TYPE}" -	 -# 	case ${EAP_TYPE} in -# 		"PEAP") -# 			wpa_authenticate_EAP_PEAP ${DEVNAME} ${NET_NUM} -# 			return $? -# 		;; -# 		"TLS") -# 			## TLS is not currently implemented -# 			wpa_authenticate_EAP_TLS ${DEVNAME} ${NET_NUM} -# 			# return $? -# 			;; -# 		*) -# 			## We don't support anything more than PEAP and TSL, atm -			 -# 			;; -# 	esac - -# 	### If we get here, there was an error before, and we should -# 	### remove the network to not clutter wpa_supplicant... -	 -# 	chk_out "OK" wpa_cli -i ${DEVNAME} remove_network ${NET_NUM} -# 	eval "${DIALOG}   --msgbox 'EAP-${EAP_TYPE} authentication is not currently supported\n' \ -# 					   ${INFO_HEIGHT} ${INFO_WIDTH}" - - -# 	return 1 -# } - - -  ## -## Open access point +## Open access point -- no WPA  ##  ##function  wifi_authenticate_NONE(){ @@ -765,7 +738,7 @@ wifi_authenticate_NONE(){  ##function -wifi_authenticate_PSK(){ +wpa_authenticate_PSK(){  	DEVNAME=$1  	W_ESSID="$2" @@ -866,16 +839,16 @@ wifi_authenticate_WPA(){  	log "wifi_authenticate_WPA" "SEL_MODE: ${SEL_MODE}"   	case ${SEL_MODE} in  		"WPA+EAP/PEAP"|"WPA2+EAP/PEAP") -			wifi_authenticate_EAP_PEAP ${DEVNAME} ${W_ESSID} +		    wpa_authenticate_EAP_PEAP ${DEVNAME} ${W_ESSID}  		;;  		"WPA+EAP/TLS"|"WPA2+EAP/TLS") -			wifi_authenticate_EAP_TLS ${DEVNAME} ${W_ESSID} +			wpa_authenticate_EAP_TLS ${DEVNAME} ${W_ESSID}  		;;  		"WPA+PSK"|"WPA2+PSK") -			wifi_authenticate_PSK ${DEVNAME} ${W_ESSID} +			wpa_authenticate_PSK ${DEVNAME} ${W_ESSID}  			;;  		*) -			log "wifi_authenticate_PSK" "Error. SEL_MODE '${SEL_MODE}' unsupported" +			log "wifi_authenticate_WPA" "Error. SEL_MODE '${SEL_MODE}' unsupported"  	esac | 
