summaryrefslogtreecommitdiffstats
path: root/package/relayd/files/relay.hotplug
diff options
context:
space:
mode:
Diffstat (limited to 'package/relayd/files/relay.hotplug')
-rw-r--r--package/relayd/files/relay.hotplug36
1 files changed, 36 insertions, 0 deletions
diff --git a/package/relayd/files/relay.hotplug b/package/relayd/files/relay.hotplug
new file mode 100644
index 000000000..b992fca08
--- /dev/null
+++ b/package/relayd/files/relay.hotplug
@@ -0,0 +1,36 @@
+#!/bin/sh
+
+# Break recursion
+[ "$PROTO" = "relay" ] && exit 0
+
+include /lib/network
+scan_interfaces
+
+restart_relayd() {
+ local cfg="$1"
+
+ local proto
+ config_get proto "$1" proto
+ [ "$proto" = "relay" ] || return 0
+
+ local net networks
+ config_get networks "$cfg" network
+ for net in $networks; do
+ [ "$net" = "$INTERFACE" ] && {
+ env -i /sbin/ifup "$cfg" &
+ return 0
+ }
+ done
+
+ local ifn ifnames
+ config_get ifnames "$cfg" ifname
+ for ifn in $ifnames; do
+ [ "$ifn" = "$DEVICE" ] && {
+ env -i /sbin/ifup "$cfg" &
+ return 0
+ }
+ done
+}
+
+config_foreach restart_relayd interface
+