#!/bin/sh urldecode() { echo -e "$(echo "$1" | sed "s/+/ /g; s/%\([0-9A-Fa-f][0-9A-Fa-f]\)/\\\\x\1/g")" } if [ "$REQUEST_METHOD" = "POST" ]; then read -n "$CONTENT_LENGTH" POST_DATA 2>/dev/null action=$(echo "$POST_DATA" | tr "&" "\n" | grep "^action=" | cut -d= -f2-) new_ssid=$(echo "$POST_DATA" | tr "&" "\n" | grep "^ssid=" | cut -d= -f2-) new_key=$(echo "$POST_DATA" | tr "&" "\n" | grep "^key=" | cut -d= -f2-) new_ssid=$(urldecode "$new_ssid") new_key=$(urldecode "$new_key") case "$action" in toggle) disabled=$(uci get wireless.radio0.disabled 2>/dev/null || echo 0) if [ "$disabled" = "1" ]; then uci set wireless.radio0.disabled="0" uci commit wireless wifi up & else uci set wireless.radio0.disabled="1" uci commit wireless wifi down & fi ;; update) [ -n "$new_ssid" ] && uci set wireless.default_radio0.ssid="$new_ssid" [ -n "$new_key" ] && [ ${#new_key} -ge 8 ] && uci set wireless.default_radio0.key="$new_key" uci commit wireless wifi reload & ;; esac fi disabled=$(uci get wireless.radio0.disabled 2>/dev/null || echo 0) ssid=$(uci get wireless.default_radio0.ssid 2>/dev/null) [ "$disabled" = "1" ] && wstatus="Disabled" && wcolor="#dc2626" && toggle_lbl="Enable WiFi" \ || wstatus="Enabled" && wcolor="#16a34a" && toggle_lbl="Disable WiFi" echo "Content-Type: text/html" echo "" cat << HTML WiFi Control

WiFi Control

Status: ${wstatus}
SSID: ${ssid}

Changes apply within ~5 seconds

HTML