Home | History | Annotate | Download | only in examples
      1 #!/bin/sh
      2 
      3 CLI=wpa_cli
      4 
      5 pbc()
      6 {
      7 	echo "Starting PBC mode"
      8 	echo "Push button on the station within two minutes"
      9 	if ! $CLI wps_pbc | grep -q OK; then
     10 		echo "Failed to enable PBC mode"
     11 	fi
     12 }
     13 
     14 enter_pin()
     15 {
     16 	echo "Enter a PIN from a station to be enrolled to the network."
     17 	echo -n "Enrollee PIN: "
     18 	read pin
     19 	cpin=`$CLI wps_check_pin "$pin" | tail -1`
     20 	if [ "$cpin" = "FAIL-CHECKSUM" ]; then
     21 		echo "Checksum digit is not valid"
     22 		echo -n "Do you want to use this PIN (y/n)? "
     23 		read resp
     24 		case "$resp" in
     25 			y*)
     26 				cpin=`echo "$pin" | sed "s/[^1234567890]//g"`
     27 				;;
     28 			*)
     29 				return 1
     30 				;;
     31 		esac
     32 	fi
     33 	if [ "$cpin" = "FAIL" ]; then
     34 		echo "Invalid PIN: $pin"
     35 		return 1
     36 	fi
     37 	echo "Enabling Enrollee PIN: $cpin"
     38 	$CLI wps_pin any "$cpin"
     39 }
     40 
     41 show_config()
     42 {
     43 	$CLI status wps
     44 }
     45 
     46 main_menu()
     47 {
     48 	echo "WPS AP"
     49 	echo "------"
     50 	echo "1: Push button (activate PBC)"
     51 	echo "2: Enter Enrollee PIN"
     52 	echo "3: Show current configuration"
     53 	echo "0: Exit wps-ap-cli"
     54 
     55 	echo -n "Command: "
     56 	read cmd
     57 
     58 	case "$cmd" in
     59 		1)
     60 			pbc
     61 			;;
     62 		2)
     63 			enter_pin
     64 			;;
     65 		3)
     66 			show_config
     67 			;;
     68 		0)
     69 			exit 0
     70 			;;
     71 		*)
     72 			echo "Unknown command: $cmd"
     73 			;;
     74 	esac
     75 
     76 	echo
     77 	main_menu
     78 }
     79 
     80 
     81 main_menu
     82