olsrd: fix olsrd starting before network

Should fix #691.

Sometimes the wifi interface is not ready before olsrd tries to access
it. This leads to warnings in the form of:

daemon.info olsrd: /etc/rc.d/S65olsrd: olsrd_write_interface()
	Warning: Interface 'wireless0' not found, skipped
daemon.notice procd: /etc/rc.d/S65olsrd: olsrd: /etc/rc.d/S65olsrd:
	olsrd_write_interface() Warning: Interface 'wireless0' not found,			skipped

We make use of the "wait_for" procd command that allows us to wait for
the network before starting olsrd.

Tested-by: Noki
Signed-off-by: Nick Hainke <vincent@systemli.org>
This commit is contained in:
Nick Hainke 2021-06-18 10:06:38 +02:00 committed by Polynomdivision
parent 17b6e99825
commit 5311c844b6
2 changed files with 23 additions and 0 deletions

View File

@ -10,6 +10,18 @@ OLSRD=olsrd
CONF=/var/etc/$OLSRD.conf
PID=/var/run/olsrd.pid
wait_for_network()
{
ubus -t 15 wait_for network.interface.$1 2>/dev/null
}
boot()
{
config_load network
config_foreach wait_for_network interface
rc_procd start_service
}
start_service() {
olsrd_generate_config $OLSRD

View File

@ -10,6 +10,17 @@ OLSRD=olsrd6
CONF=/var/etc/$OLSRD.conf
PID=/var/run/olsrd6.pid
wait_for_network()
{
ubus -t 15 wait_for network.interface.$1 2>/dev/null
}
boot()
{
config_load network
config_foreach wait_for_network interface
rc_procd start_service
}
start_service() {
olsrd_generate_config $OLSRD