diff --git a/olsrd/files/olsrd4.init b/olsrd/files/olsrd4.init index bcfedcd..e2b2afe 100644 --- a/olsrd/files/olsrd4.init +++ b/olsrd/files/olsrd4.init @@ -1,29 +1,37 @@ #!/bin/sh /etc/rc.common -# Copyright (C) 2008-2015 OpenWrt.org . $IPKG_INSTROOT/lib/functions/olsrd.sh START=65 USE_PROCD=1 -CONF=/var/etc/olsrd.conf +BIN=/usr/sbin/olsrd OLSRD=olsrd +CONF=/var/etc/$OLSRD.conf start_service() { olsrd_generate_config $OLSRD procd_open_instance - procd_set_param command /usr/sbin/olsrd -f $CONF -nofork - procd_set_param respawn - procd_set_param file $CONF # automatically restart olsrd if cfg has changed + procd_set_param command "$BIN" + procd_append_param command -f ${CONF} + procd_append_param command -nofork - # restart on ifup interface events - local network = olsrd_list_configured_interfaces $OLSRD - for n in $network; do - procd_add_reload_interface_trigger $n /etc/init.d/$OLSRD reload - done + # restart if olsrd dies + procd_set_param respawn + + # automatically restart olsrd if generated cfg has changed + procd_set_param file $CONF procd_close_instance olsrd_setup_smartgw_rules } + +service_triggers() { + # restart on ifup interface events + procd_add_reload_trigger $OLSRD + for n in $(olsrd_list_configured_interfaces $OLSRD); do + procd_add_reload_interface_trigger $n /etc/init.d/$OLSRD reload + done +} diff --git a/olsrd/files/olsrd6.init b/olsrd/files/olsrd6.init index bb6ffb6..47b7e94 100644 --- a/olsrd/files/olsrd6.init +++ b/olsrd/files/olsrd6.init @@ -5,25 +5,34 @@ START=65 USE_PROCD=1 -CONF=/var/etc/olsrd6.conf +BIN=/usr/sbin/olsrd OLSRD=olsrd6 +CONF=/var/etc/$OLSRD.conf start_service() { olsrd_generate_config $OLSRD procd_open_instance - procd_set_param command /usr/sbin/olsrd -f $CONF -nofork - procd_set_param respawn - procd_set_param file $CONF # automatically restart olsrd if cfg has changed + procd_set_param command "$BIN" + procd_append_param command -f ${CONF} + procd_append_param command -nofork - # restart on ifup interface events - local network = olsrd_list_configured_interfaces $OLSRD - for n in $network; do - procd_add_reload_interface_trigger $n /etc/init.d/$OLSRD reload - done + # restart if olsrd dies + procd_set_param respawn + + # automatically restart olsrd if generated cfg has changed + procd_set_param file $CONF procd_close_instance olsrd_setup_smartgw_rules } + +service_triggers() { + # restart on ifup interface events + procd_add_reload_trigger $OLSRD + for n in $(olsrd_list_configured_interfaces $OLSRD); do + procd_add_reload_interface_trigger $n /etc/init.d/$OLSRD reload + done +}