diff --git a/luci-app-zerotier-master/.gitattributes b/luci-app-zerotier-master/.gitattributes new file mode 100644 index 000000000..dfe077042 --- /dev/null +++ b/luci-app-zerotier-master/.gitattributes @@ -0,0 +1,2 @@ +# Auto detect text files and perform LF normalization +* text=auto diff --git a/luci-app-zerotier-master/.gitignore b/luci-app-zerotier-master/.gitignore new file mode 100644 index 000000000..5b9bd8749 --- /dev/null +++ b/luci-app-zerotier-master/.gitignore @@ -0,0 +1,2 @@ + +*.bak diff --git a/luci-app-zerotier/Makefile b/luci-app-zerotier-master/Makefile old mode 100755 new mode 100644 similarity index 88% rename from luci-app-zerotier/Makefile rename to luci-app-zerotier-master/Makefile index 5c070ef7c..d557df631 --- a/luci-app-zerotier/Makefile +++ b/luci-app-zerotier-master/Makefile @@ -9,11 +9,11 @@ include $(TOPDIR)/rules.mk LUCI_TITLE:=LuCI for Zerotier LUCI_DEPENDS:=+zerotier LUCI_PKGARCH:=all - -PKG_NAME:=luci-app-zerotier PKG_VERSION:=1.0 -PKG_RELEASE:=21 +PKG_RELEASE:=17 include $(TOPDIR)/feeds/luci/luci.mk # call BuildPackage - OpenWrt buildroot signature + + diff --git a/luci-app-zerotier-master/README.md b/luci-app-zerotier-master/README.md new file mode 100644 index 000000000..bd9822cdd --- /dev/null +++ b/luci-app-zerotier-master/README.md @@ -0,0 +1,4 @@ +# luci-app-zerotier + +你不在乎网络安全,可我在乎
+与lean原版相比使用了op自带的防火墙,并增添了流量权限控制 \ No newline at end of file diff --git a/luci-app-zerotier-master/luasrc/controller/zerotier.lua b/luci-app-zerotier-master/luasrc/controller/zerotier.lua new file mode 100644 index 000000000..04559fb42 --- /dev/null +++ b/luci-app-zerotier-master/luasrc/controller/zerotier.lua @@ -0,0 +1,24 @@ +module("luci.controller.zerotier",package.seeall) + +function index() + if not nixio.fs.access("/etc/config/zerotier")then +return +end + +entry({"admin","vpn"}, firstchild(), "VPN", 45).dependent = false + +entry({"admin", "vpn", "zerotier"},firstchild(), _("ZeroTier")).dependent = false + +entry({"admin", "vpn", "zerotier", "general"},cbi("zerotier/settings"), _("Base Setting"), 1) +entry({"admin", "vpn", "zerotier", "log"},form("zerotier/info"), _("Interface Info"), 2) +entry({"admin", "vpn", "zerotier", "manual"},cbi("zerotier/manual"), _("Manual Config"), 3) + +entry({"admin","vpn","zerotier","status"},call("act_status")) +end + +function act_status() +local e={} + e.running=luci.sys.call("pgrep /usr/bin/zerotier-one >/dev/null")==0 + luci.http.prepare_content("application/json") + luci.http.write_json(e) +end diff --git a/luci-app-zerotier-master/luasrc/model/cbi/zerotier/info.lua b/luci-app-zerotier-master/luasrc/model/cbi/zerotier/info.lua new file mode 100644 index 000000000..9bc3824cf --- /dev/null +++ b/luci-app-zerotier-master/luasrc/model/cbi/zerotier/info.lua @@ -0,0 +1,15 @@ +local fs = require "nixio.fs" +local conffile = "/tmp/zero.info" + +f = SimpleForm("logview") + +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") + return fs.readfile(conffile) or "" +end +t.readonly="readonly" + +return f \ No newline at end of file diff --git a/luci-app-zerotier-master/luasrc/model/cbi/zerotier/manual.lua b/luci-app-zerotier-master/luasrc/model/cbi/zerotier/manual.lua new file mode 100644 index 000000000..13a72d7c0 --- /dev/null +++ b/luci-app-zerotier-master/luasrc/model/cbi/zerotier/manual.lua @@ -0,0 +1,25 @@ +local m, s, o +local fs = require "nixio.fs" +local jsonc = require "luci.jsonc" or nil +m = Map("zerotier") +s=m:section(NamedSection,"sample_config","zerotier") +s.anonymous=true +s.addremove=false +o = s:option(TextValue, "manualconfig") +o.rows = 20 +o.wrap = "soft" +o.rmempty = true +o.cfgvalue = function(self, section) + return fs.readfile("/etc/config/zero/local.conf") +end +o.write = function(self, section, value) + fs.writefile("/etc/config/zero/local.conf", value:gsub("\r\n", "\n")) +end +o.validate=function(self, value) + if jsonc == nil or jsonc.parse(value)~=nil then + return value + end + return nil +end +o.description='https://www.zerotier.com/manual/
https://github.com/zerotier/ZeroTierOne/blob/db813db7e875c257e42c41ab8091c3df1e9300a5/service/README.md' +return m \ No newline at end of file diff --git a/luci-app-zerotier-master/luasrc/model/cbi/zerotier/settings.lua b/luci-app-zerotier-master/luasrc/model/cbi/zerotier/settings.lua new file mode 100644 index 000000000..7131f6728 --- /dev/null +++ b/luci-app-zerotier-master/luasrc/model/cbi/zerotier/settings.lua @@ -0,0 +1,34 @@ + +a=Map("zerotier",translate("ZeroTier"),translate("Zerotier is an open source, cross-platform and easy to use virtual LAN")) +a:section(SimpleSection).template = "zerotier/zerotier_status" + +t=a:section(NamedSection,"sample_config","zerotier") +t.anonymous=true +t.addremove=false + +e=t:option(Flag,"enabled",translate("Enable")) +e.default=0 +e.rmempty=false + +e=t:option(DynamicList,"join",translate('ZeroTier Network ID')) +e.password=true +e.rmempty=false + +e=t:option(Flag,"nat",translate("Auto NAT Clients")) +e.default=0 +e.rmempty=false + +e = t:option(MultiValue, "access", translate("Zerotier access control")) +e.default="lanfwzt ztfwwan ztfwlan" +e.rmempty=false +e:value("lanfwzt",translate("lan access zerotier")) +e:value("wanfwzt",translate("wan access zerotier")) +e:value("ztfwwan",translate("remote access wan")) +e:value("ztfwlan",translate("remote access lan")) +e.widget = "checkbox" + +e=t:option(DummyValue,"opennewwindow" , + translate("")) +e.description = translate("Create or manage your zerotier network, and auth clients who could access") + +return a diff --git a/luci-app-zerotier-master/luasrc/view/zerotier/zerotier_status.htm b/luci-app-zerotier-master/luasrc/view/zerotier/zerotier_status.htm new file mode 100644 index 000000000..9d216c5d9 --- /dev/null +++ b/luci-app-zerotier-master/luasrc/view/zerotier/zerotier_status.htm @@ -0,0 +1,22 @@ + + +
+

