Before, we used a procd netdev trigger, but that fired *way* too often (maybe
once per router announcement received?), causing high load for nothing.
This basically reverts to the behaviour before commit d8bb978, only that the
init script still handles argument collection.
21 lines
824 B
Bash
Executable File
21 lines
824 B
Bash
Executable File
#!/bin/sh /etc/rc.common
|
|
|
|
USE_PROCD=1
|
|
START=50
|
|
|
|
DAEMON=/usr/bin/respondd
|
|
MAXDELAY=10
|
|
|
|
start_service() {
|
|
local ifdump="$(ubus call network.interface dump)"
|
|
|
|
local meshdevs=$(for dev in $(echo "$ifdump" | jsonfilter -e "@.interface[@.proto='gluon_mesh' && @.up=true].device"); do echo " -i $dev";done;)
|
|
local clientdevs=$(for dev in $(echo "$ifdump" | jsonfilter -e "@.interface[@.interface='$(cat /lib/gluon/respondd/client.dev 2>/dev/null)' && @.up=true].device"); do echo " -i $dev -t $MAXDELAY";done;)
|
|
|
|
procd_open_instance
|
|
procd_set_param command $DAEMON -d /usr/lib/respondd -d /lib/gluon/respondd -p 1001 -g ff02::2:1001 $meshdevs $clientdevs -g ff05::2:1001 $clientdevs
|
|
procd_set_param respawn ${respawn_threshold:-3600} ${respawn_timeout:-5} ${respawn_retry:-5}
|
|
procd_set_param stderr 1
|
|
procd_close_instance
|
|
}
|