Merge pull request #162 from HRogge/master
[feed/routing.git] / hnetd / files / hnetd.init
1 #!/bin/sh /etc/rc.common
2
3 # XXX - is there something that should cause reload? or can we just
4 # use info from netifd and let it handle dynamic changes? let's hope
5 # so..
6
7 START=90
8 STOP=10
9 USE_PROCD=1
10
11 DNSMASQ_DIR=/tmp/dnsmasq.d
12 DNSMASQ_SCRIPT=/etc/init.d/dnsmasq
13 OHP_SCRIPT=/usr/sbin/hnetd-ohp-script
14 OHP_BINARY=/usr/sbin/ohybridproxy
15 DDZ_SCRIPT=/usr/sbin/hnetd-ddz-script
16 DDZ_BINARY=/usr/sbin/zonestitcher
17 PCP_SCRIPT=/usr/sbin/hnetd-pcp-script
18 PCP_BINARY=/usr/sbin/minimalist-pcproxy
19 MULTICAST_SCRIPT=/usr/sbin/hnet-multicast
20 WIFI_SCRIPT=/usr/sbin/autowifi
21
22 start_service() {
23 . /lib/functions.sh
24 . /lib/functions/network.sh
25 config_load hnet
26
27 mkdir -p $DNSMASQ_DIR
28 procd_open_instance
29 procd_set_param command /usr/sbin/hnetd
30
31 # SD parts are here (make configurable?)
32 if [ -f $OHP_BINARY -a -f $DNSMASQ_SCRIPT ]
33 then
34 mkdir -p $DNSMASQ_DIR
35 procd_append_param command -d $DNSMASQ_SCRIPT
36 procd_append_param command -f $DNSMASQ_DIR/hnet.conf
37 procd_append_param command -o $OHP_SCRIPT
38 HOSTNAME=`cat /proc/sys/kernel/hostname`
39 if [ -n "$HOSTNAME" ]
40 then
41 procd_append_param command -n "$HOSTNAME"
42 fi
43 if [ -f $DDZ_BINARY ]
44 then
45 procd_append_param command -z $DDZ_SCRIPT
46 fi
47 fi
48
49 # Enable multicast if present and installed
50 if [ -f "$MULTICAST_SCRIPT" ]
51 then
52 $MULTICAST_SCRIPT status && procd_append_param command -M "$MULTICAST_SCRIPT"
53 fi
54
55 config_get enableval wifi enable
56 if [ -f "$WIFI_SCRIPT" -a "$enableval" = "1" ]; then
57 wifiopt=$WIFI_SCRIPT
58 config_get ssidval wifi ssid
59 config_get passval wifi password
60 if [ -n "$ssidval" -a -n "$passval" ]; then
61 wifiopt=${wifiopt},${ssidval}:${passval}
62 fi
63 procd_append_param command -w "$wifiopt"
64 fi
65
66 # Enable PCP, if it's present
67 if [ -f $PCP_BINARY -a -f $PCP_SCRIPT ]
68 then
69 procd_append_param command -c $PCP_SCRIPT
70 fi
71
72 # State file
73 config_get val pa persistent_store
74 procd_append_param command -s ${val:-/tmp/hnetd.pa_state}
75
76 # Routing script
77 procd_append_param command -r /usr/sbin/hnetd-routing
78
79 [ -x /usr/sbin/hnetd-tunnel ] && \
80 procd_append_param command -t /usr/sbin/hnetd-tunnel
81
82 # Prefix assignment (pa)
83 config_get val pa ip4prefix
84 [ -n "$val" ] && procd_append_param command --ip4prefix $val
85
86 config_get val pa ulaprefix
87 [ -n "$val" ] && procd_append_param command --ulaprefix $val
88
89 config_get val pa ulamode
90 [ -n "$val" ] && procd_append_param command --ulamode $val
91
92 # Service discovery (sd)
93 config_get val sd router_name
94 [ -n "$val" ] && procd_append_param command -n $val
95
96 config_get val sd domain_name
97 [ -n "$val" ] && procd_append_param command -m $val
98
99 # Security (needs security-enabled build)
100 config_get val security password
101 [ -n "$val" ] && procd_append_param command --password $val
102
103 config_get val security certificate_file
104 [ -n "$val" ] && procd_append_param command --certificate $val
105
106 config_get val security private_key_file
107 [ -n "$val" ] && procd_append_param command --privatekey $val
108
109 config_get val security trust_store
110 [ -n "$val" ] && procd_append_param command --trust $val
111
112 config_get val security trust_certificate_file
113 [ -n "$val" ] && procd_append_param command --verify-path $val
114
115 # For more verbose logging, uncomment this:
116 #procd_append_param command --loglevel 7
117
118 procd_set_param respawn
119 procd_close_instance
120 }
121
122 service_triggers() {
123 procd_add_reload_trigger "hnet"
124 }