+ <%:Collecting data...%> +

+
diff --git a/luci-app-zerotier-master/po/zh-cn/zerotier.po b/luci-app-zerotier-master/po/zh-cn/zerotier.po new file mode 100644 index 000000000..2fb491ed4 --- /dev/null +++ b/luci-app-zerotier-master/po/zh-cn/zerotier.po @@ -0,0 +1,28 @@ +msgid "" +msgstr "" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Gtranslator 2.91.7\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +msgid "Zerotier is an open source, cross-platform and easy to use virtual LAN" +msgstr "Zerotier是一个开源,跨平台,而且适合内网穿透互联的傻瓜配置虚拟 VPN LAN" + +msgid "Auto NAT Clients" +msgstr "自动允许客户端NAT" + +msgid "Allow zerotier clients access your LAN network" +msgstr "允许Zerotier的拨入客户端访问路由器LAN资源(需要在 Zerotier管理页面设定到LAN网段的路由表)" + +msgid "Create or manage your zerotier network, and auth clients who could access" +msgstr "点击跳转到Zerotier官网管理平台,新建或者管理网络,并允许客户端接入访问你私人网路(新接入的节点默认不允许访问)" + +msgid "Interface Info" +msgstr "接口信息" + +msgid "Zerotier access control" +msgstr "Zerotier 准入控制" + +msgid "Manual Config" +msgstr "手动设置" diff --git a/luci-app-zerotier-master/root/etc/config/zero/local.conf b/luci-app-zerotier-master/root/etc/config/zero/local.conf new file mode 100644 index 000000000..2214f7cc1 --- /dev/null +++ b/luci-app-zerotier-master/root/etc/config/zero/local.conf @@ -0,0 +1,5 @@ +{ +"settings": { + "multipathMode": 2 + } + } \ No newline at end of file diff --git a/luci-app-zerotier-master/root/etc/init.d/zerotier b/luci-app-zerotier-master/root/etc/init.d/zerotier new file mode 100755 index 000000000..60cebbdc0 --- /dev/null +++ b/luci-app-zerotier-master/root/etc/init.d/zerotier @@ -0,0 +1,163 @@ +#!/bin/sh /etc/rc.common + +START=90 + +USE_PROCD=1 + +PROG=/usr/bin/zerotier-one +CONFIG_PATH=/var/lib/zerotier-one + +section_enabled() { + config_get_bool enabled "$1" 'enabled' 0 + [ $enabled -gt 0 ] +} +service_triggers() { + procd_add_reload_trigger zerotier +} +start_instance() { + local cfg="$1" + local port secret config_path + local ARGS="" + + if ! section_enabled "$cfg"; then + echo "disabled in config" + return 1 + fi + + [ -d /etc/config/zero ] || mkdir -p /etc/config/zero + config_path=/etc/config/zero + + config_get_bool port $cfg 'port' + config_get secret $cfg 'secret' + + # Remove existing link or folder + rm -rf $CONFIG_PATH + + # Create link from CONFIG_PATH to config_path + if [ -n "$config_path" -a "$config_path" != $CONFIG_PATH ]; then + if [ ! -d "$config_path" ]; then + echo "ZeroTier config_path does not exist: $config_path" + return + fi + + ln -s $config_path $CONFIG_PATH + fi + + mkdir -p $CONFIG_PATH/networks.d + + if [ -n "$port" ]; then + ARGS="$ARGS -p$port" + fi + + if [ "$secret" = "generate" ]; then + echo "Generate secret - please wait..." + local sf="/tmp/zt.$cfg.secret" + + zerotier-idtool generate "$sf" > /dev/null + [ $? -ne 0 ] && return 1 + + secret="$(cat $sf)" + rm "$sf" + + uci set zerotier.$cfg.secret="$secret" + uci commit zerotier + fi + + if [ -n "$secret" ]; then + echo "$secret" > $CONFIG_PATH/identity.secret + # make sure there is not previous identity.public + rm -f $CONFIG_PATH/identity.public + fi + + add_join() { + # an (empty) config file will cause ZT to join a network + touch $CONFIG_PATH/networks.d/$1.conf + } + + config_list_foreach $cfg 'join' add_join + + procd_open_instance + procd_set_param command $PROG $ARGS $CONFIG_PATH + procd_set_param stderr 1 + procd_close_instance + ( + [ -f "/var/run/zerotier.wait.pid" ] && return + touch /var/run/zerotier.wait.pid + while [ "$(ifconfig | grep zt | awk '{print $1}')" = "" ] + do + sleep 1 + done + zt0=$(ifconfig | grep zt | awk '{print $1}') + echo "zt interface $zt0 is started!" + if [ -z "$(uci get network.zerotier)" ]; then + uci set network.zerotier=interface + uci set network.zerotier.proto='static' + fi + config_get nat $cfg 'nat' + if [ "$nat" == "1" ]; then + if [ -z "$(uci get firewall.ztzone)" ]; then + uci set firewall.ztzone=zone + uci set firewall.ztzone.input='ACCEPT' + uci set firewall.ztzone.output='ACCEPT' + uci set firewall.ztzone.forward='REJECT' + uci set firewall.ztzone.masq='1' + uci set firewall.ztzone.name='zerotier' + uci set firewall.ztzone.network='zerotier' + fi + else + uci delete firewall.ztzone + fi + config_get access $cfg 'access' + if [ "${access//ztfwlan/}" != "$access" ]; then + uci set firewall.ztfwlan=forwarding + uci set firewall.ztfwlan.dest='lan' + uci set firewall.ztfwlan.src='zerotier' + else + uci delete firewall.ztfwlan + fi + if [ "${access//ztfwwan/}" != "$access" ]; then + uci set firewall.ztfwwan=forwarding + uci set firewall.ztfwwan.dest='wan' + uci set firewall.ztfwwan.src='zerotier' + else + uci delete firewall.ztfwwan + fi + if [ "${access//lanfwzt/}" != "$access" ]; then + uci set firewall.lanfwzt=forwarding + uci set firewall.lanfwzt.dest='zerotier' + uci set firewall.lanfwzt.src='lan' + else + uci delete firewall.lanfwzt + fi + if [ "${access//wanfwzt/}" != "$access" ]; then + uci set firewall.wanfwzt=forwarding + uci set firewall.wanfwzt.dest='zerotier' + uci set firewall.wanfwzt.src='wan' + else + uci delete firewall.wanfwzt + fi + uci set network.zerotier.ifname="$zt0" + [ -n "$(uci changes network)" ] && uci commit network && /etc/init.d/network reload + [ -n "$(uci changes firewall)" ] && uci commit firewall && /etc/init.d/firewall reload + rm /var/run/zerotier.wait.pid + ) & +} + +start_service() { + config_load 'zerotier' + config_foreach start_instance 'zerotier' +} + +stop_instance() { + rm -f /tmp/zero.log + local cfg="$1" + + # Remove existing link or folder + rm -rf $CONFIG_PATH +} + +stop_service() { + config_load 'zerotier' + config_foreach stop_instance 'zerotier' +} + diff --git a/luci-app-zerotier/root/etc/uci-defaults/40_luci-zerotier b/luci-app-zerotier-master/root/etc/uci-defaults/40_luci-zerotier similarity index 50% rename from luci-app-zerotier/root/etc/uci-defaults/40_luci-zerotier rename to luci-app-zerotier-master/root/etc/uci-defaults/40_luci-zerotier index 616824562..06f02e802 100755 --- a/luci-app-zerotier/root/etc/uci-defaults/40_luci-zerotier +++ b/luci-app-zerotier-master/root/etc/uci-defaults/40_luci-zerotier @@ -5,13 +5,6 @@ uci -q batch <<-EOF >/dev/null add ucitrack zerotier set ucitrack.@zerotier[-1].init=zerotier commit ucitrack - - delete firewall.zerotier - set firewall.zerotier=include - set firewall.zerotier.type=script - set firewall.zerotier.path=/etc/zerotier.start - set firewall.zerotier.reload=1 - commit firewall EOF rm -f /tmp/luci-indexcache diff --git a/luci-app-zerotier/root/etc/zerotier/zerotier.log b/luci-app-zerotier-master/root/etc/zerotier/zerotier.log old mode 100755 new mode 100644 similarity index 100% rename from luci-app-zerotier/root/etc/zerotier/zerotier.log rename to luci-app-zerotier-master/root/etc/zerotier/zerotier.log diff --git a/luci-app-zerotier/luasrc/controller/zerotier.lua b/luci-app-zerotier/luasrc/controller/zerotier.lua deleted file mode 100755 index f2973c65e..000000000 --- a/luci-app-zerotier/luasrc/controller/zerotier.lua +++ /dev/null @@ -1,24 +0,0 @@ -module("luci.controller.zerotier", package.seeall) - -function index() - if not nixio.fs.access("/etc/config/zerotier") then - return - end - - entry({"admin", "vpn"}, firstchild(), "VPN", 45).dependent = false - - entry({"admin", "vpn", "zerotier"}, alias("admin", "vpn", "zerotier", "general"), _("ZeroTier"), 99) - - entry({"admin", "vpn", "zerotier", "general"}, cbi("zerotier/settings"), _("Base Setting"), 1) - entry({"admin", "vpn", "zerotier", "log"}, form("zerotier/info"), _("Interface Info"), 2) - entry({"admin", "vpn", "zerotier", "manual"}, cbi("zerotier/manual"), _("Manual Config"), 3) - - entry({"admin", "vpn", "zerotier", "status"}, call("act_status")) -end - -function act_status() - local e = {} - e.running = luci.sys.call("pgrep /usr/bin/zerotier-one >/dev/null") == 0 - luci.http.prepare_content("application/json") - luci.http.write_json(e) -end diff --git a/luci-app-zerotier/luasrc/model/cbi/zerotier/info.lua b/luci-app-zerotier/luasrc/model/cbi/zerotier/info.lua deleted file mode 100755 index bb8fc3769..000000000 --- a/luci-app-zerotier/luasrc/model/cbi/zerotier/info.lua +++ /dev/null @@ -1,15 +0,0 @@ -local fs = require "nixio.fs" -local conffile = "/tmp/zero.info" - -f = SimpleForm("logview") - -t = f:field(TextValue, "conf") -t.rmempty = true -t.rows = 19 -function t.cfgvalue() - 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 diff --git a/luci-app-zerotier/luasrc/model/cbi/zerotier/manual.lua b/luci-app-zerotier/luasrc/model/cbi/zerotier/manual.lua deleted file mode 100755 index 71ae2bb37..000000000 --- a/luci-app-zerotier/luasrc/model/cbi/zerotier/manual.lua +++ /dev/null @@ -1,26 +0,0 @@ -local m, s, o -local fs = require "nixio.fs" -local jsonc = require "luci.jsonc" or nil -m = Map("zerotier") -s = m:section(NamedSection, "sample_config", "zerotier") -s.anonymous = true -s.addremove = false -o = s:option(TextValue, "manualconfig") -o.rows = 20 -o.wrap = "soft" -o.rmempty = true -o.cfgvalue = function(self, section) - return fs.readfile("/etc/config/zero/local.conf") -end -o.write = function(self, section, value) - fs.writefile("/etc/config/zero/local.conf", value:gsub("\r\n", "\n")) -end -o.validate = function(self, value) - if jsonc == nil or jsonc.parse(value) ~= nil then - return value - end - return nil -end -o.description = - 'https://www.zerotier.com/manual/
https://github.com/zerotier/ZeroTierOne/blob/dev/service/README.md' -return m diff --git a/luci-app-zerotier/luasrc/model/cbi/zerotier/settings.lua b/luci-app-zerotier/luasrc/model/cbi/zerotier/settings.lua deleted file mode 100755 index fc70a8581..000000000 --- a/luci-app-zerotier/luasrc/model/cbi/zerotier/settings.lua +++ /dev/null @@ -1,37 +0,0 @@ -a = Map("zerotier") -a.title = translate("ZeroTier") -a.description = translate("Zerotier is an open source, cross-platform and easy to use virtual LAN") - -a:section(SimpleSection).template = "zerotier/zerotier_status" - -t = a:section(NamedSection, "sample_config", "zerotier") -t.anonymous = true -t.addremove = false - -e = t:option(Flag, "enabled", translate("Enable")) -e.default = 0 -e.rmempty = false - -e = t:option(DynamicList, "join", translate('ZeroTier Network ID')) -e.password = true -e.rmempty = false - -e = t:option(Flag, "nat", translate("Auto NAT Clients")) -e.description = translate("Allow zerotier clients access your LAN network") -e.default = 0 -e.rmempty = false - -e = t:option(MultiValue, "access", translate("Zerotier Access Control")) -e.default = "lanfwzt ztfwwan ztfwlan" -e.rmempty = false -e:value("lanfwzt", translate("LAN Access Zerotier")) -e:value("wanfwzt", translate("WAN Access Zerotier")) -e:value("ztfwwan", translate("Remote Access WAN")) -e:value("ztfwlan", translate("Remote Access LAN")) -e.widget = "checkbox" - -e = t:option(DummyValue, "opennewwindow", translate( - "")) -e.description = translate("Create or manage your zerotier network, and auth clients who could access") - -return a diff --git a/luci-app-zerotier/luasrc/view/zerotier/zerotier_status.htm b/luci-app-zerotier/luasrc/view/zerotier/zerotier_status.htm deleted file mode 100755 index b2faf8e44..000000000 --- a/luci-app-zerotier/luasrc/view/zerotier/zerotier_status.htm +++ /dev/null @@ -1,29 +0,0 @@ - - -
-

