Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/openwrt/routing.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/olsrd
diff options
context:
space:
mode:
authorNick Hainke <vincent@systemli.org>2021-06-18 11:06:38 +0300
committerPolynomdivision <vincent@systemli.org>2021-07-07 15:49:23 +0300
commit5311c844b62cf0043e1db02f8220c3a5c55f7329 (patch)
tree0708a046f6f7ac8afbf82f2e51eb55eef5fa1dab /olsrd
parent17b6e9982597fa6b6341a36d9e92fc75e5decb43 (diff)
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>
Diffstat (limited to 'olsrd')
-rw-r--r--olsrd/files/olsrd4.init12
-rw-r--r--olsrd/files/olsrd6.init11
2 files changed, 23 insertions, 0 deletions
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