From f449e312981b3bb7581d8a2ee6f7f27df57a6d3d Mon Sep 17 00:00:00 2001 From: Christof Schulze Date: Fri, 2 Dec 2016 12:21:03 +0100 Subject: [PATCH] the mesh-package provides the information on which device respondd should be running besides mesh-interfaces --- .../files/lib/gluon/respondd/client.dev | 1 + .../etc/hotplug.d/iface/10-gluon-respondd | 22 +++++++++++++++++++ .../files/etc/init.d/gluon-respondd | 2 +- 3 files changed, 24 insertions(+), 1 deletion(-) create mode 100644 package/gluon-mesh-batman-adv-core/files/lib/gluon/respondd/client.dev create mode 100644 package/gluon-respondd/files/etc/hotplug.d/iface/10-gluon-respondd diff --git a/package/gluon-mesh-batman-adv-core/files/lib/gluon/respondd/client.dev b/package/gluon-mesh-batman-adv-core/files/lib/gluon/respondd/client.dev new file mode 100644 index 00000000..30594e2c --- /dev/null +++ b/package/gluon-mesh-batman-adv-core/files/lib/gluon/respondd/client.dev @@ -0,0 +1 @@ +br-client diff --git a/package/gluon-respondd/files/etc/hotplug.d/iface/10-gluon-respondd b/package/gluon-respondd/files/etc/hotplug.d/iface/10-gluon-respondd new file mode 100644 index 00000000..7bdfe3ee --- /dev/null +++ b/package/gluon-respondd/files/etc/hotplug.d/iface/10-gluon-respondd @@ -0,0 +1,22 @@ +#!/bin/sh + +. /usr/share/libubox/jshn.sh +. /lib/functions/service.sh + +DEVLIST=/var/run/gluon-respondd.devs + +ifname_to_dev () { + json_load "$(ubus call network.interface.$1 status)" + json_get_var dev device + + echo "$dev" +} + +case "$ACTION" in + ifup) + DEVICE="$(ifname_to_dev "$INTERFACE")" + + [ "$DEVICE" == $(cat /lib/gluon/respondd/client.dev) ] && + /etc/init.d/gluon-respondd restart_if_running & + ;; +esac diff --git a/package/gluon-respondd/files/etc/init.d/gluon-respondd b/package/gluon-respondd/files/etc/init.d/gluon-respondd index 343770cc..5dab75a7 100755 --- a/package/gluon-respondd/files/etc/init.d/gluon-respondd +++ b/package/gluon-respondd/files/etc/init.d/gluon-respondd @@ -13,7 +13,7 @@ LOCK=/var/run/gluon-respondd.lock do_start() { DEVS="" - for dev in $( ubus call network.interface dump | jsonfilter -e "@.interface[@.proto='gluon_mesh' && @.up=true].device") br-client + for dev in $( ubus call network.interface dump | jsonfilter -e "@.interface[@.proto='gluon_mesh' && @.up=true].device") $(cat /lib/gluon/respondd/client.dev) do DEVS="$DEVS -i $dev" done