Browse Source

gluon-respondd: restart on state change of client iface

Because we unconditionally appended `-i br-client` to the command line of
respondd, it wasn't restarted when br-client changed state. Now, we use a
jsonfilter expression on the network.interface dump data, similar to how the
other interface names are generated, and only add the interface to the argument
list if it is up.
Jan-Philipp Litza 7 years ago
parent
commit
6788eb9ca0

+ 1 - 1
package/gluon-mesh-batman-adv-core/files/lib/gluon/respondd/client.dev

@@ -1 +1 @@
-br-client
+client

+ 3 - 1
package/gluon-respondd/files/etc/init.d/gluon-respondd

@@ -7,7 +7,9 @@ DAEMON=/usr/bin/respondd
 
 start_service() {
 	DEVS=""
-	for dev in $( ubus call network.interface dump | jsonfilter -e "@.interface[@.proto='gluon_mesh' && @.up=true].device") $(cat /lib/gluon/respondd/client.dev 2>/dev/null)
+	for dev in $( ubus call network.interface dump | jsonfilter \
+		-e "@.interface[@.proto='gluon_mesh' && @.up=true].device" \
+		-e "@.interface[@.interface='$(cat /lib/gluon/respondd/client.dev 2>/dev/null)' && @.up=true].device")
 	do
 		DEVS="$DEVS -i $dev"
 	done