- - <%:Collecting data...%> - -

-
\ No newline at end of file diff --git a/luci-app-zerotier/po/zh-cn/zerotier.po b/luci-app-zerotier/po/zh-cn/zerotier.po deleted file mode 100755 index 07adfeabc..000000000 --- a/luci-app-zerotier/po/zh-cn/zerotier.po +++ /dev/null @@ -1,35 +0,0 @@ -msgid "Zerotier is an open source, cross-platform and easy to use virtual LAN" -msgstr "Zerotier 是一个开源,跨平台,而且适合内网穿透互联的傻瓜配置虚拟 VPN LAN" - -msgid "Auto NAT Clients" -msgstr "自动允许客户端 NAT" - -msgid "Allow zerotier clients access your LAN network" -msgstr "允许 Zerotier 的拨入客户端访问路由器 LAN 资源(需要在 Zerotier 管理页面设定到 LAN 网段的路由表)" - -msgid "Create or manage your zerotier network, and auth clients who could access" -msgstr "点击跳转到 Zerotier 官网管理平台,新建或者管理网络,并允许客户端接入访问你私人网路(新接入的节点默认不允许访问)" - -msgid "Base Setting" -msgstr "基本设置" - -msgid "Interface Info" -msgstr "接口信息" - -msgid "Zerotier Access Control" -msgstr "Zerotier 准入控制" - -msgid "LAN Access Zerotier" -msgstr "LAN 可接入 Zerotier" - -msgid "WAN Access Zerotier" -msgstr "WAN 可接入 Zerotier" - -msgid "Remote Access WAN" -msgstr "外部访问可接入 WAN" - -msgid "Remote Access LAN" -msgstr "外部访问可接入 LAN" - -msgid "Manual Config" -msgstr "手动设置" diff --git a/luci-app-zerotier/po/zh_Hans b/luci-app-zerotier/po/zh_Hans deleted file mode 100755 index 41451e4a1..000000000 --- a/luci-app-zerotier/po/zh_Hans +++ /dev/null @@ -1 +0,0 @@ -zh-cn \ No newline at end of file diff --git a/luci-app-zerotier/root/etc/init.d/zerotier b/luci-app-zerotier/root/etc/init.d/zerotier deleted file mode 100755 index 666d67533..000000000 --- a/luci-app-zerotier/root/etc/init.d/zerotier +++ /dev/null @@ -1,113 +0,0 @@ -#!/bin/sh /etc/rc.common - -START=99 - -USE_PROCD=1 - -PROG=/usr/bin/zerotier-one -CONFIG_PATH=/var/lib/zerotier-one - -service_triggers() { - procd_add_reload_trigger "zerotier" - procd_add_interface_trigger "interface.*.up" wan /etc/init.d/zerotier restart -} - -section_enabled() { - config_get_bool enabled "$1" 'enabled' 0 - [ $enabled -gt 0 ] -} - -start_instance() { - local cfg="$1" - local port secret config_path - local ARGS="" - - if ! section_enabled "$cfg"; then - echo "disabled in config" - return 1 - fi - - [ -d /etc/config/zero ] || mkdir -p /etc/config/zero - config_path=/etc/config/zero - - config_get_bool port $cfg 'port' - config_get secret $cfg 'secret' - - # Remove existing link or folder - rm -rf $CONFIG_PATH - - # Create link from CONFIG_PATH to config_path - if [ -n "$config_path" -a "$config_path" != $CONFIG_PATH ]; then - if [ ! -d "$config_path" ]; then - echo "ZeroTier config_path does not exist: $config_path" - return - fi - - ln -s $config_path $CONFIG_PATH - fi - - mkdir -p $CONFIG_PATH/networks.d - - if [ -n "$port" ]; then - ARGS="$ARGS -p$port" - fi - - if [ "$secret" = "generate" ]; then - echo "Generate secret - please wait..." - local sf="/tmp/zt.$cfg.secret" - - zerotier-idtool generate "$sf" > /dev/null - [ $? -ne 0 ] && return 1 - - secret="$(cat $sf)" - rm "$sf" - - uci set zerotier.$cfg.secret="$secret" - uci commit zerotier - fi - - if [ -n "$secret" ]; then - echo "$secret" > $CONFIG_PATH/identity.secret - # make sure there is not previous identity.public - rm -f $CONFIG_PATH/identity.public - fi - - add_join() { - # an (empty) config file will cause ZT to join a network - touch $CONFIG_PATH/networks.d/$1.conf - } - - config_list_foreach $cfg 'join' add_join - - procd_open_instance - procd_set_param command $PROG $ARGS $CONFIG_PATH - procd_set_param stderr 1 - procd_close_instance -} - -start_service() { - config_load 'zerotier' - config_foreach start_instance 'zerotier' - touch /tmp/zero.log && /etc/zerotier.start > /tmp/zero.log 2>&1 & -} - -stop_instance() { - rm -f /tmp/zero.log - local cfg="$1" - - /etc/zerotier.stop > /tmp/zero.log 2>&1 & - - # Remove existing link or folder - rm -f $CONFIG_PATH/networks.d/*.conf - rm -rf $CONFIG_PATH -} - -stop_service() { - config_load 'zerotier' - config_foreach stop_instance 'zerotier' -} - -reload_service() { - stop - start -} diff --git a/luci-app-zerotier/root/etc/zerotier.start b/luci-app-zerotier/root/etc/zerotier.start deleted file mode 100755 index b43e5f974..000000000 --- a/luci-app-zerotier/root/etc/zerotier.start +++ /dev/null @@ -1,28 +0,0 @@ -#!/bin/sh - -zero_enable="$(uci get zerotier.sample_config.enabled)" - -[ "${zero_enable}" -ne "1" ] && exit 0 - -[ -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" - -[ "${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 kernel" | awk '{print $1}')" - iptables -t nat -I POSTROUTING -s "${ip_segment}" -j MASQUERADE - done -} diff --git a/luci-app-zerotier/root/etc/zerotier.stop b/luci-app-zerotier/root/etc/zerotier.stop deleted file mode 100755 index cbe7ec4b6..000000000 --- a/luci-app-zerotier/root/etc/zerotier.stop +++ /dev/null @@ -1,15 +0,0 @@ -#!/bin/sh - -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