summaryrefslogtreecommitdiff
path: root/multitech/recipes/ocg-scripts/ocg-scripts-1.0/ocg-wifi-ap
diff options
context:
space:
mode:
Diffstat (limited to 'multitech/recipes/ocg-scripts/ocg-scripts-1.0/ocg-wifi-ap')
-rwxr-xr-xmultitech/recipes/ocg-scripts/ocg-scripts-1.0/ocg-wifi-ap65
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