From 62a29f8ff0805844b5631cb4337d5b0d8e1a5d91 Mon Sep 17 00:00:00 2001 From: Paul Curry Date: Tue, 10 Nov 2020 13:54:52 +0000 Subject: [PATCH 001/117] 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 002/117] 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 003/117] 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 004/117] 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 005/117] 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 006/117] 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 007/117] 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 008/117] 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 zcmV6001CSdQ@0+Qek%> zaB^>EX>4U6ba`-PAZ2)IW&i+q+QppbktH{WW>wAIs^^Xe$_guif z1DpO16#RST_TN8n+tNfs zx!3=4p&!3DA8+-{$?xET#zU( zYUbu+>Tk%u3+b1yehBqPfWD2ixeNO7mheM_@|Vy5`npSBUpL=|^v3O*E9d-v<-dPD zMDM@5=Z~oA-#M$Ev!A=`F>}lLy{V5|ykGIYq1C#-mHAuvmu%Hy>u=+4r6eZdTqN1x z?{pLqVLUFn<+?j=-_O%crWpP9h0oqkAKWy&SP4e+Gbp%Gf8FsVw6F-W50i8Vyz0Nq z#of!cd%5W<7hbL!vcoZ$Q&xQDulbWVouh(sPHWlrT`T5w7o1rra?Tm+cpDLM=Uvov z7x?4vkAD=`Km^lW=E@CrJ2V2}AIW`9u5be#cw^%8Q%A0>cL0`%86+k{*+gfv3&~|? zi}$8D$3j*D)S0>`MFwGUDfz`DeGDNJ9IAk8^E<`exBBFtmjOZokwP}15Stb{!HO}F zKP6UjsHc!(N-3w3YHF$HkX2zhmn=l>C6riF$)%K9TIr^S8f&V#mRf78z4;bE+|;PY zR$FVmbJ5Poo!{=fq4(iO7;&VLM;Udr(Wf^v%sA7`v&=f%?8~pPsNwz?R-BBz+y=BbM0nPgIMmQ%!tVBF59TpB?M0c1AZd1=UUt5ngU+gK#vYZR=FN+%=B{P^!o?sHdN~6iqpk@b2e@?)r(m z8MvDF*JpxZN_4*;&OGCNemL{(^gc73`RCpKx8cms7VmF|Grx|-pATpLB(#4rocWW` z{>gCW&okxM!@oq!l=Y#Fnnqm^19KU>Num4M3M>+0pRV|b?tyW3@UhJ@T5lnZ zl}|$PxjkIief5!MS>2yr*4R0Y;Zi7>!Fn(?Jxbk8+xy85b^>5`4|(xTai?*)l00mM z(b-ssFrZ&p>);Gx-GiG?yBdDE9?PxGz53j+4W1%ori94Nel0&c8fcwa<7jKPij3Sl zwxV&GtD=#<%B}vIbJFMD#?WWqhLmTnHcWh0hf5UA=WWlM?pv(Yo1PKO=ZAPkFrOdd z`Jwsz5YGta^Fur%n9mRKj9@-L#502V{1DFw=JP{5BbaZ77>#Ni+r?5-i5{rPD^MM$ z*0N(-GmJ9lz0h!Ix0w@lvs0Rt5{aesUMEr>Mb}4dvmxm6#A$Uume;Rs$907(yY>jE zQKb34?)x+UR1Q$f*Bz~QPK)pCD$0)f<;N|ZrAg#r&(6Z2oh6z2%uRTOn;U&oq1J44 zdqyXRLn(4EYXcS7(&76qwx@dh+`ywPV*zXzZs+8B00^kY$9t>UtQfoVbqvI39f?~6 zwZ5+CFBX1OP?}ZqUV<4fGWJ?!>;zaLkViVty7=ry5A~D`zJ#;VKC-KOjl!Hx?9H{w zs+G;895$<#o`yfe<`K$ld1M6m>$KGrZ=~ zNQ)cVxdK;AlsHy^Ja0ZOG;_)j$QTWekvE^hnyXA!VowL5+_=qVBGf`$r!K}sSM5r= z!u95ej4uLPX{y~BYt*3^Wzl%>wxBG_x!g5 zn%^zrpAKmLG%CLv(EM$fe>R}`+c5uZK=WVo=EnieXA?1F8w*0jG-M&TYU>UQi@y8? zuN7<^Ku9=40~c@*pDR46c~Sn@?M96vf>vpk!tDl_=aRL69&2=0SMEdlumlxrT8B5M zcwE4R%V}GzHNO}q@E!oGiHmo^Mg{@{8gmDFLG4`XJJk+9xtc;-1y))DUS`iS zHu#FD?Sm5RtqaI{-y;C6sK2z)e4{Mu2lH&6i{=K8WkjO$-Qv@26%xCI&dd0I$;{IO zQ0zg#mXU!goZ1Gw0gl_$AxuOm>=BUO4GGMugIxuu51~Q>El(CZr-BA9geh61EeLIa z>RH@83CVo+@=cV!91NsD&J0A(jS4-ZbFn*AH)=EmH#Q3i-|?G(esnt)8{L^11$<`` zALqC-snvuaZzy%<-Uq>e4u#s4R1Dpf+6c|gfy+C7ZIERP z!44nSX4ACG$P*w0ViQc472w4-!c2{cY7(R_ilLp3I?iZiGS-p_j5^5#C6zx!xfvL& z@7@zpf)m4Ro)Ff!TO^9G1qLSje9-%FD)-BD8tDRkJ9mo)0^4OxQ4zsDS#1~aXF zPi>J}{JZX_|F&>XUBuNrR(Vj5EMrl#b z&U-AVN_13;BlvK8ZQu=KjEM>}o@hulY(R-9<3?H3L6IRMaipD;tIJNDkPDJhGNGPK zh&U!yfaUglKfw^4n${B_(6DCr+^kn!153EE!>mw|-pcvzC2e|FNuC%1lg6X7kyEE2 zb$Xd{ZXLx_QltDCox9?8a-1_S={$6p9~m7h{KR!4a@GWILk&jex1ukx&{R?bjggJ6 z>f!-i3+R@O*XA0a%azbz8>^S`#@rJ^(~Srw8ZN7)!!QFM;6g{rUCBuSEW&;6cOc>b zcQc5Y3m8ZCMj#AZnn_ZG=QJQfseq|PnPXEe&VE!3e-8M3%5oQ0yPJjei>WmGJE&22a) z=Oyy}nG0PQpeV#7RJNI;MbLuap|iMDz$t5;nsTo0fVLu zxsZx(WS_7(slvOpuB#ylE&vOU0rrCm+JGvdjh=LwH4sxA_5{Enqj3jfg(XkZYT>HTp)Fs5Mfyd^;~alDkQsJ+i_oo6Vcf5Ic(*YU*eb8M(NNCz$g%G8Ag*V2%~b zlgN>^cb@wvypNX}-avrRQy@L_X`PUkI18GE8tJS*tj(mBl9asd+q=ep4Y$?2M+VRP(Z0XLH>hZ5VY%9!}PiGA=K`y1N?h}FOhyv~r8@LkAhO6eWn4fw~!lULfY*psd z%lP7O@Ury)891W(Ac03gqzin*LZx`%z~Zo^diCW9^F2vuFZa^KKN;sY3}G$>jD5kg zUWRh&Nci?D{FigdP~=!u<|+Dbd=ODcXdzpgrq&WvG2t2jVd8qX_L*mlP~TXaO-OMl`A&jEdZ{fkV$YlnNUm7LN3)4`sw0QLmriE0-+?Ruy-Xi zV=qap86allZ`D5M%8vOXFp&q`duAz0X=?RQm{Q@Vsc2z{nZPtGNms+lYZORGS~LRH z7HLsB89A55CD12T@V$BT9p_-unDZ2gi|nD9m`D(IWB|Bh97S-7gX#=?%}cn z+zGann|@6~NC|*iN7t(Clx={(ezpmSNq$5PW&5gh*LkU4>tzrpOGGs>CUH@7&&gBK?NAR|as-sx9+qjYkk+n_=JKw9Rp|2JeW{ z6KvudONA}9F$2irSD67djTPOAHDEo_hTN7xW9%NTi!AH%x94hw`*AD`il|yyFo3k` zum|3VO4@mZFumKPmbeDCGuy+65pr)8lLpW`k_<;OM%Jp%2yi1nDG#_B*p8YOa0ff! z#87`MVx=BU!`A~oWG^1cQt>Py^}j*a;KVSwfJ8SLA@u}xvV0y?TCR;Gl}enJTsFCr z=G8@Ao!EhpWH2rhn-cm=j2JaJu zmMXdcpl#|U!cFo4WEfrv4W?at>WvwowX;07C$on?Xjw8B1)r3(Xe*$Xx8YxbkVeK5 zI&=VGAe~rB?6sf~q#fue-{IygjX+;!rr@&#wy zE91vEAYUzp!1!VBMUgd&qQY-L3`pLHs?*jGF5w=C;Ts*7Vwxqv3w>>(r}7g?XTAok>lSIm7Dk2J+bH{Lkd00eFt~2d)ILA>7kkLkXMuaVfc) zY`AV`{JVPUgOym-fGWg-M0KJXjKb-SZ~sIeednIdPn3~uy!u;xG}NztWScspKZrJ@ zjbxiugF|BBY9`$*kgm4+kwZ|)B&Tkch3HvRgFppK#qD;J_T1k==mHOG<+*q@2;j98 zSSTf6@9=~KS3uKed=b7yTZiZjJnY>ujge#maKVf^JR+Q_$DW40JEm5zi`cOSQ^zh3 z;sEYD2WrRoA(KbBk`I)I8FqWRA&=L_bvT`btD+Cq4|RYyQS1H?H}ai(0Z;LGrZgRz zX=p;;$TuE0L`G3Io?rkxgScWHsft-=5-BK=5nDqiEP+sXX{lB9eVcFH^#|&9z;S0lYfJk&CKY zZJr|&PBhqlUR!&!wB^#~*0v1(FzT?Co$=xpjw8z2#3Rg6wnrJVaT`G_t2*pBmZf!Y zn51>Lo2(i)T!6gAP%)o%SDW}GucpFafguTqWHfv?+0mxa0j5ehPM}RYY(rtb>7lFE z5+56-41rRcSoP^-9~oh(QWvnr$w1a<)3QlqZQ~$%C*kEMa3Ge_vyvEDP_XDk?$K(^ z>!gST6hGAMiF0U;B2`Ycitt&`P|=8CrzZ1{J@)EPLS%WXDYIcC1ee6Wc$}#dmj<*> zLw(sLL9&WJS7#>R!0H$SciJFRAd&m)Tz9g z2JYM>P!Wb}7mZ)?i@-uUh+sUsI+gKgow;H73CoUZ@M!+6PVK7NycM%WgwozJP|3Pv zwDYKja#I%q^?0v?-d%8N8&dcPwJ70dNgR+GMw3fs-GcgmC<6FpBmHu9Oo2?Ck=em< z`8vhy)j?!FXjT}2RfE@&6i^Jw$i1iNFd`_@88X0Pmc-5yu4KfzulyqUwDO3lChr%b z0FnU$;7w!_cd=GQF;PSv;`cTyXahBZd<7jf&yits25dxPNVm)js3b7;iC9@`W>Ft* zdP)ZOM8bn~$W-4lcm%;6ZGvPLllU+NWGJfPHe_&Ki{zX+fDeeiHVSqHJw%w79pq8# zIxDVCDEQ#`)jGxw*~p@{9ng(ge1rPlT?kb#oj%>Lg-2i+Ao&sl1&dBqXH?q{Xsj$x zxmWb4#2k@YEI*=xM23HN&d6yl&>?D28f-?tHRgu#Q8D%SVLb}SUUarF%IWTi-E8bxADmMn5b}Ap-#9P+A3mzN@$OsgO9e;)j zQA-SpmgHQ>-jzsFY^+{$Q2SzpRZu_~E1IQW?0v>?hka$|yN8nq^@)R|XA)2jr z)S7rgb#KEl;Bc)(5&t57#3^qto9~+v05W36$rgf679r{iB&5Tc*sCqa7je~&!3=h` zJBMh-S04DoNv&!J4VNkT+Nh~yW7E?O6JEf>W5)}HD}T;EoL1o41{N#mG?fQ8zTwqp z=V6l7RR6$g$}tNXN4SeDF4{iRi7cjTyz$yEwA=1YSJMq zz1$OPpsp)<1vHZ-S^bozQ^Y3l+uZIV)o~@)e2`3mq)5{*?g3Iz0-`6sHn9Fh2$_F0 zus-D3E6&LKE6>pFBYf3W?hC-ZsaE^Bv>HM*y5n`DKy_ecfu z5y*J9_wHHSyS<04J0-|bi$W`cB0Sp-DX#ZqolWmyI{5&{x zO=+F4BfS#HNDjxNCWH2ZWN%c13xY!5L0ZI3jwr*dOT7Rrp#e=~Ku~8HN}h;#?JNO7 zYS@%G(bY&qtCMo^pomHV4E9b8t>nI>qRnD6^VJC2Sjvw!kVk}aE%uMwE0K?jc_Y#$x)G^!k0I}-w^f<(4K0i11fED@Qo}}Irc|;XrUYI=N7l-#)VLgAO=Y)$ zvu+mMY5>~3CWWS*Zcya8FNqa(<}@d5T)6!B$4B$gI+63Ne@?B7- z%)`9XXTj0`Yiu=(;NA_WL0@ERDv?!^_(7+jL-a7q*aiZ{dOiCRqThj>PeEw!0|=_X0e@1{;)IcHLqwyF1lC+<{Il*ZRU9ICLWXi*35_$P zEz|>K27C4A%v7~TkCg?T8nqVrz~n&YYTo5{p18r22MFT=Gg>D z)<{njSwt3t(zx{@pOdw^=hlZFGtefnntlDTIZ&UDcFN{3EH7^Z5~?$X)ms>?tiz!o z1B($}^`*`!)6t&8)nE7Inyu6m8Z4+|Lkga1j?Q$}raqw85GCu#8UJ#f)F>FfI>mKV zVtRt1vUuA5Lg5$fVLN0F>#~iU0|U0_V29TV7o96pQwxfia~++2yTU8$yaui}oOp-Y zZK`DvQMJeXhi>Y3&D2q`$o)N}5{t>;)K8uFpTyxntD5a1b?N%ezSBQw*pBhd72ES!YGjbh)JpSh6TxF+6Vv)Yfl z%4d8iAOE}0cW1BauxBRKGQ!vt;sq2-AFYs8p{MIe&5kiS1pLq`s<3hS@libdZbmf# zA*o+^2uQbH3`p_iX(q}g=@Bp;486|=%3dQ}7P7Kr?YyIh6Qo#L)>(rkbtx4RqBE$b zwbXPa&)h^spkfIhkg=bpmn~nP5>TTUELx;=!?frT6BRWP}JL%JE7n}PcTWmnD2v}icP_nTOp)PJ-uEBGMl9w(O%~T{Q1m7$_Xg0ctO*K)q&cko+~WPc(^2N8SwV z9wLS+=A|sa1nqqC1TmpT3Uj4;!t!FzPYF)EZSm;Rak-K(VdkAi69KOqePr`h^VaBdz_RWhli`q zZ6gXE-$a$=`#%qWa#$Et#&>ZudZd+V*4dn;ewzAga#z>+Q#m(sUOT$B_K-KOT?Y2AKlN&OhyKFPoyy&Ig zyVH(BElK-0`#C-5{M3meDW9^R3QPzYFB4dT&P$%q$HN?N8w9N0*A;`d@qK5Nj$<4{o}Zph$%K(-0D* zzfT?jV)x|px&Oxv#Y@jaJ}ny^ZP?oN|L80^|2%kbv{{R@fjZu?%wtKO(X9S21h1g_ zI-2Zm)qxt4%O-8~$U&1~>c^JgF+0dl#HjXy@l7c`=a_JXI>*%Q9}3*}v-!CKuIi8+ z_4gq{WGL4oBT+r%X$(*<(i=%KGM>_R(~`XcSe9&~tuR>~)zYrmsn7ARdy?pF7J6t{ zUGHUu@j(KeO&e*}c3 z#Z94+SpWb424YJ`L;(K){{a7>y{D4^000SaNLh0L01FcU01FcV0GgZ_000RvNklWw#(N2^GR?tw|V4Lc&5`b{{|NU2?g5_vYT+ zn~-eIf94F~ob#M>a{l)@=XuU~?u`-=G>Q)aJq4Or4Na_uCRRfetD%V<^C+>)R7#Zs zcLQ^P>A)mCRU-y{Ks#^}ctb?~XIo1|t|g!pSP8TNqSJ^^{lI3R+RUSfU?z1c@HahK zqcU{?jakG3HvxzB1dV#_eZWfWZ}h|zMd|>iW{!#H0ZBb6MU&QMi2Y@b3a5bkfeF@) zS*IJ93>Wow;N={=T@n!#a0r-dF_wFPa((lYKU9761HclX&Y0gSUieJls5 z2Z=`%q_?vfGiFT86of*d#>~&PwY3ugBof=XvwyU3Up1vG4-mb(=Of8T}PZ>?@kNLGdS>yko>8S>8l2 z80-Pc0j5oxb}_RIU%YrRm9>nBA z>gbq3O8#ln{}OE#4-MwqIHmhj$z-W1Cv$3765ZT#&T&oO-11-2kt=37QmIraDfZil z)S7-iKIVv3N)4Lw#N4c$o}|?P>LYy}3h9_JCwwU5{TOls=2Nw zIsf_bPHR?VS?I7yD=+2H)@%9UrPYVCDxCZ2E?4~*GqHtep+~tXHpWV>W7%7be=DM! zTjpCxoexx4>bYrm%9tUxfMqowjB{HtvMls21IL8_vJ_|j9}6$7e%C|)rDKBFVI~#B zO>s2_L*W*h45>qgwjN_3rhB2s{`-oa*uhA35oTg0z%4p*oCnw zTW^$m!NsB`)`?UrafQ~inlxECw|)0>P6FYj)d#LE&##>5H|572f5)mP@3YB%XV{2U zN{v@aEmlgcQc8VADK&FAWF3~jp+vUzS{D55;QQ^t@} z`nN%e52Stp_!V3?(3Dc@x4<_xI-p4<>Bt zZ?)NB8{S`8dD>}sHB}WVlMFYf64;w-Jnx%4`3wPdmrc>uAthERRR*lXIfUl(z!!a% zEqEW!*XLDAK|In*IwouYLB$`ozV;mv*+}~Gz0;|knyQL!(n0!nS;pB3Y!Z=;yLRkc zMrjs3N8N^~7P1t73izOldP@w=^h?&2wz?rsDdlSUwrMMJ-MExuPpsv(-5b7qdye|5 z`E1vZfS_@}u+Z>FCt3Pv2ObBYHY{Yf6Lw2ZAxp7aBj+PN%ieI`R$}2-fzy^wQT5Sg z2eDIz%mttZ*ilneaoM(JU8LED)RPhmZ+AP!LNxY*%X;U1mc5}cY4{?tZ&zli`snMV zUyZTuu^UYW)w4ir^VzOvfF~`a{t=jE)Ab@R<19pD_X2L5>pecpjtKu*V&N0O3R~Nt zE^=UyJ+=*a0{C{*nM=VHt6x$Esrzjn3Voyz<%`&gc>78-2eAgZ zw;EeV$cM$?6tIYRq{YcqTq59zXhZRH>ALx=5wrhu1Rje(YqRjO_Pg-y;2fY^%q9ia)M6*I`4U=f`=G3J{N+ z2cGj|4Edm_Vx9^)nDFCJ!|4c96I-Ab<$VTRptjx!@`_Sp{UEo%Fw|jR5xihj@3A7{ zdil#d2>H4}qYa~ek9A9c7ws&DujLel@#H5FLq+OvKP*LK75m}V6w<~>)AFKvKi2C$ zIuzROB4%pXh)vmOZs}Oo-ci)|IH#r9?lQXujnRNvPQ=<>;C@0Wr9Zhhf}xa}1bokF zDc*$ibnwW3HmegqcI%-X4?LF78AjDkbXa;TTj@CPASq~CVw0#vGS-K zLQ2XFt7|&xsJf-VgC4E7Ckv9?$Ve9}YxgfX8UBal9%?pNPCV6lcZ1BOQ$8_Tr#jlj?{UjqT1Ynms)@`Y&}9C-f)xG_e|* fSPf0A#?avZ75<4pmTWq*00000NkvXXu0mjf4f>KJ 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 009/117] 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 010/117] 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 011/117] 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 012/117] 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 013/117] 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 014/117] 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 015/117] 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 016/117] 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 017/117] 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 ed7c5dae44512176916fe46ed81ef8df79161e2d Mon Sep 17 00:00:00 2001 From: "Ycarus (Yannick Chabanois)" Date: Tue, 17 Nov 2020 11:10:20 +0100 Subject: [PATCH 018/117] Better max metric calculation --- mptcp/files/etc/init.d/mptcp | 30 +++++++++++++++++++++++------- 1 file changed, 23 insertions(+), 7 deletions(-) diff --git a/mptcp/files/etc/init.d/mptcp b/mptcp/files/etc/init.d/mptcp index 9f0db4286..ee8027b05 100755 --- a/mptcp/files/etc/init.d/mptcp +++ b/mptcp/files/etc/init.d/mptcp @@ -48,13 +48,29 @@ interface_macaddr_count() { interface_max_metric() { local config="$1" - config_get metric "$config" metric - if [ "$metric" = "$count" ]; then - count=$((count+1)) - config_set "$config" metric $count - fi - if [ "$metric" -gt "$count" ]; then - count=$metric + if [ "$1" != "omrvpn" ] && [ "$1" != "omr6in4" ]; then + config_get metric "$config" metric + if [ "$metric" = "$count" ]; then + count=$((count+1)) + config_set "$config" metric $count + fi + if [ "$metric" -gt "$count" ]; then + count=$metric + fi + elif [ "$1" = "omrvpn" ]; then + uci -q batch <<-EOF >/dev/null + set network.${config}.metric=1200 + commit network + set openmptcprouter.${config}.metric=1200 + commit openmptcprouter + EOF + elif [ "$1" = "omr6in4" ]; then + uci -q batch <<-EOF >/dev/null + set network.${config}.metric=1201 + commit network + set openmptcprouter.${config}.metric=1201 + commit openmptcprouter + EOF fi } From a8d46c5f9722879f4406ae98657e4722f7a6b58e Mon Sep 17 00:00:00 2001 From: "Ycarus (Yannick Chabanois)" Date: Tue, 17 Nov 2020 11:10:49 +0100 Subject: [PATCH 019/117] Run openmptcprouter-vps every hours --- .../usr/share/omr/post-tracking.d/post-tracking | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 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 15d729cec..a7ca34d0d 100755 --- a/mptcp/files/usr/share/omr/post-tracking.d/post-tracking +++ b/mptcp/files/usr/share/omr/post-tracking.d/post-tracking @@ -247,10 +247,12 @@ disable_pihole() { if [ -n "$(uci -q get dhcp.@dnsmasq[0].server | grep '#53' | grep '10.2')" ]; then _log "Disable Pi-Hole..." uci -q del_list dhcp.@dnsmasq[0].server="$(uci -q get dhcp.@dnsmasq[0].server | tr ' ' '\n' | grep '#53' | grep '10.2')" - uci -q batch <<-EOF >/dev/null - add_list dhcp.@dnsmasq[0].server='127.0.0.1#5353' - commit dhcp - EOF + if [ -z "$(uci -q get dhcp.@dnsmasq[0].server | grep '127.0.0.1#5353')" ]; then + uci -q batch <<-EOF >/dev/null + add_list dhcp.@dnsmasq[0].server='127.0.0.1#5353' + commit dhcp + EOF + fi /etc/init.d/dnsmasq restart fi } @@ -728,7 +730,12 @@ if [ "$(uci -q get openmptcprouter.$OMR_TRACKER_INTERFACE.lc)" = "" ] || [ $(($( else [ "$(uci -q get openmptcprouter.settings.debug)" = "true" ] && _log "Get status and settings for $OMR_TRACKER_INTERFACE... Done" uci -q commit openmptcprouter - #/etc/init.d/openmptcprouter-vps restart >/dev/null 2>&1 + if [ "$(pgrep openmptcprouter-vps)" = "" ] && ( [ "$(uci -q get openmptcprouter.settings.apilc)" = "" ] || [ $(($(date +"%s") - $(uci -q get openmptcprouter.settings.apilc))) -gt 3600 ] ); then + _log "Check API configuration..." + /etc/init.d/openmptcprouter-vps restart >/dev/null 2>&1 + uci -q set openmptcprouter.settings.apilc=$(date +"%s") + _log "Check API configuration... Done" + fi fi dns_flush fi From 3b2bf7ba598f47e0854d3f04098613eacaa33458 Mon Sep 17 00:00:00 2001 From: "Ycarus (Yannick Chabanois)" Date: Tue, 17 Nov 2020 13:34:42 +0100 Subject: [PATCH 020/117] Remove tcp_retries2 default --- shadowsocks-libev/files/shadowsocks.conf | 1 - 1 file changed, 1 deletion(-) diff --git a/shadowsocks-libev/files/shadowsocks.conf b/shadowsocks-libev/files/shadowsocks.conf index 1c4703f5b..159ea3860 100644 --- a/shadowsocks-libev/files/shadowsocks.conf +++ b/shadowsocks-libev/files/shadowsocks.conf @@ -51,5 +51,4 @@ net.ipv4.tcp_mtu_probing = 0 net.netfilter.nf_conntrack_max = 131072 net.ipv4.tcp_ecn = 1 -net.ipv4.tcp_retries2 = 10 #net.ipv4.tcp_sack = 0 From ef58af317fb81dbbc80aa4ad176f50eced3c0448 Mon Sep 17 00:00:00 2001 From: "Ycarus (Yannick Chabanois)" Date: Tue, 17 Nov 2020 15:31:33 +0100 Subject: [PATCH 021/117] Fix MPTCP interface trigger --- mptcp/files/etc/init.d/mptcp | 16 ++++++---------- 1 file changed, 6 insertions(+), 10 deletions(-) diff --git a/mptcp/files/etc/init.d/mptcp b/mptcp/files/etc/init.d/mptcp index ee8027b05..57e4fa63d 100755 --- a/mptcp/files/etc/init.d/mptcp +++ b/mptcp/files/etc/init.d/mptcp @@ -470,17 +470,13 @@ reload_service() { return 0 } -add_interface_trigger() { - local interface ignore - - config_get interface "$1" interface - config_get_bool ignore "$1" ignore 0 - - [ -n "$interface" -a $ignore -eq 0 ] && procd_add_interface_trigger "interface.*" "$interface" /etc/init.d/mptcp reload -} +service_triggers_load_interface() { is_supported_interface "$1" && ifaces="${ifaces}${1} "; } service_triggers() { + local ifaces n + config_load network; config_foreach service_triggers_load_interface 'interface'; procd_add_reload_trigger "network" - config_load network - config_foreach add_interface_trigger interface + procd_open_trigger + for n in $ifaces; do procd_add_reload_interface_trigger "$n"; procd_add_interface_trigger "interface.*" "$n" /etc/init.d/mptcp reload; done; + procd_close_trigger } From abaadfdc6b556b828285899a4fa37136cee09f79 Mon Sep 17 00:00:00 2001 From: "Ycarus (Yannick Chabanois)" Date: Tue, 17 Nov 2020 15:32:55 +0100 Subject: [PATCH 022/117] Add a sleep between omr-tracker interface run --- omr-tracker/files/etc/init.d/omr-tracker | 1 + 1 file changed, 1 insertion(+) diff --git a/omr-tracker/files/etc/init.d/omr-tracker b/omr-tracker/files/etc/init.d/omr-tracker index 5d470808b..e0d78e5ae 100755 --- a/omr-tracker/files/etc/init.d/omr-tracker +++ b/omr-tracker/files/etc/init.d/omr-tracker @@ -78,6 +78,7 @@ _launch_tracker() { procd_set_param respawn 0 10 0 procd_set_param stderr 1 procd_close_instance + sleep $((RANDOM % 10)) } _launch_server_tracker() { From 28b13c78e9bcede9aefa2ef97f22619149bf2341 Mon Sep 17 00:00:00 2001 From: "Ycarus (Yannick Chabanois)" Date: Tue, 17 Nov 2020 15:33:22 +0100 Subject: [PATCH 023/117] Only display real interface in wizard --- .../luasrc/view/openmptcprouter/wizard.htm | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm b/luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm index 0ee9ad9a2..51e13edba 100644 --- a/luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm +++ b/luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm @@ -14,7 +14,8 @@ local ifacename = uci:get("network",ifacen,"ifname") local ifacetype = uci:get("network",ifacen,"type") or "" local ifaceproto = uci:get("network",ifacen,"proto") or "" - if ifacename == dev and (ifacetype == "macvlan" or ifacetype == "bridge" or ifaceproto == "6in4") then + --if ifacename == dev and (ifacetype == "macvlan" or ifacetype == "bridge" or ifaceproto == "6in4") then + if ifacename == dev and (ifacetype == "macvlan" or ifaceproto == "6in4") then return false end end @@ -380,7 +381,7 @@ <% iffind=0 for _, ifacea in ipairs(ifaces) do - if not (ifacea == "lo" or ifacea == "6in4-omr6in4" or ifacea == "mlvpn0" or ifacea:match("^ifb.*") or ifacea:match("^sit.*") or ifacea:match("^gre.*") or ifacea:match("^ip6.*") or ifacea:match("^teql.*") or ifacea:match("^erspan.*") or ifacea:match("^tun.*")) then + if not (ifacea == "lo" or ifacea == "6in4-omr6in4" or ifacea == "mlvpn0" or ifacea:match("^ifb.*") or ifacea:match("^sit.*") or ifacea:match("^gre.*") or ifacea:match("^ip6.*") or ifacea:match("^teql.*") or ifacea:match("^erspan.*") or ifacea:match("^tun.*")) and device_notvirtual(ifacea) then if uci:get("network",ifname,"proto") ~= "macvlan" then %> @@ -485,7 +486,7 @@ <% for _, ifacea in ipairs(ifaces) do - if not (ifacea == "lo" or ifacea == "6in4-omr6in4" or ifacea == "mlvpn0" or ifacea:match("^ifb.*") or ifacea:match("^sit.*") or ifacea:match("^gre.*") or ifacea:match("^ip6.*") or ifacea:match("^teql.*") or ifacea:match("^erspan.*")) then + if not (ifacea == "lo" or ifacea == "6in4-omr6in4" or ifacea == "mlvpn0" or ifacea:match("^ifb.*") or ifacea:match("^sit.*") or ifacea:match("^gre.*") or ifacea:match("^ip6.*") or ifacea:match("^teql.*") or ifacea:match("^erspan.*")) and device_notvirtual(ifacea) then %> <% From e95f1a1cd90a8beec6ec97808bb527bb85d4006a Mon Sep 17 00:00:00 2001 From: "Ycarus (Yannick Chabanois)" Date: Thu, 19 Nov 2020 19:24:11 +0100 Subject: [PATCH 024/117] Update Glorytun UDP --- glorytun-udp/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/glorytun-udp/Makefile b/glorytun-udp/Makefile index 121af0912..c2dd9da15 100644 --- a/glorytun-udp/Makefile +++ b/glorytun-udp/Makefile @@ -10,7 +10,7 @@ include $(TOPDIR)/rules.mk PKG_SOURCE_PROTO:=git PKG_SOURCE_URL:=https://github.com/angt/glorytun.git -PKG_SOURCE_VERSION:=97607fdf5c6c33df512ed85190a1fd93b5f45e77 +PKG_SOURCE_VERSION:=32267e86a6da05b285bb3bf2b136c105dc0af4bb PKG_NAME:=glorytun-udp PKG_VERSION:=0.3.4-$(PKG_SOURCE_VERSION) PKG_RELEASE:=23 From b628a7c92d522cc46bf155d1ed16309906f53df5 Mon Sep 17 00:00:00 2001 From: "Ycarus (Yannick Chabanois)" Date: Thu, 19 Nov 2020 19:24:29 +0100 Subject: [PATCH 025/117] Update path options for glorytun UDP --- .../share/omr/post-tracking.d/post-tracking | 38 +++++++------------ 1 file changed, 14 insertions(+), 24 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 a7ca34d0d..9c3c9063a 100755 --- a/mptcp/files/usr/share/omr/post-tracking.d/post-tracking +++ b/mptcp/files/usr/share/omr/post-tracking.d/post-tracking @@ -318,7 +318,7 @@ if [ "$OMR_TRACKER_STATUS" = "ERROR" ] || [ "$interface_up" != "true" ]; then # multipath "$OMR_TRACKER_DEVICE" off > /dev/null 2>&1 #fi if [ -n "$OMR_TRACKER_DEVICE_IP" ]; then - glorytun-udp path $OMR_TRACKER_DEVICE_IP dev tun0 set down > /dev/null 2>&1 + glorytun-udp path addr $OMR_TRACKER_DEVICE_IP dev tun0 set down > /dev/null 2>&1 fi if [ "$(uci -q get openmptcprouter.$OMR_TRACKER_INTERFACE.vpn)" = "1" ]; then VPN_BASE_INTF="$(uci -q get openmptcprouter.$OMR_TRACKER_INTERFACE.baseintf)" @@ -561,7 +561,7 @@ if [ -n "$OMR_TRACKER_DEVICE_IP" ] && [ -n "$OMR_TRACKER_DEVICE_GATEWAY" ]; then fi fi -[ "$multipath_config" = "on" ] && { +if [ "$multipath_config" = "on" ] || [ "$multipath_config" = "backup" ]; then download="$(uci -q get network.$OMR_TRACKER_INTERFACE.downloadspeed)" [ -z "$download" ] && download="$(uci -q get sqm.$OMR_TRACKER_INTERFACE.download)" upload="$(uci -q get network.$OMR_TRACKER_INTERFACE.uploadspeed)" @@ -569,38 +569,28 @@ fi if [ "$(uci -q show | grep mptcpr)" = "" ]; then touch /etc/config/openmptcprouter fi - if [ "$(uci -q get openmptcprouter.$OMR_TRACKER_INTERFACE.vpn)" != "1" ] && [ "$(pgrep glorytun-udp)" != "" ] && ([ "$(glorytun-udp path | grep $OMR_TRACKER_DEVICE_IP)" = "" ] || [ "$(glorytun-udp path $OMR_TRACKER_DEVICE_IP | awk '{print $13}')" = "0" ] || [ "$(glorytun-udp path $OMR_TRACKER_DEVICE_IP | awk '{print $16}')" = "0" ]); then + gtudpst="up" + [ "$(uci -q get openmptcprouter.$OMR_TRACKER_INTERFACE.multipathvpn)" != "1" ] && [ "$multipath_config" = "backup" ] && [ "$(pgrep glorytun-udp)" != "" ] && gtudpst="backup" + if [ "$(uci -q get openmptcprouter.$OMR_TRACKER_INTERFACE.vpn)" != "1" ] && [ "$(pgrep glorytun-udp)" != "" ] && [ "$(glorytun-udp path | grep $OMR_TRACKER_DEVICE_IP)" = "" ]; then if [ "$download" != "0" ] && [ "$download" != "" ] && [ "$upload" != "0" ] && [ "$upload" != "" ]; then if [ "$(uci -q get glorytun.vpn.rateauto)" = "1" ]; then - glorytun-udp path $OMR_TRACKER_DEVICE_IP dev tun0 set up rate auto tx $((upload*1000/8)) rx $((download*1000/8)) > /dev/null 2>&1 + glorytun-udp path addr $OMR_TRACKER_DEVICE_IP dev tun0 set up rate auto tx $((upload*1000/8)) rx $((download*1000/8)) > /dev/null 2>&1 else - glorytun-udp path $OMR_TRACKER_DEVICE_IP dev tun0 set up rate fixed tx $((upload*1000/8)) rx $((download*1000/8)) > /dev/null 2>&1 + glorytun-udp path addr $OMR_TRACKER_DEVICE_IP dev tun0 set up rate fixed tx $((upload*1000/8)) rx $((download*1000/8)) > /dev/null 2>&1 fi else if [ "$(uci -q get glorytun.vpn.rateauto)" = "1" ]; then - glorytun-udp path $OMR_TRACKER_DEVICE_IP dev tun0 set up rate auto tx 12500000 rx 12500000 > /dev/null 2>&1 + glorytun-udp path addr $OMR_TRACKER_DEVICE_IP dev tun0 set up rate auto tx 12500000 rx 12500000 > /dev/null 2>&1 else - glorytun-udp path $OMR_TRACKER_DEVICE_IP dev tun0 set up rate fixed tx 12500000 rx 12500000 > /dev/null 2>&1 + glorytun-udp path addr $OMR_TRACKER_DEVICE_IP dev tun0 set up rate fixed tx 12500000 rx 12500000 > /dev/null 2>&1 fi fi fi -# if [ "$(uci -q get openmptcprouter.$OMR_TRACKER_INTERFACE.vpn)" = "1" ] && [ "$(pgrep glorytun-udp)" != "" ] && ([ "$(glorytun-udp path | grep $OMR_TRACKER_DEVICE_IP)" = "" ] || [ "$(glorytun-udp path $OMR_TRACKER_DEVICE_IP | awk '{print $13}')" = "0" ] || [ "$(glorytun-udp path $OMR_TRACKER_DEVICE_IP | awk '{print $16}')" = "0" ]); then -# if [ "$download" != "0" ] && [ "$download" != "" ] && [ "$upload" != "0" ] && [ "$upload" != "" ]; then -# if [ "$(uci -q get glorytun.vpn.rateauto)" = "1" ]; then -# glorytun-udp path $OMR_TRACKER_DEVICE_IP to 10.255.250.1 $(uci -q get glorytun.vpn.port) dev tun0 set up rate auto tx ${upload}000 rx ${download}000 > /dev/null 2>&1 -# else -# glorytun-udp path $OMR_TRACKER_DEVICE_IP to 10.255.250.1 $(uci -q get glorytun.vpn.port) dev tun0 set up rate fixed tx ${upload}000 rx ${download}000 > /dev/null 2>&1 -# fi -# else -# if [ "$(uci -q get glorytun.vpn.rateauto)" = "1" ]; then -# glorytun-udp path $OMR_TRACKER_DEVICE_IP to 10.255.250.1 $(uci -q get glorytun.vpn.port) dev tun0 set up rate auto tx 125000000 rx 125000000 > /dev/null 2>&1 -# else -# glorytun-udp path $OMR_TRACKER_DEVICE_IP to 10.255.250.1 $(uci -q get glorytun.vpn.port) dev tun0 set up rate fixed tx 125000000 rx 125000000 > /dev/null 2>&1 -# fi -# fi -# fi -} -[ "$(uci -q get openmptcprouter.$OMR_TRACKER_INTERFACE.multipathvpn)" != "1" ] && [ "$multipath_config" = "backup" ] && [ "$(pgrep glorytun-udp)" != "" ] && glorytun-udp path $OMR_TRACKER_DEVICE_IP dev tun0 set backup rate auto rx 125000000 tx 125000000 > /dev/null 2>&1 + if [ "$(uci -q get openmptcprouter.$OMR_TRACKER_INTERFACE.vpn)" != "1" ] && [ "$(pgrep glorytun-udp)" != "" ] && [ "$(glorytun-udp set | grep 'kxtimeout 7d')" = "" ]; then + glorytun-udp set dev tun0 kxtimeout 7d > /dev/null 2>&1 + fi + [ "$multipath_config" = "backup" ] && [ "$(pgrep glorytun-udp)" != "" ] && glorytun-udp path addr $OMR_TRACKER_DEVICE_IP dev tun0 set pref 500 > /dev/null 2>&1 +fi [ "$(uci -q get openmptcprouter.$OMR_TRACKER_INTERFACE.multipathvpn)" != "1" ] && { [ "$multipath_status" = "$multipath_config" ] || { if [ "$(sysctl -n net.mptcp.mptcp_enabled | tr -d '\n')" = "1" ]; then From bb5c71a8ca7214e51ef47df963a0c2dc75fc7566 Mon Sep 17 00:00:00 2001 From: "Ycarus (Yannick Chabanois)" Date: Thu, 19 Nov 2020 19:24:51 +0100 Subject: [PATCH 026/117] Fixed sleep between wan tracker --- omr-tracker/files/etc/init.d/omr-tracker | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/omr-tracker/files/etc/init.d/omr-tracker b/omr-tracker/files/etc/init.d/omr-tracker index e0d78e5ae..e7bf920a7 100755 --- a/omr-tracker/files/etc/init.d/omr-tracker +++ b/omr-tracker/files/etc/init.d/omr-tracker @@ -78,7 +78,7 @@ _launch_tracker() { procd_set_param respawn 0 10 0 procd_set_param stderr 1 procd_close_instance - sleep $((RANDOM % 10)) + sleep 1 } _launch_server_tracker() { From 8e639fd4a58332549bfe746b6d5f02d6f1caaa6b Mon Sep 17 00:00:00 2001 From: "Ycarus (Yannick Chabanois)" Date: Thu, 19 Nov 2020 19:25:16 +0100 Subject: [PATCH 027/117] Fix find IP for omr-test-speed --- openmptcprouter/files/bin/omr-test-speed | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/openmptcprouter/files/bin/omr-test-speed b/openmptcprouter/files/bin/omr-test-speed index bc3efae22..fb433b625 100755 --- a/openmptcprouter/files/bin/omr-test-speed +++ b/openmptcprouter/files/bin/omr-test-speed @@ -27,7 +27,7 @@ if [ -z "$INTERFACE" ]; then curl -4 $HOST >/dev/null || echo else domain=$(echo $HOST | awk -F/ '{print $3}') - hostip=$(dig +short A $domain | tr -d "\n") + hostip=$(dig +nocmd +noall +answer A $domain | grep -v CNAME | awk '{print $5}' | tr -d "\n") ipset add ss_rules_dst_bypass_all $hostip curl -4 $HOST >/dev/null || echo ipset del ss_rules_dst_bypass_all $hostip From a8c0cd050274aa7dd00020d2feb5994eebc72c05 Mon Sep 17 00:00:00 2001 From: "Ycarus (Yannick Chabanois)" Date: Thu, 19 Nov 2020 19:25:44 +0100 Subject: [PATCH 028/117] Fix find IP for omr-bypass domains bypass --- luci-app-omr-bypass/root/etc/init.d/omr-bypass | 4 ++-- 1 file changed, 2 insertions(+), 2 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 8e5a0c5bd..3708a0fce 100755 --- a/luci-app-omr-bypass/root/etc/init.d/omr-bypass +++ b/luci-app-omr-bypass/root/etc/init.d/omr-bypass @@ -56,12 +56,12 @@ _bypass_domain() { domain=$(echo $domain | sed 's:^\.::') #logger -t "omr-bypass" "Get IPs of $domain..." if [ -z $RELOAD ]; then - resolve=$(dig a +timeout=1 +tries=1 +nocmd +noall +answer $domain | awk '{print $5}') + resolve=$(dig a +timeout=1 +tries=1 +nocmd +noall +answer $domain | grep -v CNAME | awk '{print $5}') for ip in $resolve; do _bypass_ip $ip $intf done if [ "$disableipv6" = "0" ]; then - resolve=$(dig aaaa +timeout=1 +tries=1 +nocmd +noall +answer $domain | awk '{print $5}') + resolve=$(dig aaaa +timeout=1 +tries=1 +nocmd +noall +answer $domain | grep AAAA | awk '{print $5}') for ip in $resolve; do _bypass_ip $ip $intf done From b75d5d31178f4a6bccf70bb6964013f5694e70c9 Mon Sep 17 00:00:00 2001 From: "Ycarus (Yannick Chabanois)" Date: Thu, 19 Nov 2020 19:26:06 +0100 Subject: [PATCH 029/117] Add hwinfo and dmidecode by default --- openmptcprouter-full/Makefile | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/openmptcprouter-full/Makefile b/openmptcprouter-full/Makefile index eace2e5bd..8afa8bbcb 100644 --- a/openmptcprouter-full/Makefile +++ b/openmptcprouter-full/Makefile @@ -79,7 +79,8 @@ MY_DEPENDS := \ kmod-rt2800-usb kmod-rtl8xxxu kmod-rtl8192cu kmod-net-rtl8192su \ !TARGET_mvebu:luci-proto-qmi wpad-basic kmod-mt7601u kmod-rtl8187 \ luci-app-mlvpn mlvpn 464xlat !TARGET_mvebu:kmod-usb-net-smsc75xx kmod-zram kmod-swconfig swconfig kmod-ipt-nat kmod-ipt-nat6 luci-app-https-dns-proxy kmod-tcp-nanqinlang iptables-mod-ipopt igmpproxy ss iptraf-ng \ - luci-app-acl block-mount blockd fstools luci-app-shutdown libwebp luci-proto-gre tcptraceroute luci-proto-mbim kmod-rtl8xxxu kmod-ath9k-htc luci-app-ttyd luci-mod-dashboard (TARGET_x86||TARGET_x86_64):rtl8192eu-firmware kmod-usb2 libustream-wolfssl (TARGET_x86||TARGET_x86_64):kmod-ixgbevf + luci-app-acl block-mount blockd fstools luci-app-shutdown libwebp luci-proto-gre tcptraceroute luci-proto-mbim kmod-rtl8xxxu kmod-ath9k-htc luci-app-ttyd luci-mod-dashboard (TARGET_x86||TARGET_x86_64):rtl8192eu-firmware kmod-usb2 libustream-wolfssl (TARGET_x86||TARGET_x86_64):kmod-ixgbevf \ + hwinfo (TARGET_x86||TARGET_x86_64):dmidecode # luci-theme-bootstrap luci-theme-openwrt-2020 luci-theme-openwrt luci-app-status # luci-proto-bonding luci-app-statistics luci-proto-gre # softethervpn5-client softethervpn5-server luci-app-nginx-ha From cf11d7ccbc514ab2864412f70c03891cc62b0103 Mon Sep 17 00:00:00 2001 From: "Ycarus (Yannick Chabanois)" Date: Fri, 20 Nov 2020 16:28:20 +0100 Subject: [PATCH 030/117] Interface type force selection --- luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm b/luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm index 51e13edba..e044221e0 100644 --- a/luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm +++ b/luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm @@ -470,7 +470,7 @@
From ccb05bb3b8b98d9de2c3ea70e0becf4ec7aa5f8c Mon Sep 17 00:00:00 2001 From: "Ycarus (Yannick Chabanois)" Date: Fri, 20 Nov 2020 16:28:46 +0100 Subject: [PATCH 031/117] Add log info for VPN restart --- mptcp/files/usr/share/omr/post-tracking.d/post-tracking | 3 +++ 1 file changed, 3 insertions(+) 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 9c3c9063a..bb686c9fa 100755 --- a/mptcp/files/usr/share/omr/post-tracking.d/post-tracking +++ b/mptcp/files/usr/share/omr/post-tracking.d/post-tracking @@ -380,12 +380,15 @@ if [ "$OMR_TRACKER_STATUS" = "ERROR" ] || [ "$interface_up" != "true" ]; then fi fi if [ "$(uci -q get dsvpn.vpn.enable)" = "1" ]; then + _log "DSVPN down, restart it" /etc/init.d/dsvpn restart fi if [ "$(uci -q get mlvpn.general.enable)" = "1" ]; then + _log "MLVPN down, restart it" /etc/init.d/mlvpn restart fi if [ "$(uci -q get glorytun.vpn.enable)" = "1" ]; then + _log "Glorytun VPN down, restart it" /etc/init.d/glorytun restart /etc/init.d/glorytun-udp restart fi From 9f871330778dc7aba94f0f82b5a795dbcd5274a7 Mon Sep 17 00:00:00 2001 From: antrouter Date: Mon, 16 Nov 2020 01:40:44 +0000 Subject: [PATCH 032/117] Translated using Weblate (Chinese (Simplified)) Currently translated at 100.0% (240 of 240 strings) Translation: OpenMPTCProuter/LuCI/applications/openmptcprouter Translate-URL: http://weblate.openmptcprouter.com/projects/omr/luciapplicationsopenmptcprouter/zh_Hans/ --- luci-app-openmptcprouter/po/zh_Hans/openmptcprouter.po | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/luci-app-openmptcprouter/po/zh_Hans/openmptcprouter.po b/luci-app-openmptcprouter/po/zh_Hans/openmptcprouter.po index d24b7169d..29b08d3cb 100644 --- a/luci-app-openmptcprouter/po/zh_Hans/openmptcprouter.po +++ b/luci-app-openmptcprouter/po/zh_Hans/openmptcprouter.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: \n" "POT-Creation-Date: \n" -"PO-Revision-Date: 2020-11-09 14:31+0000\n" +"PO-Revision-Date: 2020-11-16 04:25+0000\n" "Last-Translator: antrouter \n" "Language-Team: Chinese (Simplified) \n" @@ -1042,7 +1042,7 @@ msgstr "mtu :" #: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:543 #: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:699 msgid "multipath:" -msgstr "多路径:" +msgstr "多路聚合:" #: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:459 msgid "operator:" @@ -1062,7 +1062,7 @@ msgstr "漫游:" #: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:467 msgid "state:" -msgstr "位置:" +msgstr "状态:" #: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:546 #: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:702 From 937872e05c38fd9afdb751b82364f2eb7dcaa848 Mon Sep 17 00:00:00 2001 From: "Ycarus (Yannick Chabanois)" Date: Sun, 22 Nov 2020 15:51:31 +0100 Subject: [PATCH 033/117] Menu name via setting and typo fix --- .../luasrc/controller/openmptcprouter.lua | 38 ++++++++++--------- .../luasrc/view/openmptcprouter/backup.htm | 4 +- .../luasrc/view/openmptcprouter/settings.htm | 6 ++- .../luasrc/view/openmptcprouter/wanstatus.htm | 8 +++- .../luasrc/view/openmptcprouter/wizard.htm | 6 +-- .../root/etc/uci-defaults/openmptcprouter | 6 +++ 6 files changed, 42 insertions(+), 26 deletions(-) diff --git a/luci-app-openmptcprouter/luasrc/controller/openmptcprouter.lua b/luci-app-openmptcprouter/luasrc/controller/openmptcprouter.lua index 9af857553..b01d7a126 100644 --- a/luci-app-openmptcprouter/luasrc/controller/openmptcprouter.lua +++ b/luci-app-openmptcprouter/luasrc/controller/openmptcprouter.lua @@ -8,20 +8,19 @@ local ipc = require "luci.ip" module("luci.controller.openmptcprouter", package.seeall) function index() --- entry({"admin", "openmptcprouter"}, firstchild(), _("OpenMPTCProuter"), 19).index = true --- entry({"admin", "openmptcprouter", "wizard"}, template("openmptcprouter/wizard"), _("Wizard"), 1).leaf = true --- entry({"admin", "openmptcprouter", "wizard_add"}, post("wizard_add")).leaf = true - entry({"admin", "system", "openmptcprouter"}, alias("admin", "system", "openmptcprouter", "wizard"), _("OpenMPTCProuter"), 1) - entry({"admin", "system", "openmptcprouter", "wizard"}, template("openmptcprouter/wizard"), _("Settings Wizard"), 1) - entry({"admin", "system", "openmptcprouter", "wizard_add"}, post("wizard_add")) - entry({"admin", "system", "openmptcprouter", "status"}, template("openmptcprouter/wanstatus"), _("Status"), 2).leaf = true - entry({"admin", "system", "openmptcprouter", "interfaces_status"}, call("interfaces_status")).leaf = true - entry({"admin", "system", "openmptcprouter", "settings"}, template("openmptcprouter/settings"), _("Advanced Settings"), 3).leaf = true - entry({"admin", "system", "openmptcprouter", "settings_add"}, post("settings_add")) - entry({"admin", "system", "openmptcprouter", "update_vps"}, post("update_vps")) - entry({"admin", "system", "openmptcprouter", "backup"}, template("openmptcprouter/backup"), _("Backup on server"), 3).leaf = true - entry({"admin", "system", "openmptcprouter", "backupgr"}, post("backupgr")) - entry({"admin", "system", "openmptcprouter", "debug"}, template("openmptcprouter/debug"), _("Show all settings"), 5).leaf = true + local ucic = luci.model.uci.cursor() + menuentry = ucic:get("openmptcprouter","settings","menu") pr "OpenMPTCProuter" + entry({"admin", "system", menuentry:lower()}, alias("admin", "system", menuentry:lower(), "wizard"), _(menuentry), 1) + entry({"admin", "system", menuentry:lower(), "wizard"}, template("openmptcprouter/wizard"), _("Settings Wizard"), 1) + entry({"admin", "system", menuentry:lower(), "wizard_add"}, post("wizard_add")) + entry({"admin", "system", menuentry:lower(), "status"}, template("openmptcprouter/wanstatus"), _("Status"), 2).leaf = true + entry({"admin", "system", menuentry:lower(), "interfaces_status"}, call("interfaces_status")).leaf = true + entry({"admin", "system", menuentry:lower(), "settings"}, template("openmptcprouter/settings"), _("Advanced Settings"), 3).leaf = true + entry({"admin", "system", menuentry:lower(), "settings_add"}, post("settings_add")) + entry({"admin", "system", menuentry:lower(), "update_vps"}, post("update_vps")) + entry({"admin", "system", menuentry:lower(), "backup"}, template("openmptcprouter/backup"), _("Backup on server"), 3).leaf = true + entry({"admin", "system", menuentry:lower(), "backupgr"}, post("backupgr")) + entry({"admin", "system", menuentry:lower(), "debug"}, template("openmptcprouter/debug"), _("Show all settings"), 5).leaf = true end function interface_from_device(dev) @@ -730,6 +729,7 @@ function wizard_add() ucic:commit("openmptcprouter") -- Restart all + menuentry = ucic:get("openmptcprouter","settings","menu") or "openmptcprouter" 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") @@ -751,9 +751,9 @@ function wizard_add() luci.sys.call("/etc/init.d/mptcpovervpn restart >/dev/null 2>/dev/null") luci.sys.call("/etc/init.d/vnstat restart >/dev/null 2>/dev/null") luci.sys.call("/etc/init.d/v2ray restart >/dev/null 2>/dev/null") - luci.http.redirect(luci.dispatcher.build_url("admin/system/openmptcprouter/status")) + luci.http.redirect(luci.dispatcher.build_url("admin/system/" .. menuentry:lower() .. "/status")) else - luci.http.redirect(luci.dispatcher.build_url("admin/system/openmptcprouter/wizard")) + luci.http.redirect(luci.dispatcher.build_url("admin/system/" .. menuentry:lower() .. "/wizard")) end return end @@ -914,7 +914,8 @@ function settings_add() 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")) + menuentry = ucic:get("openmptcprouter","settings","menu") or "openmptcprouter" + luci.http.redirect(luci.dispatcher.build_url("admin/system/" .. menuentry:lower() .. "/settings")) return end @@ -937,7 +938,8 @@ function backupgr() if send_backup ~= "" then luci.sys.call("/etc/init.d/openmptcprouter-vps backup_send >/dev/null 2>/dev/null") end - luci.http.redirect(luci.dispatcher.build_url("admin/system/openmptcprouter/backup")) + menuentry = ucic:get("openmptcprouter","settings","menu") or "openmptcprouter" + luci.http.redirect(luci.dispatcher.build_url("admin/system/" .. menuentry:lower() .. "/backup")) return end diff --git a/luci-app-openmptcprouter/luasrc/view/openmptcprouter/backup.htm b/luci-app-openmptcprouter/luasrc/view/openmptcprouter/backup.htm index 174e7cda1..f7ebf5bb0 100644 --- a/luci-app-openmptcprouter/luasrc/view/openmptcprouter/backup.htm +++ b/luci-app-openmptcprouter/luasrc/view/openmptcprouter/backup.htm @@ -1,9 +1,11 @@ <%+header%> <% luci.sys.call("/etc/init.d/openmptcprouter-vps backup_list >/dev/null 2>/dev/null") +local ucic = luci.model.uci.cursor() +menuentry = ucic:get("openmptcprouter","settings","menu") or "openmptcprouter" %> <% if stderr and #stderr > 0 then %>
<%=pcdata(stderr)%>
<% end %> -
+

<%:Backup on server%>

diff --git a/luci-app-openmptcprouter/luasrc/view/openmptcprouter/settings.htm b/luci-app-openmptcprouter/luasrc/view/openmptcprouter/settings.htm index da7e9f494..fbc61a7a9 100644 --- a/luci-app-openmptcprouter/luasrc/view/openmptcprouter/settings.htm +++ b/luci-app-openmptcprouter/luasrc/view/openmptcprouter/settings.htm @@ -3,6 +3,8 @@ <% if stderr and #stderr > 0 then %>
<%=pcdata(stderr)%>
<% end %> <% local latest_omr_version=luci.model.uci.cursor():get("openmptcprouter","latest_versions","vps") + local ucic = luci.model.uci.cursor() + menuentry = ucic:get("openmptcprouter","settings","menu") or "openmptcprouter" omr_test = false uci:foreach("openmptcprouter","server", function(s) servername = s[".name"] @@ -13,7 +15,7 @@ end) if omr_test == true then %> - +

<%:Update VPS%>

@@ -34,7 +36,7 @@ %>
- +

<%:Advanced Settings%>

diff --git a/luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm b/luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm index e02083b86..f4836fecf 100644 --- a/luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm +++ b/luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm @@ -31,6 +31,10 @@ -- * Many tests -%> <%+header%> +<% +local ucic = luci.model.uci.cursor() +menuentry = ucic:get("openmptcprouter","settings","menu") or "openmptcprouter" +%> @@ -48,7 +52,7 @@ } } function formatBytes(a,b=2){if(0===a)return"0 Bytes";const c=0>b?0:b,d=Math.floor(Math.log(a)/Math.log(1024));return parseFloat((a/Math.pow(1024,d)).toFixed(c))+" "+["Bytes","KiB","MiB","GiB","TiB","PiB","EiB","ZiB","YiB"][d]} - XHR.poll(20, '<%=build_url("admin/system/openmptcprouter/interfaces_status")%>', null, + XHR.poll(20, '<%=build_url("admin/system/" .. menuentry:lower() .. "/interfaces_status")%>', null, function(x, mArray) { var status = document.getElementById('openmptcprouter_status'); @@ -218,7 +222,7 @@ temp += ''; temp += '
'; temp += ''; - temp += ''; + temp += ''; var statusIcon = "<%=resource%>/openmptcprouter/images/statusOK.png"; var equipmentIcon = ''; content = ""; diff --git a/luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm b/luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm index e044221e0..2fb57a315 100644 --- a/luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm +++ b/luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm @@ -7,7 +7,7 @@ local sys = require "luci.sys" local ut = require "luci.util" local ifaces = sys.net:devices() - + menuentry = uci:get("openmptcprouter","settings","menu") or "openmptcprouter" function device_notvirtual(dev) for _, iface in ipairs(net:get_networks()) do local ifacen = iface:name() @@ -35,7 +35,7 @@ } <% if stderr and #stderr > 0 then %>
<%=pcdata(stderr)%>
<% end %> - +

<%:Wizard%>

@@ -470,7 +470,7 @@
diff --git a/luci-app-openmptcprouter/root/etc/uci-defaults/openmptcprouter b/luci-app-openmptcprouter/root/etc/uci-defaults/openmptcprouter index 9fae15302..24cbccb20 100755 --- a/luci-app-openmptcprouter/root/etc/uci-defaults/openmptcprouter +++ b/luci-app-openmptcprouter/root/etc/uci-defaults/openmptcprouter @@ -107,6 +107,12 @@ if [ "$(uci -q get openmptcprouter.settings.scaling_governor)" = "" ]; then commit openmptcprouter EOF fi +if [ "$(uci -q get openmptcprouter.settings.menu)" = "" ]; then + uci -q batch <<-EOF >/dev/null + set openmptcprouter.settings.menu='OpenMPTCProuter' + commit openmptcprouter + EOF +fi sed -i 's/net.ipv4.tcp_retries2=3$/net.ipv4.tcp_retries2=15/' /etc/sysctl.d/zzz_openmptcprouter.conf From db9577ba164505ed8c1efc644916ef3878530644 Mon Sep 17 00:00:00 2001 From: "Ycarus (Yannick Chabanois)" Date: Sun, 22 Nov 2020 15:51:56 +0100 Subject: [PATCH 034/117] rename interface only if not bridge or tunnel --- luci-app-openmptcprouter/root/etc/hotplug.d/net/99-omr-rename | 4 ++++ 1 file changed, 4 insertions(+) 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 0928e0140..ad256bae9 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 @@ -14,6 +14,10 @@ _set_intf_name() { config_get device $intfname device config_get modalias $intfname modalias config_get ifname $intfname ifname + config_get type $intfname ifname + if [ "$type" = "tunnel" ] || [ "$type" = "bridge" ]; then + return + fi [ -n "$modalias" ] && { if [ -f /sys/class/net/${INTERFACE}/device/uevent ]; then chk_modalias=$MODALIAS From 6364c3675030aa6b01d11e5aa8e661d03a36265b Mon Sep 17 00:00:00 2001 From: "Ycarus (Yannick Chabanois)" Date: Sun, 22 Nov 2020 15:52:37 +0100 Subject: [PATCH 035/117] Add another IP check for proxy --- luci-app-openmptcprouter/root/usr/libexec/rpcd/openmptcprouter | 3 +++ 1 file changed, 3 insertions(+) diff --git a/luci-app-openmptcprouter/root/usr/libexec/rpcd/openmptcprouter b/luci-app-openmptcprouter/root/usr/libexec/rpcd/openmptcprouter index 67a4160bd..5df98b004 100755 --- a/luci-app-openmptcprouter/root/usr/libexec/rpcd/openmptcprouter +++ b/luci-app-openmptcprouter/root/usr/libexec/rpcd/openmptcprouter @@ -703,6 +703,9 @@ function interfaces_status() local tracker_port = uci:get("shadowsocks-libev","tracker","local_port") if mArray.openmptcprouter["external_check"] ~= false then mArray.openmptcprouter["ss_addr"] = ut.trim(sys.exec("curl -s -4 --socks5 " .. tracker_ip .. ":" .. tracker_port .. " -m " .. timeout .. " " .. check_ipv4_website)) + if mArray.openmptcprouter["ss_addr"] == "" then + mArray.openmptcprouter["ss_addr"] = ut.trim(sys.exec("curl -s -4 --socks5 " .. tracker_ip .. ":" .. tracker_port .. " -m " .. timeout .. " ifconfig.co")) + end --mArray.openmptcprouter["ss_addr6"] = sys.exec("curl -s -6 --socks5 " .. tracker_ip .. ":" .. tracker_port .. " -m 3 http://ipv6.openmptcprouter.com") end end From 0799528687691f28c85a321cc6d7d2b54d24953b Mon Sep 17 00:00:00 2001 From: "Ycarus (Yannick Chabanois)" Date: Sun, 22 Nov 2020 17:20:27 +0100 Subject: [PATCH 036/117] Fix MPTCP init script --- mptcp/files/etc/init.d/mptcp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mptcp/files/etc/init.d/mptcp b/mptcp/files/etc/init.d/mptcp index 57e4fa63d..95c9a4fb9 100755 --- a/mptcp/files/etc/init.d/mptcp +++ b/mptcp/files/etc/init.d/mptcp @@ -470,7 +470,7 @@ reload_service() { return 0 } -service_triggers_load_interface() { is_supported_interface "$1" && ifaces="${ifaces}${1} "; } +service_triggers_load_interface() { ifaces="${ifaces}${1} "; } service_triggers() { local ifaces n From 5a8bad2672de3ac033c951c47ea666f4b230d855 Mon Sep 17 00:00:00 2001 From: "Ycarus (Yannick Chabanois)" Date: Sun, 22 Nov 2020 18:18:57 +0100 Subject: [PATCH 037/117] Fix typo --- luci-app-openmptcprouter/luasrc/controller/openmptcprouter.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/luci-app-openmptcprouter/luasrc/controller/openmptcprouter.lua b/luci-app-openmptcprouter/luasrc/controller/openmptcprouter.lua index b01d7a126..3a07d144d 100644 --- a/luci-app-openmptcprouter/luasrc/controller/openmptcprouter.lua +++ b/luci-app-openmptcprouter/luasrc/controller/openmptcprouter.lua @@ -9,7 +9,7 @@ module("luci.controller.openmptcprouter", package.seeall) function index() local ucic = luci.model.uci.cursor() - menuentry = ucic:get("openmptcprouter","settings","menu") pr "OpenMPTCProuter" + menuentry = ucic:get("openmptcprouter","settings","menu") or "OpenMPTCProuter" entry({"admin", "system", menuentry:lower()}, alias("admin", "system", menuentry:lower(), "wizard"), _(menuentry), 1) entry({"admin", "system", menuentry:lower(), "wizard"}, template("openmptcprouter/wizard"), _("Settings Wizard"), 1) entry({"admin", "system", menuentry:lower(), "wizard_add"}, post("wizard_add")) From 24eafaf6939bec93a4ba1611bfced81df932ec68 Mon Sep 17 00:00:00 2001 From: "Ycarus (Yannick Chabanois)" Date: Mon, 23 Nov 2020 20:19:04 +0100 Subject: [PATCH 038/117] Fix omr-test-speed, bind it to an interface if requested --- openmptcprouter/files/bin/omr-test-speed | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/openmptcprouter/files/bin/omr-test-speed b/openmptcprouter/files/bin/omr-test-speed index fb433b625..b01279773 100755 --- a/openmptcprouter/files/bin/omr-test-speed +++ b/openmptcprouter/files/bin/omr-test-speed @@ -29,6 +29,6 @@ else domain=$(echo $HOST | awk -F/ '{print $3}') hostip=$(dig +nocmd +noall +answer A $domain | grep -v CNAME | awk '{print $5}' | tr -d "\n") ipset add ss_rules_dst_bypass_all $hostip - curl -4 $HOST >/dev/null || echo + curl -4 --interface $INTERFACE $HOST >/dev/null || echo ipset del ss_rules_dst_bypass_all $hostip fi From d6012f881b7cf62a21189e2f12e3dc731b80f02c Mon Sep 17 00:00:00 2001 From: "Ycarus (Yannick Chabanois)" Date: Mon, 23 Nov 2020 20:19:49 +0100 Subject: [PATCH 039/117] Fix omr-iperf use with arguments --- openmptcprouter/files/bin/omr-iperf | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/openmptcprouter/files/bin/omr-iperf b/openmptcprouter/files/bin/omr-iperf index aec04c761..dcacabcae 100755 --- a/openmptcprouter/files/bin/omr-iperf +++ b/openmptcprouter/files/bin/omr-iperf @@ -1,5 +1,6 @@ #!/bin/sh SERVER=$1 +shift [ -z "$SERVER" ] && SERVER="vps" KEY=$(uci -q get iperf.$SERVER.key) USER=$(uci -q get iperf.$SERVER.user) @@ -9,7 +10,7 @@ PORTS=$(uci -q get iperf.$SERVER.ports | sed 's/,/ /g') PORT="${PORTS%% *}" echo $KEY | base64 -d > /tmp/iperf.pem if [ -n "$PASSWORD" ] && [ -n "$USER" ] && [ -n "$KEY" ]; then - IPERF3_PASSWORD=$PASSWORD iperf3 --username $USER --rsa-public-key-path /tmp/iperf.pem -c $HOST -p $PORT ${@:2} + IPERF3_PASSWORD=$PASSWORD iperf3 --username $USER --rsa-public-key-path /tmp/iperf.pem -c $HOST -p $PORT ${@} else - iperf3 -c $HOST -p $PORT ${@:2} + iperf3 -c $HOST -p $PORT ${@} fi From c9e66e4d0c974a3f0d9459c66dda0696dffc9d04 Mon Sep 17 00:00:00 2001 From: "Ycarus (Yannick Chabanois)" Date: Mon, 23 Nov 2020 20:20:14 +0100 Subject: [PATCH 040/117] Commit changes for system --- openmptcprouter/files/etc/uci-defaults/2060-omr-system | 1 + 1 file changed, 1 insertion(+) diff --git a/openmptcprouter/files/etc/uci-defaults/2060-omr-system b/openmptcprouter/files/etc/uci-defaults/2060-omr-system index 67bd16809..2308efa62 100755 --- a/openmptcprouter/files/etc/uci-defaults/2060-omr-system +++ b/openmptcprouter/files/etc/uci-defaults/2060-omr-system @@ -17,6 +17,7 @@ EOF uci -q set openmptcprouter.settings.scaling_min_freq=$(cat /sys/devices/system/cpu/cpufreq/policy0/scaling_max_freq | tr -d "\n") uci -q set openmptcprouter.settings.scaling_max_freq=$(cat /sys/devices/system/cpu/cpufreq/policy0/scaling_max_freq | tr -d "\n") uci -q set openmptcprouter.settings.scaling_governor='performance' + uci -q commit openmptcprouter } exit 0 \ No newline at end of file From dd255dff4680aa3fca082c0f661e89d9be9c2931 Mon Sep 17 00:00:00 2001 From: "Ycarus (Yannick Chabanois)" Date: Wed, 25 Nov 2020 17:26:48 +0100 Subject: [PATCH 041/117] Fix path --- luci-app-mptcp/luasrc/view/mptcp/multipath.htm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/luci-app-mptcp/luasrc/view/mptcp/multipath.htm b/luci-app-mptcp/luasrc/view/mptcp/multipath.htm index 3e72fa34b..8d375c359 100644 --- a/luci-app-mptcp/luasrc/view/mptcp/multipath.htm +++ b/luci-app-mptcp/luasrc/view/mptcp/multipath.htm @@ -906,13 +906,13 @@ window.setTimeout(function() <% if curifname == "all" then %> <%:Download:%> - +
-
<%:Upload:%> - +
-
@@ -920,7 +920,7 @@ window.setTimeout(function() <% else %> - +
-

From bd542abb0226ef61a2c2b9512a8c01c112815da6 Mon Sep 17 00:00:00 2001 From: "Ycarus (Yannick Chabanois)" Date: Wed, 25 Nov 2020 17:27:14 +0100 Subject: [PATCH 042/117] Use 9 instead of 09 for init --- omr-update/files/etc/init.d/omr-update | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/omr-update/files/etc/init.d/omr-update b/omr-update/files/etc/init.d/omr-update index 3c18cb745..0199bb214 100755 --- a/omr-update/files/etc/init.d/omr-update +++ b/omr-update/files/etc/init.d/omr-update @@ -2,7 +2,7 @@ # Copyright (C) 2018 Ycarus (Yannick Chabanois) # Released under GPL 3. See LICENSE for the full terms. -START=09 +START=9 STOP=98 boot() { From 374d25abcec0bc270500828574f8ea455a2c951d Mon Sep 17 00:00:00 2001 From: "Ycarus (Yannick Chabanois)" Date: Wed, 25 Nov 2020 17:28:01 +0100 Subject: [PATCH 043/117] Fix system settings --- openmptcprouter/files/etc/uci-defaults/2060-omr-system | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/openmptcprouter/files/etc/uci-defaults/2060-omr-system b/openmptcprouter/files/etc/uci-defaults/2060-omr-system index 2308efa62..3b578e3fc 100755 --- a/openmptcprouter/files/etc/uci-defaults/2060-omr-system +++ b/openmptcprouter/files/etc/uci-defaults/2060-omr-system @@ -6,9 +6,9 @@ uci -q batch <<-EOF >/dev/null commit system set rpcd.@rpcd[0].timeout=120 commit rpcd - luci.apply.timeout='20' + set luci.apply.timeout='20' commit luci - fstab.@global[0].check_fs='1' + set fstab.@global[0].check_fs='1' commit fstab EOF From 564a93000bc33e8e3692d1c01a04e1953f244be0 Mon Sep 17 00:00:00 2001 From: "Ycarus (Yannick Chabanois)" Date: Wed, 25 Nov 2020 21:24:46 +0100 Subject: [PATCH 044/117] Restart rpcd if needed --- mptcp/files/usr/share/omr/post-tracking.d/post-tracking | 6 ++++++ 1 file changed, 6 insertions(+) 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 bb686c9fa..e7cd3f311 100755 --- a/mptcp/files/usr/share/omr/post-tracking.d/post-tracking +++ b/mptcp/files/usr/share/omr/post-tracking.d/post-tracking @@ -815,6 +815,12 @@ if [ "$(pgrep v2ray)" = "" ] && [ "$(uci -q get v2ray.main.enabled)" = "1" ] && sleep 5 fi +if [ "$(pgrep rpcd)" = "" ] && [ -f /etc/init.d/rpcd ]; then + _log "Can't find rpcd, restart it..." + /etc/init.d/rpcd restart + sleep 5 +fi + if [ "$(uci -q get v2ray.main.enabled)" = "1" ] && [ -f /etc/init.d/v2ray ] && [ "$(pgrep -f omr-tracker-v2ray)" = "" ]; then _log "Can't find omr-tracker-v2ray, restart omr-tracker..." /etc/init.d/omr-tracker restart From c5460c667c79c587da47fdc840439597063b7dc2 Mon Sep 17 00:00:00 2001 From: "Ycarus (Yannick Chabanois)" Date: Thu, 26 Nov 2020 11:13:52 +0100 Subject: [PATCH 045/117] Continue if v2ray ip rule already set --- v2ray-core/files/usr/bin/v2ray-rules | 4 ++-- v2ray-core/files/usr/bin/v2ray-rules6 | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/v2ray-core/files/usr/bin/v2ray-rules b/v2ray-core/files/usr/bin/v2ray-rules index b37c8a3ae..2d6642274 100755 --- a/v2ray-core/files/usr/bin/v2ray-rules +++ b/v2ray-core/files/usr/bin/v2ray-rules @@ -229,8 +229,8 @@ v2r_rules_iptchains_init_() { fi ;; udp) - ip rule add fwmark 1 lookup 100 - ip route add local default dev lo table 100 + ip rule add fwmark 1 lookup 100 || true + ip route add local default dev lo table 100 || true forward_rules="-A v2r_${rule}_forward -p udp -j TPROXY --on-port "$o_redir_udp_port" --tproxy-mark 0x01/0x01" ;; esac diff --git a/v2ray-core/files/usr/bin/v2ray-rules6 b/v2ray-core/files/usr/bin/v2ray-rules6 index 31a00da24..14f51e5dd 100755 --- a/v2ray-core/files/usr/bin/v2ray-rules6 +++ b/v2ray-core/files/usr/bin/v2ray-rules6 @@ -215,8 +215,8 @@ v2ray_rules6_iptchains_init_() { fi ;; udp) - ip -f inet6 rule add fwmark 1 lookup 100 - ip -f inet6 route add local default dev lo table 100 + ip -f inet6 rule add fwmark 1 lookup 100 || true + ip -f inet6 route add local default dev lo table 100 || true forward_rules=" -A v2r6_${rule}_forward -p udp -j TPROXY --on-port "$o_redir_udp_port" --tproxy-mark 0x01/0x01 -A v2r6_${rule}_forward -p tcp -j TPROXY --on-port "$o_redir_udp_port" --tproxy-mark 0x01/0x01 From c0ebeeee018ca482331282f9a40a7273cfa3dd22 Mon Sep 17 00:00:00 2001 From: "Ycarus (Yannick Chabanois)" Date: Thu, 26 Nov 2020 11:14:05 +0100 Subject: [PATCH 046/117] Continue if shadowsocks ip rule already set --- shadowsocks-libev/files/ss-rules | 4 ++-- shadowsocks-libev/files/ss-rules6 | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/shadowsocks-libev/files/ss-rules b/shadowsocks-libev/files/ss-rules index 5cb75dd57..732d9d620 100755 --- a/shadowsocks-libev/files/ss-rules +++ b/shadowsocks-libev/files/ss-rules @@ -229,8 +229,8 @@ ss_rules_iptchains_init_() { fi ;; udp) - ip rule add fwmark 1 lookup 100 - ip route add local default dev lo table 100 + ip rule add fwmark 1 lookup 100 || true + ip route add local default dev lo table 100 || true forward_rules="-A ssr_${rule}_forward -p udp -j TPROXY --on-port "$o_redir_udp_port" --tproxy-mark 0x01/0x01" ;; esac diff --git a/shadowsocks-libev/files/ss-rules6 b/shadowsocks-libev/files/ss-rules6 index 729f496c3..1c25b43bf 100755 --- a/shadowsocks-libev/files/ss-rules6 +++ b/shadowsocks-libev/files/ss-rules6 @@ -211,8 +211,8 @@ ss_rules6_iptchains_init_() { fi ;; udp) - ip -f inet6 rule add fwmark 1 lookup 100 - ip -f inet6 route add local default dev lo table 100 + ip -f inet6 rule add fwmark 1 lookup 100 || true + ip -f inet6 route add local default dev lo table 100 || true forward_rules="-A ssr6_${rule}_forward -p udp -j TPROXY --on-port "$o_redir_udp_port" --tproxy-mark 0x01/0x01" ;; esac From 92aba34441fd78ec775de9e07905210907f13938 Mon Sep 17 00:00:00 2001 From: "Ycarus (Yannick Chabanois)" Date: Thu, 26 Nov 2020 16:27:37 +0100 Subject: [PATCH 047/117] Status logo in settings --- .../luasrc/view/openmptcprouter/wanstatus.htm | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm b/luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm index f4836fecf..b35f3344f 100644 --- a/luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm +++ b/luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm @@ -32,8 +32,9 @@ -%> <%+header%> <% -local ucic = luci.model.uci.cursor() -menuentry = ucic:get("openmptcprouter","settings","menu") or "openmptcprouter" +local ucic = luci.model.uci.cursor() +local menuentry = ucic:get("openmptcprouter","settings","menu") or "openmptcprouter" +local statuslogo = ucic:get("openmptcprouter","settings","statuslogo") or "openmptcprouter.png" %> @@ -107,7 +108,7 @@ menuentry = ucic:get("openmptcprouter","settings","menu") or "openmptcprouter" } } 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"; From 9c4b42a310516b2e45747d287972f7b8138806ee Mon Sep 17 00:00:00 2001 From: "Ycarus (Yannick Chabanois)" Date: Thu, 26 Nov 2020 16:28:21 +0100 Subject: [PATCH 048/117] Remove getting speed from SQM --- .../luasrc/view/openmptcprouter/wizard.htm | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm b/luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm index 2fb57a315..59aaf2f0f 100644 --- a/luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm +++ b/luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm @@ -737,15 +737,15 @@ local upload = "0" download = uci:get("network",ifname,"downloadspeed") or "0" upload = uci:get("network",ifname,"uploadspeed") or "0" - if download == "0" or upload == "0" then - if nixio.fs.access("/etc/init.d/sqm") then - download = uci:get("sqm",ifname,"download") - upload = uci:get("sqm",ifname,"upload") - else - download = uci:get("qos",ifname,"download") - upload = uci:get("qos",ifname,"upload") - end - end + --if download == "0" or upload == "0" then + -- if nixio.fs.access("/etc/init.d/sqm") then + -- download = uci:get("sqm",ifname,"download") + -- upload = uci:get("sqm",ifname,"upload") + -- else + -- download = uci:get("qos",ifname,"download") + -- upload = uci:get("qos",ifname,"upload") + -- end + --end %>
From 75fa539abb78ce682a0cda7a7c124d44124e3416 Mon Sep 17 00:00:00 2001 From: "Ycarus (Yannick Chabanois)" Date: Thu, 26 Nov 2020 16:31:13 +0100 Subject: [PATCH 049/117] Add server name in log and openvpn update key function --- .../files/etc/init.d/openmptcprouter-vps | 48 ++++++++++++++----- 1 file changed, 36 insertions(+), 12 deletions(-) diff --git a/openmptcprouter/files/etc/init.d/openmptcprouter-vps b/openmptcprouter/files/etc/init.d/openmptcprouter-vps index c34a0bf8e..3c94e42e0 100755 --- a/openmptcprouter/files/etc/init.d/openmptcprouter-vps +++ b/openmptcprouter/files/etc/init.d/openmptcprouter-vps @@ -6,7 +6,7 @@ START=99 USE_PROCD=1 -EXTRA_COMMANDS="set_pihole backup_send backup_get backup_list set_vps_firewall" +EXTRA_COMMANDS="set_pihole backup_send backup_get backup_list set_vps_firewall get_openvpn_key" _parse_result() { result=$("echo $1 | jsonfilter -q -e '@.result'") @@ -114,6 +114,27 @@ _set_openvpn_vps() { fi } +get_openvpn_key() { + servername=$2 + [ -z "$vps_config" ] && vps_config=$(_get_json "config") + [ -z "$vps_config" ] && return + openvpn_client_key="$(echo "$vps_config" | jsonfilter -q -e '@.openvpn.client_key')" + [ -n "$openvpn_client_key" ] && { + echo $openvpn_client_key | base64 -d > /etc/luci-uploads/client.key + } + openvpn_client_crt="$(echo "$vps_config" | jsonfilter -q -e '@.openvpn.client_crt')" + [ -n "$openvpn_client_crt" ] && { + echo $openvpn_client_crt | base64 -d > /etc/luci-uploads/client.crt + } + openvpn_client_ca="$(echo "$vps_config" | jsonfilter -q -e '@.openvpn.client_ca')" + [ -n "$openvpn_client_ca" ] && { + echo $openvpn_client_ca | base64 -d > /etc/luci-uploads/ca.crt + } + [ -n "$openvpn_client_key" ] && [ -n "$openvpn_client_crt" ] && [ -n "$openvpn_client_ca" ] && { + /etc/init.d/openvpn restart + } +} + _get_ss_redir() { config_get cf_ebpf $1 ebpf [ "$cf_ebpf" = "1" ] && ebpf="true" @@ -166,7 +187,7 @@ _set_ss_server_vps() { if [ "$current_obfs_plugin" != "$obfs_plugin" ] || [ "$current_obfs_type" != "$obfs_type" ] || [ "$current_port" != "$port" ] || [ "$current_method" != "$method" ] || [ "$current_key" != "$key" ] || [ "$current_ebpf" != "$ebpf" ] || [ "$current_obfs" != "$obfs" ] || [ "$current_fast_open" != "$fast_open" ] || [ "$current_no_delay" != "$no_delay" ]; then local settings settings='{"port": '$port',"method":"'$method'","fast_open":'$fast_open',"reuse_port":true,"no_delay":'$no_delay',"mptcp":true,"key":"'$key'","ebpf":'$ebpf',"obfs":'$obfs',"obfs_plugin":"'$obfs_plugin'","obfs_type":"'$obfs_type'"}' - echo $(_set_json "shadowsocks" "$settings") + _set_json "shadowsocks" "$settings" fi } @@ -906,7 +927,7 @@ _set_vps_firewall() { vps_config="" _login [ -z "$token" ] && { - logger -t "OMR-VPS" "Can't get token, try later" + logger -t "OMR-VPS" "Can't get ${fwservername} token, try later" uci -q batch <<-EOF >/dev/null set openmptcprouter.${fwservername}.admin_error=1 EOF @@ -967,7 +988,7 @@ _set_config_from_vps() { [ -z "$vps_config" ] && vps_config=$(_get_json "config") [ -z "$vps_config" ] && return - logger -t "OMR-VPS" "Get config from VPS..." + logger -t "OMR-VPS" "Get config from server ${servername}..." noerror=1 # get VPS ip vpsip="$(uci -q get openmptcprouter.${servername}.ip)" @@ -1371,7 +1392,7 @@ _backup_send() { vps_config="" _login [ -z "$token" ] && { - logger -t "OMR-VPS" "Can't get token, try later" + logger -t "OMR-VPS" "Can't get ${servername} token, try later" uci -q batch <<-EOF >/dev/null set openmptcprouter.${servername}.admin_error=1 EOF @@ -1412,7 +1433,7 @@ _backup_get_and_apply() { vps_config="" _login [ -z "$token" ] && { - logger -t "OMR-VPS" "Can't get token, try later" + logger -t "OMR-VPS" "Can't get ${servername} token, try later" uci -q batch <<-EOF >/dev/null set openmptcprouter.${servername}.admin_error=1 EOF @@ -1446,7 +1467,7 @@ _backup_list() { vps_config="" _login [ -z "$token" ] && { - logger -t "OMR-VPS" "Can't get token, try later" + logger -t "OMR-VPS" "Can't get ${servername} token, try later" uci -q batch <<-EOF >/dev/null set openmptcprouter.${servername}.admin_error=1 EOF @@ -1483,6 +1504,7 @@ _config_service() { [ -z "$(uci -q get openmptcprouter.${servername}.password)" ] && return [ -z "$(uci -q get openmptcprouter.${servername}.port)" ] && return [ -z "$(uci -q get openmptcprouter.${servername}.ip)" ] && return + [ "$(uci -q get openmptcprouter.${servername}.disabled)" = "1" ] && return token="" vps_config="" _login @@ -1491,9 +1513,9 @@ _config_service() { _ping_server status=$? if $(exit $status); then - reason="can ping server" + reason="can ping server ${servername}" else - reason="can't ping server" + reason="can't ping server ${servername}" fi port="$(uci -q get openmptcprouter.${servername}.port)" server="$(uci -q get openmptcprouter.${servername}.ip)" @@ -1505,19 +1527,21 @@ _config_service() { if [ "$(uci -q get openmptcprouter.${servername}.username)" != "openmptcprouter" ]; then reason="$reason, custom username" fi - logger -t "OMR-VPS" "Can't get token, try later ($reason)" + logger -t "OMR-VPS" "Can't get ${servername} token, try later ($reason)" uci -q batch <<-EOF >/dev/null set openmptcprouter.${servername}.admin_error=1 EOF return } error=0 - [ "$(uci -q get openmptcprouter.${servername}.get_config)" = "1" ] && { + [ "$(uci -q get openmptcprouter.${servername}.get_config)" = "1" ] && [ "$(uci -q get openmptcprouter.${servername}.master)" = "1" ] && { _set_config_from_vps _get_gre_tunnel } - _get_vps_config + [ "$(uci -q get openmptcprouter.${servername}.master)" = "1" ] && { + _get_vps_config + } [ -z "$vps_config" ] && vps_config=$(_get_json "config") [ -z "$vps_config" ] && return user_permission="$(echo "$vps_config" | jsonfilter -q -e '@.user.permission')" From dd6e5d07f83574a5b7ff02fd34ae9c4c6d9de174 Mon Sep 17 00:00:00 2001 From: "Ycarus (Yannick Chabanois)" Date: Thu, 26 Nov 2020 16:31:36 +0100 Subject: [PATCH 050/117] Update OpenVPN key when server change --- omr-tracker/files/bin/omr-tracker-server | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/omr-tracker/files/bin/omr-tracker-server b/omr-tracker/files/bin/omr-tracker-server index 7b652c26d..e7c759b16 100755 --- a/omr-tracker/files/bin/omr-tracker-server +++ b/omr-tracker/files/bin/omr-tracker-server @@ -65,6 +65,7 @@ _check_master() { add_list openvpn.omr.remote=$ip commit openvpn EOF + /etc/init.d/openmptcprouter-vps get_openvpn_key $name >/dev/null 2>/dev/null /etc/init.d/shadowsocks-libev restart >/dev/null 2>/dev/null /etc/init.d/v2ray restart >/dev/null 2>/dev/null /etc/init.d/glorytun restart >/dev/null 2>/dev/null @@ -88,7 +89,7 @@ _check_backup() { _check_server $ip $port [ "$server_ping" = true ] && [ "$(uci -q get shadowsocks-libev.sss0.server | tr -d '\n')" = "$ip" ] && break [ "$server_ping" = true ] && [ "$(uci -q get shadowsocks-libev.sss0.server | tr -d '\n')" != "$ip" ] && { - logger -t "OMR-Tracker-Server" "User backup server $1 ($ip)" + logger -t "OMR-Tracker-Server" "Use backup server $1 ($ip)" uci -q batch <<-EOF >/dev/null set shadowsocks-libev.sss0.server=$ip commit shadowsocks-libev @@ -105,6 +106,7 @@ _check_backup() { add_list openvpn.omr.remote=$ip commit openvpn EOF + /etc/init.d/openmptcprouter-vps get_openvpn_key $name >/dev/null 2>/dev/null /etc/init.d/shadowsocks-libev restart >/dev/null 2>/dev/null /etc/init.d/v2ray restart >/dev/null 2>/dev/null /etc/init.d/glorytun restart >/dev/null 2>/dev/null From 9abe48ca8fbd5e369a1ac6d52d69eedc105225ee Mon Sep 17 00:00:00 2001 From: "Ycarus (Yannick Chabanois)" Date: Thu, 26 Nov 2020 16:32:15 +0100 Subject: [PATCH 051/117] Add BBR2 dependency --- openmptcprouter-full/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/openmptcprouter-full/Makefile b/openmptcprouter-full/Makefile index 8afa8bbcb..0d060fa9a 100644 --- a/openmptcprouter-full/Makefile +++ b/openmptcprouter-full/Makefile @@ -78,7 +78,7 @@ MY_DEPENDS := \ !TARGET_mvebu:kmod-usb-net-huawei-cdc-ncm !TARGET_mvebu:kmod-usb-net-rndis !TARGET_mvebu:kmod-usb-net-cdc-ether !TARGET_mvebu:kmod-usb-net-ipheth !TARGET_mvebu:usbmuxd \ kmod-rt2800-usb kmod-rtl8xxxu kmod-rtl8192cu kmod-net-rtl8192su \ !TARGET_mvebu:luci-proto-qmi wpad-basic kmod-mt7601u kmod-rtl8187 \ - luci-app-mlvpn mlvpn 464xlat !TARGET_mvebu:kmod-usb-net-smsc75xx kmod-zram kmod-swconfig swconfig kmod-ipt-nat kmod-ipt-nat6 luci-app-https-dns-proxy kmod-tcp-nanqinlang iptables-mod-ipopt igmpproxy ss iptraf-ng \ + luci-app-mlvpn mlvpn 464xlat !TARGET_mvebu:kmod-usb-net-smsc75xx kmod-zram kmod-swconfig swconfig kmod-ipt-nat kmod-ipt-nat6 luci-app-https-dns-proxy kmod-tcp-nanqinlang kmod-tcp-bbr2 iptables-mod-ipopt igmpproxy ss iptraf-ng \ luci-app-acl block-mount blockd fstools luci-app-shutdown libwebp luci-proto-gre tcptraceroute luci-proto-mbim kmod-rtl8xxxu kmod-ath9k-htc luci-app-ttyd luci-mod-dashboard (TARGET_x86||TARGET_x86_64):rtl8192eu-firmware kmod-usb2 libustream-wolfssl (TARGET_x86||TARGET_x86_64):kmod-ixgbevf \ hwinfo (TARGET_x86||TARGET_x86_64):dmidecode # luci-theme-bootstrap luci-theme-openwrt-2020 luci-theme-openwrt luci-app-status From 4e6ba9a587fb03d1d221133a2b4866c43e2f0e10 Mon Sep 17 00:00:00 2001 From: "Ycarus (Yannick Chabanois)" Date: Fri, 27 Nov 2020 18:12:10 +0100 Subject: [PATCH 052/117] Fix typo --- luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm b/luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm index 59aaf2f0f..0973622ab 100644 --- a/luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm +++ b/luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm @@ -470,7 +470,7 @@
From 9b30f42277f1d40a482011137705539e93327c96 Mon Sep 17 00:00:00 2001 From: "Ycarus (Yannick Chabanois)" Date: Fri, 27 Nov 2020 18:12:31 +0100 Subject: [PATCH 053/117] Update firewall app to upstream --- .../htdocs/luci-static/resources/view/firewall/rules.js | 1 + .../htdocs/luci-static/resources/view/firewall/zones.js | 4 +++- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js b/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js index 8cb1a1242..bacbbd704 100644 --- a/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js +++ b/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js @@ -308,6 +308,7 @@ return view.extend({ o.value('network-redirect'); o.value('network-unknown'); o.value('network-unreachable'); + o.value('packet-too-big'); o.value('parameter-problem'); o.value('port-unreachable'); o.value('precedence-cutoff'); diff --git a/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js b/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js index 5e2b6cd81..00e272677 100644 --- a/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js +++ b/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js @@ -177,9 +177,11 @@ return view.extend({ } return Promise.all(tasks).then(function(zone_networks) { - if (zone_networks[0]) + if (zone_networks[0]) { + zone_networks[0].clearNetworks(); for (var i = 1; i < zone_networks.length; i++) zone_networks[0].addNetwork(zone_networks[i].getName()); + } }); }; From a445cba3c7dec1b05dc4b10c6ec5269cbb6f53d5 Mon Sep 17 00:00:00 2001 From: "Ycarus (Yannick Chabanois)" Date: Fri, 27 Nov 2020 18:13:04 +0100 Subject: [PATCH 054/117] Update wireless from upstream --- luci-mod-network/Makefile | 2 +- .../resources/view/network/wireless.js | 20 ++++++++++++++----- 2 files changed, 16 insertions(+), 6 deletions(-) diff --git a/luci-mod-network/Makefile b/luci-mod-network/Makefile index 962817219..7a043dc40 100644 --- a/luci-mod-network/Makefile +++ b/luci-mod-network/Makefile @@ -4,7 +4,7 @@ # # This is free software, licensed under the Apache License, Version 2.0 . # -# From https://github.com/openwrt/luci/commit/5ca328440b3a41ab6d415ec96f9db4339715de67 +# From https://github.com/openwrt/luci/commit/83c912716e482000e92443cffc3202726314f480 include $(TOPDIR)/rules.mk diff --git a/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js b/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js index dc75c9509..bb9877217 100644 --- a/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js +++ b/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js @@ -1634,7 +1634,7 @@ return view.extend({ o = ss.taboption('encryption', form.Flag, 'wpa_disable_eapol_key_retries', _('Enable key reinstallation (KRACK) countermeasures'), _('Complicates key reinstallation attacks on the client side by disabling retransmission of EAPOL-Key frames that are used to install keys. This workaround might cause interoperability issues and reduced robustness of key negotiation especially in environments with heavy traffic load.')); add_dependency_permutations(o, { mode: ['ap', 'ap-wds'], encryption: ['psk2', 'psk-mixed', 'sae', 'sae-mixed', 'wpa2', 'wpa3', 'wpa3-mixed'] }); - if (L.hasSystemFeature('hostapd', 'cli') && L.hasSystemFeature('wpasupplicant')) { + if (L.hasSystemFeature('hostapd', 'wps') && L.hasSystemFeature('wpasupplicant')) { o = ss.taboption('encryption', form.Flag, 'wps_pushbutton', _('Enable WPS pushbutton, requires WPA(2)-PSK/WPA3-SAE')) o.enabled = '1'; o.disabled = '0'; @@ -1742,7 +1742,7 @@ return view.extend({ E('span', { 'style': s }, '%h'.format(network.formatWifiEncryption(res.encryption))), E('div', { 'class': 'right' }, E('button', { 'class': 'cbi-button cbi-button-action important', - 'click': L.bind(this.handleJoin, this, radioDev, res) + 'click': ui.createHandlerFn(this, 'handleJoin', radioDev, res) }, _('Join Network'))) ]); @@ -1790,17 +1790,19 @@ return view.extend({ s.handleJoinConfirm = function(radioDev, bss, form, ev) { var nameopt = L.toArray(form.lookupOption('name', '_new_'))[0], passopt = L.toArray(form.lookupOption('password', '_new_'))[0], + ssidopt = L.toArray(form.lookupOption('ssid', '_new_'))[0], bssidopt = L.toArray(form.lookupOption('bssid', '_new_'))[0], zoneopt = L.toArray(form.lookupOption('zone', '_new_'))[0], replopt = L.toArray(form.lookupOption('replace', '_new_'))[0], nameval = (nameopt && nameopt.isValid('_new_')) ? nameopt.formvalue('_new_') : null, passval = (passopt && passopt.isValid('_new_')) ? passopt.formvalue('_new_') : null, + ssidval = (ssidopt && ssidopt.isValid('_new_')) ? ssidopt.formvalue('_new_') : null, bssidval = (bssidopt && bssidopt.isValid('_new_')) ? bssidopt.formvalue('_new_') : null, zoneval = zoneopt ? zoneopt.formvalue('_new_') : null, enc = L.isObject(bss.encryption) ? bss.encryption : null, is_wep = (enc && Array.isArray(enc.wep)), - is_psk = (enc && Array.isArray(enc.wpa) && L.toArray(enc.authentication).filter(function(a) { return a == 'psk' })), - is_sae = (enc && Array.isArray(enc.wpa) && L.toArray(enc.authentication).filter(function(a) { return a == 'sae' })); + is_psk = (enc && Array.isArray(enc.wpa) && L.toArray(enc.authentication).filter(function(a) { return a == 'psk' }).length > 0), + is_sae = (enc && Array.isArray(enc.wpa) && L.toArray(enc.authentication).filter(function(a) { return a == 'sae' }).length > 0); if (nameval == null || (passopt && passval == null)) return; @@ -1841,6 +1843,9 @@ return view.extend({ uci.set('wireless', section_id, 'bssid', bss.bssid); } + if (ssidval != null) + uci.set('wireless', section_id, 'ssid', ssidval); + if (is_sae) { uci.set('wireless', section_id, 'encryption', 'sae'); uci.set('wireless', section_id, 'key', passval); @@ -1886,7 +1891,7 @@ return view.extend({ }; s.handleJoin = function(radioDev, bss, ev) { - this.handleScanAbort(ev); + poll.remove(this.pollFn); var m2 = new form.Map('wireless'), s2 = m2.section(form.NamedSection, '_new_'), @@ -1911,6 +1916,11 @@ return view.extend({ ]).then(this.renderContents.bind(this)); }; + if (bss.ssid == null) { + name = s2.option(form.Value, 'ssid', _('Network SSID'), _('The correct SSID must be manually specified when joining a hidden wireless network')); + name.rmempty = false; + }; + replace = s2.option(form.Flag, 'replace', _('Replace wireless configuration'), _('Check this option to delete the existing networks from this radio.')); name = s2.option(form.Value, 'name', _('Name of the new network'), _('The allowed characters are: A-Z, a-z, 0-9 and _')); From 284fda5ec7406c5f1dd1e139fdb321b4b284f295 Mon Sep 17 00:00:00 2001 From: "Ycarus (Yannick Chabanois)" Date: Fri, 27 Nov 2020 18:13:36 +0100 Subject: [PATCH 055/117] Fix firewall from update --- openmptcprouter/files/etc/uci-defaults/1980-omr-firewall | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/openmptcprouter/files/etc/uci-defaults/1980-omr-firewall b/openmptcprouter/files/etc/uci-defaults/1980-omr-firewall index 267891fd3..e6f918796 100755 --- a/openmptcprouter/files/etc/uci-defaults/1980-omr-firewall +++ b/openmptcprouter/files/etc/uci-defaults/1980-omr-firewall @@ -157,6 +157,11 @@ uci -q del firewall.@zone[1].network for intf in $allintf; do uci -q add_list firewall.@zone[1].network=$intf done +allintf=$(uci -q get firewall.zone_vpn.network) +uci -q del firewall.zone_vpn.network +for intf in $allintf; do + uci -q add_list firewall.zone_vpn.network=$intf +done uci -q batch <<-EOF >/dev/null set firewall.@zone[0].mtu_fix='1' From eac6cc6ab1b6a46aae06317e38a7887cc968d1a7 Mon Sep 17 00:00:00 2001 From: "Ycarus (Yannick Chabanois)" Date: Fri, 27 Nov 2020 19:59:28 +0100 Subject: [PATCH 056/117] Fix omr-rename when not needed --- luci-app-openmptcprouter/root/etc/init.d/openmptcprouter | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/luci-app-openmptcprouter/root/etc/init.d/openmptcprouter b/luci-app-openmptcprouter/root/etc/init.d/openmptcprouter index c49866fd5..63d4d3a3a 100755 --- a/luci-app-openmptcprouter/root/etc/init.d/openmptcprouter +++ b/luci-app-openmptcprouter/root/etc/init.d/openmptcprouter @@ -45,14 +45,15 @@ omr_intf_set() { if [ "$type" != "macvlan" ] && [ -n "$ifname" ] && [ -f /sys/class/net/${ifname}/device/uevent ]; then devicepath=$(readlink -f /sys/class/net/${ifname}) - if [ -n "$devicepath" ] && [ "$(echo ${devicepath} | grep virtual)" = "" ]; then + if [ -n "$devicepath" ] && [ "$(echo ${devicepath} | grep virtual)" = "" ] && [ "$(cat /sys/class/net/${ifname}/device/uevent | grep PRODUCT)" != "" ] && [ "$(cat /sys/class/net/${ifname}/device/uevent | grep PCI_SLOT_NAME)" = "" ]; then uci -q set network.$1.modalias="$(cat /sys/class/net/${ifname}/device/uevent | grep MODALIAS | cut -d '=' -f2 | tr -d '\n')" uci -q set network.$1.product="$(cat /sys/class/net/${ifname}/device/uevent | grep PRODUCT | cut -d '=' -f2 | tr -d '\n')" - elif [ -n "$devicepath" ] && [ "$(echo ${devicepath} | grep virtual)" != "" ]; then + elif [ -n "$devicepath" ] && ([ "$(echo ${devicepath} | grep virtual)" != "" ] || [ "$(echo ${devicepath} | grep virtual)" = "" ] && [ "$(cat /sys/class/net/${ifname}/device/uevent | grep PRODUCT)" = "" ] || [ "$(cat /sys/class/net/${ifname}/device/uevent | grep PCI_SLOT_NAME)" != "" ] || [ "$(cat /sys/class/net/${ifname}tmp/device/uevent)" != "" ]); then uci -q delete network.$1.device uci -q delete network.$1.modalias + uci -q delete network.$1.product fi - elif [ "$type" != "macvlan" ] && [ -n "$device" ] && [ -f /sys/bus/usb-serial/devices/${devicename}/device/uevent ]; then + elif [ "$type" != "macvlan" ] && [ -n "$device" ] && [ -f /sys/bus/usb-serial/devices/${devicename}/device/uevent ] && [ "$(cat /sys/class/net/${ifname}/device/uevent | grep PRODUCT)" != "" ]; then uci -q set network.$1.modalias="$(cat /sys/bus/usb-serial/devices/${devicename}/device/uevent | grep MODALIAS | cut -d '=' -f2 | tr -d '\n')" uci -q set network.$1.product="$(cat /sys/bus/usb-serial/devices/${devicename}/device/uevent | grep PRODUCT | cut -d '=' -f2 | tr -d '\n')" fi From 30fa24b9160ec9cae644426c2f8573f22134167d Mon Sep 17 00:00:00 2001 From: "Ycarus (Yannick Chabanois)" Date: Sat, 28 Nov 2020 20:30:52 +0100 Subject: [PATCH 057/117] Fix glorytun UDP init script --- glorytun-udp/init | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/glorytun-udp/init b/glorytun-udp/init index 638736017..b9a18c526 100755 --- a/glorytun-udp/init +++ b/glorytun-udp/init @@ -62,10 +62,10 @@ start_instance() { procd_open_instance procd_set_param command ${PROG} \ - ${bind:+bind "$bind"} \ - ${bindport:+ "$bindport"} \ - ${host:+to "$host"} \ - ${port:+ "$port"} \ + ${bind:+bind from "$bind"} \ + ${bindport:+port "$bindport"} \ + ${host:+to addr "$host"} \ + ${port:+port "$port"} \ ${dev:+dev "$dev"} \ keyfile /tmp/${PROG_NAME}-${1}.key \ persist From 0bf0bee341ed90fd2efbf8ec98b9f28d4c2aa973 Mon Sep 17 00:00:00 2001 From: "Ycarus (Yannick Chabanois)" Date: Sat, 28 Nov 2020 20:58:14 +0100 Subject: [PATCH 058/117] Fix shadowsocks config from router --- .../files/etc/init.d/openmptcprouter-vps | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/openmptcprouter/files/etc/init.d/openmptcprouter-vps b/openmptcprouter/files/etc/init.d/openmptcprouter-vps index 3c94e42e0..8db25ea42 100755 --- a/openmptcprouter/files/etc/init.d/openmptcprouter-vps +++ b/openmptcprouter/files/etc/init.d/openmptcprouter-vps @@ -153,14 +153,15 @@ _get_ss_server() { _set_ss_server_vps() { local disabled port key method - config_get disabled $1 disabled + config_load shadowsocks-libev + config_get disabled sss0 disabled [ "$disabled" = "1" ] && return - config_get port $1 server_port + config_get port sss0 server_port #config_get server $1 server - config_get key $1 key + config_get key sss0 key key="$(echo $key | sed 's/+/-/g; s/\//_/g;')" [ -z "$key" ] && return - config_get method $1 method + config_get method sss0 method local current_port current_key current_method [ -z "$vps_config" ] && vps_config=$(_get_json "config") [ -z "$vps_config" ] && return @@ -1562,8 +1563,9 @@ _config_service() { [ -n "$vps_config" ] && uci -q set openmptcprouter.settings.firstboot=0 fi if [ "$user_permission" != "ro" ]; then - config_load shadowsocks-libev - config_foreach _set_ss_server_vps server + #config_load shadowsocks-libev + #config_foreach _set_ss_server_vps server + _set_ss_server_vps _set_v2ray_server_vps [ -z "$(_set_glorytun_vps)" ] && error=1 [ -z "$(_set_openvpn_vps)" ] && error=1 From 1bc14fdbde06814d3d2f2ddba2043aa127bf1349 Mon Sep 17 00:00:00 2001 From: Giuseppe Dipierro Date: Tue, 1 Dec 2020 10:21:17 +0000 Subject: [PATCH 059/117] Translated using Weblate (Italian) Currently translated at 98.7% (237 of 240 strings) Translation: OpenMPTCProuter/LuCI/applications/openmptcprouter Translate-URL: http://weblate.openmptcprouter.com/projects/omr/luciapplicationsopenmptcprouter/it/ --- luci-app-openmptcprouter/po/it/openmptcprouter.po | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/luci-app-openmptcprouter/po/it/openmptcprouter.po b/luci-app-openmptcprouter/po/it/openmptcprouter.po index 0a900f075..e11809c0e 100644 --- a/luci-app-openmptcprouter/po/it/openmptcprouter.po +++ b/luci-app-openmptcprouter/po/it/openmptcprouter.po @@ -1,7 +1,7 @@ msgid "" msgstr "" -"PO-Revision-Date: 2020-10-21 12:55+0000\n" -"Last-Translator: Weblate Admin \n" +"PO-Revision-Date: 2020-12-01 10:49+0000\n" +"Last-Translator: Giuseppe Dipierro \n" "Language-Team: Italian \n" "Language: it\n" @@ -981,7 +981,7 @@ msgstr "Traffico VPN:" #: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:198 msgid "VPN tunnel DOWN" -msgstr "Tunnel VPN GIÙ" +msgstr "Tunnel VPN non stabilito" #: luci-app-openmptcprouter/luasrc/view/openmptcprouter/settings.htm:41 msgid "VPS settings" From d1e4d0f73948f6483d28b881c322daab364ac1e3 Mon Sep 17 00:00:00 2001 From: Giuseppe Dipierro Date: Tue, 1 Dec 2020 10:12:14 +0000 Subject: [PATCH 060/117] Translated using Weblate (Italian) Currently translated at 100.0% (6 of 6 strings) Translation: OpenMPTCProuter/LuCI/applications/shutdown Translate-URL: http://weblate.openmptcprouter.com/projects/omr/luciapplicationsshutdown/it/ --- luci-app-shutdown/po/it/shutdown.po | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/luci-app-shutdown/po/it/shutdown.po b/luci-app-shutdown/po/it/shutdown.po index 500e9eba6..03ca58813 100644 --- a/luci-app-shutdown/po/it/shutdown.po +++ b/luci-app-shutdown/po/it/shutdown.po @@ -1,7 +1,7 @@ msgid "" msgstr "" -"PO-Revision-Date: 2020-09-15 11:36+0000\n" -"Last-Translator: Weblate Admin \n" +"PO-Revision-Date: 2020-12-01 10:49+0000\n" +"Last-Translator: Giuseppe Dipierro \n" "Language-Team: Italian \n" "Language: it\n" @@ -21,11 +21,11 @@ msgstr "Eseguire l'arresto" #: luci-app-shutdown/htdocs/luci-static/resources/view/system/shutdown.js:9 #: luci-app-shutdown/root/usr/share/luci/menu.d/luci-app-shutdown.json:3 msgid "Shutdown" -msgstr "Spegnimento" +msgstr "Spegni" #: luci-app-shutdown/htdocs/luci-static/resources/view/system/shutdown.js:10 msgid "Shutdown the operating system of your device" -msgstr "Arresta il sistema operativo del tuo dispositivo" +msgstr "Arresta il dispositivo" #: luci-app-shutdown/htdocs/luci-static/resources/view/system/shutdown.js:31 msgid "The poweroff command failed with code %d" From 07a3b6e4c3790fb0ab0015f518c20ad2002459ef Mon Sep 17 00:00:00 2001 From: Giuseppe Dipierro Date: Tue, 1 Dec 2020 10:13:33 +0000 Subject: [PATCH 061/117] Translated using Weblate (Italian) Currently translated at 100.0% (11 of 11 strings) Translation: OpenMPTCProuter/LuCI/applications/mail Translate-URL: http://weblate.openmptcprouter.com/projects/omr/luciapplicationsmail/it/ --- luci-app-mail/po/it/mail.po | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/luci-app-mail/po/it/mail.po b/luci-app-mail/po/it/mail.po index 524ba6ee2..fd43053e7 100644 --- a/luci-app-mail/po/it/mail.po +++ b/luci-app-mail/po/it/mail.po @@ -1,7 +1,7 @@ msgid "" msgstr "" -"PO-Revision-Date: 2020-09-21 12:51+0000\n" -"Last-Translator: Weblate Admin \n" +"PO-Revision-Date: 2020-12-01 10:49+0000\n" +"Last-Translator: Giuseppe Dipierro \n" "Language-Team: Italian \n" "Language: it\n" @@ -14,7 +14,7 @@ msgid "From" msgstr "Da" msgid "Mail settings" -msgstr "Impostazioni mail" +msgstr "Configurazione mail" msgid "Password" msgstr "Password" @@ -32,9 +32,7 @@ msgid "Server" msgstr "Server" msgid "Set mail settings for services that need to send mails." -msgstr "" -"Configurare le impostazioni di posta per i servizi che devono inviare " -"messaggi di posta elettronica." +msgstr "Configurazione del server mail da utilizzare per inviare alert." msgid "TLS" msgstr "TLS" From 1f3ebf9fd77c373f4166ddeca4b724a1ee89c85f Mon Sep 17 00:00:00 2001 From: Giuseppe Dipierro Date: Tue, 1 Dec 2020 10:19:07 +0000 Subject: [PATCH 062/117] Translated using Weblate (Italian) Currently translated at 96.4% (54 of 56 strings) Translation: OpenMPTCProuter/LuCI/applications/mptcp Translate-URL: http://weblate.openmptcprouter.com/projects/omr/luciapplicationsmptcp/it/ --- luci-app-mptcp/po/it/mptcp.po | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/luci-app-mptcp/po/it/mptcp.po b/luci-app-mptcp/po/it/mptcp.po index 9302b4a4c..272ac94dc 100644 --- a/luci-app-mptcp/po/it/mptcp.po +++ b/luci-app-mptcp/po/it/mptcp.po @@ -1,7 +1,7 @@ msgid "" msgstr "" -"PO-Revision-Date: 2020-10-02 08:44+0000\n" -"Last-Translator: Weblate Admin \n" +"PO-Revision-Date: 2020-12-01 10:49+0000\n" +"Last-Translator: Giuseppe Dipierro \n" "Language-Team: Italian \n" "Language: it\n" @@ -164,7 +164,7 @@ msgstr "Un'interfaccia deve essere impostata come master" #: luci-app-mptcp/luasrc/view/mptcp/multipath.htm:939 msgid "Outbound:" -msgstr "In uscita:" +msgstr "Upload:" #: luci-app-mptcp/luasrc/view/mptcp/multipath.htm:323 #: luci-app-mptcp/luasrc/view/mptcp/multipath.htm:326 @@ -193,7 +193,7 @@ msgstr "Test" #: luci-app-mptcp/luasrc/view/mptcp/multipath.htm:914 msgid "Upload:" -msgstr "Carica:" +msgstr "Upload:" #: luci-app-mptcp/luasrc/view/mptcp/mptcp_check.htm:21 #: luci-app-mptcp/luasrc/view/mptcp/mptcp_connections.htm:21 From f13bdd001f1b8aa97c5957471a9a2592da99b966 Mon Sep 17 00:00:00 2001 From: Giuseppe Dipierro Date: Tue, 1 Dec 2020 16:35:42 +0000 Subject: [PATCH 063/117] Translated using Weblate (Italian) Currently translated at 98.7% (237 of 240 strings) Translation: OpenMPTCProuter/LuCI/applications/openmptcprouter Translate-URL: http://weblate.openmptcprouter.com/projects/omr/luciapplicationsopenmptcprouter/it/ --- luci-app-openmptcprouter/po/it/openmptcprouter.po | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/luci-app-openmptcprouter/po/it/openmptcprouter.po b/luci-app-openmptcprouter/po/it/openmptcprouter.po index e11809c0e..9cdcf0e42 100644 --- a/luci-app-openmptcprouter/po/it/openmptcprouter.po +++ b/luci-app-openmptcprouter/po/it/openmptcprouter.po @@ -1,6 +1,6 @@ msgid "" msgstr "" -"PO-Revision-Date: 2020-12-01 10:49+0000\n" +"PO-Revision-Date: 2020-12-01 17:19+0000\n" "Last-Translator: Giuseppe Dipierro \n" "Language-Team: Italian \n" @@ -1006,7 +1006,7 @@ msgstr "" #: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:39 msgid "Wizard" -msgstr "Mago" +msgstr "Wizard" #: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:75 #: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:80 From 2df8bdf0529e68686d0262653d07fade83dc65e7 Mon Sep 17 00:00:00 2001 From: "Ycarus (Yannick Chabanois)" Date: Thu, 3 Dec 2020 11:21:43 +0100 Subject: [PATCH 064/117] New interface for dsvpn VPN --- dsvpn/files/init | 14 ++-- luci-app-dsvpn/Makefile | 4 +- .../resources/view/services/dsvpn.js | 66 +++++++++++++++++++ luci-app-dsvpn/luasrc/controller/dsvpn.lua | 7 -- luci-app-dsvpn/luasrc/model/cbi/dsvpn.lua | 44 ------------- luci-app-dsvpn/po/de/dsvpn.po | 50 -------------- luci-app-dsvpn/po/fr/dsvpn.po | 53 --------------- luci-app-dsvpn/po/it/dsvpn.po | 50 -------------- luci-app-dsvpn/po/oc/dsvpn.po | 50 -------------- luci-app-dsvpn/po/templates/dsvpn.pot | 41 ------------ luci-app-dsvpn/po/zh_Hans/dsvpn.po | 50 -------------- luci-app-dsvpn/po/zh_Hant/dsvpn.po | 50 -------------- .../usr/share/luci/menu.d/luci-app-dsvpn.json | 6 +- .../usr/share/rpcd/acl.d/luci-app-dsvpn.json | 2 +- 14 files changed, 81 insertions(+), 406 deletions(-) create mode 100644 luci-app-dsvpn/htdocs/luci-static/resources/view/services/dsvpn.js delete mode 100644 luci-app-dsvpn/luasrc/controller/dsvpn.lua delete mode 100644 luci-app-dsvpn/luasrc/model/cbi/dsvpn.lua delete mode 100644 luci-app-dsvpn/po/de/dsvpn.po delete mode 100644 luci-app-dsvpn/po/fr/dsvpn.po delete mode 100644 luci-app-dsvpn/po/it/dsvpn.po delete mode 100644 luci-app-dsvpn/po/oc/dsvpn.po delete mode 100644 luci-app-dsvpn/po/templates/dsvpn.pot delete mode 100644 luci-app-dsvpn/po/zh_Hans/dsvpn.po delete mode 100644 luci-app-dsvpn/po/zh_Hant/dsvpn.po diff --git a/dsvpn/files/init b/dsvpn/files/init index 73a3457a3..250c409df 100755 --- a/dsvpn/files/init +++ b/dsvpn/files/init @@ -24,7 +24,9 @@ validate_section() { 'port:port' \ 'dev:string' \ 'localip:host' \ - 'remoteip:host' + 'remoteip:host' \ + 'mode:string:client' \ + 'externalip:string:auto' } start_instance() { @@ -39,7 +41,8 @@ start_instance() { [ -n "${key}" ] || return 1 [ "${key}" != "secretkey" ] || return 1 - [ -n "${port}" ] || return 1 + [ -z "${host}" ] && host="auto" + [ -z "${port}" ] && port="auto" [ -n "${dev}" ] || return 1 echo "${key}" > /tmp/${PROG_NAME}-${1}.key @@ -57,14 +60,15 @@ start_instance() { procd_open_instance - procd_set_param command ${PROG} client \ + procd_set_param command ${PROG} ${mode} \ /tmp/${PROG_NAME}-${1}.key \ $host \ $port \ $dev \ ${localip:+$localip} \ - ${remoteip:+$remoteip} \ - $(ip r get $host | awk '{print $3}' | tr -d "\n") + ${remoteip:+$remoteip} + [ "$mode" = "client" ] && procd_append_param command $(ip r get $host | awk '{print $3}' | tr -d "\n") + [ "$mode" = "server" ] && procd_append_param command externalip procd_set_param respawn 0 30 5 diff --git a/luci-app-dsvpn/Makefile b/luci-app-dsvpn/Makefile index d78150d98..cc5052f9d 100644 --- a/luci-app-dsvpn/Makefile +++ b/luci-app-dsvpn/Makefile @@ -1,11 +1,11 @@ # -# Copyright (C) 2018-2019 Ycarus (Yannick Chabanois) for OpenMPTCProuter +# Copyright (C) 2018-2020 Ycarus (Yannick Chabanois) # # include $(TOPDIR)/rules.mk -LUCI_TITLE:=LuCI Support for DSVPN +LUCI_TITLE:=LuCI Interface to DSVPN LUCI_DEPENDS:=+dsvpn PKG_LICENSE:=GPLv3 diff --git a/luci-app-dsvpn/htdocs/luci-static/resources/view/services/dsvpn.js b/luci-app-dsvpn/htdocs/luci-static/resources/view/services/dsvpn.js new file mode 100644 index 000000000..2f737b571 --- /dev/null +++ b/luci-app-dsvpn/htdocs/luci-static/resources/view/services/dsvpn.js @@ -0,0 +1,66 @@ +'use strict'; +'require rpc'; +'require form'; +'require fs'; +'require uci'; +'require tools.widgets as widgets'; + +var callHostHints; + +return L.view.extend({ + callHostHints: rpc.declare({ + object: 'luci-rpc', + method: 'getHostHints', + expect: { '': {} } + }), + + load: function() { + return this.callHostHints(); + }, + + render: function(hosts) { + var m, s, o; + + m = new form.Map('dsvpn', _('DSVPN')); + + s = m.section(form.GridSection, 'dsvpn', _('Instances')); + s.addremove = true; + s.anonymous = true; + s.nodescriptions = true; + + o = s.option(form.Flag, 'enable', _('Enabled')); + o.default = o.enabled; + + o = s.option(form.ListValue, 'mode', _('Mode')); + o.value('client',_('Client')); + o.value('server',_('Server')); + o.modalonly = true; + + o = s.option(form.Value, 'host', _('Host')); + o.rmempty = false; + + o = s.option(form.Value, 'port', _('Port')); + o.rmempty = false; + + o = s.option(form.Value, 'key', _('Key')); + o.rmempty = false; + o.modalonly = true; + + o = s.option(form.Value, 'dev', _('Interface name')); + o.rmempty = false; + o.modalonly = true; + + o = s.option(form.Value, 'localip', _('Local IP')); + o.datatype = 'or(ip4addr,ip6addr)'; + o.rmempty = false; + + o = s.option(form.Value, 'remoteip', _('Remote IP')); + o.datatype = 'or(ip4addr,ip6addr)'; + o.rmempty = false; + + o = s.option(form.Value, 'label', _('Label')); + o.rmempty = true; + + return m.render(); + } +}); diff --git a/luci-app-dsvpn/luasrc/controller/dsvpn.lua b/luci-app-dsvpn/luasrc/controller/dsvpn.lua deleted file mode 100644 index 99793584a..000000000 --- a/luci-app-dsvpn/luasrc/controller/dsvpn.lua +++ /dev/null @@ -1,7 +0,0 @@ -module("luci.controller.dsvpn", package.seeall) - -function index() - --entry({"admin", "openmptcprouter", "mlvpn"}, cbi("mlvpn"), _("DSVPN")) - --entry({"admin", "services", "dsvpn"}, cbi("dsvpn"), _("DSVPN")) - entry({"admin", "vpn", "dsvpn"}, cbi("dsvpn"), _("DSVPN")) -end diff --git a/luci-app-dsvpn/luasrc/model/cbi/dsvpn.lua b/luci-app-dsvpn/luasrc/model/cbi/dsvpn.lua deleted file mode 100644 index d0c6a3141..000000000 --- a/luci-app-dsvpn/luasrc/model/cbi/dsvpn.lua +++ /dev/null @@ -1,44 +0,0 @@ -local net = require "luci.model.network".init() -local sys = require "luci.sys" -local ifaces = sys.net:devices() -local m, s, o - -m = Map("dsvpn", translate("DSVPN")) - -s = m:section(TypedSection, "dsvpn", translate("Settings")) -s.anonymous = true -s.addremove = false - -o = s:option(Flag, "enable", translate("Enable")) -o.rmempty = false - -o = s:option(Value, "host", translate("Remote host")) -o.placeholder = "128.128.128.128" -o.default = "128.128.128.128" -o.datatype = "host" -o.rmempty = false - -o = s:option(Value, "port", translate("Remote port")) -o.placeholder = "65011" -o.default = "65011" -o.datatype = "port" - -o = s:option(Value, "key", translate("Key")) -o.password = true -o.rmempty = false - - -o = s:option(Value, "localip", translate("Tunnel local IP")) -o.default = "10.255.251.2" -o.datatype = "host" - -o = s:option(Value, "remoteip", translate("Tunnel remote IP")) -o.default = "10.255.251.1" -o.datatype = "host" - -o = s:option(Value, "dev", translate("Interface name")) -o.placeholder = "tun0" -o.default = "tun0" -o.rmempty = false - -return m diff --git a/luci-app-dsvpn/po/de/dsvpn.po b/luci-app-dsvpn/po/de/dsvpn.po deleted file mode 100644 index 4bea475af..000000000 --- a/luci-app-dsvpn/po/de/dsvpn.po +++ /dev/null @@ -1,50 +0,0 @@ -msgid "" -msgstr "" -"PO-Revision-Date: 2020-10-05 12:39+0000\n" -"Last-Translator: Weblate Admin \n" -"Language-Team: German \n" -"Language: de\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 4.0.4\n" - -#: luci-app-dsvpn/luasrc/controller/dsvpn.lua:4 -#: luci-app-dsvpn/luasrc/controller/dsvpn.lua:5 -#: luci-app-dsvpn/luasrc/controller/dsvpn.lua:6 -#: luci-app-dsvpn/luasrc/model/cbi/dsvpn.lua:6 -msgid "DSVPN" -msgstr "DSVPN" - -#: luci-app-dsvpn/luasrc/model/cbi/dsvpn.lua:12 -msgid "Enable" -msgstr "Aktivieren" - -#: luci-app-dsvpn/luasrc/model/cbi/dsvpn.lua:39 -msgid "Interface name" -msgstr "Name der Verbindung" - -#: luci-app-dsvpn/luasrc/model/cbi/dsvpn.lua:26 -msgid "Key" -msgstr "Schlüssel" - -#: luci-app-dsvpn/luasrc/model/cbi/dsvpn.lua:15 -msgid "Remote host" -msgstr "Gegenstelle (FQDN oder IP-Adresse)" - -#: luci-app-dsvpn/luasrc/model/cbi/dsvpn.lua:21 -msgid "Remote port" -msgstr "Port der Gegenstelle" - -#: luci-app-dsvpn/luasrc/model/cbi/dsvpn.lua:8 -msgid "Settings" -msgstr "Einstellungen" - -#: luci-app-dsvpn/luasrc/model/cbi/dsvpn.lua:31 -msgid "Tunnel local IP" -msgstr "Lokale Tunnel-IP" - -#: luci-app-dsvpn/luasrc/model/cbi/dsvpn.lua:35 -msgid "Tunnel remote IP" -msgstr "Gegenstellen-Tunnel-IP" diff --git a/luci-app-dsvpn/po/fr/dsvpn.po b/luci-app-dsvpn/po/fr/dsvpn.po deleted file mode 100644 index 8f06d0390..000000000 --- a/luci-app-dsvpn/po/fr/dsvpn.po +++ /dev/null @@ -1,53 +0,0 @@ -msgid "" -msgstr "" -"Project-Id-Version: \n" -"POT-Creation-Date: \n" -"PO-Revision-Date: 2020-09-30 08:50+0000\n" -"Last-Translator: Anonymous \n" -"Language-Team: French \n" -"Language: fr\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=2; plural=n > 1;\n" -"X-Generator: Weblate 4.0.4\n" - -#: luci-app-dsvpn/luasrc/controller/dsvpn.lua:4 -#: luci-app-dsvpn/luasrc/controller/dsvpn.lua:5 -#: luci-app-dsvpn/luasrc/controller/dsvpn.lua:6 -#: luci-app-dsvpn/luasrc/model/cbi/dsvpn.lua:6 -msgid "DSVPN" -msgstr "DSVPN" - -#: luci-app-dsvpn/luasrc/model/cbi/dsvpn.lua:12 -msgid "Enable" -msgstr "Activer" - -#: luci-app-dsvpn/luasrc/model/cbi/dsvpn.lua:39 -msgid "Interface name" -msgstr "Nom de l'interface" - -#: luci-app-dsvpn/luasrc/model/cbi/dsvpn.lua:26 -msgid "Key" -msgstr "Clé" - -#: luci-app-dsvpn/luasrc/model/cbi/dsvpn.lua:15 -msgid "Remote host" -msgstr "Nom de l'hôte distant ou adresse IP" - -#: luci-app-dsvpn/luasrc/model/cbi/dsvpn.lua:21 -msgid "Remote port" -msgstr "Port distant" - -#: luci-app-dsvpn/luasrc/model/cbi/dsvpn.lua:8 -msgid "Settings" -msgstr "Paramètres" - -#: luci-app-dsvpn/luasrc/model/cbi/dsvpn.lua:31 -msgid "Tunnel local IP" -msgstr "Adresse IP locale du tunnel" - -#: luci-app-dsvpn/luasrc/model/cbi/dsvpn.lua:35 -msgid "Tunnel remote IP" -msgstr "Adresse IP distance du tunnel" diff --git a/luci-app-dsvpn/po/it/dsvpn.po b/luci-app-dsvpn/po/it/dsvpn.po deleted file mode 100644 index dd2cd86a2..000000000 --- a/luci-app-dsvpn/po/it/dsvpn.po +++ /dev/null @@ -1,50 +0,0 @@ -msgid "" -msgstr "" -"PO-Revision-Date: 2020-09-21 12:51+0000\n" -"Last-Translator: Weblate Admin \n" -"Language-Team: Italian \n" -"Language: it\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 4.0.4\n" - -#: luci-app-dsvpn/luasrc/controller/dsvpn.lua:4 -#: luci-app-dsvpn/luasrc/controller/dsvpn.lua:5 -#: luci-app-dsvpn/luasrc/controller/dsvpn.lua:6 -#: luci-app-dsvpn/luasrc/model/cbi/dsvpn.lua:6 -msgid "DSVPN" -msgstr "DSVPN" - -#: luci-app-dsvpn/luasrc/model/cbi/dsvpn.lua:12 -msgid "Enable" -msgstr "Attivare" - -#: luci-app-dsvpn/luasrc/model/cbi/dsvpn.lua:39 -msgid "Interface name" -msgstr "Nome interfaccia" - -#: luci-app-dsvpn/luasrc/model/cbi/dsvpn.lua:26 -msgid "Key" -msgstr "Key" - -#: luci-app-dsvpn/luasrc/model/cbi/dsvpn.lua:15 -msgid "Remote host" -msgstr "Rimuovi server" - -#: luci-app-dsvpn/luasrc/model/cbi/dsvpn.lua:21 -msgid "Remote port" -msgstr "Porta remota" - -#: luci-app-dsvpn/luasrc/model/cbi/dsvpn.lua:8 -msgid "Settings" -msgstr "Impostazioni" - -#: luci-app-dsvpn/luasrc/model/cbi/dsvpn.lua:31 -msgid "Tunnel local IP" -msgstr "IP locale del tunnel" - -#: luci-app-dsvpn/luasrc/model/cbi/dsvpn.lua:35 -msgid "Tunnel remote IP" -msgstr "IP remoto del tunnel" diff --git a/luci-app-dsvpn/po/oc/dsvpn.po b/luci-app-dsvpn/po/oc/dsvpn.po deleted file mode 100644 index 4a806fe56..000000000 --- a/luci-app-dsvpn/po/oc/dsvpn.po +++ /dev/null @@ -1,50 +0,0 @@ -msgid "" -msgstr "" -"PO-Revision-Date: 2020-08-18 17:37+0000\n" -"Last-Translator: Quentin PAGÈS \n" -"Language-Team: Occitan \n" -"Language: oc\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=2; plural=n > 1;\n" -"X-Generator: Weblate 4.0.4\n" - -#: luci-app-dsvpn/luasrc/controller/dsvpn.lua:4 -#: luci-app-dsvpn/luasrc/controller/dsvpn.lua:5 -#: luci-app-dsvpn/luasrc/controller/dsvpn.lua:6 -#: luci-app-dsvpn/luasrc/model/cbi/dsvpn.lua:6 -msgid "DSVPN" -msgstr "DSVPN" - -#: luci-app-dsvpn/luasrc/model/cbi/dsvpn.lua:12 -msgid "Enable" -msgstr "Activat" - -#: luci-app-dsvpn/luasrc/model/cbi/dsvpn.lua:39 -msgid "Interface name" -msgstr "Nom de l’interfàcia" - -#: luci-app-dsvpn/luasrc/model/cbi/dsvpn.lua:26 -msgid "Key" -msgstr "Clau" - -#: luci-app-dsvpn/luasrc/model/cbi/dsvpn.lua:15 -msgid "Remote host" -msgstr "Nom de l’òste distant o adreça IP" - -#: luci-app-dsvpn/luasrc/model/cbi/dsvpn.lua:21 -msgid "Remote port" -msgstr "Pòrt distant" - -#: luci-app-dsvpn/luasrc/model/cbi/dsvpn.lua:8 -msgid "Settings" -msgstr "Paramètres" - -#: luci-app-dsvpn/luasrc/model/cbi/dsvpn.lua:31 -msgid "Tunnel local IP" -msgstr "Adreça IP locala del tunèl" - -#: luci-app-dsvpn/luasrc/model/cbi/dsvpn.lua:35 -msgid "Tunnel remote IP" -msgstr "Adreça IP distanta del tunèl" diff --git a/luci-app-dsvpn/po/templates/dsvpn.pot b/luci-app-dsvpn/po/templates/dsvpn.pot deleted file mode 100644 index bc26ff694..000000000 --- a/luci-app-dsvpn/po/templates/dsvpn.pot +++ /dev/null @@ -1,41 +0,0 @@ -msgid "" -msgstr "Content-Type: text/plain; charset=UTF-8" - -#: luci-app-dsvpn/luasrc/controller/dsvpn.lua:4 -#: luci-app-dsvpn/luasrc/controller/dsvpn.lua:5 -#: luci-app-dsvpn/luasrc/controller/dsvpn.lua:6 -#: luci-app-dsvpn/luasrc/model/cbi/dsvpn.lua:6 -msgid "DSVPN" -msgstr "" - -#: luci-app-dsvpn/luasrc/model/cbi/dsvpn.lua:12 -msgid "Enable" -msgstr "" - -#: luci-app-dsvpn/luasrc/model/cbi/dsvpn.lua:39 -msgid "Interface name" -msgstr "" - -#: luci-app-dsvpn/luasrc/model/cbi/dsvpn.lua:26 -msgid "Key" -msgstr "" - -#: luci-app-dsvpn/luasrc/model/cbi/dsvpn.lua:15 -msgid "Remote host" -msgstr "" - -#: luci-app-dsvpn/luasrc/model/cbi/dsvpn.lua:21 -msgid "Remote port" -msgstr "" - -#: luci-app-dsvpn/luasrc/model/cbi/dsvpn.lua:8 -msgid "Settings" -msgstr "" - -#: luci-app-dsvpn/luasrc/model/cbi/dsvpn.lua:31 -msgid "Tunnel local IP" -msgstr "" - -#: luci-app-dsvpn/luasrc/model/cbi/dsvpn.lua:35 -msgid "Tunnel remote IP" -msgstr "" diff --git a/luci-app-dsvpn/po/zh_Hans/dsvpn.po b/luci-app-dsvpn/po/zh_Hans/dsvpn.po deleted file mode 100644 index f847c0504..000000000 --- a/luci-app-dsvpn/po/zh_Hans/dsvpn.po +++ /dev/null @@ -1,50 +0,0 @@ -msgid "" -msgstr "" -"PO-Revision-Date: 2020-06-11 16:36+0000\n" -"Last-Translator: antrouter \n" -"Language-Team: Chinese (Simplified) \n" -"Language: zh_Hans\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=1; plural=0;\n" -"X-Generator: Weblate 4.0.4\n" - -#: luci-app-dsvpn/luasrc/controller/dsvpn.lua:4 -#: luci-app-dsvpn/luasrc/controller/dsvpn.lua:5 -#: luci-app-dsvpn/luasrc/controller/dsvpn.lua:6 -#: luci-app-dsvpn/luasrc/model/cbi/dsvpn.lua:6 -msgid "DSVPN" -msgstr "DS虚拟专网" - -#: luci-app-dsvpn/luasrc/model/cbi/dsvpn.lua:12 -msgid "Enable" -msgstr "开启" - -#: luci-app-dsvpn/luasrc/model/cbi/dsvpn.lua:39 -msgid "Interface name" -msgstr "网卡名称" - -#: luci-app-dsvpn/luasrc/model/cbi/dsvpn.lua:26 -msgid "Key" -msgstr "秘钥" - -#: luci-app-dsvpn/luasrc/model/cbi/dsvpn.lua:15 -msgid "Remote host" -msgstr "远程主机" - -#: luci-app-dsvpn/luasrc/model/cbi/dsvpn.lua:21 -msgid "Remote port" -msgstr "远程端口" - -#: luci-app-dsvpn/luasrc/model/cbi/dsvpn.lua:8 -msgid "Settings" -msgstr "设置" - -#: luci-app-dsvpn/luasrc/model/cbi/dsvpn.lua:31 -msgid "Tunnel local IP" -msgstr "隧道本地IP" - -#: luci-app-dsvpn/luasrc/model/cbi/dsvpn.lua:35 -msgid "Tunnel remote IP" -msgstr "隧道远程IP" diff --git a/luci-app-dsvpn/po/zh_Hant/dsvpn.po b/luci-app-dsvpn/po/zh_Hant/dsvpn.po deleted file mode 100644 index 858741a28..000000000 --- a/luci-app-dsvpn/po/zh_Hant/dsvpn.po +++ /dev/null @@ -1,50 +0,0 @@ -msgid "" -msgstr "" -"PO-Revision-Date: 2020-07-09 07:31+0000\n" -"Last-Translator: antrouter \n" -"Language-Team: Chinese (Traditional) \n" -"Language: zh_Hant\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=1; plural=0;\n" -"X-Generator: Weblate 4.0.4\n" - -#: luci-app-dsvpn/luasrc/controller/dsvpn.lua:4 -#: luci-app-dsvpn/luasrc/controller/dsvpn.lua:5 -#: luci-app-dsvpn/luasrc/controller/dsvpn.lua:6 -#: luci-app-dsvpn/luasrc/model/cbi/dsvpn.lua:6 -msgid "DSVPN" -msgstr "DS虛擬專用網" - -#: luci-app-dsvpn/luasrc/model/cbi/dsvpn.lua:12 -msgid "Enable" -msgstr "啟用" - -#: luci-app-dsvpn/luasrc/model/cbi/dsvpn.lua:39 -msgid "Interface name" -msgstr "接口名稱" - -#: luci-app-dsvpn/luasrc/model/cbi/dsvpn.lua:26 -msgid "Key" -msgstr "秘鑰" - -#: luci-app-dsvpn/luasrc/model/cbi/dsvpn.lua:15 -msgid "Remote host" -msgstr "遠程主機" - -#: luci-app-dsvpn/luasrc/model/cbi/dsvpn.lua:21 -msgid "Remote port" -msgstr "遠端埠" - -#: luci-app-dsvpn/luasrc/model/cbi/dsvpn.lua:8 -msgid "Settings" -msgstr "設定" - -#: luci-app-dsvpn/luasrc/model/cbi/dsvpn.lua:31 -msgid "Tunnel local IP" -msgstr "隧道本地IP" - -#: luci-app-dsvpn/luasrc/model/cbi/dsvpn.lua:35 -msgid "Tunnel remote IP" -msgstr "隧道遠程IP" diff --git a/luci-app-dsvpn/root/usr/share/luci/menu.d/luci-app-dsvpn.json b/luci-app-dsvpn/root/usr/share/luci/menu.d/luci-app-dsvpn.json index 257a29fab..49ebec311 100644 --- a/luci-app-dsvpn/root/usr/share/luci/menu.d/luci-app-dsvpn.json +++ b/luci-app-dsvpn/root/usr/share/luci/menu.d/luci-app-dsvpn.json @@ -1,10 +1,10 @@ { "admin/vpn/dsvpn": { "title": "DSVPN", - "order": 10, + "order": 60, "action": { - "type": "cbi", - "path": "dsvpn" + "type": "view", + "path": "services/dsvpn" }, "depends": { "acl": [ "luci-app-dsvpn" ] diff --git a/luci-app-dsvpn/root/usr/share/rpcd/acl.d/luci-app-dsvpn.json b/luci-app-dsvpn/root/usr/share/rpcd/acl.d/luci-app-dsvpn.json index c4c7f00c9..e11c9127c 100644 --- a/luci-app-dsvpn/root/usr/share/rpcd/acl.d/luci-app-dsvpn.json +++ b/luci-app-dsvpn/root/usr/share/rpcd/acl.d/luci-app-dsvpn.json @@ -1,6 +1,6 @@ { "luci-app-dsvpn": { - "description": "Grant UCI access for luci-app-dsvpn", + "description": "Grant access to DSVPN", "read": { "uci": [ "dsvpn" ] }, From 4a825c5650fffe9fddce96c264fefac6152f3cd9 Mon Sep 17 00:00:00 2001 From: "Ycarus (Yannick Chabanois)" Date: Thu, 3 Dec 2020 11:22:39 +0100 Subject: [PATCH 065/117] New interface for mlvpn VPN --- luci-app-mlvpn/Makefile | 6 +- .../resources/view/services/mlvpn.js | 83 +++++++++++++++++++ luci-app-mlvpn/luasrc/controller/mlvpn.lua | 7 -- luci-app-mlvpn/luasrc/model/cbi/mlvpn.lua | 77 ----------------- .../luasrc/view/mlvpn/cbi-select-add.htm | 10 --- luci-app-mlvpn/po/de/mlvpn.po | 59 ------------- luci-app-mlvpn/po/fr/mlvpn.po | 62 -------------- luci-app-mlvpn/po/it/mlvpn.po | 59 ------------- luci-app-mlvpn/po/templates/mlvpn.pot | 50 ----------- luci-app-mlvpn/po/zh_Hans/mlvpn.po | 59 ------------- .../usr/share/luci/menu.d/luci-app-mlvpn.json | 4 +- 11 files changed, 88 insertions(+), 388 deletions(-) create mode 100644 luci-app-mlvpn/htdocs/luci-static/resources/view/services/mlvpn.js delete mode 100644 luci-app-mlvpn/luasrc/controller/mlvpn.lua delete mode 100644 luci-app-mlvpn/luasrc/model/cbi/mlvpn.lua delete mode 100644 luci-app-mlvpn/luasrc/view/mlvpn/cbi-select-add.htm delete mode 100644 luci-app-mlvpn/po/de/mlvpn.po delete mode 100644 luci-app-mlvpn/po/fr/mlvpn.po delete mode 100644 luci-app-mlvpn/po/it/mlvpn.po delete mode 100644 luci-app-mlvpn/po/templates/mlvpn.pot delete mode 100644 luci-app-mlvpn/po/zh_Hans/mlvpn.po diff --git a/luci-app-mlvpn/Makefile b/luci-app-mlvpn/Makefile index 33548c8e9..80d97c856 100644 --- a/luci-app-mlvpn/Makefile +++ b/luci-app-mlvpn/Makefile @@ -1,12 +1,12 @@ # -# Copyright (C) 2018-2019 Ycarus (Yannick Chabanois) +# Copyright (C) 2018-2020 Ycarus (Yannick Chabanois) # # include $(TOPDIR)/rules.mk -LUCI_TITLE:=LuCI Support for MLVPN -LUCI_DEPENDS:=+mlvpn +LUCI_TITLE:=LuCI Interface to Glorytun TCP +LUCI_DEPENDS:=+glorytun PKG_LICENSE:=GPLv3 diff --git a/luci-app-mlvpn/htdocs/luci-static/resources/view/services/mlvpn.js b/luci-app-mlvpn/htdocs/luci-static/resources/view/services/mlvpn.js new file mode 100644 index 000000000..8dcfb422b --- /dev/null +++ b/luci-app-mlvpn/htdocs/luci-static/resources/view/services/mlvpn.js @@ -0,0 +1,83 @@ +'use strict'; +'require rpc'; +'require form'; +'require fs'; +'require uci'; +'require tools.widgets as widgets'; + +var callHostHints; + +return L.view.extend({ + callHostHints: rpc.declare({ + object: 'luci-rpc', + method: 'getHostHints', + expect: { '': {} } + }), + + load: function() { + return this.callHostHints(); + }, + + render: function(hosts) { + var m, s, o; + + m = new form.Map('mlvpn', _('MLVPN')); + + s = m.section(form.GridSection, 'mlvpn', _('Instances')); + s.addremove = true; + s.anonymous = true; + s.nodescriptions = true; + + s.tab('general', _('General Settings')); + s.tab('advanced', _('Advanced Settings')); + + o = s.taboption('general', form.Flag, 'enable', _('Enabled')); + o.default = o.enabled; + + o = s.taboption('general', form.ListValue, 'mode', _('Mode')); + o.value('client',_('Client')); + o.value('server',_('Server')); + o.modalonly = true; + + o = s.taboption('general', form.Value, 'host', _('Host')); + o.rmempty = false; + + o = s.taboption('general', form.Value, 'firstport', _('First Port')); + o.default = "65201" + o.datatype = "port" + o.rmempty = false; + + o = s.taboption('general', form.Value, 'password', _('Password')); + o.rmempty = false; + o.modalonly = true; + + o = s.taboption('general', form.Value, 'interface_name', _('Interface name')); + o.default = "mlvpn0" + o.placeholder = "mlvpn0" + o.rmempty = false; + o.modalonly = true; + + o = s.taboption('advanced', form.Value, 'timeout', _('Timeout (s)')); + o.default = '30'; + o.datatype = "uinteger" + o.rmempty = false; + o.modalonly = true; + + o = s.taboption('advanced', form.Value, 'reorder_buffer_size', _('Reorder buffer size')); + o.default = '128'; + o.datatype = "uinteger" + o.rmempty = false; + o.modalonly = true; + + o = s.taboption('advanced', form.Value, 'loss_tolerance', _('Loss tolerance')); + o.default = '50'; + o.datatype = "uinteger" + o.rmempty = false; + o.modalonly = true; + + o = s.taboption('general',form.Value, 'label', _('Label')); + o.rmempty = true; + + return m.render(); + } +}); diff --git a/luci-app-mlvpn/luasrc/controller/mlvpn.lua b/luci-app-mlvpn/luasrc/controller/mlvpn.lua deleted file mode 100644 index 154222265..000000000 --- a/luci-app-mlvpn/luasrc/controller/mlvpn.lua +++ /dev/null @@ -1,7 +0,0 @@ -module("luci.controller.mlvpn", package.seeall) - -function index() - --entry({"admin", "openmptcprouter", "mlvpn"}, cbi("mlvpn"), _("MLVPN")) - --entry({"admin", "services", "mlvpn"}, cbi("mlvpn"), _("MLVPN")) - entry({"admin", "vpn", "mlvpn"}, cbi("mlvpn"), _("MLVPN")) -end diff --git a/luci-app-mlvpn/luasrc/model/cbi/mlvpn.lua b/luci-app-mlvpn/luasrc/model/cbi/mlvpn.lua deleted file mode 100644 index eaef23d7e..000000000 --- a/luci-app-mlvpn/luasrc/model/cbi/mlvpn.lua +++ /dev/null @@ -1,77 +0,0 @@ -local net = require "luci.model.network".init() -local sys = require "luci.sys" -local ifaces = sys.net:devices() -local m, s, o - -m = Map("mlvpn", translate("MLVPN")) - -s = m:section(TypedSection, "mlvpn", translate("Settings")) -s.anonymous = true -s.addremove = false - -o = s:option(Flag, "enable", translate("Enable")) -o.rmempty = false - -o = s:option(Value, "timeout", translate("Timeout (s)")) -o.placeholder = "30" -o.default = "30" -o.datatype = "uinteger" -o.rmempty = false - -o = s:option(Value, "reorder_buffer_size", translate("Reorder buffer size")) -o.placeholder = "64" -o.default = "64" -o.datatype = "uinteger" -o.rmempty = false - -o = s:option(Value, "loss_tolerance", translate("Loss tolerance")) -o.placeholder = "50" -o.default = "50" -o.datatype = "uinteger" -o.rmempty = false - -o = s:option(Value, "host", translate("Remote host")) -o.placeholder = "128.128.128.128" -o.default = "128.128.128.128" -o.datatype = "host" -o.rmempty = false - -o = s:option(Value, "firstport", translate("First remote port"),translate("Interface will increase port used beginning with this")) -o.default = "65201" -o.datatype = "port" -o.rmempty = false - -o = s:option(Value, "password", translate("Password")) -o.password = true -o.rmempty = false - - -o = s:option(Value, "interface_name", translate("Interface name")) -o.placeholder = "mlvpn0" -o.default = "mlvpn0" -o.rmempty = false - ---o = s:option(Value, "mode", translate("Mode")) ---o:value("client") ---o:value("server") ---o.default = "client" ---o.rmempty = false - - ---s = m:section(TypedSection, "interface", translate("Interfaces")) ---s.template_addremove = "mlvpn/cbi-select-add" ---s.addremove = true ---s.add_select_options = { } ---s.add_select_options[''] = '' ---for _, iface in ipairs(ifaces) do --- if not (iface == "lo" or iface:match("^ifb.*")) then --- s.add_select_options[iface] = iface --- end ---end - ---o = s:option(Value, "port", translate("Remote/Bind port")) ---o.placeholder = "65201" ---o.default = "65201" ---o.datatype = "port" - -return m diff --git a/luci-app-mlvpn/luasrc/view/mlvpn/cbi-select-add.htm b/luci-app-mlvpn/luasrc/view/mlvpn/cbi-select-add.htm deleted file mode 100644 index 97ee647d2..000000000 --- a/luci-app-mlvpn/luasrc/view/mlvpn/cbi-select-add.htm +++ /dev/null @@ -1,10 +0,0 @@ -
- <% if self.invalid_cts then -%>
<% end %> - - - <% if self.invalid_cts then %>
<%:Invalid%>
<% end %> -
diff --git a/luci-app-mlvpn/po/de/mlvpn.po b/luci-app-mlvpn/po/de/mlvpn.po deleted file mode 100644 index f60844ce4..000000000 --- a/luci-app-mlvpn/po/de/mlvpn.po +++ /dev/null @@ -1,59 +0,0 @@ -msgid "" -msgstr "" -"PO-Revision-Date: 2020-10-05 12:39+0000\n" -"Last-Translator: Weblate Admin \n" -"Language-Team: German \n" -"Language: de\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 4.0.4\n" - -msgid "Add" -msgstr "Hinzufügen" - -msgid "Enable" -msgstr "Aktivieren" - -msgid "First remote port" -msgstr "Erster Gegenstellen-Port" - -msgid "Interface name" -msgstr "Name der Verbindung" - -msgid "Interface will increase port used beginning with this" -msgstr "Der Anschluss wird die Pornummern nutzen beginnend mit diesem Wert" - -msgid "Interfaces" -msgstr "Anschlüsse" - -msgid "Invalid" -msgstr "Ungültig" - -msgid "Loss tolerance" -msgstr "Verlust-Toleranz" - -msgid "MLVPN" -msgstr "MLVPN" - -msgid "Mode" -msgstr "Betriebsmodus" - -msgid "Password" -msgstr "Schlüssel" - -msgid "Remote host" -msgstr "Gegenstelle (FQDN oder IP-Adresse)" - -msgid "Remote/Bind port" -msgstr "Portnummer der Gegenstelle" - -msgid "Reorder buffer size" -msgstr "Größe des Sortierpuffers" - -msgid "Settings" -msgstr "Einstellungen" - -msgid "Timeout (s)" -msgstr "Wartezeit (in Sekunden)" diff --git a/luci-app-mlvpn/po/fr/mlvpn.po b/luci-app-mlvpn/po/fr/mlvpn.po deleted file mode 100644 index af2708373..000000000 --- a/luci-app-mlvpn/po/fr/mlvpn.po +++ /dev/null @@ -1,62 +0,0 @@ -msgid "" -msgstr "" -"Project-Id-Version: \n" -"POT-Creation-Date: \n" -"PO-Revision-Date: 2020-10-07 10:57+0000\n" -"Last-Translator: Weblate Admin \n" -"Language-Team: French \n" -"Language: fr\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=2; plural=n > 1;\n" -"X-Generator: Weblate 4.0.4\n" - -msgid "Add" -msgstr "Ajouter" - -msgid "Enable" -msgstr "Activer" - -msgid "First remote port" -msgstr "Premier port distant" - -msgid "Interface name" -msgstr "Nom de l'interface" - -msgid "Interface will increase port used beginning with this" -msgstr "L'interface augmentera le port utilisé à partir de celui ci" - -msgid "Interfaces" -msgstr "Interfaces" - -msgid "Invalid" -msgstr "Invalide" - -msgid "Loss tolerance" -msgstr "Tolérance aux pertes" - -msgid "MLVPN" -msgstr "MLVPN" - -msgid "Mode" -msgstr "Mode" - -msgid "Password" -msgstr "Mot de passe" - -msgid "Remote host" -msgstr "Nom de l'hôte distant ou adresse IP" - -msgid "Remote/Bind port" -msgstr "Port de connexion distant" - -msgid "Reorder buffer size" -msgstr "Taille du tampon de réordonnancement" - -msgid "Settings" -msgstr "Paramètres" - -msgid "Timeout (s)" -msgstr "Délais d'attente (s)" diff --git a/luci-app-mlvpn/po/it/mlvpn.po b/luci-app-mlvpn/po/it/mlvpn.po deleted file mode 100644 index f7c495c5c..000000000 --- a/luci-app-mlvpn/po/it/mlvpn.po +++ /dev/null @@ -1,59 +0,0 @@ -msgid "" -msgstr "" -"PO-Revision-Date: 2020-09-21 12:51+0000\n" -"Last-Translator: Weblate Admin \n" -"Language-Team: Italian \n" -"Language: it\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 4.0.4\n" - -msgid "Add" -msgstr "Aggiungi" - -msgid "Enable" -msgstr "Attivare" - -msgid "First remote port" -msgstr "Prima porta remota" - -msgid "Interface name" -msgstr "Nome interfaccia" - -msgid "Interface will increase port used beginning with this" -msgstr "L'interfaccia aumenterà la porta utilizzata a partire da questa" - -msgid "Interfaces" -msgstr "Interfaccia" - -msgid "Invalid" -msgstr "Non valido" - -msgid "Loss tolerance" -msgstr "Tolleranza alla perdita" - -msgid "MLVPN" -msgstr "MLVPN" - -msgid "Mode" -msgstr "Modo" - -msgid "Password" -msgstr "Password" - -msgid "Remote host" -msgstr "Rimuovi server" - -msgid "Remote/Bind port" -msgstr "Porta remota / Bind" - -msgid "Reorder buffer size" -msgstr "" - -msgid "Settings" -msgstr "Impostazioni" - -msgid "Timeout (s)" -msgstr "" diff --git a/luci-app-mlvpn/po/templates/mlvpn.pot b/luci-app-mlvpn/po/templates/mlvpn.pot deleted file mode 100644 index 0eecd2f65..000000000 --- a/luci-app-mlvpn/po/templates/mlvpn.pot +++ /dev/null @@ -1,50 +0,0 @@ -msgid "" -msgstr "Content-Type: text/plain; charset=UTF-8" - -msgid "Add" -msgstr "" - -msgid "Enable" -msgstr "" - -msgid "First remote port" -msgstr "" - -msgid "Interface name" -msgstr "" - -msgid "Interface will increase port used beginning with this" -msgstr "" - -msgid "Interfaces" -msgstr "" - -msgid "Invalid" -msgstr "" - -msgid "Loss tolerance" -msgstr "" - -msgid "MLVPN" -msgstr "" - -msgid "Mode" -msgstr "" - -msgid "Password" -msgstr "" - -msgid "Remote host" -msgstr "" - -msgid "Remote/Bind port" -msgstr "" - -msgid "Reorder buffer size" -msgstr "" - -msgid "Settings" -msgstr "" - -msgid "Timeout (s)" -msgstr "" diff --git a/luci-app-mlvpn/po/zh_Hans/mlvpn.po b/luci-app-mlvpn/po/zh_Hans/mlvpn.po deleted file mode 100644 index eca37c59d..000000000 --- a/luci-app-mlvpn/po/zh_Hans/mlvpn.po +++ /dev/null @@ -1,59 +0,0 @@ -msgid "" -msgstr "" -"PO-Revision-Date: 2020-06-11 16:36+0000\n" -"Last-Translator: antrouter \n" -"Language-Team: Chinese (Simplified) \n" -"Language: zh_Hans\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=1; plural=0;\n" -"X-Generator: Weblate 4.0.4\n" - -msgid "Add" -msgstr "添加" - -msgid "Enable" -msgstr "开启" - -msgid "First remote port" -msgstr "第一个远程端口" - -msgid "Interface name" -msgstr "网卡名称" - -msgid "Interface will increase port used beginning with this" -msgstr "接口将从此开始增加使用的端口" - -msgid "Interfaces" -msgstr "网卡" - -msgid "Invalid" -msgstr "无效" - -msgid "Loss tolerance" -msgstr "损失容忍" - -msgid "MLVPN" -msgstr "MLVPN设置" - -msgid "Mode" -msgstr "模式" - -msgid "Password" -msgstr "密码" - -msgid "Remote host" -msgstr "远程主机" - -msgid "Remote/Bind port" -msgstr "远程/绑定端口" - -msgid "Reorder buffer size" -msgstr "重新排序缓冲区大小" - -msgid "Settings" -msgstr "设置" - -msgid "Timeout (s)" -msgstr "超时 (秒)" diff --git a/luci-app-mlvpn/root/usr/share/luci/menu.d/luci-app-mlvpn.json b/luci-app-mlvpn/root/usr/share/luci/menu.d/luci-app-mlvpn.json index 085d95305..90afc4494 100644 --- a/luci-app-mlvpn/root/usr/share/luci/menu.d/luci-app-mlvpn.json +++ b/luci-app-mlvpn/root/usr/share/luci/menu.d/luci-app-mlvpn.json @@ -3,8 +3,8 @@ "title": "MLVPN", "order": 30, "action": { - "type": "cbi", - "path": "mlvpn" + "type": "view", + "path": "services/mlvpn" }, "depends": { "acl": [ "luci-app-mlvpn" ] From 9ceaa526a56020e77c5b8fb34e154d1c9c697419 Mon Sep 17 00:00:00 2001 From: "Ycarus (Yannick Chabanois)" Date: Thu, 3 Dec 2020 11:23:34 +0100 Subject: [PATCH 066/117] New interface for Glorytun TCP VPN --- glorytun/glorytun.config | 3 +- glorytun/init | 9 +- luci-app-glorytun-tcp/Makefile | 16 ++ .../resources/view/services/glorytun-tcp.js | 87 +++++++++++ .../root/etc/hotplug.d/iface/30-glorytun | 0 .../root/etc/uci-defaults/1200-luci-glorytun | 0 .../luci/menu.d/luci-app-glorytun-tcp.json | 13 ++ .../rpcd/acl.d/luci-app-glorytun-tcp.json | 4 +- luci-app-glorytun/Makefile | 21 --- .../luasrc/controller/glorytun.lua | 14 -- .../luasrc/model/cbi/glorytun-settings.lua | 83 ---------- .../luasrc/model/cbi/glorytun.lua | 147 ------------------ .../view/glorytun/cbi-select-input-add.htm | 11 -- .../luasrc/view/glorytun/pageswitch.htm | 13 -- luci-app-glorytun/po/de/glorytun.po | 104 ------------- luci-app-glorytun/po/fr/glorytun.po | 104 ------------- luci-app-glorytun/po/it/glorytun.po | 104 ------------- luci-app-glorytun/po/oc/glorytun.po | 103 ------------ luci-app-glorytun/po/templates/glorytun.pot | 93 ----------- luci-app-glorytun/po/zh_Hans/glorytun.po | 102 ------------ luci-app-glorytun/po/zh_Hant/glorytun.po | 102 ------------ .../root/etc/config/glorytun_recipes | 50 ------ .../share/luci/menu.d/luci-app-glorytun.json | 13 -- 23 files changed, 125 insertions(+), 1071 deletions(-) create mode 100644 luci-app-glorytun-tcp/Makefile create mode 100644 luci-app-glorytun-tcp/htdocs/luci-static/resources/view/services/glorytun-tcp.js rename {luci-app-glorytun => luci-app-glorytun-tcp}/root/etc/hotplug.d/iface/30-glorytun (100%) rename {luci-app-glorytun => luci-app-glorytun-tcp}/root/etc/uci-defaults/1200-luci-glorytun (100%) create mode 100644 luci-app-glorytun-tcp/root/usr/share/luci/menu.d/luci-app-glorytun-tcp.json rename luci-app-glorytun/root/usr/share/rpcd/acl.d/luci-app-glorytun.json => luci-app-glorytun-tcp/root/usr/share/rpcd/acl.d/luci-app-glorytun-tcp.json (51%) delete mode 100644 luci-app-glorytun/Makefile delete mode 100644 luci-app-glorytun/luasrc/controller/glorytun.lua delete mode 100644 luci-app-glorytun/luasrc/model/cbi/glorytun-settings.lua delete mode 100644 luci-app-glorytun/luasrc/model/cbi/glorytun.lua delete mode 100644 luci-app-glorytun/luasrc/view/glorytun/cbi-select-input-add.htm delete mode 100644 luci-app-glorytun/luasrc/view/glorytun/pageswitch.htm delete mode 100644 luci-app-glorytun/po/de/glorytun.po delete mode 100644 luci-app-glorytun/po/fr/glorytun.po delete mode 100644 luci-app-glorytun/po/it/glorytun.po delete mode 100644 luci-app-glorytun/po/oc/glorytun.po delete mode 100644 luci-app-glorytun/po/templates/glorytun.pot delete mode 100644 luci-app-glorytun/po/zh_Hans/glorytun.po delete mode 100644 luci-app-glorytun/po/zh_Hant/glorytun.po delete mode 100644 luci-app-glorytun/root/etc/config/glorytun_recipes delete mode 100644 luci-app-glorytun/root/usr/share/luci/menu.d/luci-app-glorytun.json diff --git a/glorytun/glorytun.config b/glorytun/glorytun.config index 9ee6e41e6..33c93f36f 100644 --- a/glorytun/glorytun.config +++ b/glorytun/glorytun.config @@ -10,4 +10,5 @@ config glorytun 'vpn' option mtuauto '1' option localip '10.255.255.2' option remoteip '10.255.255.1' - option multiqueue '1' \ No newline at end of file + option multiqueue '1' + option label 'Default VPN' \ No newline at end of file diff --git a/glorytun/init b/glorytun/init index 5d0233157..f5b868323 100755 --- a/glorytun/init +++ b/glorytun/init @@ -22,17 +22,18 @@ validate_section() { uci_validate_section glorytun glorytun "${1}" \ 'enable:bool:0' \ 'mptcp:bool:0' \ - 'listener:bool:0' \ + 'mode:string' \ 'key:string' \ 'host:host' \ 'port:port' \ 'dev:string' \ + 'timeout:uinteger:10000' \ 'chacha20:bool:0' \ 'proto:string' } start_instance() { - local enable key host port dev listener mptcp proto chacha20 + local enable key host port dev mptcp proto chacha20 mode multiqueue timeout validate_section "${1}" || { _err "validation failed" @@ -71,14 +72,14 @@ start_instance() { ${host:+host "$host"} \ ${dev:+dev "$dev"} - [ "${listener}" = "1" ] && procd_append_param command listener + [ "${mode}" = "listener" ] && procd_append_param command listener [ "${mptcp}" = "1" ] && procd_append_param command mptcp [ "${chacha20}" = "1" ] && procd_append_param command chacha20 [ "${multiqueue}" = "1" ] && procd_append_param command multiqueue procd_append_param command \ retry count -1 const 500000 \ - timeout 10000 \ + timeout ${timeout} \ keepalive count 5 idle 20 interval 2 \ buffer-size 32768 diff --git a/luci-app-glorytun-tcp/Makefile b/luci-app-glorytun-tcp/Makefile new file mode 100644 index 000000000..80d97c856 --- /dev/null +++ b/luci-app-glorytun-tcp/Makefile @@ -0,0 +1,16 @@ +# +# Copyright (C) 2018-2020 Ycarus (Yannick Chabanois) +# +# + +include $(TOPDIR)/rules.mk + +LUCI_TITLE:=LuCI Interface to Glorytun TCP +LUCI_DEPENDS:=+glorytun + +PKG_LICENSE:=GPLv3 + +#include ../luci/luci.mk +include $(TOPDIR)/feeds/luci/luci.mk + +# call BuildPackage - OpenWrt buildroot signature diff --git a/luci-app-glorytun-tcp/htdocs/luci-static/resources/view/services/glorytun-tcp.js b/luci-app-glorytun-tcp/htdocs/luci-static/resources/view/services/glorytun-tcp.js new file mode 100644 index 000000000..e4045f267 --- /dev/null +++ b/luci-app-glorytun-tcp/htdocs/luci-static/resources/view/services/glorytun-tcp.js @@ -0,0 +1,87 @@ +'use strict'; +'require rpc'; +'require form'; +'require fs'; +'require uci'; +'require tools.widgets as widgets'; + +var callHostHints; + +return L.view.extend({ + callHostHints: rpc.declare({ + object: 'luci-rpc', + method: 'getHostHints', + expect: { '': {} } + }), + + load: function() { + return this.callHostHints(); + }, + + render: function(hosts) { + var m, s, o; + + m = new form.Map('glorytun', _('Glorytun TCP')); + + s = m.section(form.GridSection, 'glorytun', _('Instances')); + s.addremove = true; + s.anonymous = true; + s.nodescriptions = true; + + s.tab('general', _('General Settings')); + s.tab('advanced', _('Advanced Settings')); + + o = s.taboption('general', form.Flag, 'enable', _('Enabled')); + o.default = o.enabled; + + o = s.taboption('general', form.ListValue, 'mode', _('Mode')); + o.value('',_('Client')); + o.value('listener',_('Server')); + o.modalonly = true; + + o = s.taboption('general', form.Value, 'host', _('Host')); + o.rmempty = false; + + o = s.taboption('general', form.Value, 'port', _('Port')); + o.rmempty = false; + + o = s.taboption('general', form.Value, 'key', _('Key')); + o.rmempty = false; + o.modalonly = true; + + o = s.taboption('general', form.Value, 'dev', _('Interface name')); + o.rmempty = false; + o.modalonly = true; + + o = s.taboption('general', form.Value, 'localip', _('Local IP')); + o.datatype = 'or(ip4addr,ip6addr)'; + o.rmempty = false; + + o = s.taboption('general', form.Value, 'remoteip', _('Remote IP')); + o.datatype = 'or(ip4addr,ip6addr)'; + o.rmempty = false; + + o = s.taboption('advanced', form.Flag, 'mptcp', _('MPTCP')); + o.default = o.enabled; + o.modalonly = true; + + o = s.taboption('advanced', form.Flag, 'chacha20', _('chacha'), _('Force fallback cipher')); + o.default = o.enabled; + o.modalonly = true; + + o = s.taboption('advanced', form.Value, 'timeout', _('Timeout')); + o.default = '10000'; + o.rmempty = false; + o.modalonly = true; + + o = s.taboption('advanced', form.Flag, 'multiqueue', _('Multiqueue')); + o.default = o.enabled; + o.rmempty = false; + o.modalonly = true; + + o = s.taboption('general',form.Value, 'label', _('Label')); + o.rmempty = true; + + return m.render(); + } +}); diff --git a/luci-app-glorytun/root/etc/hotplug.d/iface/30-glorytun b/luci-app-glorytun-tcp/root/etc/hotplug.d/iface/30-glorytun similarity index 100% rename from luci-app-glorytun/root/etc/hotplug.d/iface/30-glorytun rename to luci-app-glorytun-tcp/root/etc/hotplug.d/iface/30-glorytun diff --git a/luci-app-glorytun/root/etc/uci-defaults/1200-luci-glorytun b/luci-app-glorytun-tcp/root/etc/uci-defaults/1200-luci-glorytun similarity index 100% rename from luci-app-glorytun/root/etc/uci-defaults/1200-luci-glorytun rename to luci-app-glorytun-tcp/root/etc/uci-defaults/1200-luci-glorytun diff --git a/luci-app-glorytun-tcp/root/usr/share/luci/menu.d/luci-app-glorytun-tcp.json b/luci-app-glorytun-tcp/root/usr/share/luci/menu.d/luci-app-glorytun-tcp.json new file mode 100644 index 000000000..03e7dcf7a --- /dev/null +++ b/luci-app-glorytun-tcp/root/usr/share/luci/menu.d/luci-app-glorytun-tcp.json @@ -0,0 +1,13 @@ +{ + "admin/vpn/glorytun-tcp": { + "title": "Glorytun TCP", + "order": 60, + "action": { + "type": "view", + "path": "services/glorytun-tcp" + }, + "depends": { + "acl": [ "luci-app-glorytun-tcp" ] + } + } +} diff --git a/luci-app-glorytun/root/usr/share/rpcd/acl.d/luci-app-glorytun.json b/luci-app-glorytun-tcp/root/usr/share/rpcd/acl.d/luci-app-glorytun-tcp.json similarity index 51% rename from luci-app-glorytun/root/usr/share/rpcd/acl.d/luci-app-glorytun.json rename to luci-app-glorytun-tcp/root/usr/share/rpcd/acl.d/luci-app-glorytun-tcp.json index 63a49918f..f4f288835 100644 --- a/luci-app-glorytun/root/usr/share/rpcd/acl.d/luci-app-glorytun.json +++ b/luci-app-glorytun-tcp/root/usr/share/rpcd/acl.d/luci-app-glorytun-tcp.json @@ -1,6 +1,6 @@ { - "luci-app-glorytun": { - "description": "Grant UCI access for luci-app-glorytun", + "luci-app-glorytun-tcp": { + "description": "Grant access to glorytun TCP", "read": { "uci": [ "glorytun" ] }, diff --git a/luci-app-glorytun/Makefile b/luci-app-glorytun/Makefile deleted file mode 100644 index b582773b2..000000000 --- a/luci-app-glorytun/Makefile +++ /dev/null @@ -1,21 +0,0 @@ -# -# Copyright (C) 2008-2014 The LuCI Team -# Copyright (C) 2017-2019 Ycarus (Yannick Chabanois) -# -# This is based on OpenVPN LuCI Support. -# This is free software, licensed under the Apache License, Version 2.0 . -# - -include $(TOPDIR)/rules.mk - -LUCI_TITLE:=LuCI Support for Glorytun -LUCI_DEPENDS:=+glorytun +glorytun-udp -LUCI_PKGARCH:=all -PKG_LICENSE:=GPLv2 - -PKG_MAINTAINER:=Ycarus (Yannick Chabanois) - -#include ../luci/luci.mk -include $(TOPDIR)/feeds/luci/luci.mk - -# call BuildPackage - OpenWrt buildroot signature diff --git a/luci-app-glorytun/luasrc/controller/glorytun.lua b/luci-app-glorytun/luasrc/controller/glorytun.lua deleted file mode 100644 index c9917bb74..000000000 --- a/luci-app-glorytun/luasrc/controller/glorytun.lua +++ /dev/null @@ -1,14 +0,0 @@ --- Copyright 2018 - 2019 Ycarus (Yannick Chabanois) --- Licensed to the public under the Apache License 2.0. - -module("luci.controller.glorytun", package.seeall) - -function index() - if not nixio.fs.access("/etc/config/glorytun") then - return - end - --entry({"admin", "services", "glorytun"}, cbi("glorytun"), _("Glorytun") ) - --entry({"admin", "services", "glorytun", "settings"}, cbi("glorytun-settings"), nil ).leaf = true - entry({"admin", "vpn", "glorytun"}, cbi("glorytun"), _("Glorytun") ) - entry({"admin", "vpn", "glorytun", "settings"}, cbi("glorytun-settings"), nil ).leaf = true -end diff --git a/luci-app-glorytun/luasrc/model/cbi/glorytun-settings.lua b/luci-app-glorytun/luasrc/model/cbi/glorytun-settings.lua deleted file mode 100644 index aab2f460c..000000000 --- a/luci-app-glorytun/luasrc/model/cbi/glorytun-settings.lua +++ /dev/null @@ -1,83 +0,0 @@ --- Copyright 2018 Ycarus (Yannick Chabanois) --- Copyright 2008 Steven Barth --- Licensed to the public under the Apache License 2.0. - -require("luci.ip") -require("luci.model.uci") - - -local basicParams = { - -- - -- Widget, Name, Default(s), Description - -- - - { Flag,"enable",0, translate("Enable") }, - { Value,"port",65001, translate("TCP port # for both local and remote") }, - { Value,"dev","tun0", translate("Interface name") }, - { Value,"host","vpnserver.example.org", translate("Remote host name or ip address") }, - { Value,"localip","192.168.99.2", translate("Local tunnel ip address") }, - { Value,"remoteip","192.168.99.1", translate("Remote tunnel ip address") }, - { Value,"key","secretkey", translate("The secret key") }, - { ListValue,"proto",{ "tcp", "udp" }, translate("Protocol") }, - { Flag,"listener",0, translate("Server mode") }, - - { Value,"bind","", translate("Bind address") }, - --{ Value,"bind-backup","", translate("Bind backup") }, - { Value,"bindport",65002, translate("Bind port") }, - { Value,"mtu",1500, translate("MTU") }, - { Flag,"mtuauto",0, translate("MTU auto") }, - - { Flag,"mptcp",0, translate("MPTCP") }, - { Flag,"chacha20",0, translate("Use ChaCha20 stream cipher") } -} - - -local m = Map("glorytun") -local p = m:section( SimpleSection ) - -p.template = "glorytun/pageswitch" -p.mode = "settings" -p.instance = arg[1] - - -local s = m:section( NamedSection, arg[1], "glorytun" ) - -for _, option in ipairs(basicParams) do - local o = s:option( - option[1], option[2], - option[2], option[4] - ) - - o.optional = true - - if option[1] == DummyValue then - o.value = option[3] - else - if option[1] == DynamicList then - function o.cfgvalue(...) - local val = AbstractValue.cfgvalue(...) - return ( val and type(val) ~= "table" ) and { val } or val - end - end - - if type(option[3]) == "table" then - if o.optional then o:value("", "-- remove --") end - for _, v in ipairs(option[3]) do - v = tostring(v) - o:value(v) - end - o.default = tostring(option[3][1]) - else - o.default = tostring(option[3]) - end - end - - for i=5,#option do - if type(option[i]) == "table" then - o:depends(option[i]) - end - end -end - -return m - diff --git a/luci-app-glorytun/luasrc/model/cbi/glorytun.lua b/luci-app-glorytun/luasrc/model/cbi/glorytun.lua deleted file mode 100644 index 1fb1b829e..000000000 --- a/luci-app-glorytun/luasrc/model/cbi/glorytun.lua +++ /dev/null @@ -1,147 +0,0 @@ --- Copyright 2018 Ycarus (Yannick Chabanois) --- Copyright 2008 Steven Barth --- Licensed to the public under the Apache License 2.0. - -local fs = require "nixio.fs" -local sys = require "luci.sys" -local uci = require "luci.model.uci".cursor() -local testfullps = luci.sys.exec("ps --help 2>&1 | grep BusyBox") --check which ps do we have -local psstring = (string.len(testfullps)>0) and "ps w" or "ps axfw" --set command we use to get pid - -local m = Map("glorytun", translate("Glorytun")) -local s = m:section( TypedSection, "glorytun", translate("Glorytun instances"), translate("Below is a list of configured Glorytun instances and their current state") ) -s.template = "cbi/tblsection" -s.template_addremove = "glorytun/cbi-select-input-add" -s.addremove = true -s.add_select_options = { } -s.add_select_options[''] = '' -s.extedit = luci.dispatcher.build_url( - "admin", "vpn", "glorytun", "settings", "%s" -) - -uci:load("glorytun_recipes") -uci:foreach( "glorytun_recipes", "glorytun_recipe", - function(section) - s.add_select_options[section['.name']] = - section['_description'] or section['.name'] - end -) - -function s.getPID(section) -- Universal function which returns valid pid # or nil - local pid = sys.exec("%s | grep -w %s | grep glorytun | grep -v grep | awk '{print $1}'" % { psstring,section} ) - if pid and #pid > 0 and tonumber(pid) ~= nil then - return tonumber(pid) - else - return nil - end -end - -function s.parse(self, section) - local recipe = luci.http.formvalue( - luci.cbi.CREATE_PREFIX .. self.config .. "." .. - self.sectiontype .. ".select" - ) - - if recipe and not s.add_select_options[recipe] then - self.invalid_cts = true - else - TypedSection.parse( self, section ) - end -end - -function s.create(self, name) - local recipe = luci.http.formvalue( - luci.cbi.CREATE_PREFIX .. self.config .. "." .. - self.sectiontype .. ".select" - ) - name = luci.http.formvalue( - luci.cbi.CREATE_PREFIX .. self.config .. "." .. - self.sectiontype .. ".text" - ) - if #name > 3 and not name:match("[^a-zA-Z0-9_]") then - --uci:section( - -- "glorytun", "glorytun", name, - -- uci:get_all( "glorytun_recipes", recipe ) - --) - local recipe_data = uci:get_all( "glorytun_recipes", recipe ) - uci:set("glorytun", name,"glorytun") - local k, v - for k, v in pairs(recipe_data) do - uci:set("glorytun", name, k,v) - end - - uci:delete("glorytun", name, "_role") - uci:delete("glorytun", name, "_description") - uci:commit("glorytun") - uci:save("glorytun") - - luci.http.redirect( self.extedit:format(name) ) - elseif #name > 0 then - self.invalid_cts = true - end - - return 0 -end - - -s:option( Flag, "enable", translate("Enabled") ) - -local active = s:option( DummyValue, "_active", translate("Started") ) -function active.cfgvalue(self, section) - local pid = s.getPID(section) - if pid ~= nil then - return (sys.process.signal(pid, 0)) - and translatef("yes (%i)", pid) - or translate("no") - end - return translate("no") -end - -local updown = s:option( Button, "_updown", translate("Start/Stop") ) -updown._state = false -updown.redirect = luci.dispatcher.build_url( - "admin", "vpn", "glorytun" -) -function updown.cbid(self, section) - local pid = s.getPID(section) - self._state = pid ~= nil and sys.process.signal(pid, 0) - self.option = self._state and "stop" or "start" - return AbstractValue.cbid(self, section) -end -function updown.cfgvalue(self, section) - self.title = self._state and "stop" or "start" - self.inputstyle = self._state and "reset" or "reload" -end - -local port = s:option( DummyValue, "port", translate("Port") ) -function port.cfgvalue(self, section) - local val = AbstractValue.cfgvalue(self, section) - return val or "65001" -end -local dev = s:option( DummyValue, "dev", translate("Interface") ) -function dev.cfgvalue(self, section) - local val = AbstractValue.cfgvalue(self, section) - return val or "tun" -end -local proto = s:option( DummyValue, "proto", translate("Protocol") ) -function proto.cfgvalue(self, section) - local val = AbstractValue.cfgvalue(self, section) - return val or "tcp" -end - -function updown.write(self, section, value) - if self.option == "stop" then - local pid = s.getPID(section) - if pid ~= nil then - sys.process.signal(pid,15) - end - else - local type = proto.cfgvalue(self,section) - luci.sys.call("/etc/init.d/glorytun-udp start %s" % section) - luci.sys.call("/etc/init.d/glorytun start %s" % section) - end - luci.http.redirect( self.redirect ) -end - - -return m diff --git a/luci-app-glorytun/luasrc/view/glorytun/cbi-select-input-add.htm b/luci-app-glorytun/luasrc/view/glorytun/cbi-select-input-add.htm deleted file mode 100644 index 898252325..000000000 --- a/luci-app-glorytun/luasrc/view/glorytun/cbi-select-input-add.htm +++ /dev/null @@ -1,11 +0,0 @@ -
- <% if self.invalid_cts then -%>
<% end %> - - - - <% if self.invalid_cts then %>
<%:Invalid%>
<% end %> -
diff --git a/luci-app-glorytun/luasrc/view/glorytun/pageswitch.htm b/luci-app-glorytun/luasrc/view/glorytun/pageswitch.htm deleted file mode 100644 index 652494e0c..000000000 --- a/luci-app-glorytun/luasrc/view/glorytun/pageswitch.htm +++ /dev/null @@ -1,13 +0,0 @@ -<%# - Copyright 2018 Ycarus (Yannick Chabanois) - Copyright 2008 Steven Barth - Copyright 2008 Jo-Philipp Wich - Licensed to the public under the Apache License 2.0. --%> - -
- - <%:Overview%> » - <%=luci.i18n.translatef("Instance \"%s\"", self.instance)%> - -
diff --git a/luci-app-glorytun/po/de/glorytun.po b/luci-app-glorytun/po/de/glorytun.po deleted file mode 100644 index f3f01f7fd..000000000 --- a/luci-app-glorytun/po/de/glorytun.po +++ /dev/null @@ -1,104 +0,0 @@ -msgid "" -msgstr "" -"PO-Revision-Date: 2020-10-05 12:39+0000\n" -"Last-Translator: Anonymous \n" -"Language-Team: German \n" -"Language: de\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 4.0.4\n" - -msgid "Add" -msgstr "Hinzufügen" - -msgid "" -"Below is a list of configured Glorytun instances and their current state" -msgstr "" -"Nachfolgend eine Liste der konfigurierten Glorytun-Instanzen und ihre " -"aktuelle Status." - -msgid "Bind address" -msgstr "Bindungsadresse" - -msgid "Bind backup" -msgstr "Alternative Bindungsadresse" - -msgid "Bind port" -msgstr "Verbindungs-Port" - -msgid "Enable" -msgstr "Aktivieren" - -msgid "Enabled" -msgstr "Aktiv" - -msgid "Glorytun" -msgstr "Glorytun" - -msgid "Glorytun instances" -msgstr "Glorytun-Instanzen" - -msgid "Instance \"%s\"" -msgstr "Instanz '%s'" - -msgid "Interface" -msgstr "Schnittstelle" - -msgid "Interface name" -msgstr "Name der Verbindung" - -msgid "Invalid" -msgstr "Ungültig" - -msgid "Local tunnel ip address" -msgstr "IP-Adresse des lokalen Tunnels" - -msgid "MPTCP" -msgstr "MPTCP" - -msgid "MTU" -msgstr "MTU" - -msgid "MTU auto" -msgstr "automatische MTU" - -msgid "Overview" -msgstr "Übersicht" - -msgid "Port" -msgstr "Port" - -msgid "Protocol" -msgstr "Protokoll" - -msgid "Remote host name or ip address" -msgstr "FQDN oder IP-Adresse der Gegenstelle" - -msgid "Remote tunnel ip address" -msgstr "Tunnel-IP-Adresse der Gegenstelle" - -msgid "Server mode" -msgstr "Server-Modus" - -msgid "Start/Stop" -msgstr "Start/Stop" - -msgid "Started" -msgstr "gestartet" - -msgid "TCP port # for both local and remote" -msgstr "TCP-Port Nummer lokal und gegenüber" - -msgid "The secret key" -msgstr "geheimer Schlüssel" - -msgid "Use ChaCha20 stream cipher" -msgstr "Stromverschlüsselung 'ChaCha20' nutzen" - -msgid "no" -msgstr "nein" - -msgid "yes (%i)" -msgstr "ja (%i)" diff --git a/luci-app-glorytun/po/fr/glorytun.po b/luci-app-glorytun/po/fr/glorytun.po deleted file mode 100644 index 7b6b678ee..000000000 --- a/luci-app-glorytun/po/fr/glorytun.po +++ /dev/null @@ -1,104 +0,0 @@ -msgid "" -msgstr "" -"Project-Id-Version: \n" -"POT-Creation-Date: \n" -"PO-Revision-Date: 2020-10-07 10:57+0000\n" -"Last-Translator: Weblate Admin \n" -"Language-Team: French \n" -"Language: fr\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=2; plural=n > 1;\n" -"X-Generator: Weblate 4.0.4\n" - -msgid "Add" -msgstr "Ajouter" - -msgid "Below is a list of configured Glorytun instances and their current state" -msgstr "Ci-dessous une liste des instances Glorytun configurées et leur état actuel" - -msgid "Bind address" -msgstr "Adresse mappée" - -msgid "Bind backup" -msgstr "Lier la sauvegarde" - -msgid "Bind port" -msgstr "Port de connexion" - -msgid "Enable" -msgstr "Activer" - -msgid "Enabled" -msgstr "Activer" - -msgid "Glorytun" -msgstr "Glorytun" - -msgid "Glorytun instances" -msgstr "Instances de Glorytun" - -msgid "Instance \"%s\"" -msgstr "Instance \"%s\"" - -msgid "Interface" -msgstr "Interface" - -msgid "Interface name" -msgstr "Nom de l'interface" - -msgid "Invalid" -msgstr "Invalide" - -msgid "Local tunnel ip address" -msgstr "Adresse IP locale du tunnel" - -msgid "MPTCP" -msgstr "MPTCP" - -msgid "MTU" -msgstr "MTU" - -msgid "MTU auto" -msgstr "MTU auto" - -msgid "Overview" -msgstr "Aperçu" - -msgid "Port" -msgstr "Port" - -msgid "Protocol" -msgstr "Protocole" - -msgid "Remote host name or ip address" -msgstr "Nom de l'hôte distant ou adresse IP" - -msgid "Remote tunnel ip address" -msgstr "Adresse IP distance du tunnel" - -msgid "Server mode" -msgstr "Mode serveur" - -msgid "Start/Stop" -msgstr "Marche/Arrêt" - -msgid "Started" -msgstr "Démarré" - -msgid "TCP port # for both local and remote" -msgstr "Port TCP local et distant" - -msgid "The secret key" -msgstr "La clef secréte" - -msgid "Use ChaCha20 stream cipher" -msgstr "Utiliser le chiffrement ChaCha20" - -msgid "no" -msgstr "non" - -msgid "yes (%i)" -msgstr "oui (%i)" diff --git a/luci-app-glorytun/po/it/glorytun.po b/luci-app-glorytun/po/it/glorytun.po deleted file mode 100644 index 96ae2b091..000000000 --- a/luci-app-glorytun/po/it/glorytun.po +++ /dev/null @@ -1,104 +0,0 @@ -msgid "" -msgstr "" -"PO-Revision-Date: 2020-09-21 12:51+0000\n" -"Last-Translator: Weblate Admin \n" -"Language-Team: Italian \n" -"Language: it\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 4.0.4\n" - -msgid "Add" -msgstr "Aggiungi" - -msgid "" -"Below is a list of configured Glorytun instances and their current state" -msgstr "" -"Di seguito è riportato un elenco di istanze Glorytun configurate e il loro " -"stato corrente" - -msgid "Bind address" -msgstr "Associa indirizzo" - -msgid "Bind backup" -msgstr "Bind backup" - -msgid "Bind port" -msgstr "Bind port" - -msgid "Enable" -msgstr "Attivare" - -msgid "Enabled" -msgstr "Abilitato" - -msgid "Glorytun" -msgstr "Glorytun" - -msgid "Glorytun instances" -msgstr "Istanze di Glorytun" - -msgid "Instance \"%s\"" -msgstr "Istanza \"%s\"" - -msgid "Interface" -msgstr "Interfaccia" - -msgid "Interface name" -msgstr "Nome interfaccia" - -msgid "Invalid" -msgstr "Non valido" - -msgid "Local tunnel ip address" -msgstr "Indirizzo IP del tunnel locale" - -msgid "MPTCP" -msgstr "MPTCP" - -msgid "MTU" -msgstr "MTU" - -msgid "MTU auto" -msgstr "MTU auto" - -msgid "Overview" -msgstr "Panoramica" - -msgid "Port" -msgstr "Porta" - -msgid "Protocol" -msgstr "Protocollo" - -msgid "Remote host name or ip address" -msgstr "Nome host remoto o indirizzo IP" - -msgid "Remote tunnel ip address" -msgstr "Indirizzo IP del tunnel remoto" - -msgid "Server mode" -msgstr "Modalità server" - -msgid "Start/Stop" -msgstr "Marcia/arresto" - -msgid "Started" -msgstr "Iniziato" - -msgid "TCP port # for both local and remote" -msgstr "Porta TCP # sia per locale che per remoto" - -msgid "The secret key" -msgstr "Chiave segreta" - -msgid "Use ChaCha20 stream cipher" -msgstr "Usa il cifrario a flusso ChaCha20" - -msgid "no" -msgstr "no" - -msgid "yes (%i)" -msgstr "Sì (%i)" diff --git a/luci-app-glorytun/po/oc/glorytun.po b/luci-app-glorytun/po/oc/glorytun.po deleted file mode 100644 index be34c778d..000000000 --- a/luci-app-glorytun/po/oc/glorytun.po +++ /dev/null @@ -1,103 +0,0 @@ -msgid "" -msgstr "" -"PO-Revision-Date: 2020-10-13 07:30+0000\n" -"Last-Translator: Quentin PAGÈS \n" -"Language-Team: Occitan \n" -"Language: oc\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=2; plural=n > 1;\n" -"X-Generator: Weblate 4.0.4\n" - -msgid "Add" -msgstr "Ajustar" - -msgid "" -"Below is a list of configured Glorytun instances and their current state" -msgstr "" -"Çai-jos una lista de las instàncias Glorytun configuradas e lor estat actual" - -msgid "Bind address" -msgstr "Adreça mapada" - -msgid "Bind backup" -msgstr "Associar la salvagarda" - -msgid "Bind port" -msgstr "Pòrt de connexion" - -msgid "Enable" -msgstr "Activat" - -msgid "Enabled" -msgstr "Activat" - -msgid "Glorytun" -msgstr "Glorytun" - -msgid "Glorytun instances" -msgstr "Instàncias Glorytun" - -msgid "Instance \"%s\"" -msgstr "Instància « %s »" - -msgid "Interface" -msgstr "Interfàcia" - -msgid "Interface name" -msgstr "Nom de l’interfàcia" - -msgid "Invalid" -msgstr "Invalid" - -msgid "Local tunnel ip address" -msgstr "Adreça IP locala del tunèl" - -msgid "MPTCP" -msgstr "MPTCP" - -msgid "MTU" -msgstr "MTU" - -msgid "MTU auto" -msgstr "MTU auto" - -msgid "Overview" -msgstr "Apercebut" - -msgid "Port" -msgstr "Pòrt" - -msgid "Protocol" -msgstr "Protocòl" - -msgid "Remote host name or ip address" -msgstr "Nom de l’òste alonhat o adreça IP" - -msgid "Remote tunnel ip address" -msgstr "Adreça IP alonhada del tunèl" - -msgid "Server mode" -msgstr "Mòde servidor" - -msgid "Start/Stop" -msgstr "Aviar/Arrestar" - -msgid "Started" -msgstr "Aviat" - -msgid "TCP port # for both local and remote" -msgstr "Pòrt TCP local e alonhat" - -msgid "The secret key" -msgstr "La clau secrèta" - -msgid "Use ChaCha20 stream cipher" -msgstr "Utilizar lo chiframent ChaCha20" - -msgid "no" -msgstr "non" - -msgid "yes (%i)" -msgstr "òc (%i)" diff --git a/luci-app-glorytun/po/templates/glorytun.pot b/luci-app-glorytun/po/templates/glorytun.pot deleted file mode 100644 index 9c862bb47..000000000 --- a/luci-app-glorytun/po/templates/glorytun.pot +++ /dev/null @@ -1,93 +0,0 @@ -msgid "" -msgstr "Content-Type: text/plain; charset=UTF-8" - -msgid "Add" -msgstr "" - -msgid "" -"Below is a list of configured Glorytun instances and their current state" -msgstr "" - -msgid "Bind address" -msgstr "" - -msgid "Bind backup" -msgstr "" - -msgid "Bind port" -msgstr "" - -msgid "Enable" -msgstr "" - -msgid "Enabled" -msgstr "" - -msgid "Glorytun" -msgstr "" - -msgid "Glorytun instances" -msgstr "" - -msgid "Instance \"%s\"" -msgstr "" - -msgid "Interface" -msgstr "" - -msgid "Interface name" -msgstr "" - -msgid "Invalid" -msgstr "" - -msgid "Local tunnel ip address" -msgstr "" - -msgid "MPTCP" -msgstr "" - -msgid "MTU" -msgstr "" - -msgid "MTU auto" -msgstr "" - -msgid "Overview" -msgstr "" - -msgid "Port" -msgstr "" - -msgid "Protocol" -msgstr "" - -msgid "Remote host name or ip address" -msgstr "" - -msgid "Remote tunnel ip address" -msgstr "" - -msgid "Server mode" -msgstr "" - -msgid "Start/Stop" -msgstr "" - -msgid "Started" -msgstr "" - -msgid "TCP port # for both local and remote" -msgstr "" - -msgid "The secret key" -msgstr "" - -msgid "Use ChaCha20 stream cipher" -msgstr "" - -msgid "no" -msgstr "" - -msgid "yes (%i)" -msgstr "" diff --git a/luci-app-glorytun/po/zh_Hans/glorytun.po b/luci-app-glorytun/po/zh_Hans/glorytun.po deleted file mode 100644 index 051d88490..000000000 --- a/luci-app-glorytun/po/zh_Hans/glorytun.po +++ /dev/null @@ -1,102 +0,0 @@ -msgid "" -msgstr "" -"PO-Revision-Date: 2020-06-27 17:26+0000\n" -"Last-Translator: antrouter \n" -"Language-Team: Chinese (Simplified) \n" -"Language: zh_Hans\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=1; plural=0;\n" -"X-Generator: Weblate 4.0.4\n" - -msgid "Add" -msgstr "添加" - -msgid "" -"Below is a list of configured Glorytun instances and their current state" -msgstr "以下是已配置的Glorytun实例及其当前状态的列表" - -msgid "Bind address" -msgstr "绑定地址" - -msgid "Bind backup" -msgstr "绑定备份" - -msgid "Bind port" -msgstr "绑定端口" - -msgid "Enable" -msgstr "开启" - -msgid "Enabled" -msgstr "开启" - -msgid "Glorytun" -msgstr "Glorytun(隧道)" - -msgid "Glorytun instances" -msgstr "Glorytun实例" - -msgid "Instance \"%s\"" -msgstr "实例\"%s\"" - -msgid "Interface" -msgstr "接口" - -msgid "Interface name" -msgstr "网卡名称" - -msgid "Invalid" -msgstr "无效" - -msgid "Local tunnel ip address" -msgstr "本地隧道IP地址" - -msgid "MPTCP" -msgstr "MPTCP" - -msgid "MTU" -msgstr "MTU" - -msgid "MTU auto" -msgstr "自动MTU" - -msgid "Overview" -msgstr "概况" - -msgid "Port" -msgstr "端口" - -msgid "Protocol" -msgstr "协议" - -msgid "Remote host name or ip address" -msgstr "远程主机名或IP地址" - -msgid "Remote tunnel ip address" -msgstr "远程隧道IP地址" - -msgid "Server mode" -msgstr "服务器模式" - -msgid "Start/Stop" -msgstr "开始/停止" - -msgid "Started" -msgstr "开始了" - -msgid "TCP port # for both local and remote" -msgstr "本地和远程的TCP端口号" - -msgid "The secret key" -msgstr "秘钥" - -msgid "Use ChaCha20 stream cipher" -msgstr "使用ChaCha20流密码" - -msgid "no" -msgstr "不" - -msgid "yes (%i)" -msgstr "是(%i)" diff --git a/luci-app-glorytun/po/zh_Hant/glorytun.po b/luci-app-glorytun/po/zh_Hant/glorytun.po deleted file mode 100644 index 4a77f6410..000000000 --- a/luci-app-glorytun/po/zh_Hant/glorytun.po +++ /dev/null @@ -1,102 +0,0 @@ -msgid "" -msgstr "" -"PO-Revision-Date: 2020-07-09 07:31+0000\n" -"Last-Translator: antrouter \n" -"Language-Team: Chinese (Traditional) \n" -"Language: zh_Hant\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=1; plural=0;\n" -"X-Generator: Weblate 4.0.4\n" - -msgid "Add" -msgstr "添加" - -msgid "" -"Below is a list of configured Glorytun instances and their current state" -msgstr "以下是已配置的Glorytun實例及其當前狀態的列表" - -msgid "Bind address" -msgstr "綁定地址" - -msgid "Bind backup" -msgstr "綁定地址" - -msgid "Bind port" -msgstr "綁定端口" - -msgid "Enable" -msgstr "啟用" - -msgid "Enabled" -msgstr "啟用" - -msgid "Glorytun" -msgstr "Glorytun隧道" - -msgid "Glorytun instances" -msgstr "Glorytun實例" - -msgid "Instance \"%s\"" -msgstr "實例\"%s\"" - -msgid "Interface" -msgstr "接口" - -msgid "Interface name" -msgstr "接口名稱" - -msgid "Invalid" -msgstr "無效" - -msgid "Local tunnel ip address" -msgstr "本地隧道IP地址" - -msgid "MPTCP" -msgstr "MPTCP協議" - -msgid "MTU" -msgstr "MTU" - -msgid "MTU auto" -msgstr "自動MTU" - -msgid "Overview" -msgstr "總覽" - -msgid "Port" -msgstr "端口" - -msgid "Protocol" -msgstr "協議" - -msgid "Remote host name or ip address" -msgstr "遠程主機名或IP地址" - -msgid "Remote tunnel ip address" -msgstr "遠程隧道IP地址" - -msgid "Server mode" -msgstr "服務器模式" - -msgid "Start/Stop" -msgstr "開始/停止" - -msgid "Started" -msgstr "已開始" - -msgid "TCP port # for both local and remote" -msgstr "本地和遠程的TCP端口號" - -msgid "The secret key" -msgstr "秘鑰" - -msgid "Use ChaCha20 stream cipher" -msgstr "使用ChaCha20流密碼" - -msgid "no" -msgstr "沒有" - -msgid "yes (%i)" -msgstr "是(%i)" diff --git a/luci-app-glorytun/root/etc/config/glorytun_recipes b/luci-app-glorytun/root/etc/config/glorytun_recipes deleted file mode 100644 index 693eb6da6..000000000 --- a/luci-app-glorytun/root/etc/config/glorytun_recipes +++ /dev/null @@ -1,50 +0,0 @@ -config glorytun_recipe servertcp - option _description "Simple TCP server configuration" - option _role "server" - option port "65001" - option dev "tun0" - option key "secretkey" - option listener "1" - option localip "192.168.99.1" - option remoteip "192.168.99.2" - option proto "tcp" - option enable "0" - -config glorytun_recipe clienttcp - option _description "Simple TCP client configuration" - option _role "client" - option port "65001" - option dev "tun0" - option host "vpnserver.example.org" - option key "secretkey" - option localip "192.168.99.2" - option remoteip "192.168.99.1" - option proto "tcp" - option enable "0" - -config glorytun_recipe serverudp - option _description "Simple UDP server configuration" - option _role "server" - option dev "tun0" - option bindport "65003" - option bind "192.168.99.1" - option key "secretkey" - option localip "192.168.99.1" - option remoteip "192.168.99.2" - option proto "udp" - option mtuauto "1" - option enable "0" - -config glorytun_recipe clientudp - option _description "Simple UDP client configuration" - option _role "client" - option port "65003" - option dev "tun0" - option host "vpnserver.example.org" - option key "secretkey" - option localip "192.168.99.2" - option remoteip "192.168.99.1" - option proto "udp" - option mtuauto "1" - option enable "0" - diff --git a/luci-app-glorytun/root/usr/share/luci/menu.d/luci-app-glorytun.json b/luci-app-glorytun/root/usr/share/luci/menu.d/luci-app-glorytun.json deleted file mode 100644 index 414accf0b..000000000 --- a/luci-app-glorytun/root/usr/share/luci/menu.d/luci-app-glorytun.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "admin/vpn/glorytun": { - "title": "Glorytun", - "order": 20, - "action": { - "type": "cbi", - "path": "glorytun" - }, - "depends": { - "acl": [ "luci-app-glorytun" ] - } - } -} From e4103cea0317a699fd40fd988b8a3d1863ddde5e Mon Sep 17 00:00:00 2001 From: "Ycarus (Yannick Chabanois)" Date: Thu, 3 Dec 2020 11:23:57 +0100 Subject: [PATCH 067/117] New interface for Glorytun UDP VPN --- glorytun-udp/init | 24 ++-- luci-app-glorytun-udp/Makefile | 16 +++ .../resources/view/services/glorytun-udp.js | 104 ++++++++++++++++++ .../root/etc/config/glorytun-udp | 10 ++ .../root/etc/hotplug.d/iface/30-glorytun-udp | 28 +++++ .../etc/uci-defaults/1201-luci-glorytun-udp | 47 ++++++++ .../luci/menu.d/luci-app-glorytun-udp.json | 13 +++ .../rpcd/acl.d/luci-app-glorytun-udp.json | 11 ++ 8 files changed, 239 insertions(+), 14 deletions(-) create mode 100644 luci-app-glorytun-udp/Makefile create mode 100644 luci-app-glorytun-udp/htdocs/luci-static/resources/view/services/glorytun-udp.js create mode 100644 luci-app-glorytun-udp/root/etc/config/glorytun-udp create mode 100644 luci-app-glorytun-udp/root/etc/hotplug.d/iface/30-glorytun-udp create mode 100644 luci-app-glorytun-udp/root/etc/uci-defaults/1201-luci-glorytun-udp create mode 100644 luci-app-glorytun-udp/root/usr/share/luci/menu.d/luci-app-glorytun-udp.json create mode 100644 luci-app-glorytun-udp/root/usr/share/rpcd/acl.d/luci-app-glorytun-udp.json diff --git a/glorytun-udp/init b/glorytun-udp/init index b9a18c526..5bb5a9a5d 100755 --- a/glorytun-udp/init +++ b/glorytun-udp/init @@ -1,7 +1,7 @@ #!/bin/sh /etc/rc.common # vim: set noexpandtab tabstop=4 shiftwidth=4 softtabstop=4 : # Copyright (C) 2015 ovh.com -# Copyright (C) 2017 Ycarus (Yannick Chabanois) +# Copyright (C) 2017-2020 Ycarus (Yannick Chabanois) START=90 STOP=10 @@ -19,22 +19,20 @@ _err() { } validate_section() { - uci_validate_section glorytun glorytun "${1}" \ + uci_validate_section glorytun-udp glorytun-udp "${1}" \ 'enable:bool:0' \ + 'mode:string' \ 'key:string' \ 'host:host' \ 'port:port' \ 'proto:string' \ - 'bind:string:0.0.0.0' \ - 'bindport:port' \ - 'mtu:uinteger:1450' \ 'mtuauto:bool:0' \ - 'chacha20:bool:0' \ + 'chacha:bool:0' \ 'dev:string' } start_instance() { - local enable key host port listener proto bind bindport mtu mtuauto chacha20 dev + local enable key host port listener proto mtuauto chacha dev mode validate_section "${1}" || { _err "validation failed" @@ -42,12 +40,12 @@ start_instance() { } [ "${enable}" = "1" ] || return 1 - [ "${proto}" = "udp" ] || return 1 [ -n "${key}" ] || return 1 [ "${key}" != "secretkey" ] || return 1 [ -n "${port}" ] || return 1 [ -n "${dev}" ] || return 1 + [ -n "${mode}" ] || return 1 echo "${key}" > /tmp/${PROG_NAME}-${1}.key key="" @@ -62,15 +60,13 @@ start_instance() { procd_open_instance procd_set_param command ${PROG} \ - ${bind:+bind from "$bind"} \ - ${bindport:+port "$bindport"} \ - ${host:+to addr "$host"} \ + ${host:+bind ${mode} addr "$host"} \ ${port:+port "$port"} \ ${dev:+dev "$dev"} \ keyfile /tmp/${PROG_NAME}-${1}.key \ persist - [ "${chacha20}" = "1" ] && procd_append_param command chacha + [ "${chacha}" = "1" ] && procd_append_param command chacha procd_set_param respawn 0 30 0 procd_set_param file /tmp/${PROG_NAME}-${1}.key @@ -104,8 +100,8 @@ add_glorytun_path() { start_service() { local dev - config_load glorytun - config_foreach start_instance glorytun + config_load glorytun-udp + config_foreach start_instance glorytun-udp } reload_service() { diff --git a/luci-app-glorytun-udp/Makefile b/luci-app-glorytun-udp/Makefile new file mode 100644 index 000000000..97608e0e7 --- /dev/null +++ b/luci-app-glorytun-udp/Makefile @@ -0,0 +1,16 @@ +# +# Copyright (C) 2018-2020 Ycarus (Yannick Chabanois) +# +# + +include $(TOPDIR)/rules.mk + +LUCI_TITLE:=LuCI Interface to Glorytun UDP +LUCI_DEPENDS:=+glorytun-udp + +PKG_LICENSE:=GPLv3 + +#include ../luci/luci.mk +include $(TOPDIR)/feeds/luci/luci.mk + +# call BuildPackage - OpenWrt buildroot signature diff --git a/luci-app-glorytun-udp/htdocs/luci-static/resources/view/services/glorytun-udp.js b/luci-app-glorytun-udp/htdocs/luci-static/resources/view/services/glorytun-udp.js new file mode 100644 index 000000000..2975af525 --- /dev/null +++ b/luci-app-glorytun-udp/htdocs/luci-static/resources/view/services/glorytun-udp.js @@ -0,0 +1,104 @@ +'use strict'; +'require rpc'; +'require poll'; +'require form'; +'require fs'; +'require uci'; +'require tools.widgets as widgets'; + +var callHostHints; + +var callServiceList = rpc.declare({ + object: 'service', + method: 'list', + params: [ 'name' ], + expect: { '': {} } +}); + +return L.view.extend({ + callHostHints: rpc.declare({ + object: 'luci-rpc', + method: 'getHostHints', + expect: { '': {} } + }), + + load: function() { + return this.callHostHints(); + }, + + render: function(hosts) { + var m, s, o; + + m = new form.Map('glorytun-udp', _('Glorytun UDP')); + + s = m.section(form.GridSection, 'glorytun-udp', _('Instances')); + s.addremove = true; + s.anonymous = true; + s.nodescriptions = true; + + s.tab('general', _('General Settings')); + s.tab('advanced', _('Advanced Settings')); + + o = s.taboption('general', form.Flag, 'enable', _('Enabled')); + o.default = o.enabled; + + o = s.taboption('general', form.ListValue, 'mode', _('Mode')); + o.value('to',_('Client')); + o.value('from',_('Server')); + o.modalonly = true; + + o = s.taboption('general', form.Value, 'host', _('Host')); + o.rmempty = false; + + o = s.taboption('general', form.Value, 'port', _('Port')); + o.rmempty = false; + + o = s.taboption('general', form.Value, 'key', _('Key')); + o.rmempty = false; + o.modalonly = true; + + o = s.taboption('general', form.Value, 'dev', _('Interface name')); + o.rmempty = false; + o.modalonly = true; + + o = s.taboption('general', form.Value, 'localip', _('Local IP')); + o.datatype = 'or(ip4addr,ip6addr)'; + o.rmempty = false; + + o = s.taboption('general', form.Value, 'remoteip', _('Remote IP')); + o.datatype = 'or(ip4addr,ip6addr)'; + o.rmempty = false; + + o = s.taboption('advanced', form.Flag, 'persist', _('Persist'), _('Keep the tunnel device after exiting')); + o.default = o.enabled; + o.modalonly = true; + + o = s.taboption('advanced', form.Flag, 'chacha', _('chacha'), _('Force fallback cipher')); + o.default = o.enabled; + o.modalonly = true; + + o = s.taboption('advanced', form.Value, 'kxtimeout', _('Key rotation timeout')); + o.default = '7d'; + o.rmempty = false; + o.modalonly = true; + + o = s.taboption('advanced', form.Value, 'timetolerance', _('Clock sync tolerance')); + o.default = '10m'; + o.rmempty = false; + o.modalonly = true; + + o = s.taboption('advanced', form.Value, 'keepalive', _('Keep alive timeout')); + o.default = '25s'; + o.rmempty = false; + o.modalonly = true; + + o = s.taboption('advanced', form.Flag, 'auto', _('Dynamic rate detection')); + o.rmempty = false; + o.modalonly = true; + + o = s.taboption('general',form.Value, 'label', _('Label')); + o.rmempty = true; + + return m.render(); + } +}); diff --git a/luci-app-glorytun-udp/root/etc/config/glorytun-udp b/luci-app-glorytun-udp/root/etc/config/glorytun-udp new file mode 100644 index 000000000..d5d356dd6 --- /dev/null +++ b/luci-app-glorytun-udp/root/etc/config/glorytun-udp @@ -0,0 +1,10 @@ +config glorytun-udp 'vpn' + option enable '0' + option host '127.0.0.1' + option port '65001' + option dev 'tun0' + option key '' + option chacha '1' + option localip '10.255.254.2' + option remoteip '10.255.254.1' + option mode 'to' diff --git a/luci-app-glorytun-udp/root/etc/hotplug.d/iface/30-glorytun-udp b/luci-app-glorytun-udp/root/etc/hotplug.d/iface/30-glorytun-udp new file mode 100644 index 000000000..b942fd60c --- /dev/null +++ b/luci-app-glorytun-udp/root/etc/hotplug.d/iface/30-glorytun-udp @@ -0,0 +1,28 @@ +#!/bin/sh +# +# Load the glorytun config +# +# Author: Ycarus (Yannick Chabanois) +# Released under GPL 3 or later + +[ "$ACTION" = ifup -o "$ACTION" = ifupdate ] || exit 0 + +. /lib/functions.sh +. /lib/functions/network.sh + +set_default() { + local localip + local remoteip + local config="$1" + local iface + config_get enable "$config" enable + config_get iface "$config" dev + [ "$iface" = "$DEVICE" ] && [ "$enable" = "1" ] && { + config_get localip "$config" localip + config_get remoteip "$config" remoteip + [ "$remoteip" != "" ] && [ "$localip" != "" ] && ifconfig $DEVICE $localip pointopoint $remoteip up + } +} + +config_load glorytun-udp +config_foreach set_default glorytun-udp diff --git a/luci-app-glorytun-udp/root/etc/uci-defaults/1201-luci-glorytun-udp b/luci-app-glorytun-udp/root/etc/uci-defaults/1201-luci-glorytun-udp new file mode 100644 index 000000000..dbecf5b5b --- /dev/null +++ b/luci-app-glorytun-udp/root/etc/uci-defaults/1201-luci-glorytun-udp @@ -0,0 +1,47 @@ +#!/bin/sh + +uci -q batch <<-EOF >/dev/null + delete glorytun-udp[-1] + add ucitrack glorytun-udp + set ucitrack.@glorytun-udp[-1].init=glorytun-udp + commit ucitrack +EOF + +if [ "$(uci -q get network.glorytun-udp)" = "" ] && [ "$(uci -q get network.omrvpn)" = "" ]; then + uci -q batch <<-EOF >/dev/null + delete network.glorytun-udp + set network.glorytun-udp=interface + set network.glorytun-udp.ifname=tun0 + set network.glorytun-udp.proto=dhcp + set network.glorytun-udp.ip4table=vpn + set network.glorytun-udp.multipath=off + set network.glorytun-udp.leasetime=12h + commit network + EOF +fi + +if [ "$(uci -q show firewall | grep glorytun-udp)" = "" ] && [ "$(uci -q get network.omrvpn)" = "" ]; then + uci -q batch <<-EOF >/dev/null + set firewall.zone_vpn=zone + set firewall.zone_vpn.name=vpn + set firewall.zone_vpn.network=glorytun-udp + set firewall.zone_vpn.masq=1 + set firewall.zone_vpn.input=REJECT + set firewall.zone_vpn.forward=ACCEPT + set firewall.zone_vpn.output=ACCEPT + commit firewall + EOF +fi +if [ "$(uci -q show firewall | grep Allow-All-LAN-to-VPN)" = "" ]; then + uci -q batch <<-EOF >/dev/null + add firewall rule + set firewall.@rule[-1].enabled='1' + set firewall.@rule[-1].target='ACCEPT' + set firewall.@rule[-1].name='Allow-All-LAN-to-VPN' + set firewall.@rule[-1].dest='vpn' + set firewall.@rule[-1].src='lan' + commit firewall + EOF +fi +rm -f /tmp/luci-indexcache +exit 0 diff --git a/luci-app-glorytun-udp/root/usr/share/luci/menu.d/luci-app-glorytun-udp.json b/luci-app-glorytun-udp/root/usr/share/luci/menu.d/luci-app-glorytun-udp.json new file mode 100644 index 000000000..b84551484 --- /dev/null +++ b/luci-app-glorytun-udp/root/usr/share/luci/menu.d/luci-app-glorytun-udp.json @@ -0,0 +1,13 @@ +{ + "admin/vpn/glorytun-udp": { + "title": "Glorytun UDP", + "order": 60, + "action": { + "type": "view", + "path": "services/glorytun-udp" + }, + "depends": { + "acl": [ "luci-app-glorytun-udp" ] + } + } +} diff --git a/luci-app-glorytun-udp/root/usr/share/rpcd/acl.d/luci-app-glorytun-udp.json b/luci-app-glorytun-udp/root/usr/share/rpcd/acl.d/luci-app-glorytun-udp.json new file mode 100644 index 000000000..3e24adb8e --- /dev/null +++ b/luci-app-glorytun-udp/root/usr/share/rpcd/acl.d/luci-app-glorytun-udp.json @@ -0,0 +1,11 @@ +{ + "luci-app-glorytun-udp": { + "description": "Grant access to glorytun UDP", + "read": { + "uci": [ "glorytun-udp" ] + }, + "write": { + "uci": [ "glorytun-udp" ] + } + } +} \ No newline at end of file From 07fee0e7f27655710cd32b2595221fdb133ce93b Mon Sep 17 00:00:00 2001 From: "Ycarus (Yannick Chabanois)" Date: Thu, 3 Dec 2020 11:25:16 +0100 Subject: [PATCH 068/117] Add glorytun-udp new separated config and option to enable/disable use of shadowsocks for UDP when VPN down --- .../luasrc/controller/openmptcprouter.lua | 45 +++++++++++++++---- .../luasrc/view/openmptcprouter/settings.htm | 6 +++ 2 files changed, 43 insertions(+), 8 deletions(-) diff --git a/luci-app-openmptcprouter/luasrc/controller/openmptcprouter.lua b/luci-app-openmptcprouter/luasrc/controller/openmptcprouter.lua index 3a07d144d..b294af40c 100644 --- a/luci-app-openmptcprouter/luasrc/controller/openmptcprouter.lua +++ b/luci-app-openmptcprouter/luasrc/controller/openmptcprouter.lua @@ -71,6 +71,7 @@ function wizard_add() if nbserver == 1 and server_ip ~= "" and server_ip ~= nil then ucic:set("shadowsocks-libev","sss0","server",server_ip) ucic:set("glorytun","vpn","host",server_ip) + ucic:set("glorytun-udp","vpn","host",server_ip) ucic:set("dsvpn","vpn","host",server_ip) ucic:set("mlvpn","general","host",server_ip) ucic:set("ubond","general","host",server_ip) @@ -491,6 +492,7 @@ function wizard_add() ss_ip=server_ip ucic:set("shadowsocks-libev","sss0","server",server_ip) ucic:set("glorytun","vpn","host",server_ip) + ucic:set("glorytun-udp","vpn","host",server_ip) ucic:set("dsvpn","vpn","host",server_ip) ucic:set("mlvpn","general","host",server_ip) ucic:set("ubond","general","host",server_ip) @@ -512,6 +514,7 @@ function wizard_add() ucic:set("nginx-ha","VPN","enable","0") ucic:set("shadowsocks-libev","sss0","server",server_ip) ucic:set("glorytun","vpn","host",server_ip) + ucic:set("glorytun-udp","vpn","host",server_ip) ucic:set("dsvpn","vpn","host",server_ip) ucic:set("mlvpn","general","host",server_ip) ucic:set("ubond","general","host",server_ip) @@ -538,6 +541,7 @@ function wizard_add() ucic:save("dsvpn") --ucic:commit("dsvpn") ucic:save("glorytun") + ucic:save("glorytun-udp") --ucic:commit("glorytun") ucic:save("shadowsocks-libev") --ucic:commit("shadowsocks-libev") @@ -552,24 +556,28 @@ function wizard_add() elseif encryption == "aes-256-gcm" then ucic:set("shadowsocks-libev","sss0","method","aes-256-gcm") ucic:set("glorytun","vpn","chacha20","0") + ucic:set("glorytun-udp","vpn","chacha","0") ucic:set("openvpn","omr","cipher","AES-256-GCM") ucic:set("v2ray","omrout","s_vmess_user_security","aes-128-gcm") ucic:set("v2ray","omrout","s_vless_user_security","aes-128-gcm") elseif encryption == "aes-256-cfb" then ucic:set("shadowsocks-libev","sss0","method","aes-256-cfb") ucic:set("glorytun","vpn","chacha20","0") + ucic:set("glorytun-udp","vpn","chacha","0") ucic:set("openvpn","omr","cipher","AES-256-CFB") ucic:set("v2ray","omrout","s_vmess_user_security","aes-128-gcm") ucic:set("v2ray","omrout","s_vless_user_security","aes-128-gcm") elseif encryption == "chacha20-ietf-poly1305" then ucic:set("shadowsocks-libev","sss0","method","chacha20-ietf-poly1305") ucic:set("glorytun","vpn","chacha20","1") + ucic:set("glorytun-udp","vpn","chacha","1") ucic:set("openvpn","omr","cipher","AES-256-CBC") ucic:set("v2ray","omrout","s_vmess_user_security","chacha20-poly1305") ucic:set("v2ray","omrout","s_vless_user_security","chacha20-poly1305") end ucic:save("openvpn") ucic:save("glorytun") + ucic:save("glorytun-udp") ucic:save("shadowsocks-libev") ucic:save("v2ray") @@ -606,7 +614,7 @@ function wizard_add() -- Set Glorytun settings - if default_vpn:match("^glorytun.*") and disablednb ~= serversnb then + if default_vpn:match("glorytun_tcp") and disablednb ~= serversnb then ucic:set("glorytun","vpn","enable",1) else ucic:set("glorytun","vpn","enable",0) @@ -617,13 +625,7 @@ function wizard_add() ucic:set("glorytun","vpn","port","65001") ucic:set("glorytun","vpn","key",glorytun_key) ucic:set("glorytun","vpn","mptcp",1) - if default_vpn == "glorytun_udp" then - ucic:set("glorytun","vpn","proto","udp") - ucic:set("glorytun","vpn","localip","10.255.254.2") - ucic:set("glorytun","vpn","remoteip","10.255.254.1") - ucic:set("network","omr6in4","ipaddr","10.255.254.2") - ucic:set("network","omr6in4","peeraddr","10.255.254.1") - else + if default_vpn == "glorytun_tcp" then ucic:set("glorytun","vpn","proto","tcp") ucic:set("glorytun","vpn","localip","10.255.255.2") ucic:set("glorytun","vpn","remoteip","10.255.255.1") @@ -639,6 +641,29 @@ function wizard_add() ucic:save("glorytun") ucic:commit("glorytun") + if default_vpn:match("glorytun_udp") and disablednb ~= serversnb then + ucic:set("glorytun-udp","vpn","enable",1) + else + ucic:set("glorytun-udp","vpn","enable",0) + end + + local glorytun_key = luci.http.formvalue("glorytun_key") + if glorytun_key ~= "" then + ucic:set("glorytun-udp","vpn","port","65001") + ucic:set("glorytun-udp","vpn","key",glorytun_key) + if default_vpn == "glorytun_udp" then + ucic:set("glorytun-udp","vpn","localip","10.255.254.2") + ucic:set("glorytun-udp","vpn","remoteip","10.255.254.1") + ucic:set("network","omr6in4","ipaddr","10.255.254.2") + ucic:set("network","omr6in4","peeraddr","10.255.254.1") + end + ucic:set("network","omrvpn","proto","none") + else + ucic:set("glorytun-udp","vpn","key","") + end + ucic:save("glorytun-udp") + ucic:commit("glorytun-udp") + -- Set A Dead Simple VPN settings if default_vpn == "dsvpn" and disablednb ~= serversnb then ucic:set("dsvpn","vpn","enable",1) @@ -845,6 +870,10 @@ function settings_add() local disableserverping = luci.http.formvalue("disableserverping") or "0" ucic:set("openmptcprouter","settings","disableserverping",disableserverping) + -- Enable/disable shadowsocks upd + local shadowsocksudp = luci.http.formvalue("shadowsocksudp") or "0" + ucic:set("openmptcprouter","settings","shadowsocksudp",shadowsocksudp) + -- Enable/disable fast open local disablefastopen = luci.http.formvalue("disablefastopen") or "0" if disablefastopen == "0" then diff --git a/luci-app-openmptcprouter/luasrc/view/openmptcprouter/settings.htm b/luci-app-openmptcprouter/luasrc/view/openmptcprouter/settings.htm index fbc61a7a9..50c4ccce3 100644 --- a/luci-app-openmptcprouter/luasrc/view/openmptcprouter/settings.htm +++ b/luci-app-openmptcprouter/luasrc/view/openmptcprouter/settings.htm @@ -244,6 +244,12 @@
+
+ +
+ checked<% end %>> +
+
From 234a0f85e8ddd6467d66479a4dfc81121b318dd6 Mon Sep 17 00:00:00 2001 From: "Ycarus (Yannick Chabanois)" Date: Thu, 3 Dec 2020 11:25:57 +0100 Subject: [PATCH 069/117] Update luci-mod-dashboard from upstream --- luci-mod-dashboard/Makefile | 3 +++ .../view/dashboard/include/20_lan.js | 20 +++++++++---------- 2 files changed, 13 insertions(+), 10 deletions(-) diff --git a/luci-mod-dashboard/Makefile b/luci-mod-dashboard/Makefile index 4a9aec96f..6a6d84166 100644 --- a/luci-mod-dashboard/Makefile +++ b/luci-mod-dashboard/Makefile @@ -1,8 +1,11 @@ # # Copyright 2019-2020 ZHANG Zhao +# Copyright 2020 Ycarus (Yannick Chabanois) for OpenMPTCProuter # # This is free software, licensed under the Apache License, Version 2.0 . # +# Based on openwrt luci commit 03c77dafe3cfb922b995adfe9c0f8a75c98a18af +# include $(TOPDIR)/rules.mk diff --git a/luci-mod-dashboard/htdocs/luci-static/resources/view/dashboard/include/20_lan.js b/luci-mod-dashboard/htdocs/luci-static/resources/view/dashboard/include/20_lan.js index ab86568e8..c673fa681 100644 --- a/luci-mod-dashboard/htdocs/luci-static/resources/view/dashboard/include/20_lan.js +++ b/luci-mod-dashboard/htdocs/luci-static/resources/view/dashboard/include/20_lan.js @@ -25,15 +25,15 @@ return baseclass.extend({ var container_wapper = E('div', { 'class': 'router-status-lan dashboard-bg box-s1' }); var container_box = E('div', { 'class': 'lan-info devices-list' }); - var container_devices = E('div', { 'class': 'table assoclist devices-info' }, [ - E('div', { 'class': 'tr table-titles dashboard-bg' }, [ - E('div', { 'class': 'th nowrap' }, _('Hostname')), - E('div', { 'class': 'th' }, _('IP Address')), - E('div', { 'class': 'th' }, _('MAC')), + var container_devices = E('table', { 'class': 'table assoclist devices-info' }, [ + E('tr', { 'class': 'tr table-titles dashboard-bg' }, [ + E('th', { 'class': 'th nowrap' }, _('Hostname')), + E('th', { 'class': 'th' }, _('IP Address')), + E('th', { 'class': 'th' }, _('MAC')), ]) ]); - var container_deviceslist = E('div', { 'class': 'table assoclist devices-info' }); + var container_deviceslist = E('table', { 'class': 'table assoclist devices-info' }); container_box.appendChild(E('div', { 'class': 'title'}, [ E('img', { @@ -48,21 +48,21 @@ return baseclass.extend({ for(var idx in this.params.lan.devices) { var deivce = this.params.lan.devices[idx]; - container_deviceslist.appendChild(E('div', { 'class': 'tr cbi-rowstyle-1'}, [ + container_deviceslist.appendChild(E('tr', { 'class': 'tr cbi-rowstyle-1'}, [ - E('div', { 'class': 'td device-info'}, [ + E('td', { 'class': 'td device-info'}, [ E('p', {}, [ E('span', { 'class': 'd-inline-block'}, [ deivce.hostname ]), ]), ]), - E('div', { 'class': 'td device-info'}, [ + E('td', { 'class': 'td device-info'}, [ E('p', {}, [ E('span', { 'class': 'd-inline-block'}, [ deivce.ipv4 ]), ]), ]), - E('div', { 'class': 'td device-info'}, [ + E('td', { 'class': 'td device-info'}, [ E('p', {}, [ E('span', { 'class': 'd-inline-block'}, [ deivce.macaddr ]), ]), From 179fb76abcb473841bd568bb5773ab908fa19464 Mon Sep 17 00:00:00 2001 From: "Ycarus (Yannick Chabanois)" Date: Thu, 3 Dec 2020 11:26:41 +0100 Subject: [PATCH 070/117] Update luci-mod-network from upstream --- luci-mod-network/Makefile | 2 +- .../resources/view/network/dhcp.js | 32 +++++++------- .../resources/view/network/diagnostics.js | 10 ++--- .../resources/view/network/wireless.js | 42 +++++++++++-------- 4 files changed, 46 insertions(+), 40 deletions(-) diff --git a/luci-mod-network/Makefile b/luci-mod-network/Makefile index 7a043dc40..71e847f31 100644 --- a/luci-mod-network/Makefile +++ b/luci-mod-network/Makefile @@ -4,7 +4,7 @@ # # This is free software, licensed under the Apache License, Version 2.0 . # -# From https://github.com/openwrt/luci/commit/83c912716e482000e92443cffc3202726314f480 +# From https://github.com/openwrt/luci/commit/f5c04e1a2e173f536597f220db0380cc08869e8e include $(TOPDIR)/rules.mk diff --git a/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js b/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js index 95abeb6d0..d3f564d47 100644 --- a/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js +++ b/luci-mod-network/htdocs/luci-static/resources/view/network/dhcp.js @@ -31,15 +31,15 @@ CBILeaseStatus = form.DummyValue.extend({ renderWidget: function(section_id, option_id, cfgvalue) { return E([ E('h4', _('Active DHCP Leases')), - E('div', { 'id': 'lease_status_table', 'class': 'table' }, [ - E('div', { 'class': 'tr table-titles' }, [ - E('div', { 'class': 'th' }, _('Hostname')), - E('div', { 'class': 'th' }, _('IPv4-Address')), - E('div', { 'class': 'th' }, _('MAC-Address')), - E('div', { 'class': 'th' }, _('Lease time remaining')) + E('table', { 'id': 'lease_status_table', 'class': 'table' }, [ + E('tr', { 'class': 'tr table-titles' }, [ + E('th', { 'class': 'th' }, _('Hostname')), + E('th', { 'class': 'th' }, _('IPv4-Address')), + E('th', { 'class': 'th' }, _('MAC-Address')), + E('th', { 'class': 'th' }, _('Lease time remaining')) ]), - E('div', { 'class': 'tr placeholder' }, [ - E('div', { 'class': 'td' }, E('em', _('Collecting data...'))) + E('tr', { 'class': 'tr placeholder' }, [ + E('td', { 'class': 'td' }, E('em', _('Collecting data...'))) ]) ]) ]); @@ -50,15 +50,15 @@ CBILease6Status = form.DummyValue.extend({ renderWidget: function(section_id, option_id, cfgvalue) { return E([ E('h4', _('Active DHCPv6 Leases')), - E('div', { 'id': 'lease6_status_table', 'class': 'table' }, [ - E('div', { 'class': 'tr table-titles' }, [ - E('div', { 'class': 'th' }, _('Host')), - E('div', { 'class': 'th' }, _('IPv6-Address')), - E('div', { 'class': 'th' }, _('DUID')), - E('div', { 'class': 'th' }, _('Lease time remaining')) + E('table', { 'id': 'lease6_status_table', 'class': 'table' }, [ + E('tr', { 'class': 'tr table-titles' }, [ + E('th', { 'class': 'th' }, _('Host')), + E('th', { 'class': 'th' }, _('IPv6-Address')), + E('th', { 'class': 'th' }, _('DUID')), + E('th', { 'class': 'th' }, _('Lease time remaining')) ]), - E('div', { 'class': 'tr placeholder' }, [ - E('div', { 'class': 'td' }, E('em', _('Collecting data...'))) + E('tr', { 'class': 'tr placeholder' }, [ + E('td', { 'class': 'td' }, E('em', _('Collecting data...'))) ]) ]) ]); diff --git a/luci-mod-network/htdocs/luci-static/resources/view/network/diagnostics.js b/luci-mod-network/htdocs/luci-static/resources/view/network/diagnostics.js index 1855ee642..5d6bd4765 100644 --- a/luci-mod-network/htdocs/luci-static/resources/view/network/diagnostics.js +++ b/luci-mod-network/htdocs/luci-static/resources/view/network/diagnostics.js @@ -66,9 +66,9 @@ return view.extend({ return E([], [ E('h2', {}, [ _('Network Utilities') ]), - E('div', { 'class': 'table' }, [ - E('div', { 'class': 'tr' }, [ - E('div', { 'class': 'td left' }, [ + E('table', { 'class': 'table' }, [ + E('tr', { 'class': 'tr' }, [ + E('td', { 'class': 'td left' }, [ E('input', { 'style': 'margin:5px 0', 'type': 'text', @@ -91,7 +91,7 @@ return view.extend({ ]) ]), - E('div', { 'class': 'td left' }, [ + E('td', { 'class': 'td left' }, [ E('input', { 'style': 'margin:5px 0', 'type': 'text', @@ -114,7 +114,7 @@ return view.extend({ ]) ]), - E('div', { 'class': 'td left' }, [ + E('td', { 'class': 'td left' }, [ E('input', { 'style': 'margin:5px 0', 'type': 'text', diff --git a/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js b/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js index bb9877217..d19b025e3 100644 --- a/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js +++ b/luci-mod-network/htdocs/luci-static/resources/view/network/wireless.js @@ -649,7 +649,7 @@ return view.extend({ if (bss.network.isClientDisconnectSupported()) { if (table.firstElementChild.childNodes.length < 6) - table.firstElementChild.appendChild(E('div', { 'class': 'th cbi-section-actions'})); + table.firstElementChild.appendChild(E('th', { 'class': 'th cbi-section-actions'})); row.push(E('button', { 'class': 'cbi-button cbi-button-remove', @@ -850,7 +850,7 @@ return view.extend({ ]; } - return E('div', { 'class': 'td middle cbi-section-actions' }, E('div', btns)); + return E('td', { 'class': 'td middle cbi-section-actions' }, E('div', btns)); }; s.addModalOptions = function(s) { @@ -889,6 +889,12 @@ return view.extend({ o = ss.taboption('advanced', CBIWifiCountryValue, 'country', _('Country Code')); o.wifiNetwork = radioNet; + o = ss.taboption('advanced', form.ListValue, 'cell_density', _('Coverage cell density'), _('Configures data rates based on the coverage cell density. Normal configures basic rates to 6, 12, 24 Mbps if legacy 802.11b rates are not used else to 5.5, 11 Mbps. High configures basic rates to 12, 24 Mbps if legacy 802.11b rates are not used else to the 11 Mbps rate. Very High configures 24 Mbps as the basic rate. Supported rates lower than the minimum basic rate are not offered.')); + o.value('0', _('Disabled')); + o.value('1', _('Normal')); + o.value('2', _('High')); + o.value('3', _('Very High')); + o = ss.taboption('advanced', form.Flag, 'legacy_rates', _('Allow legacy 802.11b rates')); o.default = o.enabled; @@ -1656,15 +1662,15 @@ return view.extend({ }; s.handleScan = function(radioDev, ev) { - var table = E('div', { 'class': 'table' }, [ - E('div', { 'class': 'tr table-titles' }, [ - E('div', { 'class': 'th col-2 middle center' }, _('Signal')), - E('div', { 'class': 'th col-4 middle left' }, _('SSID')), - E('div', { 'class': 'th col-2 middle center hide-xs' }, _('Channel')), - E('div', { 'class': 'th col-2 middle left hide-xs' }, _('Mode')), - E('div', { 'class': 'th col-3 middle left hide-xs' }, _('BSSID')), - E('div', { 'class': 'th col-3 middle left' }, _('Encryption')), - E('div', { 'class': 'th cbi-section-actions right' }, ' '), + var table = E('table', { 'class': 'table' }, [ + E('tr', { 'class': 'tr table-titles' }, [ + E('th', { 'class': 'th col-2 middle center' }, _('Signal')), + E('th', { 'class': 'th col-4 middle left' }, _('SSID')), + E('th', { 'class': 'th col-2 middle center hide-xs' }, _('Channel')), + E('th', { 'class': 'th col-2 middle left hide-xs' }, _('Mode')), + E('th', { 'class': 'th col-3 middle left hide-xs' }, _('BSSID')), + E('th', { 'class': 'th col-3 middle left' }, _('Encryption')), + E('th', { 'class': 'th cbi-section-actions right' }, ' '), ]) ]); @@ -2073,13 +2079,13 @@ return view.extend({ .then(L.bind(this.poll_status, this, nodes)); }, this), 5); - var table = E('div', { 'class': 'table assoclist', 'id': 'wifi_assoclist_table' }, [ - E('div', { 'class': 'tr table-titles' }, [ - E('div', { 'class': 'th nowrap' }, _('Network')), - E('div', { 'class': 'th hide-xs' }, _('MAC-Address')), - E('div', { 'class': 'th' }, _('Host')), - E('div', { 'class': 'th' }, _('Signal / Noise')), - E('div', { 'class': 'th' }, _('RX Rate / TX Rate')) + var table = E('table', { 'class': 'table assoclist', 'id': 'wifi_assoclist_table' }, [ + E('tr', { 'class': 'tr table-titles' }, [ + E('th', { 'class': 'th nowrap' }, _('Network')), + E('th', { 'class': 'th hide-xs' }, _('MAC-Address')), + E('th', { 'class': 'th' }, _('Host')), + E('th', { 'class': 'th' }, _('Signal / Noise')), + E('th', { 'class': 'th' }, _('RX Rate / TX Rate')) ]) ]); From 49371cc8e6e9c3ec66b0d0f1f424354bf85988ea Mon Sep 17 00:00:00 2001 From: "Ycarus (Yannick Chabanois)" Date: Thu, 3 Dec 2020 11:27:30 +0100 Subject: [PATCH 071/117] Use metric for IPv6 routes --- mptcp/files/etc/init.d/mptcp | 1 + 1 file changed, 1 insertion(+) diff --git a/mptcp/files/etc/init.d/mptcp b/mptcp/files/etc/init.d/mptcp index 95c9a4fb9..77310f5eb 100755 --- a/mptcp/files/etc/init.d/mptcp +++ b/mptcp/files/etc/init.d/mptcp @@ -322,6 +322,7 @@ interface_multipath_settings() { EOF else ip -6 rule add from $ip6addr table 6$id pref 0 + ip -6 route replace $network6/$netmask6 dev $iface scope link metric 6$id ip -6 route replace $network6/$netmask6 dev $iface scope link table 6$id ip -6 route replace default via $gateway6 dev $iface table 6$id ip -6 route replace default via $gateway6 dev $iface metric $id From f3d4e9df2582b2b59a8d953483bf7b3cafd8db9d Mon Sep 17 00:00:00 2001 From: "Ycarus (Yannick Chabanois)" Date: Thu, 3 Dec 2020 11:28:13 +0100 Subject: [PATCH 072/117] Add glorytun-udp new splitted config in tracker --- .../usr/share/omr/post-tracking.d/post-tracking | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 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 e7cd3f311..bdedd275a 100755 --- a/mptcp/files/usr/share/omr/post-tracking.d/post-tracking +++ b/mptcp/files/usr/share/omr/post-tracking.d/post-tracking @@ -371,7 +371,7 @@ if [ "$OMR_TRACKER_STATUS" = "ERROR" ] || [ "$interface_up" != "true" ]; then config_load network config_foreach set_route interface $OMR_TRACKER_INTERFACE fi - if [ "$(uci -q get shadowsocks-libev.sss0.disabled)" != "1" ] && [ "$(uci -q get openmptcprouter.omr.shadowsocks)" = "up" ] && [ "$(uci -q get shadowsocks-libev.ss_rules.redir_udp)" = "" ] && [ "$(uci -q get shadowsocks-libev.hi2.mode)" = "tcp_and_udp" ] && [ "$(uci -q get shadowsocks-libev.sss0.obfs)" != "1" ]; then + if [ "$(uci -q get openmptcprouter.settings.shadowsocksudp)" = "1" ] && [ "$(uci -q get shadowsocks-libev.sss0.disabled)" != "1" ] && [ "$(uci -q get openmptcprouter.omr.shadowsocks)" = "up" ] && [ "$(uci -q get shadowsocks-libev.ss_rules.redir_udp)" = "" ] && [ "$(uci -q get shadowsocks-libev.hi2.mode)" = "tcp_and_udp" ] && [ "$(uci -q get shadowsocks-libev.sss0.obfs)" != "1" ]; then _log "Tunnel down use ShadowSocks for UDP" uci -q set shadowsocks-libev.ss_rules.redir_udp='hi2' if /etc/init.d/shadowsocks-libev rules_exist ; then @@ -390,6 +390,9 @@ if [ "$OMR_TRACKER_STATUS" = "ERROR" ] || [ "$interface_up" != "true" ]; then if [ "$(uci -q get glorytun.vpn.enable)" = "1" ]; then _log "Glorytun VPN down, restart it" /etc/init.d/glorytun restart + fi + if [ "$(uci -q get glorytun-udp.vpn.enable)" = "1" ]; then + _log "Glorytun UDP VPN down, restart it" /etc/init.d/glorytun-udp restart fi config_load openmptcprouter @@ -438,7 +441,7 @@ if [ "$OMR_TRACKER_INTERFACE" = "glorytun" ] || [ "$OMR_TRACKER_INTERFACE" = "om fi uci -q set openmptcprouter.$OMR_TRACKER_INTERFACE="interface" uci -q set openmptcprouter.$OMR_TRACKER_INTERFACE.latency="$OMR_TRACKER_LATENCY" - if [ "$(uci -q get glorytun.vpn.enable)" != "1" ]; then + if [ "$(uci -q get glorytun.vpn.enable)" != "1" ] || [ "$(uci -q get glorytun-udp.vpn.enable)" != "1" ]; then if [ -n "$(uci -q get network.$OMR_TRACKER_INTERFACE.mtu)" ]; then mtu=$(uci -q get network.$OMR_TRACKER_INTERFACE.mtu) uci -q set openmptcprouter.$OMR_TRACKER_INTERFACE.mtu=$mtu @@ -576,13 +579,13 @@ if [ "$multipath_config" = "on" ] || [ "$multipath_config" = "backup" ]; then [ "$(uci -q get openmptcprouter.$OMR_TRACKER_INTERFACE.multipathvpn)" != "1" ] && [ "$multipath_config" = "backup" ] && [ "$(pgrep glorytun-udp)" != "" ] && gtudpst="backup" if [ "$(uci -q get openmptcprouter.$OMR_TRACKER_INTERFACE.vpn)" != "1" ] && [ "$(pgrep glorytun-udp)" != "" ] && [ "$(glorytun-udp path | grep $OMR_TRACKER_DEVICE_IP)" = "" ]; then if [ "$download" != "0" ] && [ "$download" != "" ] && [ "$upload" != "0" ] && [ "$upload" != "" ]; then - if [ "$(uci -q get glorytun.vpn.rateauto)" = "1" ]; then + if [ "$(uci -q get glorytun-udp.vpn.rateauto)" = "1" ]; then glorytun-udp path addr $OMR_TRACKER_DEVICE_IP dev tun0 set up rate auto tx $((upload*1000/8)) rx $((download*1000/8)) > /dev/null 2>&1 else glorytun-udp path addr $OMR_TRACKER_DEVICE_IP dev tun0 set up rate fixed tx $((upload*1000/8)) rx $((download*1000/8)) > /dev/null 2>&1 fi else - if [ "$(uci -q get glorytun.vpn.rateauto)" = "1" ]; then + if [ "$(uci -q get glorytun-udp.vpn.rateauto)" = "1" ]; then glorytun-udp path addr $OMR_TRACKER_DEVICE_IP dev tun0 set up rate auto tx 12500000 rx 12500000 > /dev/null 2>&1 else glorytun-udp path addr $OMR_TRACKER_DEVICE_IP dev tun0 set up rate fixed tx 12500000 rx 12500000 > /dev/null 2>&1 @@ -666,7 +669,7 @@ if [ "$(uci -q get openmptcprouter.$OMR_TRACKER_INTERFACE.lc)" = "" ] || [ $(($( [ -n "$asn" ] && { uci -q set openmptcprouter.$OMR_TRACKER_INTERFACE.asn="$asn" } - if [ "$OMR_TRACKER_INTERFACE" != "omrvpn" ] && [ "$(uci -q get glorytun.vpn.enable)" != "1" ]; then + if [ "$OMR_TRACKER_INTERFACE" != "omrvpn" ] && [ "$(uci -q get glorytun.vpn.enable)" != "1" ] && [ "$(uci -q get glorytun-udp.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" ] && { @@ -776,6 +779,10 @@ fi if [ "$(pgrep glorytun)" = "" ] && [ "$(uci -q get glorytun.vpn.enable)" = "1" ] && [ -f /etc/init.d/glorytun ] && [ "$(uci -q get glorytun.vpn.key)" != "" ]; then _log "Can't find Glorytun, restart it..." /etc/init.d/glorytun restart + sleep 5 +fi +if [ "$(pgrep glorytun-udp)" = "" ] && [ "$(uci -q get glorytun-usp.vpn.enable)" = "1" ] && [ -f /etc/init.d/glorytun-udp ] && [ "$(uci -q get glorytun-udp.vpn.key)" != "" ]; then + _log "Can't find Glorytun UDP, restart it..." /etc/init.d/glorytun-udp restart sleep 5 fi From bef8c56ba067e36302a3ba04b43094a0b6d759ad Mon Sep 17 00:00:00 2001 From: "Ycarus (Yannick Chabanois)" Date: Thu, 3 Dec 2020 11:28:29 +0100 Subject: [PATCH 073/117] Update ndpi --- ndpi-netfilter2/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ndpi-netfilter2/Makefile b/ndpi-netfilter2/Makefile index e977efbc5..9f04c4e87 100644 --- a/ndpi-netfilter2/Makefile +++ b/ndpi-netfilter2/Makefile @@ -11,7 +11,7 @@ include $(INCLUDE_DIR)/kernel.mk PKG_NAME:=ndpi-netfilter2 PKG_RELEASE:=2 -PKG_REV:=86eaa857129cdd63152ebcd483366706e28089cc +PKG_REV:=0a03249da911f4033fd2a0d38a97cdba72eee2b6 PKG_VERSION:=3.2-$(PKG_REV) PKG_SOURCE_PROTO:=git From 855cde07f09497214e6762682d61c10ac9b963fd Mon Sep 17 00:00:00 2001 From: "Ycarus (Yannick Chabanois)" Date: Thu, 3 Dec 2020 11:28:55 +0100 Subject: [PATCH 074/117] Add glorytun-udp new splitted config for omr6in4 --- omr-6in4/files/bin/omr-6in4 | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/omr-6in4/files/bin/omr-6in4 b/omr-6in4/files/bin/omr-6in4 index cc0fe0e59..c7eba5bfa 100755 --- a/omr-6in4/files/bin/omr-6in4 +++ b/omr-6in4/files/bin/omr-6in4 @@ -6,6 +6,10 @@ while true; do iface=$(uci -q get glorytun.vpn.dev) addr=$(uci -q get glorytun.vpn.localip) peer=$(uci -q get glorytun.vpn.remoteip) + elif [ "$(uci -q get glorytun-udp.vpn.enable)" = "1" ]; then + iface=$(uci -q get glorytun-udp.vpn.dev) + addr=$(uci -q get glorytun-udp.vpn.localip) + peer=$(uci -q get glorytun-udp.vpn.remoteip) elif [ "$(uci -q get dsvpn.vpn.enable)" = "1" ]; then iface=$(uci -q get dsvpn.vpn.dev) addr=$(uci -q get dsvpn.vpn.localip) From 8ef7544e4cdbc06ff920f2fd863f3c1b4278111f Mon Sep 17 00:00:00 2001 From: "Ycarus (Yannick Chabanois)" Date: Thu, 3 Dec 2020 11:29:13 +0100 Subject: [PATCH 075/117] Add glorytun-udp new splitted config for omr tracker --- omr-tracker/files/bin/omr-tracker | 2 ++ 1 file changed, 2 insertions(+) diff --git a/omr-tracker/files/bin/omr-tracker b/omr-tracker/files/bin/omr-tracker index b0a90246d..8b64a3785 100755 --- a/omr-tracker/files/bin/omr-tracker +++ b/omr-tracker/files/bin/omr-tracker @@ -204,6 +204,8 @@ while true; do if [ -z "$OMR_TRACKER_DEVICE_GATEWAY" ] || [ "$OMR_TRACKER_DEVICE_GATEWAY" = "0.0.0.0" ]; then if [ "$OMR_TRACKER_INTERFACE" = "omrvpn" ] && [ "$(uci -q get glorytun.vpn.enable)" = "1" ]; then OMR_TRACKER_DEVICE_GATEWAY=$(uci -q get glorytun.vpn.remoteip) + elif [ "$OMR_TRACKER_INTERFACE" = "omrvpn" ] && [ "$(uci -q get glorytun-udp.vpn.enable)" = "1" ]; then + OMR_TRACKER_DEVICE_GATEWAY=$(uci -q get glorytun-udp.vpn.remoteip) else OMR_TRACKER_DEVICE_GATEWAY="" fi From c407a885dd26fddbbb79e527d7e56325817d2ada Mon Sep 17 00:00:00 2001 From: "Ycarus (Yannick Chabanois)" Date: Thu, 3 Dec 2020 11:29:44 +0100 Subject: [PATCH 076/117] Use new interfaces for glorytun --- openmptcprouter-full/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/openmptcprouter-full/Makefile b/openmptcprouter-full/Makefile index 0d060fa9a..0ab4f84fd 100644 --- a/openmptcprouter-full/Makefile +++ b/openmptcprouter-full/Makefile @@ -35,7 +35,7 @@ MY_DEPENDS := \ wireless-tools \ libiwinfo-lua \ ca-bundle ca-certificates \ - luci-mod-admin-full luci-app-firewall luci-app-glorytun luci-app-shadowsocks-libev luci-app-unbound luci-theme-openmptcprouter luci-theme-argon luci-base \ + luci-mod-admin-full luci-app-firewall luci-app-glorytun-tcp luci-app-glorytun-udp luci-app-shadowsocks-libev luci-app-unbound luci-theme-openmptcprouter luci-theme-argon luci-base \ luci-app-omr-tracker luci-app-omr-dscp \ luci-app-sqm sqm-scripts-extra \ luci-app-vnstat2 omr-quota luci-app-omr-quota \ From cc9f3c9fe6f9c489d7e9506f7366e09b8bb9accc Mon Sep 17 00:00:00 2001 From: "Ycarus (Yannick Chabanois)" Date: Thu, 3 Dec 2020 11:31:05 +0100 Subject: [PATCH 077/117] Add glorytun-udp new splitted config in mptcp over vpn and vps api contact --- openmptcprouter/files/etc/init.d/mptcpovervpn | 6 ++ .../files/etc/init.d/openmptcprouter-vps | 68 +++++++++++++++---- 2 files changed, 61 insertions(+), 13 deletions(-) diff --git a/openmptcprouter/files/etc/init.d/mptcpovervpn b/openmptcprouter/files/etc/init.d/mptcpovervpn index 73f804191..870148e5b 100755 --- a/openmptcprouter/files/etc/init.d/mptcpovervpn +++ b/openmptcprouter/files/etc/init.d/mptcpovervpn @@ -132,11 +132,17 @@ start_service() uci -q batch <<-EOF >/dev/null set shadowsocks-libev.sss0.disabled='1' set glorytun.vpn.host='10.255.250.1' + set glorytun-udp.vpn.host='10.255.250.1' + commit glorytun + commit glorytun-udp EOF elif [ "$(uci -q get glorytun.vpn.host)" = "10.255.250.1" ] && [ "$nbintf" != "$nbintfvpn" ]; then uci -q batch <<-EOF >/dev/null delete shadowsocks-libev.sss0.disabled set glorytun.vpn.host="$(uci -q get openmptcprouter.vps.ip)" + set glorytun-udp.vpn.host="$(uci -q get openmptcprouter.vps.ip)" + commit glorytun + commit glorytun-udp EOF fi NBCPU=$(grep -c '^processor' /proc/cpuinfo | tr -d "\n") diff --git a/openmptcprouter/files/etc/init.d/openmptcprouter-vps b/openmptcprouter/files/etc/init.d/openmptcprouter-vps index 8db25ea42..b84667234 100755 --- a/openmptcprouter/files/etc/init.d/openmptcprouter-vps +++ b/openmptcprouter/files/etc/init.d/openmptcprouter-vps @@ -296,20 +296,20 @@ _get_vps_config() { fi if [ "$vpn" = "glorytun_udp" ]; then glorytun_state=1 - uci -q set glorytun.vpn.proto='udp' + #uci -q set glorytun.vpn.proto='udp' client_ip="$(echo "$vps_config" | jsonfilter -q -e '@.glorytun.udp.client_ip')" host_ip="$(echo "$vps_config" | jsonfilter -q -e '@.glorytun.udp.host_ip')" port="$(echo "$vps_config" | jsonfilter -q -e '@.glorytun.port')" - if [ "$(uci -q get glorytun.vpn.port)" != "$port" ] && [ "$port" != "" ]; then + if [ "$(uci -q get glorytun-udp.vpn.port)" != "$port" ] && [ "$port" != "" ]; then uci -q batch <<-EOF >/dev/null - set glorytun.vpn.port=$port + set glorytun-udp.vpn.port=$port EOF fi if [ "$client_ip" != "dhcp" ] && [ -n "$client_ip" ]; then - if [ "$host_ip" != "$(uci -q get glorytun.vpn.remoteip)" ] || [ "$client_ip" != "$(uci -q get glorytun.vpn.localip)" ]; then + if [ "$host_ip" != "$(uci -q get glorytun-udp.vpn.remoteip)" ] || [ "$client_ip" != "$(uci -q get glorytun-udp.vpn.localip)" ]; then uci -q batch <<-EOF >/dev/null - set glorytun.vpn.localip=$client_ip - set glorytun.vpn.remoteip=$host_ip + set glorytun-udp.vpn.localip=$client_ip + set glorytun-udp.vpn.remoteip=$host_ip EOF glorytun_change=1 fi @@ -321,10 +321,10 @@ _get_vps_config() { glorytun_change=1 fi else - if [ "$(uci -q get glorytun.vpn.remoteip)" != "" ] || [ "$(uci -q get glorytun.vpn.localip)" != "" ]; then + if [ "$(uci -q get glorytun-udp.vpn.remoteip)" != "" ] || [ "$(uci -q get glorytun-udp.vpn.localip)" != "" ]; then uci -q batch <<-EOF >/dev/null - delete glorytun.vpn.localip - delete glorytun.vpn.remoteip + delete glorytun-udp.vpn.localip + delete glorytun-udp.vpn.remoteip EOF glorytun_change=1 fi @@ -403,14 +403,24 @@ _get_vps_config() { EOF glorytun_change=1 fi + if [ "$(uci -q get glorytun-udp.vpn.host)" != "127.0.0.1" ] && [ "$(uci -q get glorytun-udp.vpn.host)" != "$vpsip" ] && [ "$(uci -q get openmptcprouter.settings.ha)" != "1" ]; then + uci -q batch <<-EOF >/dev/null + set glorytun-udp.vpn.host="$vpsip" + EOF + glorytun_change=1 + fi if [ "$glorytun_change" != "0" ]; then uci -q batch <<-EOF >/dev/null commit glorytun + commit glorytun-udp EOF if [ "$(uci -q get glorytun.vpn.enable)" = "1" ]; then logger -t "OMR-VPS" "Restart glorytun..." /etc/init.d/glorytun restart >/dev/null 2>&1 + fi + if [ "$(uci -q get glorytun-udp.vpn.enable)" = "1" ]; then + logger -t "OMR-VPS" "Restart glorytun-udp..." /etc/init.d/glorytun-udp restart >/dev/null 2>&1 fi fi @@ -1148,9 +1158,6 @@ _set_config_from_vps() { if [ "$vpn" = "glorytun_tcp" ]; then glorytun_state=1 fi - if [ "$vpn" = "glorytun_udp" ]; then - glorytun_state=1 - fi [ -z "$glorytun_port" ] && glorytun_port="65001" glorytun_chacha="$(echo "$vps_config" | jsonfilter -q -e '@.glorytun.chacha')" [ -z "$glorytun_chacha" ] || [ "$glorytun_chacha" = "true" ] && glorytun_chacha=1 @@ -1167,6 +1174,28 @@ _set_config_from_vps() { uci -q commit glorytun logger -t "OMR-VPS" "Glorytun restart..." /etc/init.d/glorytun restart >/dev/null 2>&1 + fi + if ([ -n "$glorytun_key" ] && [ "$glorytun_key" != "$(uci -q get glorytun-udp.vpn.key)" ]) || ([ -n "$glorytun_port" ] || [ "$glorytun_port" != "$(uci -q get glorytun-udp.vpn.port)" ]); then + vpn="$(uci -q get openmptcprouter.settings.vpn)" + glorytun_state=0 + if [ "$vpn" = "glorytun_udp" ]; then + glorytun_state=1 + fi + [ -z "$glorytun_port" ] && glorytun_port="65001" + glorytun_chacha="$(echo "$vps_config" | jsonfilter -q -e '@.glorytun.chacha')" + [ -z "$glorytun_chacha" ] || [ "$glorytun_chacha" = "true" ] && glorytun_chacha=1 + [ "$glorytun_chacha" = "false" ] && glorytun_chacha=0 + uci -q batch <<-EOF >/dev/null + set glorytun-udp.vpn.port=$glorytun_port + set glorytun-udp.vpn.key=$glorytun_key + set glorytun-udp.vpn.enable=$glorytun_state + set glorytun-udp.vpn.chacha=$glorytun_chacha + EOF + if [ "$(uci -q get glorytun-udp.vpn.host)" != "127.0.0.1" ]; then + uci -q set glorytun-udp.vpn.host="$vpsip" + fi + uci -q commit glorytun-udp + logger -t "OMR-VPS" "Glorytun UDP restart..." /etc/init.d/glorytun-udp restart >/dev/null 2>&1 fi @@ -1535,6 +1564,14 @@ _config_service() { return } error=0 + if [ -n "$serial" ]; then + [ -z "$vps_config" ] && vps_config=$(_get_json "config?serial=${serial}") + if [ -n "$vps_config" ] && [ "$( echo "$vps_config" | jsonfilter -q -e '@.error')" = "False serial number" ]; then + logger -t "OMR-VPS" "Invalid serial number" + sed -i "s:${server}::g" /etc/config/* + return + fi + fi [ "$(uci -q get openmptcprouter.${servername}.get_config)" = "1" ] && [ "$(uci -q get openmptcprouter.${servername}.master)" = "1" ] && { _set_config_from_vps _get_gre_tunnel @@ -1555,6 +1592,8 @@ _config_service() { uci -q batch <<-EOF >/dev/null set glorytun.vpn.chacha20="0" commit glorytun + set glorytun-udp.vpn.chacha="0" + commit glorytun-udp EOF config_foreach _set_ss_server server "method" "aes-256-gcm" uci -q commit shadowsocks-libev @@ -1631,6 +1670,9 @@ set_pihole() { start_service() { serversnb=0 wanips="" + serial=$(cat /proc/cpuinfo | grep Serial | awk '{print $3}') + [ -z "$serial" ] && [ -f "/usr/sbin/dmidecode" ] && serial=$(/usr/sbin/dmidecode -t 1 | egrep 'Serial' | awk '{print $3}') + uci -q set openmptcprouter.settings.serial=${serial} config_load openmptcprouter config_foreach _count_server server config_foreach _get_local_wan_ip interface @@ -1642,6 +1684,6 @@ start_service() { } service_triggers() { - procd_add_reload_trigger openmptcprouter shadowsocks-libev glorytun mlvpn openvpn network upnpd dsvpn v2ray firewall + procd_add_reload_trigger openmptcprouter shadowsocks-libev glorytun glorytun-udp mlvpn openvpn network upnpd dsvpn v2ray firewall #procd_add_reload_trigger openmptcprouter shadowsocks-libev network upnpd } \ No newline at end of file From a5cec1b0fd525e9f13a548ac4110073be3db85de Mon Sep 17 00:00:00 2001 From: "Ycarus (Yannick Chabanois)" Date: Thu, 3 Dec 2020 11:32:03 +0100 Subject: [PATCH 078/117] Default dsvpn config --- .../files/etc/uci-defaults/2020-omr-vpn | 35 +++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/openmptcprouter/files/etc/uci-defaults/2020-omr-vpn b/openmptcprouter/files/etc/uci-defaults/2020-omr-vpn index 201c4c226..bb4dbf559 100755 --- a/openmptcprouter/files/etc/uci-defaults/2020-omr-vpn +++ b/openmptcprouter/files/etc/uci-defaults/2020-omr-vpn @@ -74,11 +74,18 @@ if [ "$(uci -q get dsvpn.vpn)" = "" ]; then set dsvpn.vpn.port=65011 set dsvpn.vpn.localip=10.255.251.2 set dsvpn.vpn.remoteip=10.255.251.1 + set dsvpn.vpn.mode=client set dsvpn.vpn.enable=0 commit dsvpn EOF fi +if [ "$(uci -q get dsvpn.vpn.mode)" = "" ]; then + uci -q batch <<-EOF >/dev/null + set dsvpn.vpn.mode=client + commit dsvpn + EOF +fi if [ "$(uci -q show firewall | grep omrvpn)" = "" ]; then uci -q batch <<-EOF >/dev/null @@ -100,6 +107,12 @@ if [ "$(uci -q get ucitrack.@network[-1].affects | grep glorytun)" = "" ]; then commit ucitrack EOF fi +if [ "$(uci -q get ucitrack.@network[-1].affects | grep glorytun-udp)" = "" ]; then + uci -q batch <<-EOF >/dev/null + add_list ucitrack.@network[-1].affects="glorytun-udp" + commit ucitrack + EOF +fi if [ "$(uci -q get ucitrack.@network[-1].affects | grep dsvpn)" = "" ]; then uci -q batch <<-EOF >/dev/null add_list ucitrack.@network[-1].affects="dsvpn" @@ -112,6 +125,28 @@ if [ "$(uci -q get ucitrack.@glorytun[-1].affects | grep openmptcprouter-vps)" = commit ucitrack EOF fi +if [ "$(uci -q get ucitrack.@glorytun-udp[-1].affects | grep openmptcprouter-vps)" = "" ]; then + uci -q batch <<-EOF >/dev/null + add_list ucitrack.@glorytun-udp[-1].affects="openmptcprouter-vps" + commit ucitrack + EOF +fi + +if [ "$(uci -q get glorytun-udp.vpn.key)" = "" ] && [ "$(uci -q get glorytun.vpn.key)" != "" ]; then + uci -q batch <<-EOF >/dev/null + set glorytun-udp.vpn.key=$(uci -q get glorytun.vpn.key) + set glorytun-udp.vpn.host=$(uci -q get glorytun.vpn.host) + EOF + if [ "$(uci -q get glorytun-udp.vpn.proto)" = "udp" ]; then + uci -q batch <<-EOF >/dev/null + set glorytun-udp.vpn.enable=1 + set glorytun.vpn.enable=0 + commit glorytun + EOF + fi + uci -q commit glorytun-udp +fi + rm -f /tmp/luci-indexcache From b854815d66a4439a4107899daf1acc33d6072070 Mon Sep 17 00:00:00 2001 From: "Ycarus (Yannick Chabanois)" Date: Thu, 3 Dec 2020 11:33:12 +0100 Subject: [PATCH 079/117] Flush v2ray config before setting new rules --- v2ray-core/files/etc/init.d/v2ray | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/v2ray-core/files/etc/init.d/v2ray b/v2ray-core/files/etc/init.d/v2ray index 98aacf26e..34acc668b 100755 --- a/v2ray-core/files/etc/init.d/v2ray +++ b/v2ray-core/files/etc/init.d/v2ray @@ -413,8 +413,12 @@ add_v2ray_redirect_rules() { test -n "$port" || return # This part need a rewrite + v2ray-rules -f v2ray-rules -l ${port} -L ${port} -s $OUTBOUND_SERVERS_V4 --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 + [ "$(uci -q get v2ray.main.inbounds | grep omr6)" != "" ] && { + v2ray-rules6 -f + 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 44ea3913e9519a486a5d260625cdeef2912fc3f5 Mon Sep 17 00:00:00 2001 From: "Ycarus (Yannick Chabanois)" Date: Thu, 3 Dec 2020 11:33:33 +0100 Subject: [PATCH 080/117] Disable v2ray log --- v2ray-core/files/etc/uci-defaults/3010-omr-v2ray | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/v2ray-core/files/etc/uci-defaults/3010-omr-v2ray b/v2ray-core/files/etc/uci-defaults/3010-omr-v2ray index 18a3cc65d..f0a22aff0 100644 --- a/v2ray-core/files/etc/uci-defaults/3010-omr-v2ray +++ b/v2ray-core/files/etc/uci-defaults/3010-omr-v2ray @@ -6,9 +6,9 @@ if [ -z "$(uci -q get v2ray.main)" ]; then set v2ray.main=v2ray set v2ray.main.v2ray_file='/usr/bin/v2ray' set v2ray.main.mem_percentage='0' - set v2ray.main.loglevel='warning' + set v2ray.main.loglevel='debug' set v2ray.main.access_log='/dev/null' - set v2ray.main.error_log='/var/log/v2ray-error.log' + set v2ray.main.error_log='/dev/null' set v2ray.main.enabled='0' set v2ray.main.outbounds='omrout' set v2ray.main.inbounds='omr' @@ -136,5 +136,11 @@ if [ "$(uci -q get v2ray.omrrouting)" = "" ]; then EOF fi +if [ "$(uci -q get v2ray.main.error_log)" != "/dev/null" ]; then + uci -q batch <<-EOF >/dev/null + set v2ray.main.error_log='/dev/null' + commit v2ray + EOF +fi exit 0 \ No newline at end of file From f05cf9bd16520517a4c2b10e0a05b29b72b4c5b5 Mon Sep 17 00:00:00 2001 From: "Ycarus (Yannick Chabanois)" Date: Fri, 4 Dec 2020 15:02:45 +0100 Subject: [PATCH 081/117] Update whois --- whois/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/whois/Makefile b/whois/Makefile index ab5bf1153..0f4253993 100644 --- a/whois/Makefile +++ b/whois/Makefile @@ -2,13 +2,13 @@ include $(TOPDIR)/rules.mk PKG_NAME:=whois -PKG_VERSION:=5.4.3 +PKG_VERSION:=5.5.7 PKG_RELEASE:=1 PKG_BUILD_DIR:=$(BUILD_DIR)/$(BUILD_VARIANT)/$(PKG_NAME)-$(PKG_VERSION) PKG_SOURCE:=$(PKG_NAME)_$(PKG_VERSION).tar.xz PKG_SOURCE_URL:=http://ftp.debian.org/debian/pool/main/w/whois -PKG_HASH:=fefa84029f70985db19743e51c4a8b318a169426babeaa824a27110c26090fc3 +PKG_HASH:=3efa700dbf38d127c31b21af3176cd6e5a69f96a056be60ac1dcd13df7717393 PKG_CAT:=xzcat PKG_INSTALL:=1 From 8fa69941af0a3025d32915fb0b7c687ef030bede Mon Sep 17 00:00:00 2001 From: "Ycarus (Yannick Chabanois)" Date: Fri, 4 Dec 2020 15:46:27 +0100 Subject: [PATCH 082/117] Fix whois package --- whois/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/whois/Makefile b/whois/Makefile index 0f4253993..ae17cb7f7 100644 --- a/whois/Makefile +++ b/whois/Makefile @@ -5,7 +5,7 @@ PKG_NAME:=whois PKG_VERSION:=5.5.7 PKG_RELEASE:=1 -PKG_BUILD_DIR:=$(BUILD_DIR)/$(BUILD_VARIANT)/$(PKG_NAME)-$(PKG_VERSION) +PKG_BUILD_DIR:=$(BUILD_DIR)/$(BUILD_VARIANT)/$(PKG_NAME) PKG_SOURCE:=$(PKG_NAME)_$(PKG_VERSION).tar.xz PKG_SOURCE_URL:=http://ftp.debian.org/debian/pool/main/w/whois PKG_HASH:=3efa700dbf38d127c31b21af3176cd6e5a69f96a056be60ac1dcd13df7717393 From 3bf770dc0969f6043e4c421959fd06c6e01dcd55 Mon Sep 17 00:00:00 2001 From: "Ycarus (Yannick Chabanois)" Date: Fri, 4 Dec 2020 16:25:04 +0100 Subject: [PATCH 083/117] Add VPN translation templates --- luci-app-dsvpn/po/templates/dsvpn.pot | 59 +++++++++++ .../po/templates/glorytun-tcp.pot | 87 ++++++++++++++++ .../po/templates/glorytun-udp.pot | 99 +++++++++++++++++++ luci-app-mlvpn/po/templates/mlvpn.pot | 71 +++++++++++++ 4 files changed, 316 insertions(+) create mode 100644 luci-app-dsvpn/po/templates/dsvpn.pot create mode 100644 luci-app-glorytun-tcp/po/templates/glorytun-tcp.pot create mode 100644 luci-app-glorytun-udp/po/templates/glorytun-udp.pot create mode 100644 luci-app-mlvpn/po/templates/mlvpn.pot diff --git a/luci-app-dsvpn/po/templates/dsvpn.pot b/luci-app-dsvpn/po/templates/dsvpn.pot new file mode 100644 index 000000000..8f77636dc --- /dev/null +++ b/luci-app-dsvpn/po/templates/dsvpn.pot @@ -0,0 +1,59 @@ +msgid "" +msgstr "Content-Type: text/plain; charset=UTF-8" + +#: luci-app-dsvpn/htdocs/luci-static/resources/view/services/dsvpn.js:35 +msgid "Client" +msgstr "" + +#: luci-app-dsvpn/htdocs/luci-static/resources/view/services/dsvpn.js:24 +#: luci-app-dsvpn/root/usr/share/luci/menu.d/luci-app-dsvpn.json:3 +msgid "DSVPN" +msgstr "" + +#: luci-app-dsvpn/htdocs/luci-static/resources/view/services/dsvpn.js:31 +msgid "Enabled" +msgstr "" + +#: luci-app-dsvpn/root/usr/share/rpcd/acl.d/luci-app-dsvpn.json:3 +msgid "Grant access to DSVPN" +msgstr "" + +#: luci-app-dsvpn/htdocs/luci-static/resources/view/services/dsvpn.js:39 +msgid "Host" +msgstr "" + +#: luci-app-dsvpn/htdocs/luci-static/resources/view/services/dsvpn.js:26 +msgid "Instances" +msgstr "" + +#: luci-app-dsvpn/htdocs/luci-static/resources/view/services/dsvpn.js:49 +msgid "Interface name" +msgstr "" + +#: luci-app-dsvpn/htdocs/luci-static/resources/view/services/dsvpn.js:45 +msgid "Key" +msgstr "" + +#: luci-app-dsvpn/htdocs/luci-static/resources/view/services/dsvpn.js:61 +msgid "Label" +msgstr "" + +#: luci-app-dsvpn/htdocs/luci-static/resources/view/services/dsvpn.js:53 +msgid "Local IP" +msgstr "" + +#: luci-app-dsvpn/htdocs/luci-static/resources/view/services/dsvpn.js:34 +msgid "Mode" +msgstr "" + +#: luci-app-dsvpn/htdocs/luci-static/resources/view/services/dsvpn.js:42 +msgid "Port" +msgstr "" + +#: luci-app-dsvpn/htdocs/luci-static/resources/view/services/dsvpn.js:57 +msgid "Remote IP" +msgstr "" + +#: luci-app-dsvpn/htdocs/luci-static/resources/view/services/dsvpn.js:36 +msgid "Server" +msgstr "" diff --git a/luci-app-glorytun-tcp/po/templates/glorytun-tcp.pot b/luci-app-glorytun-tcp/po/templates/glorytun-tcp.pot new file mode 100644 index 000000000..4f7759dc3 --- /dev/null +++ b/luci-app-glorytun-tcp/po/templates/glorytun-tcp.pot @@ -0,0 +1,87 @@ +msgid "" +msgstr "Content-Type: text/plain; charset=UTF-8" + +#: luci-app-glorytun-tcp/htdocs/luci-static/resources/view/services/glorytun-tcp.js:32 +msgid "Advanced Settings" +msgstr "" + +#: luci-app-glorytun-tcp/htdocs/luci-static/resources/view/services/glorytun-tcp.js:38 +msgid "Client" +msgstr "" + +#: luci-app-glorytun-tcp/htdocs/luci-static/resources/view/services/glorytun-tcp.js:34 +msgid "Enabled" +msgstr "" + +#: luci-app-glorytun-tcp/htdocs/luci-static/resources/view/services/glorytun-tcp.js:68 +msgid "Force fallback cipher" +msgstr "" + +#: luci-app-glorytun-tcp/htdocs/luci-static/resources/view/services/glorytun-tcp.js:31 +msgid "General Settings" +msgstr "" + +#: luci-app-glorytun-tcp/htdocs/luci-static/resources/view/services/glorytun-tcp.js:24 +#: luci-app-glorytun-tcp/root/usr/share/luci/menu.d/luci-app-glorytun-tcp.json:3 +msgid "Glorytun TCP" +msgstr "" + +#: luci-app-glorytun-tcp/root/usr/share/rpcd/acl.d/luci-app-glorytun-tcp.json:3 +msgid "Grant access to glorytun TCP" +msgstr "" + +#: luci-app-glorytun-tcp/htdocs/luci-static/resources/view/services/glorytun-tcp.js:42 +msgid "Host" +msgstr "" + +#: luci-app-glorytun-tcp/htdocs/luci-static/resources/view/services/glorytun-tcp.js:26 +msgid "Instances" +msgstr "" + +#: luci-app-glorytun-tcp/htdocs/luci-static/resources/view/services/glorytun-tcp.js:52 +msgid "Interface name" +msgstr "" + +#: luci-app-glorytun-tcp/htdocs/luci-static/resources/view/services/glorytun-tcp.js:48 +msgid "Key" +msgstr "" + +#: luci-app-glorytun-tcp/htdocs/luci-static/resources/view/services/glorytun-tcp.js:82 +msgid "Label" +msgstr "" + +#: luci-app-glorytun-tcp/htdocs/luci-static/resources/view/services/glorytun-tcp.js:56 +msgid "Local IP" +msgstr "" + +#: luci-app-glorytun-tcp/htdocs/luci-static/resources/view/services/glorytun-tcp.js:64 +msgid "MPTCP" +msgstr "" + +#: luci-app-glorytun-tcp/htdocs/luci-static/resources/view/services/glorytun-tcp.js:37 +msgid "Mode" +msgstr "" + +#: luci-app-glorytun-tcp/htdocs/luci-static/resources/view/services/glorytun-tcp.js:77 +msgid "Multiqueue" +msgstr "" + +#: luci-app-glorytun-tcp/htdocs/luci-static/resources/view/services/glorytun-tcp.js:45 +msgid "Port" +msgstr "" + +#: luci-app-glorytun-tcp/htdocs/luci-static/resources/view/services/glorytun-tcp.js:60 +msgid "Remote IP" +msgstr "" + +#: luci-app-glorytun-tcp/htdocs/luci-static/resources/view/services/glorytun-tcp.js:39 +msgid "Server" +msgstr "" + +#: luci-app-glorytun-tcp/htdocs/luci-static/resources/view/services/glorytun-tcp.js:72 +msgid "Timeout" +msgstr "" + +#: luci-app-glorytun-tcp/htdocs/luci-static/resources/view/services/glorytun-tcp.js:68 +msgid "chacha" +msgstr "" diff --git a/luci-app-glorytun-udp/po/templates/glorytun-udp.pot b/luci-app-glorytun-udp/po/templates/glorytun-udp.pot new file mode 100644 index 000000000..04edec275 --- /dev/null +++ b/luci-app-glorytun-udp/po/templates/glorytun-udp.pot @@ -0,0 +1,99 @@ +msgid "" +msgstr "Content-Type: text/plain; charset=UTF-8" + +#: luci-app-glorytun-udp/htdocs/luci-static/resources/view/services/glorytun-udp.js:40 +msgid "Advanced Settings" +msgstr "" + +#: luci-app-glorytun-udp/htdocs/luci-static/resources/view/services/glorytun-udp.js:46 +msgid "Client" +msgstr "" + +#: luci-app-glorytun-udp/htdocs/luci-static/resources/view/services/glorytun-udp.js:85 +msgid "Clock sync tolerance" +msgstr "" + +#: luci-app-glorytun-udp/htdocs/luci-static/resources/view/services/glorytun-udp.js:95 +msgid "Dynamic rate detection" +msgstr "" + +#: luci-app-glorytun-udp/htdocs/luci-static/resources/view/services/glorytun-udp.js:42 +msgid "Enabled" +msgstr "" + +#: luci-app-glorytun-udp/htdocs/luci-static/resources/view/services/glorytun-udp.js:76 +msgid "Force fallback cipher" +msgstr "" + +#: luci-app-glorytun-udp/htdocs/luci-static/resources/view/services/glorytun-udp.js:39 +msgid "General Settings" +msgstr "" + +#: luci-app-glorytun-udp/htdocs/luci-static/resources/view/services/glorytun-udp.js:32 +#: luci-app-glorytun-udp/root/usr/share/luci/menu.d/luci-app-glorytun-udp.json:3 +msgid "Glorytun UDP" +msgstr "" + +#: luci-app-glorytun-udp/root/usr/share/rpcd/acl.d/luci-app-glorytun-udp.json:3 +msgid "Grant access to glorytun UDP" +msgstr "" + +#: luci-app-glorytun-udp/htdocs/luci-static/resources/view/services/glorytun-udp.js:50 +msgid "Host" +msgstr "" + +#: luci-app-glorytun-udp/htdocs/luci-static/resources/view/services/glorytun-udp.js:34 +msgid "Instances" +msgstr "" + +#: luci-app-glorytun-udp/htdocs/luci-static/resources/view/services/glorytun-udp.js:60 +msgid "Interface name" +msgstr "" + +#: luci-app-glorytun-udp/htdocs/luci-static/resources/view/services/glorytun-udp.js:90 +msgid "Keep alive timeout" +msgstr "" + +#: luci-app-glorytun-udp/htdocs/luci-static/resources/view/services/glorytun-udp.js:72 +msgid "Keep the tunnel device after exiting" +msgstr "" + +#: luci-app-glorytun-udp/htdocs/luci-static/resources/view/services/glorytun-udp.js:56 +msgid "Key" +msgstr "" + +#: luci-app-glorytun-udp/htdocs/luci-static/resources/view/services/glorytun-udp.js:80 +msgid "Key rotation timeout" +msgstr "" + +#: luci-app-glorytun-udp/htdocs/luci-static/resources/view/services/glorytun-udp.js:99 +msgid "Label" +msgstr "" + +#: luci-app-glorytun-udp/htdocs/luci-static/resources/view/services/glorytun-udp.js:64 +msgid "Local IP" +msgstr "" + +#: luci-app-glorytun-udp/htdocs/luci-static/resources/view/services/glorytun-udp.js:45 +msgid "Mode" +msgstr "" + +#: luci-app-glorytun-udp/htdocs/luci-static/resources/view/services/glorytun-udp.js:72 +msgid "Persist" +msgstr "" + +#: luci-app-glorytun-udp/htdocs/luci-static/resources/view/services/glorytun-udp.js:53 +msgid "Port" +msgstr "" + +#: luci-app-glorytun-udp/htdocs/luci-static/resources/view/services/glorytun-udp.js:68 +msgid "Remote IP" +msgstr "" + +#: luci-app-glorytun-udp/htdocs/luci-static/resources/view/services/glorytun-udp.js:47 +msgid "Server" +msgstr "" + +#: luci-app-glorytun-udp/htdocs/luci-static/resources/view/services/glorytun-udp.js:76 +msgid "chacha" +msgstr "" diff --git a/luci-app-mlvpn/po/templates/mlvpn.pot b/luci-app-mlvpn/po/templates/mlvpn.pot new file mode 100644 index 000000000..45e559267 --- /dev/null +++ b/luci-app-mlvpn/po/templates/mlvpn.pot @@ -0,0 +1,71 @@ +msgid "" +msgstr "Content-Type: text/plain; charset=UTF-8" + +#: luci-app-mlvpn/htdocs/luci-static/resources/view/services/mlvpn.js:32 +msgid "Advanced Settings" +msgstr "" + +#: luci-app-mlvpn/htdocs/luci-static/resources/view/services/mlvpn.js:38 +msgid "Client" +msgstr "" + +#: luci-app-mlvpn/htdocs/luci-static/resources/view/services/mlvpn.js:34 +msgid "Enabled" +msgstr "" + +#: luci-app-mlvpn/htdocs/luci-static/resources/view/services/mlvpn.js:45 +msgid "First Port" +msgstr "" + +#: luci-app-mlvpn/htdocs/luci-static/resources/view/services/mlvpn.js:31 +msgid "General Settings" +msgstr "" + +#: luci-app-mlvpn/root/usr/share/rpcd/acl.d/luci-app-mlvpn.json:3 +msgid "Grant UCI access for luci-app-mlvpn" +msgstr "" + +#: luci-app-mlvpn/htdocs/luci-static/resources/view/services/mlvpn.js:42 +msgid "Host" +msgstr "" + +#: luci-app-mlvpn/htdocs/luci-static/resources/view/services/mlvpn.js:26 +msgid "Instances" +msgstr "" + +#: luci-app-mlvpn/htdocs/luci-static/resources/view/services/mlvpn.js:54 +msgid "Interface name" +msgstr "" + +#: luci-app-mlvpn/htdocs/luci-static/resources/view/services/mlvpn.js:78 +msgid "Label" +msgstr "" + +#: luci-app-mlvpn/htdocs/luci-static/resources/view/services/mlvpn.js:72 +msgid "Loss tolerance" +msgstr "" + +#: luci-app-mlvpn/htdocs/luci-static/resources/view/services/mlvpn.js:24 +#: luci-app-mlvpn/root/usr/share/luci/menu.d/luci-app-mlvpn.json:3 +msgid "MLVPN" +msgstr "" + +#: luci-app-mlvpn/htdocs/luci-static/resources/view/services/mlvpn.js:37 +msgid "Mode" +msgstr "" + +#: luci-app-mlvpn/htdocs/luci-static/resources/view/services/mlvpn.js:50 +msgid "Password" +msgstr "" + +#: luci-app-mlvpn/htdocs/luci-static/resources/view/services/mlvpn.js:66 +msgid "Reorder buffer size" +msgstr "" + +#: luci-app-mlvpn/htdocs/luci-static/resources/view/services/mlvpn.js:39 +msgid "Server" +msgstr "" + +#: luci-app-mlvpn/htdocs/luci-static/resources/view/services/mlvpn.js:60 +msgid "Timeout (s)" +msgstr "" From d6fb86ed7a50452e65b5d26c5e6ae19fc8790dd7 Mon Sep 17 00:00:00 2001 From: "Ycarus (Yannick Chabanois)" Date: Tue, 8 Dec 2020 09:24:57 +0100 Subject: [PATCH 084/117] Add case when proxy is none --- openmptcprouter/files/etc/init.d/openmptcprouter-vps | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/openmptcprouter/files/etc/init.d/openmptcprouter-vps b/openmptcprouter/files/etc/init.d/openmptcprouter-vps index b84667234..08ce14400 100755 --- a/openmptcprouter/files/etc/init.d/openmptcprouter-vps +++ b/openmptcprouter/files/etc/init.d/openmptcprouter-vps @@ -1065,6 +1065,15 @@ _set_config_from_vps() { set openmptcprouter.settings.shadowsocks_disable=1 commit openmptcprouter EOF + elif [ "$current_proxy" = "none" ]; then + uci -q batch <<-EOF >/dev/null + set shadowsocks-libev.sss0.disabled=1 + commit shadowsocks-libev + set v2ray.main.enabled=0 + commit shadowsocks-libev + set openmptcprouter.settings.shadowsocks_disable=1 + commit openmptcprouter + EOF fi fi fi From 66658d24274d89556a4d506e0a828c51a6197f7b Mon Sep 17 00:00:00 2001 From: "Ycarus (Yannick Chabanois)" Date: Tue, 8 Dec 2020 09:25:24 +0100 Subject: [PATCH 085/117] Check openvpn available using init script --- luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm b/luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm index 0973622ab..d8cda41f8 100644 --- a/luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm +++ b/luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm @@ -305,7 +305,7 @@ <% elseif vpn == "ubond" then %> <% if nixio.fs.access("/usr/sbin/ubond") then %><% end %> <% elseif vpn == "openvpn" then %> - <% if nixio.fs.access("/usr/sbin/openvpn") then %><% end %> + <% if nixio.fs.access("/etc/init.d/openvpn") then %><% end %> <% end end From 6ae061e10bfcddb220b096e29d39b3c2300bdce9 Mon Sep 17 00:00:00 2001 From: "Ycarus (Yannick Chabanois)" Date: Tue, 8 Dec 2020 09:26:00 +0100 Subject: [PATCH 086/117] Replace luci-app-glorytun by luci-app-glorytun-tcp and luci-app-glorytun-udp in mini Makefile --- openmptcprouter-mini/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/openmptcprouter-mini/Makefile b/openmptcprouter-mini/Makefile index dc35d60b5..96a01ac3a 100644 --- a/openmptcprouter-mini/Makefile +++ b/openmptcprouter-mini/Makefile @@ -35,7 +35,7 @@ MY_DEPENDS := \ wireless-tools \ libiwinfo-lua \ ca-bundle ca-certificates libustream-openssl \ - luci-mod-admin-full luci-app-firewall luci-app-glorytun luci-app-shadowsocks-libev luci-app-unbound luci-theme-openmptcprouter luci-base \ + luci-mod-admin-full luci-app-firewall luci-app-glorytun-tcp luci-app-glorytun-udp luci-app-shadowsocks-libev luci-app-unbound luci-theme-openmptcprouter luci-base \ luci-app-omr-tracker luci-app-omr-dscp \ luci-app-sqm sqm-scripts-extra \ luci-app-vnstat2 omr-quota luci-app-omr-quota \ From 19dde3a38a6b0e13ec629387c3b09fcb0b1477d7 Mon Sep 17 00:00:00 2001 From: "Ycarus (Yannick Chabanois)" Date: Wed, 9 Dec 2020 14:27:15 +0100 Subject: [PATCH 087/117] Update v2ray core --- v2ray-core/Makefile | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/v2ray-core/Makefile b/v2ray-core/Makefile index 70a5cf50f..206aa724f 100644 --- a/v2ray-core/Makefile +++ b/v2ray-core/Makefile @@ -9,12 +9,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=v2ray-core -PKG_VERSION:=4.28.2 +PKG_VERSION:=4.31.0 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/v2ray/v2ray-core/tar.gz/v$(PKG_VERSION)? -PKG_HASH:=13d985f7c1d5eb8fa991562eb4b815cb73c15f67f91e36b36b3cf5901529243e +PKG_HASH:=4e475c700863320b92689cb36ef993133e9c799375bbfc4a2811da2283c3673f PKG_LICENSE:=MIT PKG_LICENSE_FILES:=LICENSE @@ -67,7 +67,7 @@ define Package/v2ray-core SECTION:=net CATEGORY:=Network SUBMENU:=Project V - DEPENDS:=$(GO_ARCH_DEPENDS) +ca-bundle + DEPENDS:=$(GO_ARCH_DEPENDS) +ca-bundle +protobuf endef define Package/v2ray-core/config From 93694b59832923d16f205f423ea9731a4c87c566 Mon Sep 17 00:00:00 2001 From: "Ycarus (Yannick Chabanois)" Date: Wed, 9 Dec 2020 14:53:48 +0100 Subject: [PATCH 088/117] Add luci-app-packet-capture --- luci-app-packet-capture/Makefile | 14 + .../resources/view/packet_capture/tcpdump.js | 287 ++++++++++++++++++ .../root/etc/config/packet_capture | 1 + .../root/usr/libexec/packet_capture | 64 ++++ .../root/usr/libexec/packet_capture_start | 69 +++++ .../root/usr/libexec/packet_capture_stop | 9 + .../luci/menu.d/luci-app-packet-capture.json | 18 ++ .../rpcd/acl.d/luci-app-packet-capture.json | 25 ++ openmptcprouter-full/Makefile | 4 +- 9 files changed, 489 insertions(+), 2 deletions(-) create mode 100644 luci-app-packet-capture/Makefile create mode 100644 luci-app-packet-capture/htdocs/luci-static/resources/view/packet_capture/tcpdump.js create mode 100644 luci-app-packet-capture/root/etc/config/packet_capture create mode 100755 luci-app-packet-capture/root/usr/libexec/packet_capture create mode 100755 luci-app-packet-capture/root/usr/libexec/packet_capture_start create mode 100755 luci-app-packet-capture/root/usr/libexec/packet_capture_stop create mode 100644 luci-app-packet-capture/root/usr/share/luci/menu.d/luci-app-packet-capture.json create mode 100644 luci-app-packet-capture/root/usr/share/rpcd/acl.d/luci-app-packet-capture.json diff --git a/luci-app-packet-capture/Makefile b/luci-app-packet-capture/Makefile new file mode 100644 index 000000000..ef6370df3 --- /dev/null +++ b/luci-app-packet-capture/Makefile @@ -0,0 +1,14 @@ +# Copyright 2020 Wojciech Jowsa (wojciech.jowsa@gmail.com) +# This is free software, licensed under the Apache License, Version 2.0 + +include $(TOPDIR)/rules.mk + +LUCI_TITLE:=Packet capture application +LUCI_DEPENDS:=+luci-mod-admin-full +tcpdump +uhttpd-mod-ubus +coreutils +coreutils-timeout + +PKG_MAINTAINER:=Wojciech Jowsa +PKG_LICENSE:=Apache-2.0 + +include $(TOPDIR)/feeds/luci/luci.mk + +# call BuildPackage - OpenWrt buildroot signatureet diff --git a/luci-app-packet-capture/htdocs/luci-static/resources/view/packet_capture/tcpdump.js b/luci-app-packet-capture/htdocs/luci-static/resources/view/packet_capture/tcpdump.js new file mode 100644 index 000000000..6bf42cc3f --- /dev/null +++ b/luci-app-packet-capture/htdocs/luci-static/resources/view/packet_capture/tcpdump.js @@ -0,0 +1,287 @@ +'use strict'; +'require rpc'; +'require uci'; +'require ui'; +'require fs'; +'require form'; +'require network'; +'require tools.widgets as widgets'; + +var eventSource, + captureFilePoll, + hostName; + +function stopTcpdump() { + fs.exec("/usr/libexec/packet_capture_stop").then(function(replay) { + if (eventSource) + eventSource.close(); + }.bind(this)).catch(function(error) { + console.log(error); + }); +} + +window.addEventListener('beforeunload', stopTcpdump); + +var callLuciProcessList = rpc.declare({ + object: 'luci', + method: 'getProcessList', + expect: { result: [] } +}); + +var callInitAction = rpc.declare({ + object: 'luci', + method: 'setInitAction', + params: [ 'name', 'action' ], + expect: { result: false } +}); + +function addOutput() { + var tcpdumpOut = document.querySelectorAll('[id$="tcpdump_out"]')[0]; + if (tcpdumpOut) + return; + + var frameEl = E('div', {'class': 'cbi-value'}); + + frameEl.appendChild(E('textarea', { + 'id': 'tcpdump_out', + 'class': 'cbi-input-textarea', + 'readonly': '', + 'style': 'width:100%', + 'rows': 30, + })); + + frameEl.firstElementChild.style.fontFamily = 'monospace'; + + var downloadBtn = document.querySelectorAll('[id$="download_file"]')[0]; + if (downloadBtn) + downloadBtn.parentNode.insertBefore(frameEl, downloadBtn.nextSibling); +} + +var downloadCaptureFile = function(ev) { + var form = E('form', { + method: 'post', + action: '/cgi-bin/cgi-download', + enctype: 'application/x-www-form-urlencoded' + }, E('input', { type: 'hidden', name: 'sessionid', value: rpc.getSessionID()}, + E('input', { type: 'hidden', name: 'path', value: "/tmp/capture.pcap"}, + E('input', { type: 'hidden', name: 'filename', value: hostName + "-" + Date.now() + ".pcap"}, + E('input', { type: 'hidden', name: 'mimetype', value: 'application/vnd.tcpdump.pcap'} + ))))); + + ev.currentTarget.parentNode.appendChild(form); + form.submit(); + form.parentNode.removeChild(form); +} + +function subscribeTcpdump() { + if (eventSource) + eventSource.close(); + + eventSource = new EventSource('/ubus/subscribe/tcpdump' + '?' + rpc.getSessionID()); + eventSource.onerror = function(event) { + eventSource.close(); + console.log(event); + }; + + addOutput(); + var textOut = document.querySelectorAll('[id$="tcpdump_out"]')[0]; + textOut.value = ""; + eventSource.addEventListener("tcpdump.data", function(event) { + textOut.value = textOut.value + "\n" + JSON.parse(event.data).data; + }); +} + +function updateButtons() { + var tasks = []; + tasks.push(fs.stat("/var/run/packet_capture.pid").then(L.bind(function(res) { + var downloadBtn = document.querySelectorAll('[id$="download_file"]')[0]; + if (!downloadBtn) + return; + if (!eventSource || eventSource.readyState == 2) + subscribeTcpdump(); + var textOut = document.querySelectorAll('[id$="tcpdump_out"]')[0]; + if (textOut) + textOut.style.borderColor = "green"; + var startBtn = document.querySelectorAll('[id$="start_tcpdump"]')[0]; + if (startBtn) + startBtn.hidden = true; + var stopBtn = document.querySelectorAll('[id$="stop_tcpdump"]')[0]; + if (stopBtn) + stopBtn.hidden = false; + return; + })).catch(function(error) { + var textOut = document.querySelectorAll('[id$="tcpdump_out"]')[0]; + if (textOut) + textOut.style.borderColor = "red"; + var startBtn = document.querySelectorAll('[id$="start_tcpdump"]')[0]; + if (startBtn) + startBtn.hidden = false; + var stopBtn = document.querySelectorAll('[id$="stop_tcpdump"]')[0]; + if (stopBtn) + stopBtn.hidden = true; + if (eventSource) + eventSource.close(); + })); + + return Promise.all(tasks); +} + +function updatePollCheckCaptureFileExists() { + checkCaptureFileExists(); + L.Poll.remove(captureFilePoll); + L.Poll.add(L.bind(checkCaptureFileExists, m),5); +} + +function checkCaptureFileExists() { + var tasks = []; + tasks.push(fs.stat("/tmp/capture.pcap").then(L.bind(function(res) { + var downloadBtn = document.querySelector('[data-action="download"]'); + if (!downloadBtn) + return; + var downloadCheckBox = document.querySelectorAll('[data-widget-id$="file"]')[0].checked; + if (!downloadCheckBox) { + fs.remove("/tmp/capture.pcap").then(function(replay) { + downloadBtn.disabled = true;; + }.bind(this)).catch(function(error) { + console.log(error); + }); + } else { + downloadBtn.disabled = false; + } + })).catch(function(error) { + var downloadBtn = document.querySelector('[data-action="download"]'); + if (downloadBtn) + downloadBtn.disabled = true; + })); + + return Promise.all(tasks); +} + +return L.view.extend({ + + load: function() { + return Promise.all([ + uci.load('system') + ]); + }, + + handleDownload: function(ev) { + downloadCaptureFile(ev); + }, + + render: function(processes) { + var m, s, o; + + hostName = uci.get('system', '@system[0]', 'hostname'); + + m = new form.Map('packet_capture', _('Packet Capture - Tcpdump'), _('Capture packets with tcpdump.')); + s = m.section(form.TypedSection, 'tcpdump'); + s.anonymous = 1; + + o = s.option(widgets.DeviceSelect, 'interface', _('Interface'), _('')); + o.noaliases = true; + o.modalonly = true; + o.rmempty = false; + o.filter = function(section_id, value) { + return true; + } + + o = s.option(form.Value, 'filter', _('Filter'), _('Tcpdump filter like protocol, port etc.')); + o.modalonly = false; + o.datatype = 'and(minlength(1),maxlength(1024))'; + + o = s.option(form.Value, 'duration', _('Duration'), _('Duration of packet capturing in seconds.')); + o.modalonly = false; + o.datatype = 'range(1,4294967296)'; + + o = s.option(form.Value, 'packets', _('Packets'), _('Number of packets to be captured.')); + o.modalonly = false; + o.datatype = 'range(1,4294967296)'; + + o = s.option(form.Flag, 'domains', _('Resolve domains'), _("Convert host addresses to names.")); + + o = s.option(form.Flag, 'verbose', _('Verbose output'), _("Print the link-level header on each dump line.")); + + o = s.option(form.Flag, 'file', _('Save to file'), _("Save capture to pcap file.")); + + o = s.option(form.Button, 'start_tcpdump', _('Start tcpdump'), _('')); + o.inputstyle = 'apply'; + o.onclick = ui.createHandlerFn(this, function(section_id, ev) { + var downloadBtn = document.querySelector('[data-action="download"]'); + if (!downloadBtn) + return; + fs.remove("/tmp/capture.pcap").then(function(replay) { + downloadBtn.disabled = true;; + }.bind(this)).catch(function(error) { + console.log(error); + }); + + var iface = document.querySelectorAll('[id$="interface"]')[1].value, + filter = document.querySelectorAll('[id$="filter"]')[2].value, + packets = document.querySelectorAll('[id$="packets"]')[2].value, + duration = document.querySelectorAll('[id$="duration"]')[2].value, + verbose = document.querySelectorAll('[data-widget-id$="verbose"]')[0].checked, + domains = document.querySelectorAll('[data-widget-id$="domains"]')[0].checked, + file = document.querySelectorAll('[data-widget-id$="file"]')[0].checked + + var args = { + "interface": iface, + "filter": filter, + "packets": packets, + "duration": duration, + "verbose": verbose, + "domains": domains, + "file": file + } + + return fs.exec_direct('/usr/libexec/packet_capture_start', [JSON.stringify(args)]).then(function(replay) { + var error_position = replay.search("error:"); + if (error_position != -1){ + ui.showModal(_(replay.substring(error_position + 6, replay.length)), [ + E('div', { 'class': 'right' }, [ + E('button', { + 'class': 'cbi-button cbi-button-negative important', + 'click': function(ev) { + ui.hideModal(); + } + }, _('Close')), + ]) + ]); + return; + } + rpc.list.apply(rpc).then(function(res) { + for (var k in res) { + if (res[k] == "tcpdump" ) + subscribeTcpdump() + } + }.bind(this)); + }.bind(this)).catch(function(error) { + console.log(error); + }); + }); + + o = s.option(form.Button, 'stop_tcpdump', _('Stop tcpdump'), _('')); + o.inputstyle = 'apply'; + o.onclick = ui.createHandlerFn(this, function(section_id, ev) { + if (!eventSource) + return; + return fs.exec("/usr/libexec/packet_capture_stop").then(function(replay) { + eventSource.close(); + }.bind(this)).catch(function(error) { + console.log(error); + }); + }); + + o = s.option(form.Button, 'download_file', _('Download capture file')); + o.inputstyle = 'action important'; + o.inputtitle = _('Download'); + o.data_action = 'download' + o.onclick = this.handleDownload; + + L.Poll.add(L.bind(updateButtons, m),1); + captureFilePoll = L.bind(updatePollCheckCaptureFileExists, m); + L.Poll.add(captureFilePoll,1); + + return m.render(); + }, +}); diff --git a/luci-app-packet-capture/root/etc/config/packet_capture b/luci-app-packet-capture/root/etc/config/packet_capture new file mode 100644 index 000000000..105a0dc30 --- /dev/null +++ b/luci-app-packet-capture/root/etc/config/packet_capture @@ -0,0 +1 @@ +config tcpdump \ No newline at end of file diff --git a/luci-app-packet-capture/root/usr/libexec/packet_capture b/luci-app-packet-capture/root/usr/libexec/packet_capture new file mode 100755 index 000000000..e1ecf23f7 --- /dev/null +++ b/luci-app-packet-capture/root/usr/libexec/packet_capture @@ -0,0 +1,64 @@ +#!/usr/bin/env lua + +local ubus = require "ubus" +local fs = require "nixio.fs" + +local conn = ubus.connect() +if not conn then + error("Failed to connect to ubus") + return +end + +local args = "-n" +local duration = "" + +if arg[1] ~= nil then + args = arg[1] + if arg[2] ~= "" then + duration = arg[2] + end +end + +local filter = fs.stat("/tmp/tcpdump_filter") +if filter then + args = args .. " -F /tmp/tcpdump_filter" +end + +local ubus_objects = { + tcpdump = { + } +} + +conn:add( ubus_objects ) + +os.execute("sleep 1") + +local command = "tcpdump -l " .. args .. " 2>&1" + +if duration ~= "" then + command = "timeout " .. duration .. " " .. command +end + +local pipe = io.popen(command) + +for line in pipe:lines() do + local params = { + data = line + } + conn:notify(ubus_objects.tcpdump.__ubusobj, "tcpdump.data", params) +end + +local pcap = fs.stat("/tmp/capture.pcap0") +if pcap then + fs.move("/tmp/capture.pcap0","/tmp/capture.pcap") + fs.remove("/tmp/capture.pcap1") +end + +if filter then + fs.remove("/tmp/tcpdump_filter") +end + +conn:close() +pipe:close() + +fs.remove("/var/run/packet_capture.pid") diff --git a/luci-app-packet-capture/root/usr/libexec/packet_capture_start b/luci-app-packet-capture/root/usr/libexec/packet_capture_start new file mode 100755 index 000000000..acdf89152 --- /dev/null +++ b/luci-app-packet-capture/root/usr/libexec/packet_capture_start @@ -0,0 +1,69 @@ +#!/bin/sh + +. /usr/share/libubox/jshn.sh + +PIDFILE="/var/run/packet_capture.pid" + +if [ -f "$PIDFILE"];then + echo "error: Packet capture is running" + exit 1 +fi + +json_load "$1" +json_get_var interface interface +json_get_var filter filter +json_get_var duration duration +json_get_var packets packets +json_get_var verbose verbose +json_get_var domains domains +json_get_var file file + +args="-n" + +if [ "$domains" == "1" ];then + args="" +fi + +if [ -n "$interface" ];then + ip a show "$interface" > /dev/null 2>&1 + if [ "$?" == "1" ]; then + echo "error: Incorrect format of an interface" + exit 1 + fi + + args="$args -i $interface" +fi + +if [ -n "$packets" ];then + echo "$packets" | egrep '^[0-9]*$' + if [ "$?" -eq 0 ];then + args="$args -c $packets" + else + echo "error: Incorrect packets argument" + exit 1 + fi +fi + +if [ "$verbose" == "1" ];then + args="$args -e" +fi + +if [ "$file" == "1" ];then + mem=$(awk '/MemTotal/ {print $2}' /proc/meminfo) + args="$args -W 2 -C $((mem/(1024 * 10))) -w /tmp/capture.pcap -z /usr/libexec/packet_capture_stop" +fi + +if [ -n "$filter" ];then + tcpdump -i lo -d "$filter" >/dev/null 2>/dev/null + if [ $? -eq 1 ];then + echo "error: Incorrect filter argument" + exit 1 + fi + echo "$filter" > /tmp/tcpdump_filter +fi + +(/usr/libexec/packet_capture "$args" "$duration")& + +echo $! > /var/run/packet_capture.pid + +exit 0 diff --git a/luci-app-packet-capture/root/usr/libexec/packet_capture_stop b/luci-app-packet-capture/root/usr/libexec/packet_capture_stop new file mode 100755 index 000000000..bce650346 --- /dev/null +++ b/luci-app-packet-capture/root/usr/libexec/packet_capture_stop @@ -0,0 +1,9 @@ +#!/bin/sh + +pid=$(cat /var/run/packet_capture.pid) +if [ -n "$pid" ] && grep -sq packet_capture "/proc/$pid/cmdline"; then + ppid=$(pgrep -P $pid) + kill -TERM $ppid +fi + +exit 0 diff --git a/luci-app-packet-capture/root/usr/share/luci/menu.d/luci-app-packet-capture.json b/luci-app-packet-capture/root/usr/share/luci/menu.d/luci-app-packet-capture.json new file mode 100644 index 000000000..304fe5431 --- /dev/null +++ b/luci-app-packet-capture/root/usr/share/luci/menu.d/luci-app-packet-capture.json @@ -0,0 +1,18 @@ +{ + "admin/services/packet_capture": { + "title": "Packet Capture", + "order": 90, + "action": { + "type": "view", + "path": "packet_capture/tcpdump" + }, + "depends" : { + "acl": [ "luci-app-packet-capture" ], + "uci": { "packet_capture": true }, + "fs": { "/usr/libexec/packet_capture": "executable", + "/usr/libexec/packet_capture_start": "executable", + "/usr/libexec/packet_capture_stop": "executable" + } + } + } +} diff --git a/luci-app-packet-capture/root/usr/share/rpcd/acl.d/luci-app-packet-capture.json b/luci-app-packet-capture/root/usr/share/rpcd/acl.d/luci-app-packet-capture.json new file mode 100644 index 000000000..f59d4060b --- /dev/null +++ b/luci-app-packet-capture/root/usr/share/rpcd/acl.d/luci-app-packet-capture.json @@ -0,0 +1,25 @@ +{ + "luci-app-packet-capture": { + "description": "Grant access to tcpdump ubus object", + "read": { + "cgi-io": [ "download", "exec" ], + "ubus": { + "tcpdump": [ "*" ], + "luci": [ "getProcessList" ] + }, + "uci": [ "packet_capture", "system" ], + "file": { + "/tmp/capture.pcap": [ "read" ] + } + }, + "write": { + "uci": [ "packet_capture" ], + "file": { + "/usr/libexec/packet_capture_start": [ "exec" ], + "/usr/libexec/packet_capture_stop": [ "exec" ], + "/usr/libexec/packet_capture": [ "exec" ], + "/tmp/capture.pcap": [ "write" ] + } + } + } +} diff --git a/openmptcprouter-full/Makefile b/openmptcprouter-full/Makefile index 0ab4f84fd..8578a2d95 100644 --- a/openmptcprouter-full/Makefile +++ b/openmptcprouter-full/Makefile @@ -78,9 +78,9 @@ MY_DEPENDS := \ !TARGET_mvebu:kmod-usb-net-huawei-cdc-ncm !TARGET_mvebu:kmod-usb-net-rndis !TARGET_mvebu:kmod-usb-net-cdc-ether !TARGET_mvebu:kmod-usb-net-ipheth !TARGET_mvebu:usbmuxd \ kmod-rt2800-usb kmod-rtl8xxxu kmod-rtl8192cu kmod-net-rtl8192su \ !TARGET_mvebu:luci-proto-qmi wpad-basic kmod-mt7601u kmod-rtl8187 \ - luci-app-mlvpn mlvpn 464xlat !TARGET_mvebu:kmod-usb-net-smsc75xx kmod-zram kmod-swconfig swconfig kmod-ipt-nat kmod-ipt-nat6 luci-app-https-dns-proxy kmod-tcp-nanqinlang kmod-tcp-bbr2 iptables-mod-ipopt igmpproxy ss iptraf-ng \ + luci-app-mlvpn mlvpn 464xlat !TARGET_mvebu:kmod-usb-net-smsc75xx kmod-zram kmod-swconfig swconfig kmod-ipt-nat kmod-ipt-nat6 luci-app-https-dns-proxy kmod-tcp-nanqinlang (TARGET_x86_64||TARGET_arm64):kmod-tcp-bbr2 iptables-mod-ipopt igmpproxy ss iptraf-ng \ luci-app-acl block-mount blockd fstools luci-app-shutdown libwebp luci-proto-gre tcptraceroute luci-proto-mbim kmod-rtl8xxxu kmod-ath9k-htc luci-app-ttyd luci-mod-dashboard (TARGET_x86||TARGET_x86_64):rtl8192eu-firmware kmod-usb2 libustream-wolfssl (TARGET_x86||TARGET_x86_64):kmod-ixgbevf \ - hwinfo (TARGET_x86||TARGET_x86_64):dmidecode + hwinfo (TARGET_x86||TARGET_x86_64):dmidecode luci-app-packet-capture # luci-theme-bootstrap luci-theme-openwrt-2020 luci-theme-openwrt luci-app-status # luci-proto-bonding luci-app-statistics luci-proto-gre # softethervpn5-client softethervpn5-server luci-app-nginx-ha From 8f2b608c2cdec5ebd54f7e72f0b4d447084f3298 Mon Sep 17 00:00:00 2001 From: "Ycarus (Yannick Chabanois)" Date: Wed, 9 Dec 2020 14:59:23 +0100 Subject: [PATCH 089/117] Disable all ipv6 settings by default --- openmptcprouter/files/etc/uci-defaults/2000-omr-dhcp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/openmptcprouter/files/etc/uci-defaults/2000-omr-dhcp b/openmptcprouter/files/etc/uci-defaults/2000-omr-dhcp index 82d955677..5ad19ac9e 100755 --- a/openmptcprouter/files/etc/uci-defaults/2000-omr-dhcp +++ b/openmptcprouter/files/etc/uci-defaults/2000-omr-dhcp @@ -2,8 +2,9 @@ if [ "$(uci -q get openmptcprouter.settings.disable_ipv6)" != "0" ]; then uci -q batch <<-EOF >/dev/null - set dhcp.lan.ra_default=1 - set dhcp.lan.dhcpv6=server + delete dhcp.lan.ra_default + delete dhcp.lan.dhcpv6 + delete dhcp.lan.ra set dhcp.lan.force=1 commit dhcp EOF From 0f87c62f36edef002791473244d312a422d4962a Mon Sep 17 00:00:00 2001 From: "Ycarus (Yannick Chabanois)" Date: Fri, 11 Dec 2020 21:38:50 +0100 Subject: [PATCH 090/117] Fix for gre tunnel --- openmptcprouter/files/etc/init.d/openmptcprouter-vps | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/openmptcprouter/files/etc/init.d/openmptcprouter-vps b/openmptcprouter/files/etc/init.d/openmptcprouter-vps index 08ce14400..4806ea137 100755 --- a/openmptcprouter/files/etc/init.d/openmptcprouter-vps +++ b/openmptcprouter/files/etc/init.d/openmptcprouter-vps @@ -439,7 +439,7 @@ _get_gre_tunnel() { peeraddr="$(echo $tunnel | jsonfilter -q -e '@.remote_ip')" ipaddr="$(echo $tunnel | jsonfilter -q -e '@.local_ip')" publicaddr="$(echo $tunnel | jsonfilter -q -e '@.public_ip')" - if [ "$peeraddr" != "" ] && [ "$ipaddr" != "" ] && [ "$publicaddr" != "" ] && ([ "$(uci -q get network.omrip${i}.peeraddr)" != "$peeraddr" ] || [ "$(uci -q get network.omrip${i}.ipaddr)" != "$ipaddr" ] || [ "$(uci -q get network.omrip${i}gre.ipaddr)" != "$vpnip_local" ]); then + if [ "$peeraddr" != "" ] && [ "$ipaddr" != "" ] && [ "$publicaddr" != "" ] && ([ "$(uci -q get network.omrip${i}.ipaddr)" != "$peeraddr" ] || [ "$(uci -q get network.omrip${i}.ipaddr)" != "$ipaddr" ] || [ "$(uci -q get network.omrip${i}gre.ipaddr)" != "$vpnip_local" ]); then uci -q batch <<-EOF >/dev/null set network.omrip${i}gre=interface set network.omrip${i}gre.label="GRE tunnel for $publicaddr" From 8ef4df91e747905976ed59dabfa23df737cd29eb Mon Sep 17 00:00:00 2001 From: "Ycarus (Yannick Chabanois)" Date: Fri, 11 Dec 2020 21:39:49 +0100 Subject: [PATCH 091/117] Add OpenVPN Bonding support --- .../luasrc/controller/openmptcprouter.lua | 13 ++- .../luasrc/view/openmptcprouter/wizard.htm | 5 +- openmptcprouter-full/Makefile | 2 +- .../files/etc/init.d/openvpnbonding | 95 +++++++++++++++++++ 4 files changed, 108 insertions(+), 7 deletions(-) create mode 100755 openmptcprouter/files/etc/init.d/openvpnbonding diff --git a/luci-app-openmptcprouter/luasrc/controller/openmptcprouter.lua b/luci-app-openmptcprouter/luasrc/controller/openmptcprouter.lua index b294af40c..c9a264ed8 100644 --- a/luci-app-openmptcprouter/luasrc/controller/openmptcprouter.lua +++ b/luci-app-openmptcprouter/luasrc/controller/openmptcprouter.lua @@ -631,8 +631,8 @@ function wizard_add() ucic:set("glorytun","vpn","remoteip","10.255.255.1") ucic:set("network","omr6in4","ipaddr","10.255.255.2") ucic:set("network","omr6in4","peeraddr","10.255.255.1") + ucic:set("network","omrvpn","proto","none") end - ucic:set("network","omrvpn","proto","none") else ucic:set("glorytun","vpn","key","") --ucic:set("glorytun","vpn","enable",0) @@ -656,8 +656,8 @@ function wizard_add() ucic:set("glorytun-udp","vpn","remoteip","10.255.254.1") ucic:set("network","omr6in4","ipaddr","10.255.254.2") ucic:set("network","omr6in4","peeraddr","10.255.254.1") + ucic:set("network","omrvpn","proto","none") end - ucic:set("network","omrvpn","proto","none") else ucic:set("glorytun-udp","vpn","key","") end @@ -677,9 +677,11 @@ function wizard_add() ucic:set("dsvpn","vpn","key",dsvpn_key) ucic:set("dsvpn","vpn","localip","10.255.251.2") ucic:set("dsvpn","vpn","remoteip","10.255.251.1") - ucic:set("network","omr6in4","ipaddr","10.255.251.2") - ucic:set("network","omr6in4","peeraddr","10.255.251.1") - ucic:set("network","omrvpn","proto","none") + if default_vpn == "dsvpn" then + ucic:set("network","omr6in4","ipaddr","10.255.251.2") + ucic:set("network","omr6in4","peeraddr","10.255.251.1") + ucic:set("network","omrvpn","proto","none") + end else ucic:set("dsvpn","vpn","key","") --ucic:set("dsvpn","vpn","enable",0) @@ -770,6 +772,7 @@ function wizard_add() luci.sys.call("/etc/init.d/mlvpn restart >/dev/null 2>/dev/null") --luci.sys.call("/etc/init.d/ubond restart >/dev/null 2>/dev/null") luci.sys.call("/etc/init.d/openvpn restart >/dev/null 2>/dev/null") + luci.sys.call("/etc/init.d/openvpnbonding restart >/dev/null 2>/dev/null") luci.sys.call("/etc/init.d/dsvpn restart >/dev/null 2>/dev/null") luci.sys.call("/etc/init.d/omr-tracker start >/dev/null 2>/dev/null") luci.sys.call("/etc/init.d/omr-6in4 restart >/dev/null 2>/dev/null") diff --git a/luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm b/luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm index d8cda41f8..66a5b2b00 100644 --- a/luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm +++ b/luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm @@ -306,6 +306,8 @@ <% if nixio.fs.access("/usr/sbin/ubond") then %><% end %> <% elseif vpn == "openvpn" then %> <% if nixio.fs.access("/etc/init.d/openvpn") then %><% end %> + <% elseif vpn == "openvpn_bonding" then %> + <% if nixio.fs.access("/etc/init.d/openvpnbonding") then %><% end %> <% end end @@ -319,7 +321,8 @@ <% if nixio.fs.access("/usr/sbin/dsvpn") then %><% end %> <% if nixio.fs.access("/usr/sbin/mlvpn") then %><% end %> <% if nixio.fs.access("/usr/sbin/ubond") then %><% end %> - <% if nixio.fs.access("/usr/sbin/openvpn") then %><% end %> + <% if nixio.fs.access("/etc/init.d/openvpn") then %><% end %> + <% if nixio.fs.access("/etc/init.d/openvpnbonding") then %><% end %> <% end diff --git a/openmptcprouter-full/Makefile b/openmptcprouter-full/Makefile index 8578a2d95..9625904b5 100644 --- a/openmptcprouter-full/Makefile +++ b/openmptcprouter-full/Makefile @@ -80,7 +80,7 @@ MY_DEPENDS := \ !TARGET_mvebu:luci-proto-qmi wpad-basic kmod-mt7601u kmod-rtl8187 \ luci-app-mlvpn mlvpn 464xlat !TARGET_mvebu:kmod-usb-net-smsc75xx kmod-zram kmod-swconfig swconfig kmod-ipt-nat kmod-ipt-nat6 luci-app-https-dns-proxy kmod-tcp-nanqinlang (TARGET_x86_64||TARGET_arm64):kmod-tcp-bbr2 iptables-mod-ipopt igmpproxy ss iptraf-ng \ luci-app-acl block-mount blockd fstools luci-app-shutdown libwebp luci-proto-gre tcptraceroute luci-proto-mbim kmod-rtl8xxxu kmod-ath9k-htc luci-app-ttyd luci-mod-dashboard (TARGET_x86||TARGET_x86_64):rtl8192eu-firmware kmod-usb2 libustream-wolfssl (TARGET_x86||TARGET_x86_64):kmod-ixgbevf \ - hwinfo (TARGET_x86||TARGET_x86_64):dmidecode luci-app-packet-capture + hwinfo (TARGET_x86||TARGET_x86_64):dmidecode luci-app-packet-capture kmod-bonding luci-proto-bonding # luci-theme-bootstrap luci-theme-openwrt-2020 luci-theme-openwrt luci-app-status # luci-proto-bonding luci-app-statistics luci-proto-gre # softethervpn5-client softethervpn5-server luci-app-nginx-ha diff --git a/openmptcprouter/files/etc/init.d/openvpnbonding b/openmptcprouter/files/etc/init.d/openvpnbonding new file mode 100755 index 000000000..f0ba915fa --- /dev/null +++ b/openmptcprouter/files/etc/init.d/openvpnbonding @@ -0,0 +1,95 @@ +#!/bin/sh /etc/rc.common +# Copyright (C) 2020 Ycarus (Yannick Chabanois) for OpenMPTCProuter +# Released under GPL 3. See LICENSE for the full terms. + +{ + START=70 + STOP=10 + USE_PROCD=1 +} + +_getremoteip() { + [ "$(uci -q get openmptcprouter.$1.master)" = "1" ] && remoteip=$(uci -q get openmptcprouter.$1.ip) +} + +_openvpnbonding() { + local interface=$1 + if [ "$(uci -q get openmptcprouter.${interface}.multipath)" = "master" ] || [ "$(uci -q get openmptcprouter.${interface}.multipath)" = "on" ]; then + nbintf=$(($nbintf+1)) + remoteip="" + config_load openmptcprouter + config_foreach _getremoteip server + if [ -n "$remoteip" ]; then + localip=$(ubus call network.interface.$interface status | jsonfilter -e '@["ipv4-address"][0].address' | tr -d "\n") + uci -q batch <<-EOF >/dev/null + set openvpn.omr_bonding_${interface}=openvpn + set openvpn.omr_bonding_${interface}.dev="bond${interface}" + set openvpn.omr_bonding_${interface}.dev_type="tap" + set openvpn.omr_bonding_${interface}.cipher='AES-256-CBC' + set openvpn.omr_bonding_${interface}.port="6535${nbintf}" + set openvpn.omr_bonding_${interface}.remote="${remoteip}" + set openvpn.omr_bonding_${interface}.local="${localip}" + set openvpn.omr_bonding_${interface}.lport='0' + set openvpn.omr_bonding_${interface}.ncp_disable='1' + set openvpn.omr_bonding_${interface}.auth_nocache='1' + set openvpn.omr_bonding_${interface}.proto='udp' + set openvpn.omr_bonding_${interface}.client='1' + set openvpn.omr_bonding_${interface}.tls_client='1' + set openvpn.omr_bonding_${interface}.enabled='1' + set openvpn.omr_bonding_${interface}.key='/etc/luci-uploads/client.key' + set openvpn.omr_bonding_${interface}.cert='/etc/luci-uploads/client.crt' + set openvpn.omr_bonding_${interface}.ca='/etc/luci-uploads/ca.crt' + commit openvpn + EOF + if [ "$(uci -q get network.omrvpn.slaves | grep bond${interface})" = "" ]; then + uci -q add_list network.omrvpn.slaves="bond${interface}" + fi + /etc/init.d/openvpn start omr_bonding_${interface} + ip link set bond${interface} master bonding-omrvpn + fi + fi +} + +_disable_openvpnbonding() +{ + name=$1 + if [ "$(echo $name | grep omr_bonding)" != "" ]; then + uci -q set openvpn.${name}.enabled='0' + fi +} + +start_service() +{ + if [ "$(uci -q get openmptcprouter.settings.vpn)" = "openvpn_bonding" ]; then + nbintf=0 + uci -q batch <<-EOF >/dev/null + set network.omrvpn.proto='bonding' + set network.omrvpn.bonding_policy='balance-rr' + set network.omrvpn.packets_per_slave='1' + set network.omrvpn.xmit_hash_policy='layer2' + set network.omrvpn.all_slaves_active='0' + set network.omrvpn.netmask='255.255.255.0' + set network.omrvpn.ipaddr='10.255.248.2' + set network.omrvpn.link_monitoring='mii' + set network.omrvpn.miimon='10' + set network.omrvpn.downdelay='100' + set network.omrvpn.updelay='20' + set network.omrvpn.use_carrier='1' + commit network + EOF + config_load openmptcprouter + config_foreach _openvpnbonding interface + ip link set bonding-omrvpn up + uci -q batch <<-EOF >/dev/null + commit network + EOF + else + config_load openvpn + config_foreach _disable_openvpnbonding + uci -q commit openvpn + fi +} + +service_triggers() { + procd_add_reload_trigger "openvpn" "network" +} \ No newline at end of file From f34ff67f587d2219d72f10ee155be0237c694e98 Mon Sep 17 00:00:00 2001 From: "Ycarus (Yannick Chabanois)" Date: Tue, 15 Dec 2020 15:43:19 +0100 Subject: [PATCH 092/117] Move label for VPN at beginning --- .../htdocs/luci-static/resources/view/services/dsvpn.js | 6 +++--- .../luci-static/resources/view/services/glorytun-tcp.js | 6 +++--- .../luci-static/resources/view/services/glorytun-udp.js | 7 ++++--- .../htdocs/luci-static/resources/view/services/mlvpn.js | 6 +++--- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/luci-app-dsvpn/htdocs/luci-static/resources/view/services/dsvpn.js b/luci-app-dsvpn/htdocs/luci-static/resources/view/services/dsvpn.js index 2f737b571..453a13836 100644 --- a/luci-app-dsvpn/htdocs/luci-static/resources/view/services/dsvpn.js +++ b/luci-app-dsvpn/htdocs/luci-static/resources/view/services/dsvpn.js @@ -31,6 +31,9 @@ return L.view.extend({ o = s.option(form.Flag, 'enable', _('Enabled')); o.default = o.enabled; + o = s.option(form.Value, 'label', _('Label')); + o.rmempty = true; + o = s.option(form.ListValue, 'mode', _('Mode')); o.value('client',_('Client')); o.value('server',_('Server')); @@ -58,9 +61,6 @@ return L.view.extend({ o.datatype = 'or(ip4addr,ip6addr)'; o.rmempty = false; - o = s.option(form.Value, 'label', _('Label')); - o.rmempty = true; - return m.render(); } }); diff --git a/luci-app-glorytun-tcp/htdocs/luci-static/resources/view/services/glorytun-tcp.js b/luci-app-glorytun-tcp/htdocs/luci-static/resources/view/services/glorytun-tcp.js index e4045f267..c8929e0fb 100644 --- a/luci-app-glorytun-tcp/htdocs/luci-static/resources/view/services/glorytun-tcp.js +++ b/luci-app-glorytun-tcp/htdocs/luci-static/resources/view/services/glorytun-tcp.js @@ -34,6 +34,9 @@ return L.view.extend({ o = s.taboption('general', form.Flag, 'enable', _('Enabled')); o.default = o.enabled; + o = s.taboption('general',form.Value, 'label', _('Label')); + o.rmempty = true; + o = s.taboption('general', form.ListValue, 'mode', _('Mode')); o.value('',_('Client')); o.value('listener',_('Server')); @@ -79,9 +82,6 @@ return L.view.extend({ o.rmempty = false; o.modalonly = true; - o = s.taboption('general',form.Value, 'label', _('Label')); - o.rmempty = true; - return m.render(); } }); diff --git a/luci-app-glorytun-udp/htdocs/luci-static/resources/view/services/glorytun-udp.js b/luci-app-glorytun-udp/htdocs/luci-static/resources/view/services/glorytun-udp.js index 2975af525..73ecb401e 100644 --- a/luci-app-glorytun-udp/htdocs/luci-static/resources/view/services/glorytun-udp.js +++ b/luci-app-glorytun-udp/htdocs/luci-static/resources/view/services/glorytun-udp.js @@ -42,6 +42,10 @@ return L.view.extend({ o = s.taboption('general', form.Flag, 'enable', _('Enabled')); o.default = o.enabled; + o = s.taboption('general',form.Value, 'label', _('Label')); + o.rmempty = true; + + o = s.taboption('general', form.ListValue, 'mode', _('Mode')); o.value('to',_('Client')); o.value('from',_('Server')); @@ -96,9 +100,6 @@ return L.view.extend({ o.rmempty = false; o.modalonly = true; - o = s.taboption('general',form.Value, 'label', _('Label')); - o.rmempty = true; - return m.render(); } }); diff --git a/luci-app-mlvpn/htdocs/luci-static/resources/view/services/mlvpn.js b/luci-app-mlvpn/htdocs/luci-static/resources/view/services/mlvpn.js index 8dcfb422b..2d5258047 100644 --- a/luci-app-mlvpn/htdocs/luci-static/resources/view/services/mlvpn.js +++ b/luci-app-mlvpn/htdocs/luci-static/resources/view/services/mlvpn.js @@ -34,6 +34,9 @@ return L.view.extend({ o = s.taboption('general', form.Flag, 'enable', _('Enabled')); o.default = o.enabled; + o = s.taboption('general',form.Value, 'label', _('Label')); + o.rmempty = true; + o = s.taboption('general', form.ListValue, 'mode', _('Mode')); o.value('client',_('Client')); o.value('server',_('Server')); @@ -75,9 +78,6 @@ return L.view.extend({ o.rmempty = false; o.modalonly = true; - o = s.taboption('general',form.Value, 'label', _('Label')); - o.rmempty = true; - return m.render(); } }); From d1209f1f6cf18155e410630a08e8d77582e4cd7f Mon Sep 17 00:00:00 2001 From: "Ycarus (Yannick Chabanois)" Date: Tue, 15 Dec 2020 15:43:42 +0100 Subject: [PATCH 093/117] Apply glorytun-udp settings --- .../root/etc/hotplug.d/iface/30-glorytun-udp | 28 +++++++++++-------- 1 file changed, 17 insertions(+), 11 deletions(-) diff --git a/luci-app-glorytun-udp/root/etc/hotplug.d/iface/30-glorytun-udp b/luci-app-glorytun-udp/root/etc/hotplug.d/iface/30-glorytun-udp index b942fd60c..a1ac50669 100644 --- a/luci-app-glorytun-udp/root/etc/hotplug.d/iface/30-glorytun-udp +++ b/luci-app-glorytun-udp/root/etc/hotplug.d/iface/30-glorytun-udp @@ -11,17 +11,23 @@ . /lib/functions/network.sh set_default() { - local localip - local remoteip - local config="$1" - local iface - config_get enable "$config" enable - config_get iface "$config" dev - [ "$iface" = "$DEVICE" ] && [ "$enable" = "1" ] && { - config_get localip "$config" localip - config_get remoteip "$config" remoteip - [ "$remoteip" != "" ] && [ "$localip" != "" ] && ifconfig $DEVICE $localip pointopoint $remoteip up - } + local localip + local remoteip + local config="$1" + local iface + config_get enable "$config" enable + config_get iface "$config" dev + [ "$iface" = "$DEVICE" ] && [ "$enable" = "1" ] && { + config_get localip "$config" localip + config_get remoteip "$config" remoteip + config_get kxtimeout "$config" kxtimeout "7d" + config_get timetolerance "$config" timetolerance "10m" + config_get keepalive "$config" keepalive "25s" + [ "$remoteip" != "" ] && [ "$localip" != "" ] && ifconfig $DEVICE $localip pointopoint $remoteip up + while [ -z "$(glorytun-udp list | grep $iface)" ]; do + glorytun-udp set dev $iface kxtimeout $kxtimeout timetolerance $timetolerance keepalive $keepalive + done + } } config_load glorytun-udp From 00f4d468b135cd376c15261ed729a1877e024539 Mon Sep 17 00:00:00 2001 From: "Ycarus (Yannick Chabanois)" Date: Tue, 15 Dec 2020 15:44:47 +0100 Subject: [PATCH 094/117] Use openmptcprouter proxy settings to get enabled proxy --- .../luasrc/view/openmptcprouter/wizard.htm | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm b/luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm index 66a5b2b00..13f998979 100644 --- a/luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm +++ b/luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm @@ -172,9 +172,9 @@

@@ -717,6 +717,10 @@ +
+
+ <%:Only one interface must be set as "Master", this should be the most stable interface.%> +
<% else %> From 4d0c9f1de26a974ee09a0e15c8975f9539faf9bf Mon Sep 17 00:00:00 2001 From: antrouter Date: Fri, 4 Dec 2020 15:47:10 +0000 Subject: [PATCH 095/117] Added translation using Weblate (Chinese (Simplified)) --- luci-app-dsvpn/po/zh_Hans/dsvpn.po | 62 ++++++++++++++++++++++++++++++ 1 file changed, 62 insertions(+) create mode 100644 luci-app-dsvpn/po/zh_Hans/dsvpn.po diff --git a/luci-app-dsvpn/po/zh_Hans/dsvpn.po b/luci-app-dsvpn/po/zh_Hans/dsvpn.po new file mode 100644 index 000000000..02f63464e --- /dev/null +++ b/luci-app-dsvpn/po/zh_Hans/dsvpn.po @@ -0,0 +1,62 @@ +msgid "" +msgstr "" +"Language: zh_Hans\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: luci-app-dsvpn/htdocs/luci-static/resources/view/services/dsvpn.js:35 +msgid "Client" +msgstr "" + +#: luci-app-dsvpn/htdocs/luci-static/resources/view/services/dsvpn.js:24 +#: luci-app-dsvpn/root/usr/share/luci/menu.d/luci-app-dsvpn.json:3 +msgid "DSVPN" +msgstr "" + +#: luci-app-dsvpn/htdocs/luci-static/resources/view/services/dsvpn.js:31 +msgid "Enabled" +msgstr "" + +#: luci-app-dsvpn/root/usr/share/rpcd/acl.d/luci-app-dsvpn.json:3 +msgid "Grant access to DSVPN" +msgstr "" + +#: luci-app-dsvpn/htdocs/luci-static/resources/view/services/dsvpn.js:39 +msgid "Host" +msgstr "" + +#: luci-app-dsvpn/htdocs/luci-static/resources/view/services/dsvpn.js:26 +msgid "Instances" +msgstr "" + +#: luci-app-dsvpn/htdocs/luci-static/resources/view/services/dsvpn.js:49 +msgid "Interface name" +msgstr "" + +#: luci-app-dsvpn/htdocs/luci-static/resources/view/services/dsvpn.js:45 +msgid "Key" +msgstr "" + +#: luci-app-dsvpn/htdocs/luci-static/resources/view/services/dsvpn.js:61 +msgid "Label" +msgstr "" + +#: luci-app-dsvpn/htdocs/luci-static/resources/view/services/dsvpn.js:53 +msgid "Local IP" +msgstr "" + +#: luci-app-dsvpn/htdocs/luci-static/resources/view/services/dsvpn.js:34 +msgid "Mode" +msgstr "" + +#: luci-app-dsvpn/htdocs/luci-static/resources/view/services/dsvpn.js:42 +msgid "Port" +msgstr "" + +#: luci-app-dsvpn/htdocs/luci-static/resources/view/services/dsvpn.js:57 +msgid "Remote IP" +msgstr "" + +#: luci-app-dsvpn/htdocs/luci-static/resources/view/services/dsvpn.js:36 +msgid "Server" +msgstr "" From b6d31391aabe2981301051c679209511dec35e3b Mon Sep 17 00:00:00 2001 From: antrouter Date: Fri, 4 Dec 2020 15:50:48 +0000 Subject: [PATCH 096/117] Added translation using Weblate (Chinese (Simplified)) --- .../po/zh_Hans/glorytun-tcp.po | 90 +++++++++++++++++++ 1 file changed, 90 insertions(+) create mode 100644 luci-app-glorytun-tcp/po/zh_Hans/glorytun-tcp.po diff --git a/luci-app-glorytun-tcp/po/zh_Hans/glorytun-tcp.po b/luci-app-glorytun-tcp/po/zh_Hans/glorytun-tcp.po new file mode 100644 index 000000000..16936b056 --- /dev/null +++ b/luci-app-glorytun-tcp/po/zh_Hans/glorytun-tcp.po @@ -0,0 +1,90 @@ +msgid "" +msgstr "" +"Language: zh_Hans\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: luci-app-glorytun-tcp/htdocs/luci-static/resources/view/services/glorytun-tcp.js:32 +msgid "Advanced Settings" +msgstr "" + +#: luci-app-glorytun-tcp/htdocs/luci-static/resources/view/services/glorytun-tcp.js:38 +msgid "Client" +msgstr "" + +#: luci-app-glorytun-tcp/htdocs/luci-static/resources/view/services/glorytun-tcp.js:34 +msgid "Enabled" +msgstr "" + +#: luci-app-glorytun-tcp/htdocs/luci-static/resources/view/services/glorytun-tcp.js:68 +msgid "Force fallback cipher" +msgstr "" + +#: luci-app-glorytun-tcp/htdocs/luci-static/resources/view/services/glorytun-tcp.js:31 +msgid "General Settings" +msgstr "" + +#: luci-app-glorytun-tcp/htdocs/luci-static/resources/view/services/glorytun-tcp.js:24 +#: luci-app-glorytun-tcp/root/usr/share/luci/menu.d/luci-app-glorytun-tcp.json:3 +msgid "Glorytun TCP" +msgstr "" + +#: luci-app-glorytun-tcp/root/usr/share/rpcd/acl.d/luci-app-glorytun-tcp.json:3 +msgid "Grant access to glorytun TCP" +msgstr "" + +#: luci-app-glorytun-tcp/htdocs/luci-static/resources/view/services/glorytun-tcp.js:42 +msgid "Host" +msgstr "" + +#: luci-app-glorytun-tcp/htdocs/luci-static/resources/view/services/glorytun-tcp.js:26 +msgid "Instances" +msgstr "" + +#: luci-app-glorytun-tcp/htdocs/luci-static/resources/view/services/glorytun-tcp.js:52 +msgid "Interface name" +msgstr "" + +#: luci-app-glorytun-tcp/htdocs/luci-static/resources/view/services/glorytun-tcp.js:48 +msgid "Key" +msgstr "" + +#: luci-app-glorytun-tcp/htdocs/luci-static/resources/view/services/glorytun-tcp.js:82 +msgid "Label" +msgstr "" + +#: luci-app-glorytun-tcp/htdocs/luci-static/resources/view/services/glorytun-tcp.js:56 +msgid "Local IP" +msgstr "" + +#: luci-app-glorytun-tcp/htdocs/luci-static/resources/view/services/glorytun-tcp.js:64 +msgid "MPTCP" +msgstr "" + +#: luci-app-glorytun-tcp/htdocs/luci-static/resources/view/services/glorytun-tcp.js:37 +msgid "Mode" +msgstr "" + +#: luci-app-glorytun-tcp/htdocs/luci-static/resources/view/services/glorytun-tcp.js:77 +msgid "Multiqueue" +msgstr "" + +#: luci-app-glorytun-tcp/htdocs/luci-static/resources/view/services/glorytun-tcp.js:45 +msgid "Port" +msgstr "" + +#: luci-app-glorytun-tcp/htdocs/luci-static/resources/view/services/glorytun-tcp.js:60 +msgid "Remote IP" +msgstr "" + +#: luci-app-glorytun-tcp/htdocs/luci-static/resources/view/services/glorytun-tcp.js:39 +msgid "Server" +msgstr "" + +#: luci-app-glorytun-tcp/htdocs/luci-static/resources/view/services/glorytun-tcp.js:72 +msgid "Timeout" +msgstr "" + +#: luci-app-glorytun-tcp/htdocs/luci-static/resources/view/services/glorytun-tcp.js:68 +msgid "chacha" +msgstr "" From 90f0022ef43d009eab8b307f2ad7058fa0559a0c Mon Sep 17 00:00:00 2001 From: antrouter Date: Fri, 4 Dec 2020 15:54:19 +0000 Subject: [PATCH 097/117] Added translation using Weblate (Chinese (Simplified)) --- .../po/zh_Hans/glorytun-udp.po | 102 ++++++++++++++++++ 1 file changed, 102 insertions(+) create mode 100644 luci-app-glorytun-udp/po/zh_Hans/glorytun-udp.po diff --git a/luci-app-glorytun-udp/po/zh_Hans/glorytun-udp.po b/luci-app-glorytun-udp/po/zh_Hans/glorytun-udp.po new file mode 100644 index 000000000..4ec28b582 --- /dev/null +++ b/luci-app-glorytun-udp/po/zh_Hans/glorytun-udp.po @@ -0,0 +1,102 @@ +msgid "" +msgstr "" +"Language: zh_Hans\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: luci-app-glorytun-udp/htdocs/luci-static/resources/view/services/glorytun-udp.js:40 +msgid "Advanced Settings" +msgstr "" + +#: luci-app-glorytun-udp/htdocs/luci-static/resources/view/services/glorytun-udp.js:46 +msgid "Client" +msgstr "" + +#: luci-app-glorytun-udp/htdocs/luci-static/resources/view/services/glorytun-udp.js:85 +msgid "Clock sync tolerance" +msgstr "" + +#: luci-app-glorytun-udp/htdocs/luci-static/resources/view/services/glorytun-udp.js:95 +msgid "Dynamic rate detection" +msgstr "" + +#: luci-app-glorytun-udp/htdocs/luci-static/resources/view/services/glorytun-udp.js:42 +msgid "Enabled" +msgstr "" + +#: luci-app-glorytun-udp/htdocs/luci-static/resources/view/services/glorytun-udp.js:76 +msgid "Force fallback cipher" +msgstr "" + +#: luci-app-glorytun-udp/htdocs/luci-static/resources/view/services/glorytun-udp.js:39 +msgid "General Settings" +msgstr "" + +#: luci-app-glorytun-udp/htdocs/luci-static/resources/view/services/glorytun-udp.js:32 +#: luci-app-glorytun-udp/root/usr/share/luci/menu.d/luci-app-glorytun-udp.json:3 +msgid "Glorytun UDP" +msgstr "" + +#: luci-app-glorytun-udp/root/usr/share/rpcd/acl.d/luci-app-glorytun-udp.json:3 +msgid "Grant access to glorytun UDP" +msgstr "" + +#: luci-app-glorytun-udp/htdocs/luci-static/resources/view/services/glorytun-udp.js:50 +msgid "Host" +msgstr "" + +#: luci-app-glorytun-udp/htdocs/luci-static/resources/view/services/glorytun-udp.js:34 +msgid "Instances" +msgstr "" + +#: luci-app-glorytun-udp/htdocs/luci-static/resources/view/services/glorytun-udp.js:60 +msgid "Interface name" +msgstr "" + +#: luci-app-glorytun-udp/htdocs/luci-static/resources/view/services/glorytun-udp.js:90 +msgid "Keep alive timeout" +msgstr "" + +#: luci-app-glorytun-udp/htdocs/luci-static/resources/view/services/glorytun-udp.js:72 +msgid "Keep the tunnel device after exiting" +msgstr "" + +#: luci-app-glorytun-udp/htdocs/luci-static/resources/view/services/glorytun-udp.js:56 +msgid "Key" +msgstr "" + +#: luci-app-glorytun-udp/htdocs/luci-static/resources/view/services/glorytun-udp.js:80 +msgid "Key rotation timeout" +msgstr "" + +#: luci-app-glorytun-udp/htdocs/luci-static/resources/view/services/glorytun-udp.js:99 +msgid "Label" +msgstr "" + +#: luci-app-glorytun-udp/htdocs/luci-static/resources/view/services/glorytun-udp.js:64 +msgid "Local IP" +msgstr "" + +#: luci-app-glorytun-udp/htdocs/luci-static/resources/view/services/glorytun-udp.js:45 +msgid "Mode" +msgstr "" + +#: luci-app-glorytun-udp/htdocs/luci-static/resources/view/services/glorytun-udp.js:72 +msgid "Persist" +msgstr "" + +#: luci-app-glorytun-udp/htdocs/luci-static/resources/view/services/glorytun-udp.js:53 +msgid "Port" +msgstr "" + +#: luci-app-glorytun-udp/htdocs/luci-static/resources/view/services/glorytun-udp.js:68 +msgid "Remote IP" +msgstr "" + +#: luci-app-glorytun-udp/htdocs/luci-static/resources/view/services/glorytun-udp.js:47 +msgid "Server" +msgstr "" + +#: luci-app-glorytun-udp/htdocs/luci-static/resources/view/services/glorytun-udp.js:76 +msgid "chacha" +msgstr "" From bbdd13c32e1df311892ad372448c01c56cbc2a0a Mon Sep 17 00:00:00 2001 From: antrouter Date: Fri, 4 Dec 2020 15:59:14 +0000 Subject: [PATCH 098/117] Added translation using Weblate (Chinese (Simplified)) --- luci-app-mlvpn/po/zh_Hans/mlvpn.po | 74 ++++++++++++++++++++++++++++++ 1 file changed, 74 insertions(+) create mode 100644 luci-app-mlvpn/po/zh_Hans/mlvpn.po diff --git a/luci-app-mlvpn/po/zh_Hans/mlvpn.po b/luci-app-mlvpn/po/zh_Hans/mlvpn.po new file mode 100644 index 000000000..7123907f0 --- /dev/null +++ b/luci-app-mlvpn/po/zh_Hans/mlvpn.po @@ -0,0 +1,74 @@ +msgid "" +msgstr "" +"Language: zh_Hans\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: luci-app-mlvpn/htdocs/luci-static/resources/view/services/mlvpn.js:32 +msgid "Advanced Settings" +msgstr "" + +#: luci-app-mlvpn/htdocs/luci-static/resources/view/services/mlvpn.js:38 +msgid "Client" +msgstr "" + +#: luci-app-mlvpn/htdocs/luci-static/resources/view/services/mlvpn.js:34 +msgid "Enabled" +msgstr "" + +#: luci-app-mlvpn/htdocs/luci-static/resources/view/services/mlvpn.js:45 +msgid "First Port" +msgstr "" + +#: luci-app-mlvpn/htdocs/luci-static/resources/view/services/mlvpn.js:31 +msgid "General Settings" +msgstr "" + +#: luci-app-mlvpn/root/usr/share/rpcd/acl.d/luci-app-mlvpn.json:3 +msgid "Grant UCI access for luci-app-mlvpn" +msgstr "" + +#: luci-app-mlvpn/htdocs/luci-static/resources/view/services/mlvpn.js:42 +msgid "Host" +msgstr "" + +#: luci-app-mlvpn/htdocs/luci-static/resources/view/services/mlvpn.js:26 +msgid "Instances" +msgstr "" + +#: luci-app-mlvpn/htdocs/luci-static/resources/view/services/mlvpn.js:54 +msgid "Interface name" +msgstr "" + +#: luci-app-mlvpn/htdocs/luci-static/resources/view/services/mlvpn.js:78 +msgid "Label" +msgstr "" + +#: luci-app-mlvpn/htdocs/luci-static/resources/view/services/mlvpn.js:72 +msgid "Loss tolerance" +msgstr "" + +#: luci-app-mlvpn/htdocs/luci-static/resources/view/services/mlvpn.js:24 +#: luci-app-mlvpn/root/usr/share/luci/menu.d/luci-app-mlvpn.json:3 +msgid "MLVPN" +msgstr "" + +#: luci-app-mlvpn/htdocs/luci-static/resources/view/services/mlvpn.js:37 +msgid "Mode" +msgstr "" + +#: luci-app-mlvpn/htdocs/luci-static/resources/view/services/mlvpn.js:50 +msgid "Password" +msgstr "" + +#: luci-app-mlvpn/htdocs/luci-static/resources/view/services/mlvpn.js:66 +msgid "Reorder buffer size" +msgstr "" + +#: luci-app-mlvpn/htdocs/luci-static/resources/view/services/mlvpn.js:39 +msgid "Server" +msgstr "" + +#: luci-app-mlvpn/htdocs/luci-static/resources/view/services/mlvpn.js:60 +msgid "Timeout (s)" +msgstr "" From 9ace5d78947c8efc0f95074b56410c79ac00fe59 Mon Sep 17 00:00:00 2001 From: antrouter Date: Fri, 4 Dec 2020 15:50:29 +0000 Subject: [PATCH 099/117] Translated using Weblate (Chinese (Simplified)) Currently translated at 100.0% (19 of 19 strings) Translation: OpenMPTCProuter/LuCI/applications/iperf Translate-URL: http://weblate.openmptcprouter.com/projects/omr/luciapplicationsiperf/zh_Hans/ --- luci-app-iperf/po/zh_Hans/iperf.po | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/luci-app-iperf/po/zh_Hans/iperf.po b/luci-app-iperf/po/zh_Hans/iperf.po index d09964dbf..ca33cb025 100644 --- a/luci-app-iperf/po/zh_Hans/iperf.po +++ b/luci-app-iperf/po/zh_Hans/iperf.po @@ -1,6 +1,6 @@ msgid "" msgstr "" -"PO-Revision-Date: 2020-06-27 17:26+0000\n" +"PO-Revision-Date: 2020-12-04 16:02+0000\n" "Last-Translator: antrouter \n" "Language-Team: Chinese (Simplified) \n" @@ -49,7 +49,7 @@ msgstr "忽略前n秒" #: luci-app-iperf/luasrc/view/iperf/test.htm:151 msgid "Server" -msgstr "服务" +msgstr "服务器" #: luci-app-iperf/luasrc/view/iperf/test.htm:102 msgid "Settings" From 8d398e6e610036ee12f44270ecb4ed5906a873da Mon Sep 17 00:00:00 2001 From: antrouter Date: Fri, 4 Dec 2020 15:50:29 +0000 Subject: [PATCH 100/117] Translated using Weblate (Chinese (Simplified)) Currently translated at 100.0% (11 of 11 strings) Translation: OpenMPTCProuter/LuCI/applications/mail Translate-URL: http://weblate.openmptcprouter.com/projects/omr/luciapplicationsmail/zh_Hans/ --- luci-app-mail/po/zh_Hans/mail.po | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/luci-app-mail/po/zh_Hans/mail.po b/luci-app-mail/po/zh_Hans/mail.po index 2f4ee7b9f..1c3a57e2f 100644 --- a/luci-app-mail/po/zh_Hans/mail.po +++ b/luci-app-mail/po/zh_Hans/mail.po @@ -1,6 +1,6 @@ msgid "" msgstr "" -"PO-Revision-Date: 2020-06-27 17:26+0000\n" +"PO-Revision-Date: 2020-12-04 16:02+0000\n" "Last-Translator: antrouter \n" "Language-Team: Chinese (Simplified) \n" @@ -29,7 +29,7 @@ msgid "STARTTLS" msgstr "STARTTLS设置" msgid "Server" -msgstr "服务" +msgstr "服务器" msgid "Set mail settings for services that need to send mails." msgstr "为需要发送邮件的服务设置邮件设置." From d576cbca28c4fadc8492bc41c87af04e5b033c3c Mon Sep 17 00:00:00 2001 From: antrouter Date: Fri, 4 Dec 2020 15:53:16 +0000 Subject: [PATCH 101/117] Translated using Weblate (Chinese (Simplified)) Currently translated at 100.0% (55 of 55 strings) Translation: OpenMPTCProuter/LuCI/applications/mptcp Translate-URL: http://weblate.openmptcprouter.com/projects/omr/luciapplicationsmptcp/zh_Hans/ --- luci-app-mptcp/po/zh_Hans/mptcp.po | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/luci-app-mptcp/po/zh_Hans/mptcp.po b/luci-app-mptcp/po/zh_Hans/mptcp.po index 91de029d0..f40ceecd8 100644 --- a/luci-app-mptcp/po/zh_Hans/mptcp.po +++ b/luci-app-mptcp/po/zh_Hans/mptcp.po @@ -1,7 +1,7 @@ msgid "" msgstr "" -"PO-Revision-Date: 2020-11-06 06:58+0000\n" -"Last-Translator: 马 \n" +"PO-Revision-Date: 2020-12-04 16:02+0000\n" +"Last-Translator: antrouter \n" "Language-Team: Chinese (Simplified) \n" "Language: zh_Hans\n" @@ -97,7 +97,7 @@ msgstr "MB/s" #: luci-app-mptcp/luasrc/controller/mptcp.lua:9 #: luci-app-mptcp/luasrc/model/cbi/mptcp.lua:7 msgid "MPTCP" -msgstr "MPTCP" +msgstr "聚合" #: luci-app-mptcp/luasrc/controller/mptcp.lua:16 msgid "MPTCP Fullmesh" From 216b02ca47d6847e76bf2733b0709e33bfb2b16e Mon Sep 17 00:00:00 2001 From: antrouter Date: Fri, 4 Dec 2020 16:01:11 +0000 Subject: [PATCH 102/117] Translated using Weblate (Chinese (Simplified)) Currently translated at 100.0% (9 of 9 strings) Translation: OpenMPTCProuter/LuCI/applications/omr-tracker Translate-URL: http://weblate.openmptcprouter.com/projects/omr/luciapplicationsomr-tracker/zh_Hans/ --- luci-app-omr-tracker/po/zh_Hans/omr-tracker.po | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/luci-app-omr-tracker/po/zh_Hans/omr-tracker.po b/luci-app-omr-tracker/po/zh_Hans/omr-tracker.po index fa9ff694a..856001abd 100644 --- a/luci-app-omr-tracker/po/zh_Hans/omr-tracker.po +++ b/luci-app-omr-tracker/po/zh_Hans/omr-tracker.po @@ -1,6 +1,6 @@ msgid "" msgstr "" -"PO-Revision-Date: 2020-06-11 16:36+0000\n" +"PO-Revision-Date: 2020-12-04 16:02+0000\n" "Last-Translator: antrouter \n" "Language-Team: Chinese (Simplified) \n" @@ -31,7 +31,7 @@ msgid "Retry interval (s)" msgstr "重试间隔 (秒)" msgid "Timeout (s)" -msgstr "超时 (秒)" +msgstr "超时(s)" msgid "Tries" msgstr "尝试多少次" From 2ea28d853745481ab4917c4029c5f0dc324286de Mon Sep 17 00:00:00 2001 From: antrouter Date: Fri, 4 Dec 2020 15:50:29 +0000 Subject: [PATCH 103/117] Translated using Weblate (Chinese (Simplified)) Currently translated at 100.0% (39 of 39 strings) Translation: OpenMPTCProuter/LuCI/applications/snmpd Translate-URL: http://weblate.openmptcprouter.com/projects/omr/luciapplicationssnmpd/zh_Hans/ --- luci-app-snmpd/po/zh_Hans/snmpd.po | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/luci-app-snmpd/po/zh_Hans/snmpd.po b/luci-app-snmpd/po/zh_Hans/snmpd.po index a50abe073..f335aee8f 100644 --- a/luci-app-snmpd/po/zh_Hans/snmpd.po +++ b/luci-app-snmpd/po/zh_Hans/snmpd.po @@ -1,6 +1,6 @@ msgid "" msgstr "" -"PO-Revision-Date: 2020-06-28 08:34+0000\n" +"PO-Revision-Date: 2020-12-04 16:03+0000\n" "Last-Translator: antrouter \n" "Language-Team: Chinese (Simplified) \n" @@ -144,7 +144,7 @@ msgstr "SNMPd设置界面(蚂蚁测试版)" #: luci-app-snmpd/luasrc/model/cbi/snmpd.lua:32 msgid "Server" -msgstr "服务" +msgstr "服务器" #: luci-app-snmpd/luasrc/model/cbi/snmpd.lua:37 msgid "Source" From 46a29a1d3d13656ee812e666e9a4e3160a77ad2c Mon Sep 17 00:00:00 2001 From: antrouter Date: Fri, 4 Dec 2020 15:47:50 +0000 Subject: [PATCH 104/117] Translated using Weblate (Chinese (Simplified)) Currently translated at 100.0% (14 of 14 strings) Translation: OpenMPTCProuter/LuCI/applications/dsvpn Translate-URL: http://weblate.openmptcprouter.com/projects/omr/luciapplicationsdsvpn/zh_Hans/ --- luci-app-dsvpn/po/zh_Hans/dsvpn.po | 34 ++++++++++++++++++------------ 1 file changed, 20 insertions(+), 14 deletions(-) diff --git a/luci-app-dsvpn/po/zh_Hans/dsvpn.po b/luci-app-dsvpn/po/zh_Hans/dsvpn.po index 02f63464e..177492257 100644 --- a/luci-app-dsvpn/po/zh_Hans/dsvpn.po +++ b/luci-app-dsvpn/po/zh_Hans/dsvpn.po @@ -1,62 +1,68 @@ msgid "" msgstr "" +"PO-Revision-Date: 2020-12-04 16:03+0000\n" +"Last-Translator: antrouter \n" +"Language-Team: Chinese (Simplified) \n" "Language: zh_Hans\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" +"X-Generator: Weblate 4.0.4\n" #: luci-app-dsvpn/htdocs/luci-static/resources/view/services/dsvpn.js:35 msgid "Client" -msgstr "" +msgstr "客户端" #: luci-app-dsvpn/htdocs/luci-static/resources/view/services/dsvpn.js:24 #: luci-app-dsvpn/root/usr/share/luci/menu.d/luci-app-dsvpn.json:3 msgid "DSVPN" -msgstr "" +msgstr "DSVPN" #: luci-app-dsvpn/htdocs/luci-static/resources/view/services/dsvpn.js:31 msgid "Enabled" -msgstr "" +msgstr "开启" #: luci-app-dsvpn/root/usr/share/rpcd/acl.d/luci-app-dsvpn.json:3 msgid "Grant access to DSVPN" -msgstr "" +msgstr "授予对DSVPN的访问权限" #: luci-app-dsvpn/htdocs/luci-static/resources/view/services/dsvpn.js:39 msgid "Host" -msgstr "" +msgstr "主机" #: luci-app-dsvpn/htdocs/luci-static/resources/view/services/dsvpn.js:26 msgid "Instances" -msgstr "" +msgstr "实例" #: luci-app-dsvpn/htdocs/luci-static/resources/view/services/dsvpn.js:49 msgid "Interface name" -msgstr "" +msgstr "接口名称" #: luci-app-dsvpn/htdocs/luci-static/resources/view/services/dsvpn.js:45 msgid "Key" -msgstr "" +msgstr "秘钥" #: luci-app-dsvpn/htdocs/luci-static/resources/view/services/dsvpn.js:61 msgid "Label" -msgstr "" +msgstr "标签" #: luci-app-dsvpn/htdocs/luci-static/resources/view/services/dsvpn.js:53 msgid "Local IP" -msgstr "" +msgstr "本地IP" #: luci-app-dsvpn/htdocs/luci-static/resources/view/services/dsvpn.js:34 msgid "Mode" -msgstr "" +msgstr "模式" #: luci-app-dsvpn/htdocs/luci-static/resources/view/services/dsvpn.js:42 msgid "Port" -msgstr "" +msgstr "端口" #: luci-app-dsvpn/htdocs/luci-static/resources/view/services/dsvpn.js:57 msgid "Remote IP" -msgstr "" +msgstr "远程IP" #: luci-app-dsvpn/htdocs/luci-static/resources/view/services/dsvpn.js:36 msgid "Server" -msgstr "" +msgstr "服务器" From e537b4158a5672c00b484a159f5fb9f15cbf4127 Mon Sep 17 00:00:00 2001 From: antrouter Date: Fri, 4 Dec 2020 15:50:57 +0000 Subject: [PATCH 105/117] Translated using Weblate (Chinese (Simplified)) Currently translated at 100.0% (21 of 21 strings) Translation: OpenMPTCProuter/LuCI/applications/glorytun-tcp Translate-URL: http://weblate.openmptcprouter.com/projects/omr/glorytun-tcp/zh_Hans/ --- .../po/zh_Hans/glorytun-tcp.po | 48 +++++++++++-------- 1 file changed, 27 insertions(+), 21 deletions(-) diff --git a/luci-app-glorytun-tcp/po/zh_Hans/glorytun-tcp.po b/luci-app-glorytun-tcp/po/zh_Hans/glorytun-tcp.po index 16936b056..debdafdef 100644 --- a/luci-app-glorytun-tcp/po/zh_Hans/glorytun-tcp.po +++ b/luci-app-glorytun-tcp/po/zh_Hans/glorytun-tcp.po @@ -1,90 +1,96 @@ msgid "" msgstr "" +"PO-Revision-Date: 2020-12-04 16:03+0000\n" +"Last-Translator: antrouter \n" +"Language-Team: Chinese (Simplified) \n" "Language: zh_Hans\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" +"X-Generator: Weblate 4.0.4\n" #: luci-app-glorytun-tcp/htdocs/luci-static/resources/view/services/glorytun-tcp.js:32 msgid "Advanced Settings" -msgstr "" +msgstr "高级设置" #: luci-app-glorytun-tcp/htdocs/luci-static/resources/view/services/glorytun-tcp.js:38 msgid "Client" -msgstr "" +msgstr "客户端" #: luci-app-glorytun-tcp/htdocs/luci-static/resources/view/services/glorytun-tcp.js:34 msgid "Enabled" -msgstr "" +msgstr "开启" #: luci-app-glorytun-tcp/htdocs/luci-static/resources/view/services/glorytun-tcp.js:68 msgid "Force fallback cipher" -msgstr "" +msgstr "强制回退密码" #: luci-app-glorytun-tcp/htdocs/luci-static/resources/view/services/glorytun-tcp.js:31 msgid "General Settings" -msgstr "" +msgstr "通用设置" #: luci-app-glorytun-tcp/htdocs/luci-static/resources/view/services/glorytun-tcp.js:24 #: luci-app-glorytun-tcp/root/usr/share/luci/menu.d/luci-app-glorytun-tcp.json:3 msgid "Glorytun TCP" -msgstr "" +msgstr "glorytun TCP" #: luci-app-glorytun-tcp/root/usr/share/rpcd/acl.d/luci-app-glorytun-tcp.json:3 msgid "Grant access to glorytun TCP" -msgstr "" +msgstr "授予访问glorytun TCP的权限" #: luci-app-glorytun-tcp/htdocs/luci-static/resources/view/services/glorytun-tcp.js:42 msgid "Host" -msgstr "" +msgstr "主机" #: luci-app-glorytun-tcp/htdocs/luci-static/resources/view/services/glorytun-tcp.js:26 msgid "Instances" -msgstr "" +msgstr "实例" #: luci-app-glorytun-tcp/htdocs/luci-static/resources/view/services/glorytun-tcp.js:52 msgid "Interface name" -msgstr "" +msgstr "接口名称" #: luci-app-glorytun-tcp/htdocs/luci-static/resources/view/services/glorytun-tcp.js:48 msgid "Key" -msgstr "" +msgstr "秘钥" #: luci-app-glorytun-tcp/htdocs/luci-static/resources/view/services/glorytun-tcp.js:82 msgid "Label" -msgstr "" +msgstr "标签" #: luci-app-glorytun-tcp/htdocs/luci-static/resources/view/services/glorytun-tcp.js:56 msgid "Local IP" -msgstr "" +msgstr "本地IP" #: luci-app-glorytun-tcp/htdocs/luci-static/resources/view/services/glorytun-tcp.js:64 msgid "MPTCP" -msgstr "" +msgstr "聚合" #: luci-app-glorytun-tcp/htdocs/luci-static/resources/view/services/glorytun-tcp.js:37 msgid "Mode" -msgstr "" +msgstr "模式" #: luci-app-glorytun-tcp/htdocs/luci-static/resources/view/services/glorytun-tcp.js:77 msgid "Multiqueue" -msgstr "" +msgstr "多队列" #: luci-app-glorytun-tcp/htdocs/luci-static/resources/view/services/glorytun-tcp.js:45 msgid "Port" -msgstr "" +msgstr "端口" #: luci-app-glorytun-tcp/htdocs/luci-static/resources/view/services/glorytun-tcp.js:60 msgid "Remote IP" -msgstr "" +msgstr "远程IP" #: luci-app-glorytun-tcp/htdocs/luci-static/resources/view/services/glorytun-tcp.js:39 msgid "Server" -msgstr "" +msgstr "服务器" #: luci-app-glorytun-tcp/htdocs/luci-static/resources/view/services/glorytun-tcp.js:72 msgid "Timeout" -msgstr "" +msgstr "超时" #: luci-app-glorytun-tcp/htdocs/luci-static/resources/view/services/glorytun-tcp.js:68 msgid "chacha" -msgstr "" +msgstr "chacha密码" From 228331410deb614dc1a5cff1c445f2b7e2375be8 Mon Sep 17 00:00:00 2001 From: antrouter Date: Fri, 4 Dec 2020 15:54:26 +0000 Subject: [PATCH 106/117] Translated using Weblate (Chinese (Simplified)) Currently translated at 100.0% (24 of 24 strings) Translation: OpenMPTCProuter/LuCI/applications/glorytun-udp Translate-URL: http://weblate.openmptcprouter.com/projects/omr/luciapplicationsglorytun-udp/zh_Hans/ --- .../po/zh_Hans/glorytun-udp.po | 54 ++++++++++--------- 1 file changed, 30 insertions(+), 24 deletions(-) diff --git a/luci-app-glorytun-udp/po/zh_Hans/glorytun-udp.po b/luci-app-glorytun-udp/po/zh_Hans/glorytun-udp.po index 4ec28b582..e88aedcbb 100644 --- a/luci-app-glorytun-udp/po/zh_Hans/glorytun-udp.po +++ b/luci-app-glorytun-udp/po/zh_Hans/glorytun-udp.po @@ -1,102 +1,108 @@ msgid "" msgstr "" +"PO-Revision-Date: 2020-12-04 16:03+0000\n" +"Last-Translator: antrouter \n" +"Language-Team: Chinese (Simplified) \n" "Language: zh_Hans\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" +"X-Generator: Weblate 4.0.4\n" #: luci-app-glorytun-udp/htdocs/luci-static/resources/view/services/glorytun-udp.js:40 msgid "Advanced Settings" -msgstr "" +msgstr "高级设置" #: luci-app-glorytun-udp/htdocs/luci-static/resources/view/services/glorytun-udp.js:46 msgid "Client" -msgstr "" +msgstr "客户端" #: luci-app-glorytun-udp/htdocs/luci-static/resources/view/services/glorytun-udp.js:85 msgid "Clock sync tolerance" -msgstr "" +msgstr "时钟同步容限" #: luci-app-glorytun-udp/htdocs/luci-static/resources/view/services/glorytun-udp.js:95 msgid "Dynamic rate detection" -msgstr "" +msgstr "动态速率检测" #: luci-app-glorytun-udp/htdocs/luci-static/resources/view/services/glorytun-udp.js:42 msgid "Enabled" -msgstr "" +msgstr "开启" #: luci-app-glorytun-udp/htdocs/luci-static/resources/view/services/glorytun-udp.js:76 msgid "Force fallback cipher" -msgstr "" +msgstr "强制回退密码" #: luci-app-glorytun-udp/htdocs/luci-static/resources/view/services/glorytun-udp.js:39 msgid "General Settings" -msgstr "" +msgstr "通用设置" #: luci-app-glorytun-udp/htdocs/luci-static/resources/view/services/glorytun-udp.js:32 #: luci-app-glorytun-udp/root/usr/share/luci/menu.d/luci-app-glorytun-udp.json:3 msgid "Glorytun UDP" -msgstr "" +msgstr "glorytun UDP" #: luci-app-glorytun-udp/root/usr/share/rpcd/acl.d/luci-app-glorytun-udp.json:3 msgid "Grant access to glorytun UDP" -msgstr "" +msgstr "授予访问glorytun UDP的权限" #: luci-app-glorytun-udp/htdocs/luci-static/resources/view/services/glorytun-udp.js:50 msgid "Host" -msgstr "" +msgstr "主机" #: luci-app-glorytun-udp/htdocs/luci-static/resources/view/services/glorytun-udp.js:34 msgid "Instances" -msgstr "" +msgstr "实例" #: luci-app-glorytun-udp/htdocs/luci-static/resources/view/services/glorytun-udp.js:60 msgid "Interface name" -msgstr "" +msgstr "接口名称" #: luci-app-glorytun-udp/htdocs/luci-static/resources/view/services/glorytun-udp.js:90 msgid "Keep alive timeout" -msgstr "" +msgstr "保持超时" #: luci-app-glorytun-udp/htdocs/luci-static/resources/view/services/glorytun-udp.js:72 msgid "Keep the tunnel device after exiting" -msgstr "" +msgstr "退出后保留隧道设备" #: luci-app-glorytun-udp/htdocs/luci-static/resources/view/services/glorytun-udp.js:56 msgid "Key" -msgstr "" +msgstr "秘钥" #: luci-app-glorytun-udp/htdocs/luci-static/resources/view/services/glorytun-udp.js:80 msgid "Key rotation timeout" -msgstr "" +msgstr "秘钥轮换超时" #: luci-app-glorytun-udp/htdocs/luci-static/resources/view/services/glorytun-udp.js:99 msgid "Label" -msgstr "" +msgstr "标签" #: luci-app-glorytun-udp/htdocs/luci-static/resources/view/services/glorytun-udp.js:64 msgid "Local IP" -msgstr "" +msgstr "本地IP" #: luci-app-glorytun-udp/htdocs/luci-static/resources/view/services/glorytun-udp.js:45 msgid "Mode" -msgstr "" +msgstr "模式" #: luci-app-glorytun-udp/htdocs/luci-static/resources/view/services/glorytun-udp.js:72 msgid "Persist" -msgstr "" +msgstr "保持" #: luci-app-glorytun-udp/htdocs/luci-static/resources/view/services/glorytun-udp.js:53 msgid "Port" -msgstr "" +msgstr "端口" #: luci-app-glorytun-udp/htdocs/luci-static/resources/view/services/glorytun-udp.js:68 msgid "Remote IP" -msgstr "" +msgstr "远程IP" #: luci-app-glorytun-udp/htdocs/luci-static/resources/view/services/glorytun-udp.js:47 msgid "Server" -msgstr "" +msgstr "服务器" #: luci-app-glorytun-udp/htdocs/luci-static/resources/view/services/glorytun-udp.js:76 msgid "chacha" -msgstr "" +msgstr "chacha密码" From 4faa9347708a3fc984711b47b5cbd14f8cd5e9cd Mon Sep 17 00:00:00 2001 From: antrouter Date: Fri, 4 Dec 2020 15:59:23 +0000 Subject: [PATCH 107/117] Translated using Weblate (Chinese (Simplified)) Currently translated at 100.0% (17 of 17 strings) Translation: OpenMPTCProuter/LuCI/applications/mlvpn Translate-URL: http://weblate.openmptcprouter.com/projects/omr/luciapplicationsmlvpn/zh_Hans/ --- luci-app-mlvpn/po/zh_Hans/mlvpn.po | 40 +++++++++++++++++------------- 1 file changed, 23 insertions(+), 17 deletions(-) diff --git a/luci-app-mlvpn/po/zh_Hans/mlvpn.po b/luci-app-mlvpn/po/zh_Hans/mlvpn.po index 7123907f0..868ff2e57 100644 --- a/luci-app-mlvpn/po/zh_Hans/mlvpn.po +++ b/luci-app-mlvpn/po/zh_Hans/mlvpn.po @@ -1,74 +1,80 @@ msgid "" msgstr "" +"PO-Revision-Date: 2020-12-04 16:03+0000\n" +"Last-Translator: antrouter \n" +"Language-Team: Chinese (Simplified) \n" "Language: zh_Hans\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" +"X-Generator: Weblate 4.0.4\n" #: luci-app-mlvpn/htdocs/luci-static/resources/view/services/mlvpn.js:32 msgid "Advanced Settings" -msgstr "" +msgstr "高级设置" #: luci-app-mlvpn/htdocs/luci-static/resources/view/services/mlvpn.js:38 msgid "Client" -msgstr "" +msgstr "客户端" #: luci-app-mlvpn/htdocs/luci-static/resources/view/services/mlvpn.js:34 msgid "Enabled" -msgstr "" +msgstr "开启" #: luci-app-mlvpn/htdocs/luci-static/resources/view/services/mlvpn.js:45 msgid "First Port" -msgstr "" +msgstr "第一端口" #: luci-app-mlvpn/htdocs/luci-static/resources/view/services/mlvpn.js:31 msgid "General Settings" -msgstr "" +msgstr "通用设置" #: luci-app-mlvpn/root/usr/share/rpcd/acl.d/luci-app-mlvpn.json:3 msgid "Grant UCI access for luci-app-mlvpn" -msgstr "" +msgstr "授予UCI访问luci-app-mlvpn的权限" #: luci-app-mlvpn/htdocs/luci-static/resources/view/services/mlvpn.js:42 msgid "Host" -msgstr "" +msgstr "主机" #: luci-app-mlvpn/htdocs/luci-static/resources/view/services/mlvpn.js:26 msgid "Instances" -msgstr "" +msgstr "实例" #: luci-app-mlvpn/htdocs/luci-static/resources/view/services/mlvpn.js:54 msgid "Interface name" -msgstr "" +msgstr "接口名称" #: luci-app-mlvpn/htdocs/luci-static/resources/view/services/mlvpn.js:78 msgid "Label" -msgstr "" +msgstr "标签" #: luci-app-mlvpn/htdocs/luci-static/resources/view/services/mlvpn.js:72 msgid "Loss tolerance" -msgstr "" +msgstr "损失容忍" #: luci-app-mlvpn/htdocs/luci-static/resources/view/services/mlvpn.js:24 #: luci-app-mlvpn/root/usr/share/luci/menu.d/luci-app-mlvpn.json:3 msgid "MLVPN" -msgstr "" +msgstr "mlvpn" #: luci-app-mlvpn/htdocs/luci-static/resources/view/services/mlvpn.js:37 msgid "Mode" -msgstr "" +msgstr "模式" #: luci-app-mlvpn/htdocs/luci-static/resources/view/services/mlvpn.js:50 msgid "Password" -msgstr "" +msgstr "密码" #: luci-app-mlvpn/htdocs/luci-static/resources/view/services/mlvpn.js:66 msgid "Reorder buffer size" -msgstr "" +msgstr "重新排序缓冲区大小" #: luci-app-mlvpn/htdocs/luci-static/resources/view/services/mlvpn.js:39 msgid "Server" -msgstr "" +msgstr "服务器" #: luci-app-mlvpn/htdocs/luci-static/resources/view/services/mlvpn.js:60 msgid "Timeout (s)" -msgstr "" +msgstr "超时(s)" From 3cf615ab2a2ee0958537637665a2fcd243e1eab2 Mon Sep 17 00:00:00 2001 From: Weblate Admin Date: Tue, 15 Dec 2020 09:57:19 +0000 Subject: [PATCH 108/117] Added translation using Weblate (French) --- luci-app-glorytun-tcp/po/fr/glorytun-tcp.po | 90 +++++++++++++++++++++ 1 file changed, 90 insertions(+) create mode 100644 luci-app-glorytun-tcp/po/fr/glorytun-tcp.po diff --git a/luci-app-glorytun-tcp/po/fr/glorytun-tcp.po b/luci-app-glorytun-tcp/po/fr/glorytun-tcp.po new file mode 100644 index 000000000..d894f4295 --- /dev/null +++ b/luci-app-glorytun-tcp/po/fr/glorytun-tcp.po @@ -0,0 +1,90 @@ +msgid "" +msgstr "" +"Language: fr\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: luci-app-glorytun-tcp/htdocs/luci-static/resources/view/services/glorytun-tcp.js:32 +msgid "Advanced Settings" +msgstr "" + +#: luci-app-glorytun-tcp/htdocs/luci-static/resources/view/services/glorytun-tcp.js:38 +msgid "Client" +msgstr "" + +#: luci-app-glorytun-tcp/htdocs/luci-static/resources/view/services/glorytun-tcp.js:34 +msgid "Enabled" +msgstr "" + +#: luci-app-glorytun-tcp/htdocs/luci-static/resources/view/services/glorytun-tcp.js:68 +msgid "Force fallback cipher" +msgstr "" + +#: luci-app-glorytun-tcp/htdocs/luci-static/resources/view/services/glorytun-tcp.js:31 +msgid "General Settings" +msgstr "" + +#: luci-app-glorytun-tcp/htdocs/luci-static/resources/view/services/glorytun-tcp.js:24 +#: luci-app-glorytun-tcp/root/usr/share/luci/menu.d/luci-app-glorytun-tcp.json:3 +msgid "Glorytun TCP" +msgstr "" + +#: luci-app-glorytun-tcp/root/usr/share/rpcd/acl.d/luci-app-glorytun-tcp.json:3 +msgid "Grant access to glorytun TCP" +msgstr "" + +#: luci-app-glorytun-tcp/htdocs/luci-static/resources/view/services/glorytun-tcp.js:42 +msgid "Host" +msgstr "" + +#: luci-app-glorytun-tcp/htdocs/luci-static/resources/view/services/glorytun-tcp.js:26 +msgid "Instances" +msgstr "" + +#: luci-app-glorytun-tcp/htdocs/luci-static/resources/view/services/glorytun-tcp.js:52 +msgid "Interface name" +msgstr "" + +#: luci-app-glorytun-tcp/htdocs/luci-static/resources/view/services/glorytun-tcp.js:48 +msgid "Key" +msgstr "" + +#: luci-app-glorytun-tcp/htdocs/luci-static/resources/view/services/glorytun-tcp.js:82 +msgid "Label" +msgstr "" + +#: luci-app-glorytun-tcp/htdocs/luci-static/resources/view/services/glorytun-tcp.js:56 +msgid "Local IP" +msgstr "" + +#: luci-app-glorytun-tcp/htdocs/luci-static/resources/view/services/glorytun-tcp.js:64 +msgid "MPTCP" +msgstr "" + +#: luci-app-glorytun-tcp/htdocs/luci-static/resources/view/services/glorytun-tcp.js:37 +msgid "Mode" +msgstr "" + +#: luci-app-glorytun-tcp/htdocs/luci-static/resources/view/services/glorytun-tcp.js:77 +msgid "Multiqueue" +msgstr "" + +#: luci-app-glorytun-tcp/htdocs/luci-static/resources/view/services/glorytun-tcp.js:45 +msgid "Port" +msgstr "" + +#: luci-app-glorytun-tcp/htdocs/luci-static/resources/view/services/glorytun-tcp.js:60 +msgid "Remote IP" +msgstr "" + +#: luci-app-glorytun-tcp/htdocs/luci-static/resources/view/services/glorytun-tcp.js:39 +msgid "Server" +msgstr "" + +#: luci-app-glorytun-tcp/htdocs/luci-static/resources/view/services/glorytun-tcp.js:72 +msgid "Timeout" +msgstr "" + +#: luci-app-glorytun-tcp/htdocs/luci-static/resources/view/services/glorytun-tcp.js:68 +msgid "chacha" +msgstr "" From 81bd8b705576c9b4a744f223ffa3205716305b64 Mon Sep 17 00:00:00 2001 From: Weblate Admin Date: Tue, 15 Dec 2020 10:00:06 +0000 Subject: [PATCH 109/117] Added translation using Weblate (French) --- luci-app-glorytun-udp/po/fr/glorytun-udp.po | 102 ++++++++++++++++++++ 1 file changed, 102 insertions(+) create mode 100644 luci-app-glorytun-udp/po/fr/glorytun-udp.po diff --git a/luci-app-glorytun-udp/po/fr/glorytun-udp.po b/luci-app-glorytun-udp/po/fr/glorytun-udp.po new file mode 100644 index 000000000..5c0e7e276 --- /dev/null +++ b/luci-app-glorytun-udp/po/fr/glorytun-udp.po @@ -0,0 +1,102 @@ +msgid "" +msgstr "" +"Language: fr\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: luci-app-glorytun-udp/htdocs/luci-static/resources/view/services/glorytun-udp.js:40 +msgid "Advanced Settings" +msgstr "" + +#: luci-app-glorytun-udp/htdocs/luci-static/resources/view/services/glorytun-udp.js:46 +msgid "Client" +msgstr "" + +#: luci-app-glorytun-udp/htdocs/luci-static/resources/view/services/glorytun-udp.js:85 +msgid "Clock sync tolerance" +msgstr "" + +#: luci-app-glorytun-udp/htdocs/luci-static/resources/view/services/glorytun-udp.js:95 +msgid "Dynamic rate detection" +msgstr "" + +#: luci-app-glorytun-udp/htdocs/luci-static/resources/view/services/glorytun-udp.js:42 +msgid "Enabled" +msgstr "" + +#: luci-app-glorytun-udp/htdocs/luci-static/resources/view/services/glorytun-udp.js:76 +msgid "Force fallback cipher" +msgstr "" + +#: luci-app-glorytun-udp/htdocs/luci-static/resources/view/services/glorytun-udp.js:39 +msgid "General Settings" +msgstr "" + +#: luci-app-glorytun-udp/htdocs/luci-static/resources/view/services/glorytun-udp.js:32 +#: luci-app-glorytun-udp/root/usr/share/luci/menu.d/luci-app-glorytun-udp.json:3 +msgid "Glorytun UDP" +msgstr "" + +#: luci-app-glorytun-udp/root/usr/share/rpcd/acl.d/luci-app-glorytun-udp.json:3 +msgid "Grant access to glorytun UDP" +msgstr "" + +#: luci-app-glorytun-udp/htdocs/luci-static/resources/view/services/glorytun-udp.js:50 +msgid "Host" +msgstr "" + +#: luci-app-glorytun-udp/htdocs/luci-static/resources/view/services/glorytun-udp.js:34 +msgid "Instances" +msgstr "" + +#: luci-app-glorytun-udp/htdocs/luci-static/resources/view/services/glorytun-udp.js:60 +msgid "Interface name" +msgstr "" + +#: luci-app-glorytun-udp/htdocs/luci-static/resources/view/services/glorytun-udp.js:90 +msgid "Keep alive timeout" +msgstr "" + +#: luci-app-glorytun-udp/htdocs/luci-static/resources/view/services/glorytun-udp.js:72 +msgid "Keep the tunnel device after exiting" +msgstr "" + +#: luci-app-glorytun-udp/htdocs/luci-static/resources/view/services/glorytun-udp.js:56 +msgid "Key" +msgstr "" + +#: luci-app-glorytun-udp/htdocs/luci-static/resources/view/services/glorytun-udp.js:80 +msgid "Key rotation timeout" +msgstr "" + +#: luci-app-glorytun-udp/htdocs/luci-static/resources/view/services/glorytun-udp.js:99 +msgid "Label" +msgstr "" + +#: luci-app-glorytun-udp/htdocs/luci-static/resources/view/services/glorytun-udp.js:64 +msgid "Local IP" +msgstr "" + +#: luci-app-glorytun-udp/htdocs/luci-static/resources/view/services/glorytun-udp.js:45 +msgid "Mode" +msgstr "" + +#: luci-app-glorytun-udp/htdocs/luci-static/resources/view/services/glorytun-udp.js:72 +msgid "Persist" +msgstr "" + +#: luci-app-glorytun-udp/htdocs/luci-static/resources/view/services/glorytun-udp.js:53 +msgid "Port" +msgstr "" + +#: luci-app-glorytun-udp/htdocs/luci-static/resources/view/services/glorytun-udp.js:68 +msgid "Remote IP" +msgstr "" + +#: luci-app-glorytun-udp/htdocs/luci-static/resources/view/services/glorytun-udp.js:47 +msgid "Server" +msgstr "" + +#: luci-app-glorytun-udp/htdocs/luci-static/resources/view/services/glorytun-udp.js:76 +msgid "chacha" +msgstr "" From aeda98c5290cef7ad94afb8ec593cbe48893bce4 Mon Sep 17 00:00:00 2001 From: Weblate Admin Date: Tue, 15 Dec 2020 10:02:54 +0000 Subject: [PATCH 110/117] Added translation using Weblate (French) --- luci-app-dsvpn/po/fr/dsvpn.po | 62 +++++++++++++++++++++++++++++++++++ 1 file changed, 62 insertions(+) create mode 100644 luci-app-dsvpn/po/fr/dsvpn.po diff --git a/luci-app-dsvpn/po/fr/dsvpn.po b/luci-app-dsvpn/po/fr/dsvpn.po new file mode 100644 index 000000000..fd76be4a6 --- /dev/null +++ b/luci-app-dsvpn/po/fr/dsvpn.po @@ -0,0 +1,62 @@ +msgid "" +msgstr "" +"Language: fr\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: luci-app-dsvpn/htdocs/luci-static/resources/view/services/dsvpn.js:35 +msgid "Client" +msgstr "" + +#: luci-app-dsvpn/htdocs/luci-static/resources/view/services/dsvpn.js:24 +#: luci-app-dsvpn/root/usr/share/luci/menu.d/luci-app-dsvpn.json:3 +msgid "DSVPN" +msgstr "" + +#: luci-app-dsvpn/htdocs/luci-static/resources/view/services/dsvpn.js:31 +msgid "Enabled" +msgstr "" + +#: luci-app-dsvpn/root/usr/share/rpcd/acl.d/luci-app-dsvpn.json:3 +msgid "Grant access to DSVPN" +msgstr "" + +#: luci-app-dsvpn/htdocs/luci-static/resources/view/services/dsvpn.js:39 +msgid "Host" +msgstr "" + +#: luci-app-dsvpn/htdocs/luci-static/resources/view/services/dsvpn.js:26 +msgid "Instances" +msgstr "" + +#: luci-app-dsvpn/htdocs/luci-static/resources/view/services/dsvpn.js:49 +msgid "Interface name" +msgstr "" + +#: luci-app-dsvpn/htdocs/luci-static/resources/view/services/dsvpn.js:45 +msgid "Key" +msgstr "" + +#: luci-app-dsvpn/htdocs/luci-static/resources/view/services/dsvpn.js:61 +msgid "Label" +msgstr "" + +#: luci-app-dsvpn/htdocs/luci-static/resources/view/services/dsvpn.js:53 +msgid "Local IP" +msgstr "" + +#: luci-app-dsvpn/htdocs/luci-static/resources/view/services/dsvpn.js:34 +msgid "Mode" +msgstr "" + +#: luci-app-dsvpn/htdocs/luci-static/resources/view/services/dsvpn.js:42 +msgid "Port" +msgstr "" + +#: luci-app-dsvpn/htdocs/luci-static/resources/view/services/dsvpn.js:57 +msgid "Remote IP" +msgstr "" + +#: luci-app-dsvpn/htdocs/luci-static/resources/view/services/dsvpn.js:36 +msgid "Server" +msgstr "" From 89f3ee3aa3f4711c55bfcec6063c619c181ff977 Mon Sep 17 00:00:00 2001 From: Weblate Admin Date: Tue, 15 Dec 2020 10:03:54 +0000 Subject: [PATCH 111/117] Added translation using Weblate (French) --- luci-app-mlvpn/po/fr/mlvpn.po | 74 +++++++++++++++++++++++++++++++++++ 1 file changed, 74 insertions(+) create mode 100644 luci-app-mlvpn/po/fr/mlvpn.po diff --git a/luci-app-mlvpn/po/fr/mlvpn.po b/luci-app-mlvpn/po/fr/mlvpn.po new file mode 100644 index 000000000..cffecb908 --- /dev/null +++ b/luci-app-mlvpn/po/fr/mlvpn.po @@ -0,0 +1,74 @@ +msgid "" +msgstr "" +"Language: fr\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: luci-app-mlvpn/htdocs/luci-static/resources/view/services/mlvpn.js:32 +msgid "Advanced Settings" +msgstr "" + +#: luci-app-mlvpn/htdocs/luci-static/resources/view/services/mlvpn.js:38 +msgid "Client" +msgstr "" + +#: luci-app-mlvpn/htdocs/luci-static/resources/view/services/mlvpn.js:34 +msgid "Enabled" +msgstr "" + +#: luci-app-mlvpn/htdocs/luci-static/resources/view/services/mlvpn.js:45 +msgid "First Port" +msgstr "" + +#: luci-app-mlvpn/htdocs/luci-static/resources/view/services/mlvpn.js:31 +msgid "General Settings" +msgstr "" + +#: luci-app-mlvpn/root/usr/share/rpcd/acl.d/luci-app-mlvpn.json:3 +msgid "Grant UCI access for luci-app-mlvpn" +msgstr "" + +#: luci-app-mlvpn/htdocs/luci-static/resources/view/services/mlvpn.js:42 +msgid "Host" +msgstr "" + +#: luci-app-mlvpn/htdocs/luci-static/resources/view/services/mlvpn.js:26 +msgid "Instances" +msgstr "" + +#: luci-app-mlvpn/htdocs/luci-static/resources/view/services/mlvpn.js:54 +msgid "Interface name" +msgstr "" + +#: luci-app-mlvpn/htdocs/luci-static/resources/view/services/mlvpn.js:78 +msgid "Label" +msgstr "" + +#: luci-app-mlvpn/htdocs/luci-static/resources/view/services/mlvpn.js:72 +msgid "Loss tolerance" +msgstr "" + +#: luci-app-mlvpn/htdocs/luci-static/resources/view/services/mlvpn.js:24 +#: luci-app-mlvpn/root/usr/share/luci/menu.d/luci-app-mlvpn.json:3 +msgid "MLVPN" +msgstr "" + +#: luci-app-mlvpn/htdocs/luci-static/resources/view/services/mlvpn.js:37 +msgid "Mode" +msgstr "" + +#: luci-app-mlvpn/htdocs/luci-static/resources/view/services/mlvpn.js:50 +msgid "Password" +msgstr "" + +#: luci-app-mlvpn/htdocs/luci-static/resources/view/services/mlvpn.js:66 +msgid "Reorder buffer size" +msgstr "" + +#: luci-app-mlvpn/htdocs/luci-static/resources/view/services/mlvpn.js:39 +msgid "Server" +msgstr "" + +#: luci-app-mlvpn/htdocs/luci-static/resources/view/services/mlvpn.js:60 +msgid "Timeout (s)" +msgstr "" From 5553825e735ca2b05e9f0bf00dfb856b20394971 Mon Sep 17 00:00:00 2001 From: Weblate Admin Date: Tue, 15 Dec 2020 09:57:28 +0000 Subject: [PATCH 112/117] Translated using Weblate (French) Currently translated at 95.2% (20 of 21 strings) Translation: OpenMPTCProuter/LuCI/applications/glorytun-tcp Translate-URL: http://weblate.openmptcprouter.com/projects/omr/glorytun-tcp/fr/ --- luci-app-glorytun-tcp/po/fr/glorytun-tcp.po | 46 ++++++++++++--------- 1 file changed, 26 insertions(+), 20 deletions(-) diff --git a/luci-app-glorytun-tcp/po/fr/glorytun-tcp.po b/luci-app-glorytun-tcp/po/fr/glorytun-tcp.po index d894f4295..cd96b6f5b 100644 --- a/luci-app-glorytun-tcp/po/fr/glorytun-tcp.po +++ b/luci-app-glorytun-tcp/po/fr/glorytun-tcp.po @@ -1,85 +1,91 @@ msgid "" msgstr "" +"PO-Revision-Date: 2020-12-15 14:46+0000\n" +"Last-Translator: Weblate Admin \n" +"Language-Team: French \n" "Language: fr\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=n > 1;\n" +"X-Generator: Weblate 4.0.4\n" #: luci-app-glorytun-tcp/htdocs/luci-static/resources/view/services/glorytun-tcp.js:32 msgid "Advanced Settings" -msgstr "" +msgstr "Configuration avancée" #: luci-app-glorytun-tcp/htdocs/luci-static/resources/view/services/glorytun-tcp.js:38 msgid "Client" -msgstr "" +msgstr "Client" #: luci-app-glorytun-tcp/htdocs/luci-static/resources/view/services/glorytun-tcp.js:34 msgid "Enabled" -msgstr "" +msgstr "Activer" #: luci-app-glorytun-tcp/htdocs/luci-static/resources/view/services/glorytun-tcp.js:68 msgid "Force fallback cipher" -msgstr "" +msgstr "Forcer le chiffrement de secours" #: luci-app-glorytun-tcp/htdocs/luci-static/resources/view/services/glorytun-tcp.js:31 msgid "General Settings" -msgstr "" +msgstr "Paramètres généraux" #: luci-app-glorytun-tcp/htdocs/luci-static/resources/view/services/glorytun-tcp.js:24 #: luci-app-glorytun-tcp/root/usr/share/luci/menu.d/luci-app-glorytun-tcp.json:3 msgid "Glorytun TCP" -msgstr "" +msgstr "Glorytun TCP" #: luci-app-glorytun-tcp/root/usr/share/rpcd/acl.d/luci-app-glorytun-tcp.json:3 msgid "Grant access to glorytun TCP" -msgstr "" +msgstr "Accorder l'accès à Glorytun TCP" #: luci-app-glorytun-tcp/htdocs/luci-static/resources/view/services/glorytun-tcp.js:42 msgid "Host" -msgstr "" +msgstr "Hôte" #: luci-app-glorytun-tcp/htdocs/luci-static/resources/view/services/glorytun-tcp.js:26 msgid "Instances" -msgstr "" +msgstr "Instances" #: luci-app-glorytun-tcp/htdocs/luci-static/resources/view/services/glorytun-tcp.js:52 msgid "Interface name" -msgstr "" +msgstr "Nom de l'interface" #: luci-app-glorytun-tcp/htdocs/luci-static/resources/view/services/glorytun-tcp.js:48 msgid "Key" -msgstr "" +msgstr "Clef" #: luci-app-glorytun-tcp/htdocs/luci-static/resources/view/services/glorytun-tcp.js:82 msgid "Label" -msgstr "" +msgstr "Étiquette" #: luci-app-glorytun-tcp/htdocs/luci-static/resources/view/services/glorytun-tcp.js:56 msgid "Local IP" -msgstr "" +msgstr "Adresse IP locale" #: luci-app-glorytun-tcp/htdocs/luci-static/resources/view/services/glorytun-tcp.js:64 msgid "MPTCP" -msgstr "" +msgstr "MPTCP" #: luci-app-glorytun-tcp/htdocs/luci-static/resources/view/services/glorytun-tcp.js:37 msgid "Mode" -msgstr "" +msgstr "Mode" #: luci-app-glorytun-tcp/htdocs/luci-static/resources/view/services/glorytun-tcp.js:77 msgid "Multiqueue" -msgstr "" +msgstr "Multiqueue" #: luci-app-glorytun-tcp/htdocs/luci-static/resources/view/services/glorytun-tcp.js:45 msgid "Port" -msgstr "" +msgstr "Port" #: luci-app-glorytun-tcp/htdocs/luci-static/resources/view/services/glorytun-tcp.js:60 msgid "Remote IP" -msgstr "" +msgstr "IP Distante" #: luci-app-glorytun-tcp/htdocs/luci-static/resources/view/services/glorytun-tcp.js:39 msgid "Server" -msgstr "" +msgstr "Serveur" #: luci-app-glorytun-tcp/htdocs/luci-static/resources/view/services/glorytun-tcp.js:72 msgid "Timeout" @@ -87,4 +93,4 @@ msgstr "" #: luci-app-glorytun-tcp/htdocs/luci-static/resources/view/services/glorytun-tcp.js:68 msgid "chacha" -msgstr "" +msgstr "Chacha" From 11f7c9161ac48a93aa0e22014c319270ab15a5b7 Mon Sep 17 00:00:00 2001 From: Weblate Admin Date: Tue, 15 Dec 2020 10:00:18 +0000 Subject: [PATCH 113/117] Translated using Weblate (French) Currently translated at 100.0% (24 of 24 strings) Translation: OpenMPTCProuter/LuCI/applications/glorytun-udp Translate-URL: http://weblate.openmptcprouter.com/projects/omr/luciapplicationsglorytun-udp/fr/ --- luci-app-glorytun-udp/po/fr/glorytun-udp.po | 54 ++++++++++++--------- 1 file changed, 30 insertions(+), 24 deletions(-) diff --git a/luci-app-glorytun-udp/po/fr/glorytun-udp.po b/luci-app-glorytun-udp/po/fr/glorytun-udp.po index 5c0e7e276..11849a015 100644 --- a/luci-app-glorytun-udp/po/fr/glorytun-udp.po +++ b/luci-app-glorytun-udp/po/fr/glorytun-udp.po @@ -1,102 +1,108 @@ msgid "" msgstr "" +"PO-Revision-Date: 2020-12-15 14:46+0000\n" +"Last-Translator: Weblate Admin \n" +"Language-Team: French \n" "Language: fr\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=n > 1;\n" +"X-Generator: Weblate 4.0.4\n" #: luci-app-glorytun-udp/htdocs/luci-static/resources/view/services/glorytun-udp.js:40 msgid "Advanced Settings" -msgstr "" +msgstr "Configuration avancée" #: luci-app-glorytun-udp/htdocs/luci-static/resources/view/services/glorytun-udp.js:46 msgid "Client" -msgstr "" +msgstr "Client" #: luci-app-glorytun-udp/htdocs/luci-static/resources/view/services/glorytun-udp.js:85 msgid "Clock sync tolerance" -msgstr "" +msgstr "Tolérance de synchronisation d'horloge" #: luci-app-glorytun-udp/htdocs/luci-static/resources/view/services/glorytun-udp.js:95 msgid "Dynamic rate detection" -msgstr "" +msgstr "Détection dynamique de la vitesse" #: luci-app-glorytun-udp/htdocs/luci-static/resources/view/services/glorytun-udp.js:42 msgid "Enabled" -msgstr "" +msgstr "Activer" #: luci-app-glorytun-udp/htdocs/luci-static/resources/view/services/glorytun-udp.js:76 msgid "Force fallback cipher" -msgstr "" +msgstr "Forcer le chiffrement de secours" #: luci-app-glorytun-udp/htdocs/luci-static/resources/view/services/glorytun-udp.js:39 msgid "General Settings" -msgstr "" +msgstr "Paramètres généraux" #: luci-app-glorytun-udp/htdocs/luci-static/resources/view/services/glorytun-udp.js:32 #: luci-app-glorytun-udp/root/usr/share/luci/menu.d/luci-app-glorytun-udp.json:3 msgid "Glorytun UDP" -msgstr "" +msgstr "Glorytun UDP" #: luci-app-glorytun-udp/root/usr/share/rpcd/acl.d/luci-app-glorytun-udp.json:3 msgid "Grant access to glorytun UDP" -msgstr "" +msgstr "Accorder l'accès à Glorytun UDP" #: luci-app-glorytun-udp/htdocs/luci-static/resources/view/services/glorytun-udp.js:50 msgid "Host" -msgstr "" +msgstr "Hôte" #: luci-app-glorytun-udp/htdocs/luci-static/resources/view/services/glorytun-udp.js:34 msgid "Instances" -msgstr "" +msgstr "Instances" #: luci-app-glorytun-udp/htdocs/luci-static/resources/view/services/glorytun-udp.js:60 msgid "Interface name" -msgstr "" +msgstr "Nom de l'interface" #: luci-app-glorytun-udp/htdocs/luci-static/resources/view/services/glorytun-udp.js:90 msgid "Keep alive timeout" -msgstr "" +msgstr "Délai de maintien de la connexion (Keep Alive)" #: luci-app-glorytun-udp/htdocs/luci-static/resources/view/services/glorytun-udp.js:72 msgid "Keep the tunnel device after exiting" -msgstr "" +msgstr "Gardez le périphérique tunnel après avoir quitté" #: luci-app-glorytun-udp/htdocs/luci-static/resources/view/services/glorytun-udp.js:56 msgid "Key" -msgstr "" +msgstr "Clef" #: luci-app-glorytun-udp/htdocs/luci-static/resources/view/services/glorytun-udp.js:80 msgid "Key rotation timeout" -msgstr "" +msgstr "Délai de rotation des clés" #: luci-app-glorytun-udp/htdocs/luci-static/resources/view/services/glorytun-udp.js:99 msgid "Label" -msgstr "" +msgstr "Étiquette" #: luci-app-glorytun-udp/htdocs/luci-static/resources/view/services/glorytun-udp.js:64 msgid "Local IP" -msgstr "" +msgstr "Adresse IP locale" #: luci-app-glorytun-udp/htdocs/luci-static/resources/view/services/glorytun-udp.js:45 msgid "Mode" -msgstr "" +msgstr "Mode" #: luci-app-glorytun-udp/htdocs/luci-static/resources/view/services/glorytun-udp.js:72 msgid "Persist" -msgstr "" +msgstr "Persister" #: luci-app-glorytun-udp/htdocs/luci-static/resources/view/services/glorytun-udp.js:53 msgid "Port" -msgstr "" +msgstr "Port" #: luci-app-glorytun-udp/htdocs/luci-static/resources/view/services/glorytun-udp.js:68 msgid "Remote IP" -msgstr "" +msgstr "IP Distante" #: luci-app-glorytun-udp/htdocs/luci-static/resources/view/services/glorytun-udp.js:47 msgid "Server" -msgstr "" +msgstr "Serveur" #: luci-app-glorytun-udp/htdocs/luci-static/resources/view/services/glorytun-udp.js:76 msgid "chacha" -msgstr "" +msgstr "Chacha" From 77a90b4199a0c47af66ec266f817ee29b6cd2640 Mon Sep 17 00:00:00 2001 From: Weblate Admin Date: Tue, 15 Dec 2020 10:03:00 +0000 Subject: [PATCH 114/117] Translated using Weblate (French) Currently translated at 100.0% (14 of 14 strings) Translation: OpenMPTCProuter/LuCI/applications/dsvpn Translate-URL: http://weblate.openmptcprouter.com/projects/omr/luciapplicationsdsvpn/fr/ --- luci-app-dsvpn/po/fr/dsvpn.po | 34 ++++++++++++++++++++-------------- 1 file changed, 20 insertions(+), 14 deletions(-) diff --git a/luci-app-dsvpn/po/fr/dsvpn.po b/luci-app-dsvpn/po/fr/dsvpn.po index fd76be4a6..b0e57ae95 100644 --- a/luci-app-dsvpn/po/fr/dsvpn.po +++ b/luci-app-dsvpn/po/fr/dsvpn.po @@ -1,62 +1,68 @@ msgid "" msgstr "" +"PO-Revision-Date: 2020-12-15 14:46+0000\n" +"Last-Translator: Weblate Admin \n" +"Language-Team: French \n" "Language: fr\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=n > 1;\n" +"X-Generator: Weblate 4.0.4\n" #: luci-app-dsvpn/htdocs/luci-static/resources/view/services/dsvpn.js:35 msgid "Client" -msgstr "" +msgstr "Client" #: luci-app-dsvpn/htdocs/luci-static/resources/view/services/dsvpn.js:24 #: luci-app-dsvpn/root/usr/share/luci/menu.d/luci-app-dsvpn.json:3 msgid "DSVPN" -msgstr "" +msgstr "DSVPN" #: luci-app-dsvpn/htdocs/luci-static/resources/view/services/dsvpn.js:31 msgid "Enabled" -msgstr "" +msgstr "Activer" #: luci-app-dsvpn/root/usr/share/rpcd/acl.d/luci-app-dsvpn.json:3 msgid "Grant access to DSVPN" -msgstr "" +msgstr "Accorder l'accès à DSVPN" #: luci-app-dsvpn/htdocs/luci-static/resources/view/services/dsvpn.js:39 msgid "Host" -msgstr "" +msgstr "Hôte" #: luci-app-dsvpn/htdocs/luci-static/resources/view/services/dsvpn.js:26 msgid "Instances" -msgstr "" +msgstr "Instances" #: luci-app-dsvpn/htdocs/luci-static/resources/view/services/dsvpn.js:49 msgid "Interface name" -msgstr "" +msgstr "Nom de l'interface" #: luci-app-dsvpn/htdocs/luci-static/resources/view/services/dsvpn.js:45 msgid "Key" -msgstr "" +msgstr "Clef" #: luci-app-dsvpn/htdocs/luci-static/resources/view/services/dsvpn.js:61 msgid "Label" -msgstr "" +msgstr "Étiquette" #: luci-app-dsvpn/htdocs/luci-static/resources/view/services/dsvpn.js:53 msgid "Local IP" -msgstr "" +msgstr "Adresse IP locale" #: luci-app-dsvpn/htdocs/luci-static/resources/view/services/dsvpn.js:34 msgid "Mode" -msgstr "" +msgstr "Mode" #: luci-app-dsvpn/htdocs/luci-static/resources/view/services/dsvpn.js:42 msgid "Port" -msgstr "" +msgstr "Port" #: luci-app-dsvpn/htdocs/luci-static/resources/view/services/dsvpn.js:57 msgid "Remote IP" -msgstr "" +msgstr "IP Distante" #: luci-app-dsvpn/htdocs/luci-static/resources/view/services/dsvpn.js:36 msgid "Server" -msgstr "" +msgstr "Serveur" From faa6745cb46bd85d2feb892b30a8c43962901296 Mon Sep 17 00:00:00 2001 From: Weblate Admin Date: Tue, 15 Dec 2020 10:04:00 +0000 Subject: [PATCH 115/117] Translated using Weblate (French) Currently translated at 100.0% (17 of 17 strings) Translation: OpenMPTCProuter/LuCI/applications/mlvpn Translate-URL: http://weblate.openmptcprouter.com/projects/omr/luciapplicationsmlvpn/fr/ --- luci-app-mlvpn/po/fr/mlvpn.po | 40 ++++++++++++++++++++--------------- 1 file changed, 23 insertions(+), 17 deletions(-) diff --git a/luci-app-mlvpn/po/fr/mlvpn.po b/luci-app-mlvpn/po/fr/mlvpn.po index cffecb908..b1a9a5d4a 100644 --- a/luci-app-mlvpn/po/fr/mlvpn.po +++ b/luci-app-mlvpn/po/fr/mlvpn.po @@ -1,74 +1,80 @@ msgid "" msgstr "" +"PO-Revision-Date: 2020-12-15 14:46+0000\n" +"Last-Translator: Weblate Admin \n" +"Language-Team: French \n" "Language: fr\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=n > 1;\n" +"X-Generator: Weblate 4.0.4\n" #: luci-app-mlvpn/htdocs/luci-static/resources/view/services/mlvpn.js:32 msgid "Advanced Settings" -msgstr "" +msgstr "Configuration avancée" #: luci-app-mlvpn/htdocs/luci-static/resources/view/services/mlvpn.js:38 msgid "Client" -msgstr "" +msgstr "Client" #: luci-app-mlvpn/htdocs/luci-static/resources/view/services/mlvpn.js:34 msgid "Enabled" -msgstr "" +msgstr "Activer" #: luci-app-mlvpn/htdocs/luci-static/resources/view/services/mlvpn.js:45 msgid "First Port" -msgstr "" +msgstr "Premier port" #: luci-app-mlvpn/htdocs/luci-static/resources/view/services/mlvpn.js:31 msgid "General Settings" -msgstr "" +msgstr "Paramètres généraux" #: luci-app-mlvpn/root/usr/share/rpcd/acl.d/luci-app-mlvpn.json:3 msgid "Grant UCI access for luci-app-mlvpn" -msgstr "" +msgstr "Accorder l'accès UCI pour luci-app-mlvpn" #: luci-app-mlvpn/htdocs/luci-static/resources/view/services/mlvpn.js:42 msgid "Host" -msgstr "" +msgstr "Hôte" #: luci-app-mlvpn/htdocs/luci-static/resources/view/services/mlvpn.js:26 msgid "Instances" -msgstr "" +msgstr "Instances" #: luci-app-mlvpn/htdocs/luci-static/resources/view/services/mlvpn.js:54 msgid "Interface name" -msgstr "" +msgstr "Nom de l'interface" #: luci-app-mlvpn/htdocs/luci-static/resources/view/services/mlvpn.js:78 msgid "Label" -msgstr "" +msgstr "Étiquette" #: luci-app-mlvpn/htdocs/luci-static/resources/view/services/mlvpn.js:72 msgid "Loss tolerance" -msgstr "" +msgstr "Tolérance aux pertes" #: luci-app-mlvpn/htdocs/luci-static/resources/view/services/mlvpn.js:24 #: luci-app-mlvpn/root/usr/share/luci/menu.d/luci-app-mlvpn.json:3 msgid "MLVPN" -msgstr "" +msgstr "MLVPN" #: luci-app-mlvpn/htdocs/luci-static/resources/view/services/mlvpn.js:37 msgid "Mode" -msgstr "" +msgstr "Mode" #: luci-app-mlvpn/htdocs/luci-static/resources/view/services/mlvpn.js:50 msgid "Password" -msgstr "" +msgstr "Mot de passe" #: luci-app-mlvpn/htdocs/luci-static/resources/view/services/mlvpn.js:66 msgid "Reorder buffer size" -msgstr "" +msgstr "Taille du tampon de réordonnancement" #: luci-app-mlvpn/htdocs/luci-static/resources/view/services/mlvpn.js:39 msgid "Server" -msgstr "" +msgstr "Serveur" #: luci-app-mlvpn/htdocs/luci-static/resources/view/services/mlvpn.js:60 msgid "Timeout (s)" -msgstr "" +msgstr "Délais d'attente (s)" From a0b5b2a1a0ef43710984e8869cf10e5176379c57 Mon Sep 17 00:00:00 2001 From: "Ycarus (Yannick Chabanois)" Date: Wed, 16 Dec 2020 10:05:25 +0100 Subject: [PATCH 116/117] Fix glorytun settings apply --- glorytun-udp/init | 15 +++++++-------- .../root/etc/hotplug.d/iface/30-glorytun-udp | 3 ++- .../usr/share/omr/post-tracking.d/post-tracking | 6 +++--- 3 files changed, 12 insertions(+), 12 deletions(-) diff --git a/glorytun-udp/init b/glorytun-udp/init index 5bb5a9a5d..5e50d59df 100755 --- a/glorytun-udp/init +++ b/glorytun-udp/init @@ -20,14 +20,13 @@ _err() { validate_section() { uci_validate_section glorytun-udp glorytun-udp "${1}" \ - 'enable:bool:0' \ - 'mode:string' \ - 'key:string' \ - 'host:host' \ - 'port:port' \ - 'proto:string' \ - 'mtuauto:bool:0' \ - 'chacha:bool:0' \ + 'enable:bool:0' \ + 'mode:string' \ + 'key:string' \ + 'host:host' \ + 'port:port' \ + 'mtuauto:bool:0' \ + 'chacha:bool:0' \ 'dev:string' } diff --git a/luci-app-glorytun-udp/root/etc/hotplug.d/iface/30-glorytun-udp b/luci-app-glorytun-udp/root/etc/hotplug.d/iface/30-glorytun-udp index a1ac50669..1ccf10b8c 100644 --- a/luci-app-glorytun-udp/root/etc/hotplug.d/iface/30-glorytun-udp +++ b/luci-app-glorytun-udp/root/etc/hotplug.d/iface/30-glorytun-udp @@ -25,8 +25,9 @@ set_default() { config_get keepalive "$config" keepalive "25s" [ "$remoteip" != "" ] && [ "$localip" != "" ] && ifconfig $DEVICE $localip pointopoint $remoteip up while [ -z "$(glorytun-udp list | grep $iface)" ]; do - glorytun-udp set dev $iface kxtimeout $kxtimeout timetolerance $timetolerance keepalive $keepalive + sleep 1 done + glorytun-udp set dev $iface kxtimeout $kxtimeout timetolerance $timetolerance keepalive $keepalive } } 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 bdedd275a..b3ce9fa8e 100755 --- a/mptcp/files/usr/share/omr/post-tracking.d/post-tracking +++ b/mptcp/files/usr/share/omr/post-tracking.d/post-tracking @@ -592,9 +592,9 @@ if [ "$multipath_config" = "on" ] || [ "$multipath_config" = "backup" ]; then fi fi fi - if [ "$(uci -q get openmptcprouter.$OMR_TRACKER_INTERFACE.vpn)" != "1" ] && [ "$(pgrep glorytun-udp)" != "" ] && [ "$(glorytun-udp set | grep 'kxtimeout 7d')" = "" ]; then - glorytun-udp set dev tun0 kxtimeout 7d > /dev/null 2>&1 - fi +# if [ "$(uci -q get openmptcprouter.$OMR_TRACKER_INTERFACE.vpn)" != "1" ] && [ "$(pgrep glorytun-udp)" != "" ] && [ "$(glorytun-udp set | grep 'kxtimeout 7d')" = "" ]; then +# glorytun-udp set dev tun0 kxtimeout 7d > /dev/null 2>&1 +# fi [ "$multipath_config" = "backup" ] && [ "$(pgrep glorytun-udp)" != "" ] && glorytun-udp path addr $OMR_TRACKER_DEVICE_IP dev tun0 set pref 500 > /dev/null 2>&1 fi [ "$(uci -q get openmptcprouter.$OMR_TRACKER_INTERFACE.multipathvpn)" != "1" ] && { From b75944312d2760e67146c3fa6425adebe3f4badc Mon Sep 17 00:00:00 2001 From: "Ycarus (Yannick Chabanois)" Date: Wed, 16 Dec 2020 16:40:07 +0100 Subject: [PATCH 117/117] Add DMZ option --- openmptcprouter/files/etc/init.d/openmptcprouter-vps | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/openmptcprouter/files/etc/init.d/openmptcprouter-vps b/openmptcprouter/files/etc/init.d/openmptcprouter-vps index 4806ea137..05ef1c2de 100755 --- a/openmptcprouter/files/etc/init.d/openmptcprouter-vps +++ b/openmptcprouter/files/etc/init.d/openmptcprouter-vps @@ -756,7 +756,8 @@ _set_client2client() { } _vps_firewall_redirect_port() { - local src proto src_dport + local src proto src_dport section + section=$1 config_get src $1 src config_get proto $1 proto "tcp udp" config_get src_dport $1 src_dport @@ -767,6 +768,14 @@ _vps_firewall_redirect_port() { config_get dest_port $1 dest_port config_get src_ip $1 src_ip config_get v2ray $1 v2ray "0" + config_get dmz $1 dmz "0" + if [ "$dmz" = "1" ] && [ "$src_dport" != "2-64999" ]; then + uci -q batch <<-EOF >/dev/null + set firewall.${section}.src_dport='2-64999' + commit firewall + EOF + src_dport='2-64999' + fi if [ -n "$src_dport" ] && [ "$(echo $src_dport | cut -d'-' -f2)" -ge "65000" ]; then logger -t "OMR-VPS" "You can't redirect ports >= 65000, they are needed by OpenMPTCProuter Server part" enabled="0"