diff options
Diffstat (limited to 'multitech/recipes/ocg-scripts/ocg-scripts-1.0/ocg-wifi-ap')
-rwxr-xr-x | multitech/recipes/ocg-scripts/ocg-scripts-1.0/ocg-wifi-ap | 65 |
1 files changed, 65 insertions, 0 deletions
diff --git a/multitech/recipes/ocg-scripts/ocg-scripts-1.0/ocg-wifi-ap b/multitech/recipes/ocg-scripts/ocg-scripts-1.0/ocg-wifi-ap new file mode 100755 index 0000000..19f6cc1 --- /dev/null +++ b/multitech/recipes/ocg-scripts/ocg-scripts-1.0/ocg-wifi-ap @@ -0,0 +1,65 @@ +#!/bin/bash + +dhcpd_file=/etc/udhcpd.conf +interface=wlan0 + +do_start() { + echo "starting hostap daemon" + /etc/init.d/hostapd start + echo "setting IP address of access point" + ifconfig $interface $1 + if ! grep -E -q "^interface\s+$interface" $dhcpd_file; then + echo "Changing dhcpd interface to $interface" + sed -r -i "s/^interface\s+.*$/interface $interface/" $dhcpd_file + fi + ocg-dhcpd start +} + +do_stop() { + echo "stopping hostap daemon" + /etc/init.d/hostapd stop + ocg-dhcpd stop +} + +# main +if [[ $# -lt 1 ]] +then + echo "usage: $0 start|stop|restart [access point IP address]" + exit 1 +elif [[ $# -eq 2 ]] +then + ret=1 + if [[ $2 =~ ^([0-9]{1,3}\.){3,3}[0-9]{1,3}$ ]] + then + OIFS=$IFS + IFS='.' + ip=($2) + IFS=$OFIS + [[ ${ip[0]} -le 255 && ${ip[1]} -le 255 && ${ip[2]} -le 255 && ${ip[3]} -le 255 ]] + ret=$? + fi + if [[ ret -ne 0 ]] + then + echo "invalid IP address" + exit 1 + fi + ip=$2 +else + ip="192.168.2.1" +fi + +case $1 in + start) + do_start $ip + ;; + stop) + do_stop + ;; + restart) + do_stop + sleep 1 + do_start $ip + ;; +esac + +exit 0 |