[backfire] backport relayd, libubox and libjson-c
[openwrt-10.03/.git] / package / relayd / files / relay.hotplug
diff --git a/package/relayd/files/relay.hotplug b/package/relayd/files/relay.hotplug
new file mode 100644 (file)
index 0000000..b992fca
--- /dev/null
@@ -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
+