6b98b8c790b6dc269e3263a5bcb24c33a5757ad6
[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 PCP_SCRIPT=/usr/sbin/hnetd-pcp-script
16 PCP_BINARY=/usr/sbin/minimalist-pcproxy
17
18 start_service() {
19 . /lib/functions.sh
20 . /lib/functions/network.sh
21 config_load hnet
22
23 mkdir -p $DNSMASQ_DIR
24 procd_open_instance
25 procd_set_param command /usr/sbin/hnetd
26
27 # SD parts are here (make configurable?)
28 if [ -f $OHP_BINARY -a -f $DNSMASQ_SCRIPT ]
29 then
30 mkdir -p $DNSMASQ_DIR
31 procd_append_param command -d $DNSMASQ_SCRIPT
32 procd_append_param command -f $DNSMASQ_DIR/hnet.conf
33 procd_append_param command -o $OHP_SCRIPT
34 HOSTNAME=`cat /proc/sys/kernel/hostname`
35 if [ -n "$HOSTNAME" ]
36 then
37 procd_append_param command -n "$HOSTNAME"
38 fi
39 fi
40
41 # Enable PCP, if it's present
42 if [ -f $PCP_BINARY -a -f $PCP_SCRIPT ]
43 then
44 procd_append_param command -c $PCP_SCRIPT
45 fi
46
47 # State file
48 config_get val pa persistent_store
49 procd_append_param command -s ${val:-/tmp/hnetd.pa_state}
50
51 # Routing script
52 procd_append_param command -r /usr/sbin/hnetd-routing
53
54 [ -x /usr/sbin/hnetd-tunnel ] && \
55 procd_append_param command -t /usr/sbin/hnetd-tunnel
56
57 # Prefix assignment (pa)
58 config_get val pa ip4prefix
59 [ -n "$val" ] && procd_append_param command --ip4prefix $val
60
61 config_get val pa ulaprefix
62 [ -n "$val" ] && procd_append_param command --ulaprefix $val
63
64 config_get val pa ulamode
65 [ -n "$val" ] && procd_append_param command --ulamode $val
66
67 # Service discovery (sd)
68 config_get val sd router_name
69 [ -n "$val" ] && procd_append_param command -n $val
70
71 config_get val sd domain_name
72 [ -n "$val" ] && procd_append_param command -m $val
73
74 # Security (needs security-enabled build)
75 config_get val security password
76 [ -n "$val" ] && procd_append_param command --password $val
77
78 config_get val security certificate_file
79 [ -n "$val" ] && procd_append_param command --certificate $val
80
81 config_get val security private_key_file
82 [ -n "$val" ] && procd_append_param command --privatekey $val
83
84 config_get val security trust_store
85 [ -n "$val" ] && procd_append_param command --trust $val
86
87 config_get val security trust_certificate_file
88 [ -n "$val" ] && procd_append_param command --verify-path $val
89
90 # For more verbose logging, uncomment this:
91 #procd_append_param command --loglevel 7
92
93 procd_set_param respawn
94 procd_close_instance
95 }
96
97 service_triggers() {
98 procd_add_reload_trigger "hnet"
99 }