From 5311c844b62cf0043e1db02f8220c3a5c55f7329 Mon Sep 17 00:00:00 2001 From: Nick Hainke Date: Fri, 18 Jun 2021 10:06:38 +0200 Subject: [PATCH] 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 --- olsrd/files/olsrd4.init | 12 ++++++++++++ olsrd/files/olsrd6.init | 11 +++++++++++ 2 files changed, 23 insertions(+) diff --git a/olsrd/files/olsrd4.init b/olsrd/files/olsrd4.init index ca71a42..ceb553a 100644 --- a/olsrd/files/olsrd4.init +++ b/olsrd/files/olsrd4.init @@ -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 diff --git a/olsrd/files/olsrd6.init b/olsrd/files/olsrd6.init index 8b81019..6d0b59b 100644 --- a/olsrd/files/olsrd6.init +++ b/olsrd/files/olsrd6.init @@ -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