1 #!/bin/sh /etc/rc.common
2 # Copyright (C) 2008-2013 OpenWrt.org
4 .
$IPKG_INSTROOT/lib
/functions
/olsrd.sh
10 CONF
=/var
/etc
/$OLSRD.conf
11 PID
=/var
/run
/olsrd6.pid
15 ubus
-t 15 wait_for network.interface.
$1 2>/dev
/null
21 ubus
-t 15 wait_for network.wireless
2>/dev
/null
22 while [ $count -lt 30 ]; do
23 if [ "$(ubus call network.wireless status | jsonfilter -e '@[*]["pending
"]' | grep true | wc -l)" == "0" ]; then
34 config_foreach wait_for_network interface
36 rc_procd start_service
40 olsrd_generate_config
$OLSRD
45 local _respawn_threshold
46 local _respawn_timeout
49 config_get _respawn_threshold procd _respawn_threshold
3600
50 config_get _respawn_timeout procd respawn_timeout
15
51 config_get _respawn_retry procd respawn_retry
0
53 procd_set_param
command "$BIN"
54 procd_append_param
command -f ${CONF}
55 procd_append_param
command -nofork
56 procd_append_param
command -pidfile ${PID}
58 # restart if olsrd dies
59 procd_set_param respawn
$_respawn_threshold $_respawn_timeout $_respawn_retry
61 # automatically restart olsrd if generated cfg has changed
62 procd_set_param
file $CONF
64 procd_set_param pidfile
$PID
68 olsrd_setup_smartgw_rules
72 # reload if config changed via uci
73 procd_add_reload_trigger
"olsrd6"
75 # restart on ifup interface events
76 for n
in $
(olsrd_list_configured_interfaces
$OLSRD); do
77 procd_add_reload_interface_trigger
$n /etc
/init.d
/$OLSRD reload