From 62a29f8ff0805844b5631cb4337d5b0d8e1a5d91 Mon Sep 17 00:00:00 2001 From: Paul Curry Date: Tue, 10 Nov 2020 13:54:52 +0000 Subject: [PATCH 01/18] parallel digs --- .../root/etc/init.d/omr-bypass | 33 ++++++++++++------- 1 file changed, 22 insertions(+), 11 deletions(-) diff --git a/luci-app-omr-bypass/root/etc/init.d/omr-bypass b/luci-app-omr-bypass/root/etc/init.d/omr-bypass index b5bd902a0..1682c565a 100755 --- a/luci-app-omr-bypass/root/etc/init.d/omr-bypass +++ b/luci-app-omr-bypass/root/etc/init.d/omr-bypass @@ -331,21 +331,32 @@ _bypass_proto() { local domains domains="$(cat /proc/net/xt_ndpi/host_proto | grep -i $proto: | sed -e "s/$proto://i" -e 's/*//' -e 's/,/ /g')" if [ -n "$domains" ]; then + tlds=`curl --max-time 4 -s -k https://data.iana.org/TLD/tlds-alpha-by-domain.txt` for domain in $domains; do if [ -n "$domain" ]; then domain="$(echo $domain | sed 's/^\.//')" if [ "$(echo $domain | grep '\.$')" != "" ]; then - tlds=`curl --max-time 4 -s -k https://data.iana.org/TLD/tlds-alpha-by-domain.txt` - if [ -n "tlds" ]; then - i=0 - for tld in $tlds; do - i=$((i+1)) - tld="$(echo $tld | awk '{print tolower($0)}')" - if [ "$i" -gt "11" ] && [ "$(dig a +timeout=1 +tries=1 +retry=1 +nocmd +noall +answer ${domain}${tld})" != "" ]; then - _bypass_domain ${domain}${tld} $intf - fi - done - fi + domainlist="" + # construct list of domains to query + for tld in $tlds; do + i=$((i+1)) + # trim off header + if [ "$i" -lt "12" ] || [ "$i" -gt "50" ]; then + continue + fi + # add to command + domainlist="${domainlist} ${domain}${tld}" + done + domainlist="$(echo $domainlist `# Get the list of valid domains, pass it to awk` \ + | awk '{print tolower($0)}' `# awk lowercases the whole string and passes it to ` \ + | xargs -n8 -P12 `# xargs sends 8 arguments at a time across 12 threads to` \ + dig a +nocmd +noall +answer `# dig, which passes results (if any) to` \ + | awk '{print $1}' `# awk, which outputs queried domain to` \ + | sed -e 's/.$//' `# sed, which trims off the trailing dot (google.com. -> google.com)` \ + | awk '{for (i=1;i<=NF;i++) if (!a[$i]++) printf("%s%s",$i,FS)}{printf("\n")}')" # deduplicate + for validdomain in $domainlist; do + _bypass_domain $validdomain $intf + done else _bypass_domain $domain $intf fi From dee7b381cc317d0d64a9a6e2434209519f90600d Mon Sep 17 00:00:00 2001 From: Paul Curry Date: Tue, 10 Nov 2020 13:56:59 +0000 Subject: [PATCH 02/18] add CLA --- contributors/cr3ative.md | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 contributors/cr3ative.md diff --git a/contributors/cr3ative.md b/contributors/cr3ative.md new file mode 100644 index 000000000..b0c58c54e --- /dev/null +++ b/contributors/cr3ative.md @@ -0,0 +1,9 @@ +2020-11-10 + +I hereby agree to the terms of the "OpenMPTCProuter Individual Contributor License Agreement", with MD5 checksum bc827a07eb93611d793ddb7c75083c00. + +I furthermore declare that I am authorized and able to make this agreement and sign this declaration. + +Signed, + +Paul Curry https://github.com/cr3ative From 08174a265099604d975b0e2ea31b87b655bb9e1f Mon Sep 17 00:00:00 2001 From: Paul Curry Date: Tue, 10 Nov 2020 13:59:15 +0000 Subject: [PATCH 03/18] fix indentation --- .../root/etc/init.d/omr-bypass | 42 +++++++++---------- 1 file changed, 21 insertions(+), 21 deletions(-) diff --git a/luci-app-omr-bypass/root/etc/init.d/omr-bypass b/luci-app-omr-bypass/root/etc/init.d/omr-bypass index 1682c565a..2dec8e79f 100755 --- a/luci-app-omr-bypass/root/etc/init.d/omr-bypass +++ b/luci-app-omr-bypass/root/etc/init.d/omr-bypass @@ -331,32 +331,32 @@ _bypass_proto() { local domains domains="$(cat /proc/net/xt_ndpi/host_proto | grep -i $proto: | sed -e "s/$proto://i" -e 's/*//' -e 's/,/ /g')" if [ -n "$domains" ]; then - tlds=`curl --max-time 4 -s -k https://data.iana.org/TLD/tlds-alpha-by-domain.txt` + tlds=`curl --max-time 4 -s -k https://data.iana.org/TLD/tlds-alpha-by-domain.txt` for domain in $domains; do if [ -n "$domain" ]; then domain="$(echo $domain | sed 's/^\.//')" if [ "$(echo $domain | grep '\.$')" != "" ]; then domainlist="" - # construct list of domains to query - for tld in $tlds; do - i=$((i+1)) - # trim off header - if [ "$i" -lt "12" ] || [ "$i" -gt "50" ]; then - continue - fi - # add to command - domainlist="${domainlist} ${domain}${tld}" - done - domainlist="$(echo $domainlist `# Get the list of valid domains, pass it to awk` \ - | awk '{print tolower($0)}' `# awk lowercases the whole string and passes it to ` \ - | xargs -n8 -P12 `# xargs sends 8 arguments at a time across 12 threads to` \ - dig a +nocmd +noall +answer `# dig, which passes results (if any) to` \ - | awk '{print $1}' `# awk, which outputs queried domain to` \ - | sed -e 's/.$//' `# sed, which trims off the trailing dot (google.com. -> google.com)` \ - | awk '{for (i=1;i<=NF;i++) if (!a[$i]++) printf("%s%s",$i,FS)}{printf("\n")}')" # deduplicate - for validdomain in $domainlist; do - _bypass_domain $validdomain $intf - done + # construct list of domains to query + for tld in $tlds; do + i=$((i+1)) + # trim off header + if [ "$i" -lt "12" ] || [ "$i" -gt "50" ]; then + continue + fi + # add to command + domainlist="${domainlist} ${domain}${tld}" + done + domainlist="$(echo $domainlist `# Get the list of valid domains, pass it to awk` \ + | awk '{print tolower($0)}' `# awk lowercases the whole string and passes it to ` \ + | xargs -n8 -P12 `# xargs sends 8 arguments at a time across 12 threads to` \ + dig a +nocmd +noall +answer `# dig, which passes results (if any) to` \ + | awk '{print $1}' `# awk, which outputs queried domain to` \ + | sed -e 's/.$//' `# sed, which trims off the trailing dot (google.com. -> google.com)` \ + | awk '{for (i=1;i<=NF;i++) if (!a[$i]++) printf("%s%s",$i,FS)}{printf("\n")}')" # deduplicate + for validdomain in $domainlist; do + _bypass_domain $validdomain $intf + done else _bypass_domain $domain $intf fi From 43da6c6e1e26f21abac1aaeeb3ea68a8569eb4d2 Mon Sep 17 00:00:00 2001 From: Paul Curry Date: Tue, 10 Nov 2020 13:59:55 +0000 Subject: [PATCH 04/18] ugh --- .../root/etc/init.d/omr-bypass | 26 +++++++++---------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/luci-app-omr-bypass/root/etc/init.d/omr-bypass b/luci-app-omr-bypass/root/etc/init.d/omr-bypass index 2dec8e79f..61e99753c 100755 --- a/luci-app-omr-bypass/root/etc/init.d/omr-bypass +++ b/luci-app-omr-bypass/root/etc/init.d/omr-bypass @@ -339,21 +339,21 @@ _bypass_proto() { domainlist="" # construct list of domains to query for tld in $tlds; do - i=$((i+1)) - # trim off header - if [ "$i" -lt "12" ] || [ "$i" -gt "50" ]; then - continue - fi - # add to command - domainlist="${domainlist} ${domain}${tld}" + i=$((i+1)) + # trim off header + if [ "$i" -lt "12" ] || [ "$i" -gt "50" ]; then + continue + fi + # add to command + domainlist="${domainlist} ${domain}${tld}" done domainlist="$(echo $domainlist `# Get the list of valid domains, pass it to awk` \ - | awk '{print tolower($0)}' `# awk lowercases the whole string and passes it to ` \ - | xargs -n8 -P12 `# xargs sends 8 arguments at a time across 12 threads to` \ - dig a +nocmd +noall +answer `# dig, which passes results (if any) to` \ - | awk '{print $1}' `# awk, which outputs queried domain to` \ - | sed -e 's/.$//' `# sed, which trims off the trailing dot (google.com. -> google.com)` \ - | awk '{for (i=1;i<=NF;i++) if (!a[$i]++) printf("%s%s",$i,FS)}{printf("\n")}')" # deduplicate + | awk '{print tolower($0)}' `# awk lowercases the whole string and passes it to ` \ + | xargs -n8 -P12 `# xargs sends 8 arguments at a time across 12 threads to` \ + dig a +nocmd +noall +answer `# dig, which passes results (if any) to` \ + | awk '{print $1}' `# awk, which outputs queried domain to` \ + | sed -e 's/.$//' `# sed, which trims off the trailing dot (google.com. -> google.com)` \ + | awk '{for (i=1;i<=NF;i++) if (!a[$i]++) printf("%s%s",$i,FS)}{printf("\n")}')" # deduplicate for validdomain in $domainlist; do _bypass_domain $validdomain $intf done From d74fb4941856063f23fa5b66268d848d5d601f6b Mon Sep 17 00:00:00 2001 From: Paul Curry Date: Tue, 10 Nov 2020 14:13:39 +0000 Subject: [PATCH 05/18] Remove threading --- luci-app-omr-bypass/root/etc/init.d/omr-bypass | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/luci-app-omr-bypass/root/etc/init.d/omr-bypass b/luci-app-omr-bypass/root/etc/init.d/omr-bypass index 61e99753c..40007e410 100755 --- a/luci-app-omr-bypass/root/etc/init.d/omr-bypass +++ b/luci-app-omr-bypass/root/etc/init.d/omr-bypass @@ -349,7 +349,7 @@ _bypass_proto() { done domainlist="$(echo $domainlist `# Get the list of valid domains, pass it to awk` \ | awk '{print tolower($0)}' `# awk lowercases the whole string and passes it to ` \ - | xargs -n8 -P12 `# xargs sends 8 arguments at a time across 12 threads to` \ + | xargs -n8 `# xargs sends 8 arguments at a time to` \ dig a +nocmd +noall +answer `# dig, which passes results (if any) to` \ | awk '{print $1}' `# awk, which outputs queried domain to` \ | sed -e 's/.$//' `# sed, which trims off the trailing dot (google.com. -> google.com)` \ From 0ba98632620535aade4ae05553350fd9525c6fea Mon Sep 17 00:00:00 2001 From: "Ycarus (Yannick Chabanois)" Date: Tue, 10 Nov 2020 17:01:41 +0100 Subject: [PATCH 06/18] Use threading and only use wanted domain --- luci-app-omr-bypass/root/etc/init.d/omr-bypass | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/luci-app-omr-bypass/root/etc/init.d/omr-bypass b/luci-app-omr-bypass/root/etc/init.d/omr-bypass index 40007e410..8e5a0c5bd 100755 --- a/luci-app-omr-bypass/root/etc/init.d/omr-bypass +++ b/luci-app-omr-bypass/root/etc/init.d/omr-bypass @@ -349,10 +349,11 @@ _bypass_proto() { done domainlist="$(echo $domainlist `# Get the list of valid domains, pass it to awk` \ | awk '{print tolower($0)}' `# awk lowercases the whole string and passes it to ` \ - | xargs -n8 `# xargs sends 8 arguments at a time to` \ - dig a +nocmd +noall +answer `# dig, which passes results (if any) to` \ + | xargs -n8 -P12 `# xargs sends 8 arguments at a time to` \ + dig a +timeout=1 +tries=1 +retry=1 +nocmd +noall +answer `# dig, which passes results (if any) to` \ | awk '{print $1}' `# awk, which outputs queried domain to` \ - | sed -e 's/.$//' `# sed, which trims off the trailing dot (google.com. -> google.com)` \ + | sed -e 's/.$//' `# sed, which trims off the trailing dot (google.com. -> google.com)` to \ + | grep $domain `# grep, only keep wanted domain` \ | awk '{for (i=1;i<=NF;i++) if (!a[$i]++) printf("%s%s",$i,FS)}{printf("\n")}')" # deduplicate for validdomain in $domainlist; do _bypass_domain $validdomain $intf From 4ced9399853b851231f28950c44c9925333c5600 Mon Sep 17 00:00:00 2001 From: "Ycarus (Yannick Chabanois)" Date: Tue, 10 Nov 2020 17:02:37 +0100 Subject: [PATCH 07/18] Stop odhcp when IPv6 disabled --- omr-6in4/files/etc/init.d/omr-6in4 | 1 + 1 file changed, 1 insertion(+) diff --git a/omr-6in4/files/etc/init.d/omr-6in4 b/omr-6in4/files/etc/init.d/omr-6in4 index e9898170c..87c04c89d 100755 --- a/omr-6in4/files/etc/init.d/omr-6in4 +++ b/omr-6in4/files/etc/init.d/omr-6in4 @@ -102,6 +102,7 @@ start_service() { [ "$(uci -q get openmptcprouter.settings.disable_ipv6)" != "1" ] && [ "$(uci -q get network.lan.ipv6)" != "1" ] && set_ipv6_state [ "$(uci -q get openmptcprouter.settings.disable_ipv6)" = "1" ] && { ifdown omr6in4 + /etc/init.d/odhcpd stop return } [ "$(ifstatus omr6in4 | jsonfilter -e '@.up' | tr -d '\n')" != "true" ] && ifup omr6in4 From 3720847421bec7166af1c36d85fd2eee1e0703a7 Mon Sep 17 00:00:00 2001 From: "Ycarus (Yannick Chabanois)" Date: Thu, 12 Nov 2020 13:58:48 +0100 Subject: [PATCH 08/18] New router logo --- .../luci-static/resources/openmptcprouter.png | Bin 0 -> 10733 bytes .../htdocs/luci-static/resources/overthebox.png | Bin 1677 -> 0 bytes 2 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 luci-app-openmptcprouter/htdocs/luci-static/resources/openmptcprouter.png delete mode 100644 luci-app-openmptcprouter/htdocs/luci-static/resources/overthebox.png diff --git a/luci-app-openmptcprouter/htdocs/luci-static/resources/openmptcprouter.png b/luci-app-openmptcprouter/htdocs/luci-static/resources/openmptcprouter.png new file mode 100644 index 0000000000000000000000000000000000000000..f4683f2c532cf5306c9ed7c8b5af8945309fc203 GIT binary patch literal 10733 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 literal 0 HcmV?d00001 diff --git a/luci-app-openmptcprouter/htdocs/luci-static/resources/overthebox.png b/luci-app-openmptcprouter/htdocs/luci-static/resources/overthebox.png deleted file mode 100644 index 7b578c01f1beb4684acae5a2046589196ac19f49..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1677 zcmV;826Fj{P)600006VoOIv0RI60 z0RN!9r;`8x010qNS#tmY3ljhU3ljkVnw%H_000McNliru-w78F5+&Ep>ZAYw02y>e zSad^gZEa<4bO1wgWnpw>WFU8GbZ8()Nlj2!fese{00s3)L_t(|+U=cdh*eb-$A4>@ zQBy;$oDwIMEYwIRB*93{%pz(?dl_VrJs>hP`_PLZB9e*-sm$z)Mf5bI#8ga;WUvpK zh?z+B1uC1y5% zRw%g%Gn<5cGa72-Z5J^eZfyr2LK-==+>aB2=D_iI5t>r1g=!oA8mF~nuv%1 zOMvSGGaV`O^VB%YOw`gwUG;sVkmadIAbz_QT_)JxBFhsnN<`kVa%*!A0CQAzeSs#n zmp2lfnBE`l@O}g0SoSOy&PH(_)JN#iu*av%ve8w#Ap2u*K&SZ@^Dt zdRw%jNlo#Gz;mWSn{!xIcchrgRFZB*Z2+(+)D$NTo*GnjtLbpsrZV-orMXkx09~vp zKEp6!O<2Q(HBLL_dHrJ|auzTYxB}=0oP)Fc>;^UhD^+!m37Z{32LX=(cT(6acU(kP z05eo|feBl>g7ySn0q#rL#gqZp0;5G_xT>zQKDP8k9fez0zP}a!N&H0LYHW##Iv!`H z>ll0MA7BBn4A=(j#JSh@1%?B+0Rw^6z!!P!XG884vohi)at+SgBl_DLarV|8DL&sF zkPN%Y3=Zk1s@bivB65MRsU0HGzX7+Z>e^IywCY|P6_*~b0vATEcK{<*)x1BlI(QP1 z!N5I{s79Q#^!7H$yGlfsi^wJsxyx#7ahc*rvrW8~)clIb*}zz!Kd=W_p{m;oBp-2xV-IQ>%Qb#X%cz5?H8 z!nPCpW7iddG`mygwJRaM(o6Sg>Ph+U5e^pk%9 zFP|cx&A{xy!0R%auj6hoVT;2`+{r0T-0tVLab64w=h+0*sOtU{1FBjRwg{-|K457i zsy8q(knWhOJ_1~Y+itiB=Lr8GP_3#z2Wo3qU~<%$0n8(#WNz6Gx6?lQdw&PcYlD1W zkLCMSR+sIv>Orv(h`O@$@|L6yt<6wGCgN<+(c1caR%>e}h4s6+C)3=nI|f)FB0X9m z>chahF-z5KRsG(CExx#GfTv^8Hvp?ePFF-p6m?-nb>akf?{fL1SbdM9qz`UfiX) zvm2%WTT*`PAnv%qA*%X}sy61OJaV<^VrV-vucH&f;N}vHd=Ql6m@#qQTPg;TGBK!n&j0#%@d~5}i z=}-p@3_Zo840s7UMm~#SEzmFcc$SF3)xf7X?>sBC(hbLfHNZnad0aIF zD%>8HyK(ziTEZl6?J-VfDgj5l0vzz=dCWJvTMF5=%L`a<4&l}%*Lk6bw&KTssj7dQ zhQW%{(n@kfRX=MFTk$;H*8a2$2lXauLEfWf&gdIkbmQ1F+VhDWxo5%}Caht?8tucs X;o;M8_(@hl00000NkvXXu0mjfbF&e- From adc992028c3c94a4196f30844b06f6ebd41cacd5 Mon Sep 17 00:00:00 2001 From: "Ycarus (Yannick Chabanois)" Date: Thu, 12 Nov 2020 16:23:53 +0100 Subject: [PATCH 09/18] Disable all shadowsocks server if v2ray proxy is used --- .../luasrc/controller/openmptcprouter.lua | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/luci-app-openmptcprouter/luasrc/controller/openmptcprouter.lua b/luci-app-openmptcprouter/luasrc/controller/openmptcprouter.lua index d6d4001ad..bef528dcb 100644 --- a/luci-app-openmptcprouter/luasrc/controller/openmptcprouter.lua +++ b/luci-app-openmptcprouter/luasrc/controller/openmptcprouter.lua @@ -448,14 +448,26 @@ function wizard_add() -- Get Proxy set by default local default_proxy = luci.http.formvalue("default_proxy") or "shadowsocks" if default_proxy == "shadowsocks" and serversnb > 0 and serversnb > disablednb then - ucic:set("shadowsocks-libev","sss0","disabled","0") + --ucic:set("shadowsocks-libev","sss0","disabled","0") ucic:set("v2ray","main","enabled","0") + ucic:foreach("shadowsocks-libev", "server", function(s) + local sectionname = s[".name"] + ucic:set("shadowsocks-libev",sectionname,"disabled","0") + end) elseif default_proxy == "v2ray" and serversnb > 0 and serversnb > disablednb then - ucic:set("shadowsocks-libev","sss0","disabled","1") + --ucic:set("shadowsocks-libev","sss0","disabled","1") ucic:set("v2ray","main","enabled","1") + ucic:foreach("shadowsocks-libev", "server", function(s) + local sectionname = s[".name"] + ucic:set("shadowsocks-libev",sectionname,"disabled","1") + end) else - ucic:set("shadowsocks-libev","sss0","disabled","1") + --ucic:set("shadowsocks-libev","sss0","disabled","1") ucic:set("v2ray","main","enabled","0") + ucic:foreach("shadowsocks-libev", "server", function(s) + local sectionname = s[".name"] + ucic:set("shadowsocks-libev",sectionname,"disabled","1") + end) end ucic:set("openmptcprouter","settings","proxy",default_proxy) ucic:save("openmptcprouter") @@ -719,6 +731,7 @@ function wizard_add() -- Restart all if gostatus == true then + luci.sys.call("/etc/init.d/macvlan restart >/dev/null 2>/dev/null") luci.sys.call("(env -i /bin/ubus call network reload) >/dev/null 2>/dev/null") luci.sys.call("/etc/init.d/omr-tracker stop >/dev/null 2>/dev/null") luci.sys.call("/etc/init.d/mptcp restart >/dev/null 2>/dev/null") From b42a572251305cfe2e839f00c82250b1e27c6d2b Mon Sep 17 00:00:00 2001 From: "Ycarus (Yannick Chabanois)" Date: Thu, 12 Nov 2020 16:24:38 +0100 Subject: [PATCH 10/18] Fix V2Ray status and use openmptcprouter.png as router icon --- .../luasrc/view/openmptcprouter/wanstatus.htm | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm b/luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm index 77cc6fef5..e02083b86 100644 --- a/luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm +++ b/luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm @@ -103,7 +103,7 @@ } } temp += ''; - var equipmentIcon = ''; + var equipmentIcon = ''; var title = String.format("%s (%s)", mArray.openmptcprouter.hostname, mArray.openmptcprouter.local_addr); var statusMessageClass = ""; var statusIcon = "<%=resource%>/openmptcprouter/images/statusOK.png"; @@ -266,6 +266,9 @@ } else if (mArray.openmptcprouter.shadowsocks_enabled == true && mArray.openmptcprouter.ss_addr == "" && mArray.openmptcprouter.external_check == true) { statusMessage += '<%:Can\'t get public IP address from ShadowSocks%>' + '
'; + } else if (mArray.openmptcprouter.v2ray_enabled == true && mArray.openmptcprouter.ss_addr == "" && mArray.openmptcprouter.external_check == true) + { + statusMessage += '<%:Can\'t get public IP address from V2Ray%>' + '
'; } else if (mArray.openmptcprouter.wan_addr == "" && mArray.openmptcprouter.external_check == true) { statusMessage += '<%:No WAN IP address detected in less than 1 second%>' + '
'; From 0df6e6bd072dcc9fa213c9263245c18b391fd580 Mon Sep 17 00:00:00 2001 From: "Ycarus (Yannick Chabanois)" Date: Thu, 12 Nov 2020 16:25:08 +0100 Subject: [PATCH 11/18] No change of MTU for Glorytun UDP --- .../share/omr/post-tracking.d/post-tracking | 32 ++++++++++--------- 1 file changed, 17 insertions(+), 15 deletions(-) diff --git a/mptcp/files/usr/share/omr/post-tracking.d/post-tracking b/mptcp/files/usr/share/omr/post-tracking.d/post-tracking index d837d2623..15d729cec 100755 --- a/mptcp/files/usr/share/omr/post-tracking.d/post-tracking +++ b/mptcp/files/usr/share/omr/post-tracking.d/post-tracking @@ -671,26 +671,28 @@ if [ "$(uci -q get openmptcprouter.$OMR_TRACKER_INTERFACE.lc)" = "" ] || [ $(($( [ -n "$asn" ] && { uci -q set openmptcprouter.$OMR_TRACKER_INTERFACE.asn="$asn" } - if [ -n "$(uci -q get network.$OMR_TRACKER_INTERFACE.mtu)" ]; then - mtu=$(uci -q get network.$OMR_TRACKER_INTERFACE.mtu) - [ -n "$mtu" ] && { - uci -q set openmptcprouter.$OMR_TRACKER_INTERFACE.mtu=$mtu - ip link set dev $OMR_TRACKER_DEVICE mtu $mtu > /dev/null 2>&1 - } - else - [ -n "$serverip" ] && [ "$serverip" != "127.0.0.1" ] && { - local mtu=$(omr-mtu $OMR_TRACKER_DEVICE_IP $serverip) + if [ "$OMR_TRACKER_INTERFACE" != "omrvpn" ] && [ "$(uci -q get glorytun.vpn.enable)" != "1" ]; then + if [ -n "$(uci -q get network.$OMR_TRACKER_INTERFACE.mtu)" ]; then + mtu=$(uci -q get network.$OMR_TRACKER_INTERFACE.mtu) [ -n "$mtu" ] && { uci -q set openmptcprouter.$OMR_TRACKER_INTERFACE.mtu=$mtu ip link set dev $OMR_TRACKER_DEVICE mtu $mtu > /dev/null 2>&1 } - } || { - local mtu=$(omr-mtu $OMR_TRACKER_DEVICE_IP 1.1.1.1) - [ -n "$mtu" ] && { - uci -q set openmptcprouter.$OMR_TRACKER_INTERFACE.mtu=$mtu - ip link set dev $OMR_TRACKER_DEVICE mtu $mtu > /dev/null 2>&1 + else + [ -n "$serverip" ] && [ "$serverip" != "127.0.0.1" ] && { + local mtu=$(omr-mtu $OMR_TRACKER_DEVICE_IP $serverip) + [ -n "$mtu" ] && { + uci -q set openmptcprouter.$OMR_TRACKER_INTERFACE.mtu=$mtu + ip link set dev $OMR_TRACKER_DEVICE mtu $mtu > /dev/null 2>&1 + } + } || { + local mtu=$(omr-mtu $OMR_TRACKER_DEVICE_IP 1.1.1.1) + [ -n "$mtu" ] && { + uci -q set openmptcprouter.$OMR_TRACKER_INTERFACE.mtu=$mtu + ip link set dev $OMR_TRACKER_DEVICE mtu $mtu > /dev/null 2>&1 + } } - } + fi fi uci -q set openmptcprouter.$OMR_TRACKER_INTERFACE.state='up' uci -q set openmptcprouter.$OMR_TRACKER_INTERFACE.lc=$(date +"%s") From e4ea751db3b411de2e15de0ed67ec0f72abde258 Mon Sep 17 00:00:00 2001 From: "Ycarus (Yannick Chabanois)" Date: Thu, 12 Nov 2020 16:25:43 +0100 Subject: [PATCH 12/18] Add V2Ray rules only if omr6 is enabled --- v2ray-core/files/etc/init.d/v2ray | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/v2ray-core/files/etc/init.d/v2ray b/v2ray-core/files/etc/init.d/v2ray index 3e4b38c64..98aacf26e 100755 --- a/v2ray-core/files/etc/init.d/v2ray +++ b/v2ray-core/files/etc/init.d/v2ray @@ -414,7 +414,7 @@ add_v2ray_redirect_rules() { # This part need a rewrite v2ray-rules -l ${port} -L ${port} -s $OUTBOUND_SERVERS_V4 --rule-name def --src-default forward --dst-default forward --local-default forward - v2ray-rules6 -l $((port+1)) -L $((port+1)) --rule-name def --src-default forward --dst-default forward --local-default forward + [ "$(uci -q get v2ray.main.inbounds | grep omr6)" != "" ] && v2ray-rules6 -l $((port+1)) -L $((port+1)) --rule-name def --src-default forward --dst-default forward --local-default forward [ -f /etc/init.d/omr-bypass ] && { logger -t "v2ray" "Reload omr-bypass rules" /etc/init.d/omr-bypass reload_rules From 82976e23634371b8292910937c288dd09df10ea9 Mon Sep 17 00:00:00 2001 From: "Ycarus (Yannick Chabanois)" Date: Fri, 13 Nov 2020 15:44:33 +0100 Subject: [PATCH 13/18] Fix omr-rename --- luci-app-openmptcprouter/root/etc/hotplug.d/net/99-omr-rename | 1 + 1 file changed, 1 insertion(+) diff --git a/luci-app-openmptcprouter/root/etc/hotplug.d/net/99-omr-rename b/luci-app-openmptcprouter/root/etc/hotplug.d/net/99-omr-rename index 0d8c6a7cf..0928e0140 100644 --- a/luci-app-openmptcprouter/root/etc/hotplug.d/net/99-omr-rename +++ b/luci-app-openmptcprouter/root/etc/hotplug.d/net/99-omr-rename @@ -32,6 +32,7 @@ _set_intf_name() { ip link set ${ifname} up [ "$existif" = "1" ] && ip link set ${ifname}tmp ${$INTERFACE} fi + fi elif [ -f /dev/${DEVICE_NAME} ] && [ -n "$MODALIAS" ] && [ "$modalias" = "$MODALIAS" ]; then if [ "$device" != "/dev/${DEVICE_NAME}" ]; then ln -s /dev/${DEVICE_NAME} /dev/$intfname From e39f36079612d0dd64105762929257d9a1a53eff Mon Sep 17 00:00:00 2001 From: "Ycarus (Yannick Chabanois)" Date: Mon, 16 Nov 2020 15:57:26 +0100 Subject: [PATCH 14/18] Fix IPv6 in advanced settings tab --- .../luasrc/controller/openmptcprouter.lua | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/luci-app-openmptcprouter/luasrc/controller/openmptcprouter.lua b/luci-app-openmptcprouter/luasrc/controller/openmptcprouter.lua index bef528dcb..9af857553 100644 --- a/luci-app-openmptcprouter/luasrc/controller/openmptcprouter.lua +++ b/luci-app-openmptcprouter/luasrc/controller/openmptcprouter.lua @@ -813,7 +813,8 @@ function settings_add() -- Disable IPv6 local disable_ipv6 = luci.http.formvalue("enableipv6") or "1" - local dump = require("luci.util").ubus("openmptcprouter", "disableipv6", { disable_ipv6 = tonumber(disable_ipv6)}) + ucic:set("openmptcprouter","settings","disable_ipv6",disable_ipv6) + --local dump = require("luci.util").ubus("openmptcprouter", "disableipv6", { disable_ipv6 = tonumber(disable_ipv6)}) -- Enable/disable external check local externalcheck = luci.http.formvalue("externalcheck") or "1" @@ -910,6 +911,7 @@ function settings_add() -- Apply all settings luci.sys.call("/etc/init.d/openmptcprouter restart >/dev/null 2>/dev/null") + luci.sys.call("/etc/init.d/omr-6in4 restart >/dev/null 2>/dev/null") -- Done, redirect luci.http.redirect(luci.dispatcher.build_url("admin/system/openmptcprouter/settings")) From 0cedee7a1b1748989a45e75b2bf55b3af1d479f3 Mon Sep 17 00:00:00 2001 From: "Ycarus (Yannick Chabanois)" Date: Mon, 16 Nov 2020 15:57:49 +0100 Subject: [PATCH 15/18] remove ipv6 config in openmptcprouter sysctl --- .../root/etc/sysctl.d/zzz_openmptcprouter.conf | 1 - 1 file changed, 1 deletion(-) diff --git a/luci-app-openmptcprouter/root/etc/sysctl.d/zzz_openmptcprouter.conf b/luci-app-openmptcprouter/root/etc/sysctl.d/zzz_openmptcprouter.conf index d759def1b..a6c46d370 100644 --- a/luci-app-openmptcprouter/root/etc/sysctl.d/zzz_openmptcprouter.conf +++ b/luci-app-openmptcprouter/root/etc/sysctl.d/zzz_openmptcprouter.conf @@ -1,5 +1,4 @@ net.ipv4.tcp_keepalive_time=7200 -net.ipv6.conf.all.disable_ipv6=0 net.ipv4.tcp_fin_timeout=60 net.ipv4.tcp_syn_retries=3 net.ipv4.tcp_retries1=3 From 9ca9cf26a3a862a5007733bc57c313295dc93975 Mon Sep 17 00:00:00 2001 From: "Ycarus (Yannick Chabanois)" Date: Mon, 16 Nov 2020 15:58:52 +0100 Subject: [PATCH 16/18] Disable odhcp when not needed --- omr-6in4/files/etc/init.d/omr-6in4 | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/omr-6in4/files/etc/init.d/omr-6in4 b/omr-6in4/files/etc/init.d/omr-6in4 index 87c04c89d..9d22cabb2 100755 --- a/omr-6in4/files/etc/init.d/omr-6in4 +++ b/omr-6in4/files/etc/init.d/omr-6in4 @@ -22,6 +22,7 @@ set_ipv6_state() { #sysctl -qw net.ipv6.conf.all.disable_ipv6=$disable_ipv6 #sed -i "s:^net.ipv6.conf.all.disable_ipv6=[0-9]*:net.ipv6.conf.all.disable_ipv6=$disable_ipv6:" /etc/sysctl.d/zzz_openmptcprouter.conf sed -i "s:^net.ipv6.conf.all.disable_ipv6=[0-9]*::" /etc/sysctl.d/zzz_openmptcprouter.conf + sysctl -qw net.ipv6.conf.all.disable_ipv6=0 uci -q batch <<-EOF >/dev/null set firewall.@defaults[0].disable_ipv6=$disable_ipv6 @@ -100,7 +101,7 @@ set_ipv6_state() { start_service() { [ "$(uci -q get openmptcprouter.settings.disable_ipv6)" != "1" ] && [ "$(uci -q get network.lan.ipv6)" != "1" ] && set_ipv6_state - [ "$(uci -q get openmptcprouter.settings.disable_ipv6)" = "1" ] && { + [ "$(uci -q get openmptcprouter.settings.disable_ipv6)" != "0" ] && { ifdown omr6in4 /etc/init.d/odhcpd stop return From b50578d4a224ec60a66634af653352ed493c87a5 Mon Sep 17 00:00:00 2001 From: "Ycarus (Yannick Chabanois)" Date: Mon, 16 Nov 2020 15:59:19 +0100 Subject: [PATCH 17/18] Fix vpn txqueuelen --- openmptcprouter/files/etc/uci-defaults/2020-omr-vpn | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/openmptcprouter/files/etc/uci-defaults/2020-omr-vpn b/openmptcprouter/files/etc/uci-defaults/2020-omr-vpn index 371936b56..201c4c226 100755 --- a/openmptcprouter/files/etc/uci-defaults/2020-omr-vpn +++ b/openmptcprouter/files/etc/uci-defaults/2020-omr-vpn @@ -24,6 +24,13 @@ if [ "$(uci -q get glorytun.vpn.localip)" = "10.0.0.2" ]; then EOF fi +if [ "$(uci -q get network.omrvpn.txqueuelen)" = "1000" ]; then + uci -q batch <<-EOF >/dev/null + set network.omrvpn.txqueuelen=100 + commit network + EOF +fi + if [ "$(uci -q get openvpn.omr.proto)" != "tcp-client" ]; then uci -q batch <<-EOF >/dev/null set openvpn.omr=openvpn From a837b37fdaf982830599484ae1318913233b70b1 Mon Sep 17 00:00:00 2001 From: suyuan <175338101@qq.com> Date: Tue, 17 Nov 2020 13:39:33 +0800 Subject: [PATCH 18/18] fix --- .DS_Store | Bin 0 -> 26628 bytes luci-app-dsvpn/.DS_Store | Bin 0 -> 6148 bytes luci-app-firewall/.DS_Store | Bin 0 -> 6148 bytes luci-app-glorytun/.DS_Store | Bin 0 -> 6148 bytes luci-app-iperf/.DS_Store | Bin 0 -> 6148 bytes luci-app-mail/.DS_Store | Bin 0 -> 6148 bytes luci-app-mlvpn/.DS_Store | Bin 0 -> 6148 bytes luci-app-mptcp/.DS_Store | Bin 0 -> 6148 bytes luci-app-omr-bypass/.DS_Store | Bin 0 -> 6148 bytes luci-app-omr-dscp/.DS_Store | Bin 0 -> 6148 bytes luci-app-omr-quota/.DS_Store | Bin 0 -> 6148 bytes luci-app-omr-tracker/.DS_Store | Bin 0 -> 6148 bytes luci-app-openmptcprouter/.DS_Store | Bin 0 -> 6148 bytes luci-app-shadowsocks-libev/.DS_Store | Bin 0 -> 6148 bytes luci-app-shutdown/.DS_Store | Bin 0 -> 6148 bytes luci-app-snmpd/.DS_Store | Bin 0 -> 6148 bytes luci-app-status/.DS_Store | Bin 0 -> 6148 bytes luci-app-status/luasrc/.DS_Store | Bin 0 -> 6148 bytes luci-app-status/po/.DS_Store | Bin 0 -> 6148 bytes luci-base/.DS_Store | Bin 0 -> 6148 bytes luci-theme-openmptcprouter/.DS_Store | Bin 0 -> 6148 bytes luci-theme-openmptcprouter/htdocs/.DS_Store | Bin 0 -> 6148 bytes .../htdocs/luci-static/.DS_Store | Bin 0 -> 6148 bytes .../htdocs/luci-static/resources/.DS_Store | Bin 0 -> 6148 bytes .../resources/openmptcprouter/.DS_Store | Bin 0 -> 6148 bytes mptcp/.DS_Store | Bin 0 -> 6148 bytes mptcp/files/.DS_Store | Bin 0 -> 6148 bytes mptcp/files/usr/.DS_Store | Bin 0 -> 6148 bytes mptcp/files/usr/share/.DS_Store | Bin 0 -> 6148 bytes omr-6in4/.DS_Store | Bin 0 -> 6148 bytes omr-tracker/.DS_Store | Bin 0 -> 6148 bytes omr-tracker/files/.DS_Store | Bin 0 -> 6148 bytes openmptcprouter/.DS_Store | Bin 0 -> 6148 bytes v2ray-core/.DS_Store | Bin 0 -> 6148 bytes 34 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 .DS_Store create mode 100644 luci-app-dsvpn/.DS_Store create mode 100644 luci-app-firewall/.DS_Store create mode 100644 luci-app-glorytun/.DS_Store create mode 100644 luci-app-iperf/.DS_Store create mode 100644 luci-app-mail/.DS_Store create mode 100644 luci-app-mlvpn/.DS_Store create mode 100644 luci-app-mptcp/.DS_Store create mode 100644 luci-app-omr-bypass/.DS_Store create mode 100644 luci-app-omr-dscp/.DS_Store create mode 100644 luci-app-omr-quota/.DS_Store create mode 100644 luci-app-omr-tracker/.DS_Store create mode 100644 luci-app-openmptcprouter/.DS_Store create mode 100644 luci-app-shadowsocks-libev/.DS_Store create mode 100644 luci-app-shutdown/.DS_Store create mode 100644 luci-app-snmpd/.DS_Store create mode 100644 luci-app-status/.DS_Store create mode 100644 luci-app-status/luasrc/.DS_Store create mode 100644 luci-app-status/po/.DS_Store create mode 100644 luci-base/.DS_Store create mode 100644 luci-theme-openmptcprouter/.DS_Store create mode 100644 luci-theme-openmptcprouter/htdocs/.DS_Store create mode 100644 luci-theme-openmptcprouter/htdocs/luci-static/.DS_Store create mode 100644 luci-theme-openmptcprouter/htdocs/luci-static/resources/.DS_Store create mode 100644 luci-theme-openmptcprouter/htdocs/luci-static/resources/openmptcprouter/.DS_Store create mode 100644 mptcp/.DS_Store create mode 100644 mptcp/files/.DS_Store create mode 100644 mptcp/files/usr/.DS_Store create mode 100644 mptcp/files/usr/share/.DS_Store create mode 100644 omr-6in4/.DS_Store create mode 100644 omr-tracker/.DS_Store create mode 100644 omr-tracker/files/.DS_Store create mode 100644 openmptcprouter/.DS_Store create mode 100644 v2ray-core/.DS_Store diff --git a/.DS_Store b/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..219147c872f5ab045d520759d8779069dc729854 GIT binary patch literal 26628 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 JS<&$P|37_Cv2FkW literal 0 HcmV?d00001 diff --git a/luci-app-dsvpn/.DS_Store b/luci-app-dsvpn/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..895808bde81b93008625a13b78d9b5217f1788cf GIT binary patch literal 6148 zcmeHKOHRWu5FLjU6~UrQ#LA0aAU6nA*dyfv&{hJZM2>*$bAhfo0ZT5?4QFD<8;_O7 zO%Xd(p_$5l&U`%bid(g!0+yqDr)JTUTF0GCgr}pc15wQ+!A`e6zyiSy&n6lfAwh|hxf!{3reUV7vG9~!3tx)i%cb}d!wdA57r;DV SCkPEh{|I;*bW#TXl!0#!_g+>2 literal 0 HcmV?d00001 diff --git a/luci-app-firewall/.DS_Store b/luci-app-firewall/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..75395d38a900626a24c08ef893572e9ad8fb2267 GIT binary patch literal 6148 zcmeHKy-veG47N)_MKE*&I^DnvB-RyIanqC!GE0UOW4 z=eui2nj$t-AzSi&iGR+zFHsy55f5+kgs4wMJ*Z%37t0zEzi3N3(XtO@zsH1bW>?8* zVvDjBt%glxK%U(WO=(U!Sz3L5-2Ytl7dFerGdqU8cX7WsetTG)v}5vLW6EjmJ>fHK zK^-c|Hr}73$GfGyUiahuIT^h8x<03{-}P2~jXDD-b-Hwovs#)rYSH#n-B+)7aQ?bH zXO&y8xz69HOGfIdC76p54E!qwxSNf#A&wM#YwK{*YYp@gDk5<%V3mRk--;0{ dt@se?1$HABz%-%@2n$4i1UwD8CS5T1=eDhl=}p7!7am^X+eUPb5&)V5F$2?=WMd4ax!;L$hmB!VyD(TlI( z$!~VnG}~0XNs*bd`)%fDhyAi-Iz(hf^*kXO643yIG1|klLDUpbT8yVntw@W$IbVaw+dw=#~-CmSgHqFZ^^n5Am`*ZsKt?%ajczZ~WA6;G-Q$WhDyOuG|S>ksW<~saDuGZGgcmMQq@+#-- z*jG6>*~7e-d_EOrKp9X5wuJ%IY?i^kpw7yGGN25!4Dk2CVlbv28$tK!z~ov0U<|br zthtxq80#_h*a*S`F%k-tP~%$+BjM0n@0WUP1SOn|Z$6CAYw|1e0OlmTVnUol|fY@Cg7Bwt&5hvQmnF(w!+?AHjkAy~Ll3|}tA cM;K0^x4ZzR9veYuAo@qZ(V&wu@TUxX0YtE3(f|Me literal 0 HcmV?d00001 diff --git a/luci-app-iperf/.DS_Store b/luci-app-iperf/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..7b5151159f9bb681166b1633b06a747b39fdb6f5 GIT binary patch literal 6148 zcmeHKJ5Iwu5S=v^B!VI(f@TX2fO`sKnG@s!A&Ha}wrl~e*@iO5pyU!1a3C(go1Mkj zaS$Df&`h-Z*7MoXKCe6(A~IRCOo%2#G{Rtv#+Y^p+j$Hm3Yrt3@q66SqF5!7EAf&mL{t%PP<3MKy;Wm%=rh&Fl5hXZfp7z3$$VOKd?A)l~KG zPj>#L@8-SwcuvkT;p}u*3I|$^mg$s=WJuUId|Fn zdHwk~w~8{L3@8KpzyNAC%jj58XJtScPzG8C`1@cn7}J1G(0@8G`4#{eL+u4??j<3xA*gN}|9q=0*H65h-# zi8l_SLlK&ZX5V@~JKE=!Crd>>mF?z)uIobKp}TJLZFZPQ?V9s|5 z&hY`$fVCn#5T~g?O?Bal;WQm~AL7!0wW6kzlgd~pRCeKp;-ot4Uc$+xiZ&Vp#z4%# zo<8=u|6l)n|BsXG$rvyO{uKkRlZ~?xwiJ46YjfOdJ@gjJ!g00YDg_g1#farrJb;S8 Y?s)=C1J;VLKS5T1=eDiz5^5Knv1yLp3H;$7$qXj{-jN`jhuUZAhxLGb1ic+dy(1^i}b zNRy`GO^VEv*>5vHJM5Pw(6RX8@czcEJj)6>^bSAFYxo4$UXYpxSxpCx`z{aTKlt*=|}=!>0p7xB>uUn1f)R@C4`; zGsQ*_9*C1vprkszVmL{M-D_N?*a%8GIlX*1t?cxM;zD(-??X7bOwdMSz!>N=uqTfR z_y4P(@BjTIdol)$fq%t-i}Ptd!IreQ4mQWV)AAio5D2_`+raK>Yh}uNdLSt;~q1#{_=T@^u@Nlv5V+?3o zTy=T_H=fk8)$tb<;Cr`ABbw2W9M$gM$^CkK?DD){xIX;+P|O#L*Ry)g@W-6VD1J^d z41swRG^b0N(hUvL=jiEkJs!{F;rOm|_!#C9jWKqsd2Gu`=kdn#XwZaQ%Ky^+_Q$** zrxmZSiTT!JDbG9eG;y5{zgfyVWb>> z8}hP%rJ$6P@yr+}Fq^PLF`gZM>(j|(g4(MBsz9p1j-0l6{XgHn|4)nbOchWC{*?lz znfG%3gCnf1wTt7m)}mdYv2k80Se4+wFU82^rT75N8~m0JfLXv&5FVI*2zVK^Qw4ri FfiJt*fgu0@ literal 0 HcmV?d00001 diff --git a/luci-app-omr-bypass/.DS_Store b/luci-app-omr-bypass/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..ab36f815f39505a924387033256a507d0eaf0ed0 GIT binary patch literal 6148 zcmeHKF;2rk5Zp5sGJ+x{K@?Z;0sp{6<^^deqr?&^VqHWGwLd^ZOHYTy6A(=v!XK!a zy*-Q_C!#|U+LiX^ytjKJk1d~xcKteopag&T`&t+zGj$KrM-`ze{)Y28*(ct|Zzi-ahwkQ^rUBHh+;o9~3?P3^H{uJTJ_XV4oJh`NN@yXx5U8I-(ce>Sm3jG=QAN` zir7$v?yB>1&UZff#me=F$V{4LMl>d(5tK36$FMXCW*yElS`%;CHu2B{g(S4>WjxquurO$`!@DbaU8oDSWe9y zoLzj`yLpeEU$T?ekT=9s?mOT5T0hT>^Q1VZ!|$=5%iML>y7{uFkJEQKXB*qixoN$h z*K%GJWk4BF2DXI()NGc~fuN4cfHI&Av<&d~!9p4Hh+Z&!IxvJ50GPrY1as~sIL1cI zBYHusK#YU}CDg&nHu~iey`Y4XiOq+JnN93aOvsM?ZEz=(3+kv0C
4cI0u) z_5bSU{=XljPs)HY@UIv!X)!G(I8v;wgTryHwa^)qh5fu>8-htF#qi})d<+c&yX6Tm UkLU$qf#@HBK!Xm-z@IYk37XPg6aWAK literal 0 HcmV?d00001 diff --git a/luci-app-omr-tracker/.DS_Store b/luci-app-omr-tracker/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..68034362b31c3f0f9127d23eef587417f71673a0 GIT binary patch literal 6148 zcmeHKy-ve05I%v!V?sBXe+_c$Pv&z4*=pBSlD=pF7Q}v$IO0>sqeby#9|3bs3sSm zpA+|O@76tgY3oW(@OzAFC6}nx`nvV5mY>HT&$7>se^qmnKdyVq z`%_T{lmTU6TNpskX36$F>ZlAT1Ij?l0Dm8HD5DM7c$7~E2Dt(NQwf1e@y{?cIz;N0wQ3bpWlNpOX9rf zbiNU*W}m39QQD-<_2xr=$fkY~6qCFgjPLWWouC+os(**EWYG`8yYXPU+uFFv(jth{ z!B_;x(Ewc@+>6tQO}lK8M!A^Bmj+53w6WVdH=Au-X6xlMatwF55?}*HgC`z4Ypx zd;b0B8>>FiAAPc6g-5PVTgPL6oF**Y$GN$+4hc*kfE>oq*VbsQzg@Oh*Ld)uvc}3B zBldfZ$N6Y$w04jNEXaUq{IxGX4#%s!FFr1KMNE}%*{1Q>oCa*%C&OQ%aghr@tF|iN z_fHGHMQoMxD7(f>z6xT~paSZ&(33_DqkvJsD6pgezaJc|96g1lL~(UsBT@iFd7Voe z&n0+_qtH`WN<<45B0~{nC{ZZ}5vd5bJIc>fSW1-PKveQU6f;p73K8rW?+AAwotk5y)JG^y{#*o<8Q5lbq^~q+^>`v$n*0E(U z?uaqpN7^@hKYi_+$#e?9jJC5OFaXeJ6D-cy9WaSYYgrLJQf&MfQ>+&c!|~KESFLPy z{6z)i-koBO4Q8-t-M_Ki_$gd#v$@ zY5p7)AN%oq9{8R|GRD%T^EjN7&qL%uffa1V-+g`l@~6DL_ow0Ii(kL5N%{6;8Bebg zo(|V(`P*b%=w791yli5piw~H4<(ym z710IsuMT$p2te%6?Ty#|8;V$pgIGm$0qLQcP)ZD?CLS?ND5t-Sc~wLgFqFf1W{wk? zO+29(&rW~o(_yNB+N%PpK(4?^_&bpO|Mutee_o{jQ~_1sUnyWZ^|&5!NpWv&El&2@ tlI@O7O!8d7ri2%MD`u{2#TRVe=r84hSVeRJ>7nU|fR{l#Rp6)!d;$TPdawWh literal 0 HcmV?d00001 diff --git a/luci-app-shutdown/.DS_Store b/luci-app-shutdown/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..62557add9490c6a4df95707b45ca8187da06ee0b GIT binary patch literal 6148 zcmeHKu};G<5Iu(o1;Nk-33c+oz`&B3B~)QxL+THpHc~sZas)-J;RE;$Ha>ur1qptN zcV`pgricwy=uSGnAv~a=VG2K=1J)WYjw1Wxy(a%uFH3F)~>Uy?Q(9K zk9jTgs;L61fGV&p3ZQ4RW&0j=R0UK4RiIUXzYiA9SOjc5%BKT^907nS!eY3Ve>tG# z0I&$yctiwdd@0bEnsCH0z8rBI@``|sM_*1xnDLyzY{Ch}2s`3d(#aGabyNjZfmneZ ze>>p*fARDAKQ7WcRX`Q^R|=T49G4?3DfHIf;<(pZ_%)o3^BRwB2`;1+BbQt85nK#$ X%NM{RVB--HnEnWe3_7R+f2zPIo`qmd literal 0 HcmV?d00001 diff --git a/luci-app-snmpd/.DS_Store b/luci-app-snmpd/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..e2117360ddc16045923e48262104b57e4d2ecfbd GIT binary patch literal 6148 zcmeHLOHRWu5FM8Y6~Q7)1PgKiB$OM3D(sQEfF-n*V3EiXki9QZiBquS65IfZi*N(p z*h7e$R_suPW-9wR^YK$&+_)|gnMu3IiBcjOqcM*5(5*3!a~s%5JO@DI=Xjubb(c@) zwr&R5>exmF_}T4JMJ?UZBMqM4>E~*^wq-f1>eqpVS5pO4fvr&hdp6s6KcM!ifGVI0bPDkMAwy#<1YJP?>Okj@0Kf!pZy2XM0A_-P zpbLly%!E>4C^d4#Frgg&O!5jr7ci8Qk;8`(W+NvQ=&aGw*@8M!)#~9LV za@Oe$&9taxi{mdU!1r#K#x$o98LHjC!|V0<)a3bKVg~RxPo6Jt-XGtxdd}#_oMIe4 zC-)cv^O(?rPH9FLG>o1jb@aI&59jgmb(g(7`FR9mOwDQ@+j63Ls6Nl5K?RwJpR(7b zKjb|)uXt@u$hRJgc*yc3Sf{~n9&@Q%a8hyt+!JMM3b_y6PV=l{4!{)qyj zz`s&JC3!FJVo82)tu2oCT8-96W8=KiVO4?)yA>msx8gRMHTX4O08@{pLwI2FAz)>Y KP89f61-=1#oQA9b literal 0 HcmV?d00001 diff --git a/luci-app-status/luasrc/.DS_Store b/luci-app-status/luasrc/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..2e1d71256ef289a61fd74edf2df6d5ca813393b4 GIT binary patch literal 6148 zcmeHLOHRWu5FM8+0&KcLV(BZC9spB?6Z8V8Edr#3R282c$^p0qYglps#8D8exdCrH zqtGaggoK1pG*gYAGarARBReh;xykinL^LF#6v{Z*MzKNI&)SlKTG;7g8!IX)$M2L@ zt!Oj+M+SK9c4&@uyQC|uTD^Yx*=Ra1i=_;D{LmFwlvy^*%NhLX$NS#l^V7>wckJTF zvCH%I{sWq%gl^~p@78T|Y@d^L-}-po4({$>ALDrH+@ky*!zO>DU%b^O#(*(k4D^rz z-QCjN9?s3CWDFPszhi*+2M=Woij`p8I#9$b05E|$3hI29;2f_Q6e~e^AWl+&lIrw| z;Upb)uW>=K5|nguv1hcSJv+UjxY#@FK8BMEf>s&>#z2#SEqNUB`G4Gf|8FMQlQCcn z^ojwOWYdiQMA5UgH90GlvZ?TNTkBTlt1847#SGZ_$4Nu&sIoD zA~7LAw&Z&kpM7!OMR80-JiT8`h{i;eKm`XQ3>_ltqAeMiMHV^kv8F4!qa|(DH!W{B z{6+@k>_+j-aw@5Dev{dCk(ZkC{!6!4US!#PUCgnXoV^_$KR>;m^m#76=~=FtcMjN& zcIkmubV28MyKd#(YI+>Jw>_G9Z652qzU-41pE>n=b>t&Cxi|yPfHUxy89>bzN%jO1!@za4JwgA8(%uz6xUP5AmVQN?@VgOyJwKEx{ z>>k_ok9z0((si3%*&wgkFJIf`+xzXIrZ3xzd&AT5dHeIXlcfSwfC^9nD)9dlK+iU7 zt^*mV02QDD-wN3GA;ArE#WB!79SA-G0PQ#44bMJH0Fx2GTyYEp1Jfu4Myb{jL!%sg zs(HEM7#QWEelyOgH*1|x)Nco$JY6&gGExC5aH_ynEEm@Q@8B2a|I;F_r~noCQwr$3 zTX!qGQthpim$P1*;P>!@A=lFpycGkz6=Pwo_~s}t*)#TY#WB#!!FxH7KLVx;jSBpR F0$(=$CWab6n@j1FbP6z8jSO%^d17h#CU{(+C!Fcz7f^nxLuOr--kzqe|i@WDVIV$}Qe?eOR4FZ)fO z_`g2WaebWcVmMCUSHo`3No>S5i{38u z)|$t)!&wF_16Q8`aXv6C0)35@LV0vxC7%F@4yvVKTb^WyOehe2jg>;wpb!;`s6vT; zVh|OMdZzt+jg>+b4n&TO{pgX2exVS3juIx_f%pn-Z5gl(m<(*HPgmUkPcDD|n?d%= zGGH0FRtykl5DfabBz?Cw7ANjnhUFNG5aCxTlp$E@>sU6#RlJQw3fh=xAo?0Bg{VQX Oe*`2Awz3SYm4V;L{q3g! literal 0 HcmV?d00001 diff --git a/luci-theme-openmptcprouter/htdocs/.DS_Store b/luci-theme-openmptcprouter/htdocs/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..40450b90311b408a23a1d4fcd33f3910f8f92b5a GIT binary patch literal 6148 zcmeHK%}yIJ5Vk`ACr~v9q`=LW-hz~<{D=e662gHS(pKfrR zW0tcmGk{!=vCI;dG7mf)V^hOhQ~>vGjzz4`ny_b&_pj*>lCB>q9~i&vqBU_@k8;4+g1ZN_0oP)_j=#3w&$g7-^O2*iXLLm{~ERi2c?B=6{lVpw|Y7` z3|c_>z8}Vc8q`%k4iY_%YdVA|h{8c>X*gW{yi$?N>(x<34r{B`^@`kBTN{lEqWr10 zxqH|-IUSyj&M%F~9Da}5K3cqoD+ng6H#(}hP1WgYD!(XCW_DDgVU-cn^S}3RuYYd6 z#18&~-EBXf#SKno!hDb2UL2|T2pIRPMK&2JKnjoouPb0r4KepRl^CP|De#{ufaik* zM|3P^2KCVag?<76=Al^|#Q2uL9BI+9m>Gl~Fm6%-O)9rf3~th)U0R-FF*9h=8MluQ zZoka!3x(^i!}wCu8Fvg)NeYkxPZgLl)e_$SJCoo4Pm`!d3XlTtN&%j4xQ#k2$=={Z*|!9t?s15#@0r6 ztHW+@ZcZjmdg+>V=l((b?D_a;^5R4hP4HZjvZnDXyhLTezN16S8SprjE@buNVvm^j z`sk(D;<)n-EkA!xs& z{f7QTk3IIniDSQ@KhPQ5AW)#GIG_qV()i8V^StZl$j$%&YY&1ZKn(ymI$^1T%{@lr z6Fq(K@~&^tfVgZ?x)Sb7NyX zuJEOm=GObe-s#!se0=dmi_P$NscgaEHGIWj%DUs@rh6oNsiw4kPiORGr(=}ji&sDQ zetrAC{V%NG5v;U(`|BL~$SLbNakC_r$uVYLt3oVmRspNPOH{y|0{qoWT)bVgRlq9n zR|V*N5a@)C!9t@tI=!1_F<5BS zbYQ0VVCK!tR47cn9p@J+9hjrhwpIbFz+DAq^ka?g|9219|946D$tqwKcvcFqa>wno zaY^QGomd>*wF3PRos9AdjW-kw)K!eRbQLe7E5m+40it8D(1<-~_K$#)!8TTbCsp7N D2iJ-( literal 0 HcmV?d00001 diff --git a/luci-theme-openmptcprouter/htdocs/luci-static/resources/openmptcprouter/.DS_Store b/luci-theme-openmptcprouter/htdocs/luci-static/resources/openmptcprouter/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..b27391782c25c7f2947c34963ae61f1481d58592 GIT binary patch literal 6148 zcmeHK!A=`75Vb=ZoS>>XR1{A5(p!)cwGeSY+NSA&Tct(xP!Q~PqhzJcI?8Su(KOY5 z2Ydjh{z4BGr~Uw+!7ngl8`LErP9Q)t()f+XGxqxJ%HCm&@zyA4Fji%Z2~fmB8JZge z$5CgbU_B*3uIK2m#2+UEKT`foG&vq41NiPrEM$G=u`bKMzkmK93X`;6KjVeD;)~L} z5EW5*S=n=YYV4+7I!apJ@GJH{duh+N_O?>dmF@XEVQ0Kwef?3zsTanbp-v8i4utG} z3FAPGTWS;siJr$b145KVdB3_mnXJ8gUz4lN`m`n|jkS8SCO6jCr_-`{^R}_MbNebOsy{FRE9ck8`>NfxU$Iy`IsJ3``|pR@nBdNs zLGS-{BrcbGj_>X;j#S(Q|K+n|3<)tn3=jkN%YZ#`#KQe9L$ebD#K03|0M7>ris)F( z4C2o6X~2nTLRTQ!G*V7D8Rl{V`ryJ-X=Xg`7r z`~wo-&|9V6`vv`v&e#SeO%b<TZ z>Tt##gESHY#K1HIc{45J{eSp!|395XGh%=kcvlSYLc?v;;gRg!I`eRN*GkZHP!x>I n3_hoTp|4_y#jAK7R15ee8i0<)%piC`=#PM=fd*n=t_=JE9LsQ= literal 0 HcmV?d00001 diff --git a/mptcp/files/.DS_Store b/mptcp/files/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..f177d78c795a48c68463c14667725aa3227793ea GIT binary patch literal 6148 zcmeHKv2GJV5Z$#6tc?&Zkcd)kL+8Q=N|Y2xhcN|Rq(h{DD7nj7@k!@f%Xh{CV{{)u z13y5M{6sn=dOA9O12MBZj&0dcA_Ozi?3~ax zj=Cll@-zS?*6@N;GZ?PTW5?gi0KU7b=!rs{rf19V@8H`aGBDk4l$r=UYUliuw|#N> zXgM1HCOYgdSG6BURg6V0M$sf6Qq|AVFirBJ-To>o)!Mb|H3o0mz{Xwzb2On(SUQ9Vh;*rd zE>%*CAzeE7HO=!0ONTC9NNPSLtt_cSk#=>cukCapeTO_U1I)lG16B9f#QXorulxVi zBz|HBn1O$a0a@z?-41Mt?$))<;a#giPe4&{Ug_{E1q^!?!(6NVP^v;;Kohwo;T6 zw|#)|9rzNvP1+st0e0sj@Sg2$iCQ=!#Qdb^-^=@B$G=#13;?V<4mto$0N|*El{z*H zgyN)gQZb$eBBMS!?gtqU=kl!M-(`TlT@`!?A&HKQ-*0*QE)vUL&yS>!9$X0dm$S2r ztztCzLv%PO_DbsvmLP=zcrb##KS_tC=SzPWg=yAqe`l3yZRx>7&Ktb3+&FLta^hxQ zHcq?V=si8{c-g==_O6uCt?l{m!v5s2`Q)`sGA~T}BUKy*eN5Tk3zI-jx^kQZsp`ko z0nY2Ze%M@{PG7FKTjJHmtR<$M_WFyK*jQVe&FXyRS!eU@QG9Yb{WSZ0PIJH&k4s+3 zV}m#F6^+6a%e4M@T8wIm`g|TDykCn Y3o;NLgSkfZpx7S)MT2cD1Amo)U)UjrrvLx| literal 0 HcmV?d00001 diff --git a/mptcp/files/usr/share/.DS_Store b/mptcp/files/usr/share/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..509554931aaada76cda32135e3714f4be3f2e967 GIT binary patch literal 6148 zcmeHKy-piJ5Z<*NvUU{31(FffHtAgWh=QPqbU02yhjdX=BoW+k7Cz~GYuRV4#Bp>l zkpf`}5su_f`lY+vC_1qAr9`popa^6n_zn zqb^8^JS%__`xp(P)I?CbiUtd<*|Cfa;I}IaBl=<(P3FH}nvC*R>spq|l_x7tm8z-Q z^V*l7XC^@&=HpR29Dc&uUYPeHvfmq%-q~UFA?Z%`>#J`~mWN5!9opn1?n0B#ACoLL zleQUW@yPZQxPVesRo$&}PP^29l`q#F( zkiJ7MnE__tJ_BV}t>gXw?%(hK`$=452AF~WiUC>a1f4c4iSE{g#o=A6K@UJtuwCKs lE(HvG6+>IRiq}A`fM25l=o1zW!2`lS0+t3Yn1M%S;5X<>YmWc` literal 0 HcmV?d00001 diff --git a/omr-6in4/.DS_Store b/omr-6in4/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..7c7a4bd74769f7526935bcc6c03c1b2fb8ffc444 GIT binary patch literal 6148 zcmeH~O-chn5QVEW!hoAB#f^Og=Kz5=j3>wiBu0%eVFKcQ7GA`i8!zF>e6On%Cl0s^ z5~`s4^-opL%m>rmB_cY1UezK~5vfq9%EpLscy#K>ohMK&Ydp0N_2RbMY)6*)pF@22 z6Sr(^w8+(ol#)IlH!3<(@tcgpks8o$hFl0OWIUJwWZ z2Sz|A&7zs(qx@|B^?5vN6Uq$=jeb2FFti7k0Cc#IoRvwNPi(_4yY{ABh2te08W({A KB&r~=2LhjcwT2u~g1-soqR@$ti?1l(J(Edib z@CE!s)mzjL$QSS*ov{r{2#8x$(2O*GC*wsd{eerQM|Fb-v;3irQ5XlR zS5w_MNc29gSrDQi3dg0jet%=TQkI)LgR<;bE8FX3xwEx37!<_EPu1Onlh(y$|7vjk z%P`B~6V$R|@d0kY7<XKNK008~ zEdXF1+*-iKUIKHZMaN=h5LQ6ANd+{i+_o6pq=R4DILBgU(4;eNn-6X)bK9YCT^;t9 zI-GIGAdSQTF)+!%oSByJ{@;JO|DQ~v88JW%yekHHzV6m*@JRMS;su=hAB`Z3v0jLFXJD1Mgqru*Kt`z9}m73|ihQo!hq;k!3o?$FKg4W1`d2GB67|*Q2X+1~@Ox_c|QqnaK~qbM|x?Wnl)G z0cKzW1GG)3%Nt_sVg{Ij|C<5aA2cXpKv+7oTL(1u3IJFGw-vDQE`c?gFd!@)LIgy* zQb1QK>53s;Iruf@1%#zTS1u%7J|xX7>4qZh>@dEz=|Tn$xn%~JfmH^ouIu6X|KQj6 z|J5SyF$2uNKgEEob;3>?mPBXk+T!r6)u3Ha6wE6fo|k}Ok7CHhqj(F{3ive|fB|9Y S5Ii9KBVcLZh8g&y4EzMXgMmr_ literal 0 HcmV?d00001 diff --git a/openmptcprouter/.DS_Store b/openmptcprouter/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..005211b2688852d46d618c040c00522a1e410ae3 GIT binary patch literal 6148 zcmeHK%}ydg5bg%lhK-TKCXzk%#Ty3@{5xziA|AYLGG_O%yMY-8Ws+fkQSMKfA?-T@T0g?dZejzW@&kau^h{- z=6>33F|cDN?ngDJ_g&7uIC0xG_OTGb#CF`TerwRke>@Oj?D%1;r;>fI1tCAa`JpEU zHPH{fNbO_m1;(;0+sGG&!^&>8$TxSkMnyi{+bk7%wX!`LW!d^h`SVe;b8$Jm8eQLL zW+{AvO4baH;TDXkM-0x&_KE0p)iQnfJ-gZw^}6|h*~#Bue2+zPf{>3r^1sOmFkbwmga$$ zwE%z_a4P{@_7XCO8?+228es*5>Qq3TN==JFbvpRDiL(qQ8g)9Mrum?zGBq6vRn=jC zuEGhmG~$R1AOo`ur1dl}@BhP>`~TS_oFN0qz`J6AX6kmm29IR!*13n1cP$5Pf=ZEb niN;9^80sp9Sa}r}K$U=>O9Rj{m}mqK2>uaJG~j>?ER=yKr=o9# literal 0 HcmV?d00001 diff --git a/v2ray-core/.DS_Store b/v2ray-core/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..a65233b508df7c9470eaf17caab8d62b2c28275a GIT binary patch literal 6148 zcmeHKOG*SW5UtV?8r;lMT;&SAbJ-5<31%(GIR2oA9uW7riCZ^b!W(!a-%FKZw85R| zPzA}W)Fp{0v@@u9x*d-0-WbeJ~IV)C}y~aL)Vx48P1|kzc38C>RI^ zc8md?^~-*NP5IsWZF{_H6WRqDg>jh*1bX!dz<}q-QE{3-QAb?om<>4#?Ij%;4}n5R Kbiu$cFz^Pe!z-l# literal 0 HcmV?d00001