summaryrefslogtreecommitdiffhomepage
path: root/proto/netifd-proto.sh
diff options
context:
space:
mode:
authorFelix Fietkau <nbd@openwrt.org>2011-09-10 18:34:43 +0200
committerFelix Fietkau <nbd@openwrt.org>2011-09-10 18:34:43 +0200
commitc601d036d6e9efce0c31eecd0fc66a716f41f2a3 (patch)
treeffd5a7d605f1c05f56f1264f49a1c8403863acfe /proto/netifd-proto.sh
parent0e54c1a6088b7df98da521e4b60ac8b7e6429662 (diff)
fix invoking shell protocol handler scripts
Diffstat (limited to 'proto/netifd-proto.sh')
-rwxr-xr-xproto/netifd-proto.sh14
1 files changed, 12 insertions, 2 deletions
diff --git a/proto/netifd-proto.sh b/proto/netifd-proto.sh
index 3764281..b91863f 100755
--- a/proto/netifd-proto.sh
+++ b/proto/netifd-proto.sh
@@ -26,7 +26,11 @@ add_default_handler() {
esac
}
-case "$1" in
+proto="$1"
+cmd="$2"
+data="$3"
+
+case "$cmd" in
dump)
add_protocol() {
immediate=0
@@ -45,7 +49,13 @@ case "$1" in
;;
*)
add_protocol() {
- return;
+ [[ "$proto" == "$1" ]] || return 0
+
+ case "$cmd" in
+ setup) eval "$1_setup \"\$data\"" ;;
+ teardown) eval "$1_teardown \"\$data\"" ;;
+ *) return 1 ;;
+ esac
}
;;
esac