tag rc6
[openwrt/svn-archive/openwrt.git] / package / olsrd / files / olsrd.init
1 #!/bin/sh
2
3 DEFAULT=/etc/default/olsrd
4 OPTIONS="-f /tmp/olsrd.conf"
5 [ -f $DEFAULT ] && . $DEFAULT
6
7 case $1 in
8 start)
9 lanip="$(nvram get lan_ipaddr)"
10 case "${lanip%\.*}" in
11 192.168.1|192.168.0)
12 HNA_IP=
13 HNA_MASK=
14 ;;
15 *)
16 HNA_IP="$lanip"
17 HNA_MASK="$(nvram get lan_netmask)"
18 ;;
19 esac
20 wifi_ifname="$(nvram get wifi_ifname)"
21 [ -z "$wifi_ifname" ] && grep '@INTERFACE@' /etc/olsrd.conf && {
22 echo No interface...
23 exit 1
24 }
25 (
26 cat <<EOF
27 @define HNA_IP $HNA_IP
28 @define HNA_MASK $HNA_MASK
29 @define INTERFACE "$wifi_ifname"
30 EOF
31 cat /etc/olsrd.conf
32 ) | awk -f /usr/lib/parse-config.awk > /tmp/olsrd.conf
33 iptables -D forwarding_rule -i "$wifi_ifname" -j ACCEPT 2>/dev/null >/dev/null # no duplicates please
34 iptables -D forwarding_rule -o "$wifi_ifname" -j ACCEPT 2>/dev/null >/dev/null
35 iptables -A forwarding_rule -i "$wifi_ifname" -j ACCEPT
36 iptables -A forwarding_rule -o "$wifi_ifname" -j ACCEPT
37 [ -z "$HNA_IP" ] && {
38 iptables -t nat -D POSTROUTING -o "$wifi_ifname" -j MASQUERADE 2>/dev/null >/dev/null
39 iptables -t nat -A POSTROUTING -o "$wifi_ifname" -j MASQUERADE
40 }
41 olsrd $OPTIONS
42 ;;
43 *)
44 echo "usage: $0 (start)"
45 exit 1
46 esac
47
48 exit $?