summaryrefslogtreecommitdiff
path: root/files/etc/init.d/n2n
blob: 26f2e72be4d7c492b3a28cb09b776a59963d242f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
#!/bin/sh /etc/rc.common
# Copyright (C) 2008 OpenWrt.org
[ -n "$IPKG_INSTROOT" ] && exit 0
START=90

config_cb() {
	local cfg="$CONFIG_SECTION"
	config_get configname "$cfg" TYPE

	case "$configname" in
		edge)
			config_get ipaddr "$cfg" ipaddr
			config_get supernode "$cfg" supernode
			config_get port "$cfg" port
			config_get community "$cfg" community
			config_get key "$cfg" key
			config_get_bool route "$cfg" route 0
			config_get devname "$cfg" devname
      node_mac=`ifconfig ath0 | grep HWaddr | awk '{print $5}' | tr -d "\n" | cut -c6-`
			[ "$route" = "1" ] && args='-r'
			if [ "$ipaddr" != "" ]; then
        mac_random=`echo $(head -30 /dev/urandom | tr -dc "0123456789" | head -c2)`
				edge -f $args -a 169.254.0.1 -d $devname -c $community -k $key -m 12:${mac_random}${node_mac} -l ${supernode}:${port}
				ifconfig $devname 0.0.0.0
				batctl if add $devname
			fi
		;;
		supernode)
			config_get port "$cfg" port
			if [ "$port" != "" ]; then
				supernode -l $port &
			fi
		;;
	esac
}

start() {
	config_load n2n
}
stop() {
	killall -9 edge
	killall supernode
}
contact: Jan Huwald // Impressum