diff --git a/package/lean/luci-app-zerotier/Makefile b/package/lean/luci-app-zerotier/Makefile index 61d1f826ac..6275fce41a 100644 --- a/package/lean/luci-app-zerotier/Makefile +++ b/package/lean/luci-app-zerotier/Makefile @@ -10,7 +10,7 @@ LUCI_TITLE:=LuCI for Zerotier LUCI_DEPENDS:=+zerotier LUCI_PKGARCH:=all PKG_VERSION:=1.0 -PKG_RELEASE:=18 +PKG_RELEASE:=19 include $(TOPDIR)/feeds/luci/luci.mk diff --git a/package/lean/luci-app-zerotier/luasrc/model/cbi/zerotier/info.lua b/package/lean/luci-app-zerotier/luasrc/model/cbi/zerotier/info.lua index 9bc3824cfc..effb02708e 100644 --- a/package/lean/luci-app-zerotier/luasrc/model/cbi/zerotier/info.lua +++ b/package/lean/luci-app-zerotier/luasrc/model/cbi/zerotier/info.lua @@ -7,9 +7,9 @@ t = f:field(TextValue, "conf") t.rmempty = true t.rows = 15 function t.cfgvalue() - luci.sys.exec("ifconfig $(ifconfig | grep zt | awk '{print $1}') > /tmp/zero.info") + luci.sys.exec("for i in $(ifconfig | grep 'zt' | awk '{print $1}'); do ifconfig $i; done > /tmp/zero.info") return fs.readfile(conffile) or "" end t.readonly="readonly" -return f \ No newline at end of file +return f diff --git a/package/lean/luci-app-zerotier/root/etc/zerotier.start b/package/lean/luci-app-zerotier/root/etc/zerotier.start index eb7bb8c27b..a694e79737 100755 --- a/package/lean/luci-app-zerotier/root/etc/zerotier.start +++ b/package/lean/luci-app-zerotier/root/etc/zerotier.start @@ -1,29 +1,35 @@ #!/bin/sh -zero_enable=$(uci get zerotier.sample_config.enabled) +zero_enable="$(uci get zerotier.sample_config.enabled)" -if [ $zero_enable -eq 1 ]; then +[ "${zero_enable}" -ne "1" ] && exit 0 -if [ -f /tmp/zero.log ];then -while [ "$(ifconfig | grep zt | awk '{print $1}')" = "" ] -do - sleep 1 +[ -f "/tmp/zero.log" ] && { + while [ "$(ifconfig | grep 'zt' | awk '{print $1}')" = "" ] + do + sleep 1 + done +} + +nat_enable="$(uci get zerotier.sample_config.nat)" +zt0="$(ifconfig | grep 'zt' | awk '{print $1}')" +echo "${zt0}" > "/tmp/zt.nif" + +for i in ${zt0} +do + iptables -D FORWARD -i "$i" -j ACCEPT 2>/dev/null + iptables -D FORWARD -o "$i" -j ACCEPT 2>/dev/null + iptables -t nat -D POSTROUTING -o "$i" -j MASQUERADE 2>/dev/null done -fi -nat_enable=$(uci get zerotier.sample_config.nat) -zt0=$(ifconfig | grep zt | awk '{print $1}') - -echo $zt0 > /tmp/zt.nif -iptables -D FORWARD -i $zt0 -j ACCEPT 2>/dev/null -iptables -D FORWARD -o $zt0 -j ACCEPT 2>/dev/null -iptables -t nat -D POSTROUTING -o $zt0 -j MASQUERADE 2>/dev/null -if [ $nat_enable -eq 1 ]; then - iptables -I FORWARD -i $zt0 -j ACCEPT - iptables -I FORWARD -o $zt0 -j ACCEPT - iptables -t nat -I POSTROUTING -o $zt0 -j MASQUERADE - ip_segment=$(ip route | grep "dev $zt0 proto" | awk '{print $1}') - iptables -t nat -I POSTROUTING -s $ip_segment -j MASQUERADE -fi - -fi +[ "${nat_enable}" -eq "1" ] && { + for i in ${zt0} + do + ip_segment="" + iptables -I FORWARD -i "$i" -j ACCEPT + iptables -I FORWARD -o "$i" -j ACCEPT + iptables -t nat -I POSTROUTING -o "$i" -j MASQUERADE + ip_segment="$(ip route | grep "dev $i proto" | awk '{print $1}')" + iptables -t nat -I POSTROUTING -s "${ip_segment}" -j MASQUERADE + done +} diff --git a/package/lean/luci-app-zerotier/root/etc/zerotier.stop b/package/lean/luci-app-zerotier/root/etc/zerotier.stop index 68f3b718a6..cbe7ec4b6c 100755 --- a/package/lean/luci-app-zerotier/root/etc/zerotier.stop +++ b/package/lean/luci-app-zerotier/root/etc/zerotier.stop @@ -1,12 +1,15 @@ #!/bin/sh -zt0=$(ifconfig | grep zt | awk '{print $1}') -if [ "$zt0" = "" ]; then - zt0=$(cat /tmp/cat /tmp/zt.nif) -fi -echo "zt interface $zt0 is stopped!" -iptables -D FORWARD -i $zt0 -j ACCEPT 2>/dev/null -iptables -D FORWARD -o $zt0 -j ACCEPT 2>/dev/null -iptables -t nat -D POSTROUTING -o $zt0 -j MASQUERADE 2>/dev/null -ip_segment=$(ip route | grep "dev $zt0 proto" | awk '{print $1}') -iptables -t nat -D POSTROUTING -s $ip_segment -j MASQUERADE 2>/dev/null +zt0="$(ifconfig | grep 'zt' | awk '{print $1}')" +[ -z "${zt0}" ] && zt0="$(cat "/tmp/zt.nif")" + +for i in ${zt0} +do + ip_segment="" + iptables -D FORWARD -i "$i" -j ACCEPT 2>/dev/null + iptables -D FORWARD -o "$i" -j ACCEPT 2>/dev/null + iptables -t nat -D POSTROUTING -o "$i" -j MASQUERADE 2>/dev/null + ip_segment="$(ip route | grep "dev $i proto" | awk '{print $1}')" + iptables -t nat -D POSTROUTING -s "${ip_segment}" -j MASQUERADE 2>/dev/null + echo "zt interface $i is stopped!" +done