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