|  | #!/bin/sh | 
|  |  | 
|  | CLI=wpa_cli | 
|  |  | 
|  | pbc() | 
|  | { | 
|  | echo "Starting PBC mode" | 
|  | echo "Push button on the station within two minutes" | 
|  | if ! $CLI wps_pbc | grep -q OK; then | 
|  | echo "Failed to enable PBC mode" | 
|  | fi | 
|  | } | 
|  |  | 
|  | enter_pin() | 
|  | { | 
|  | echo "Enter a PIN from a station to be enrolled to the network." | 
|  | read -p "Enrollee PIN: " pin | 
|  | cpin=`$CLI wps_check_pin "$pin" | tail -1` | 
|  | if [ "$cpin" = "FAIL-CHECKSUM" ]; then | 
|  | echo "Checksum digit is not valid" | 
|  | read -p "Do you want to use this PIN (y/n)? " resp | 
|  | case "$resp" in | 
|  | y*) | 
|  | cpin=`echo "$pin" | sed "s/[^1234567890]//g"` | 
|  | ;; | 
|  | *) | 
|  | return 1 | 
|  | ;; | 
|  | esac | 
|  | fi | 
|  | if [ "$cpin" = "FAIL" ]; then | 
|  | echo "Invalid PIN: $pin" | 
|  | return 1 | 
|  | fi | 
|  | echo "Enabling Enrollee PIN: $cpin" | 
|  | $CLI wps_pin any "$cpin" | 
|  | } | 
|  |  | 
|  | show_config() | 
|  | { | 
|  | $CLI status wps | 
|  | } | 
|  |  | 
|  | main_menu() | 
|  | { | 
|  | echo "WPS AP" | 
|  | echo "------" | 
|  | echo "1: Push button (activate PBC)" | 
|  | echo "2: Enter Enrollee PIN" | 
|  | echo "3: Show current configuration" | 
|  | echo "0: Exit wps-ap-cli" | 
|  |  | 
|  | read -p "Command: " cmd | 
|  |  | 
|  | case "$cmd" in | 
|  | 1) | 
|  | pbc | 
|  | ;; | 
|  | 2) | 
|  | enter_pin | 
|  | ;; | 
|  | 3) | 
|  | show_config | 
|  | ;; | 
|  | 0) | 
|  | exit 0 | 
|  | ;; | 
|  | *) | 
|  | echo "Unknown command: $cmd" | 
|  | ;; | 
|  | esac | 
|  |  | 
|  | echo | 
|  | main_menu | 
|  | } | 
|  |  | 
|  |  | 
|  | main_menu |