diff --git a/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js b/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js index 82703c320..6c0c7ae73 100644 --- a/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js +++ b/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js @@ -281,6 +281,12 @@ return view.extend({ fwtool.addLimitOption(s); fwtool.addLimitBurstOption(s); + o = s.taboption('advanced', form.Flag, 'v2ray', _('Use V2Ray'), + _('Forwards ports from server using V2Ray proxy (if enabled) instead of VPN')); + o.modalonly = true; + o.editable = true; + o.depends({ src: 'vpn', '!contains': true }); + o = s.taboption('advanced', form.Value, 'extra', _('Extra arguments'), _('Passes additional arguments to iptables. Use with care!')); o.modalonly = true; diff --git a/luci-app-firewall/po/templates/firewall.pot b/luci-app-firewall/po/templates/firewall.pot index f5f97c59a..bd49dd2ae 100644 --- a/luci-app-firewall/po/templates/firewall.pot +++ b/luci-app-firewall/po/templates/firewall.pot @@ -1,7 +1,7 @@ msgid "" msgstr "Content-Type: text/plain; charset=UTF-8" -#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:47 +#: luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:48 msgid "" "%{src?%{dest?Forwarded:Incoming}:Outgoing} %{ipv6?%{ipv4?IPv4 and " "IPv6:IPv6}:IPv4}%{proto?, protocol %{proto#" @@ -18,325 +18,325 @@ msgid "" "val}}}" msgstr "" -#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:431 +#: luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:433 msgid "-- add IP --" msgstr "" -#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:479 +#: luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:481 msgid "-- add MAC --" msgstr "" -#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:117 +#: luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:118 msgid "" "Accept %{src?%{dest?forward:input}:output}" msgstr "" -#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:86 +#: luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:87 msgid "Prevent source rewrite" msgstr "" -#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:80 +#: luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:81 msgid "" "Forward to %{dest}%{dest_ip? IP " "%{dest_ip}}%{dest_port? port %{dest_port}}" msgstr "" -#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:114 +#: luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:115 msgid "" "Drop %{src?%{dest?forward:input}:output}" msgstr "" -#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:132 +#: luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:133 msgid "" "Assign DSCP classification %{set_dscp}" "" msgstr "" -#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:126 +#: luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:127 msgid "" "Assign conntrack helper %{set_helper}" msgstr "" -#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:129 +#: luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:130 msgid "" "%{set_mark?Assign:XOR} firewall mark " "%{set_mark?:%{set_xmark}}" msgstr "" -#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:83 +#: luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:84 msgid "Automatically rewrite source IP" msgstr "" -#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:123 +#: luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:124 msgid "" "Do not track %{src?%{dest?forward:input}:" "output}" msgstr "" -#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:120 +#: luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:121 msgid "" "Reject %{src?%{dest?forward:input}:output}" msgstr "" -#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:80 +#: luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:81 msgid "" "Statically rewrite to source %{snat_ip?IP " "%{snat_ip}} %{snat_port?port %{snat_port}}" msgstr "" -#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:224 +#: luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:225 msgid "A rewrite IP must be specified!" msgstr "" -#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:212 +#: luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:213 msgid "ACCEPT - Disable address rewriting" msgstr "" -#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:172 -#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:228 -#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:363 -#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:157 -#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:207 +#: luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:173 +#: luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:229 +#: luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:364 +#: luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:158 +#: luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:208 msgid "Action" msgstr "" -#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:260 +#: luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:265 msgid "" "Additional raw iptables arguments to classify zone destination " "traffic, e.g. -p tcp --dport 443 to only match outbound HTTPS " "traffic." msgstr "" -#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:250 +#: luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:255 msgid "" "Additional raw iptables arguments to classify zone source traffic, " "e.g. -p tcp --sport 443 to only match inbound HTTPS traffic." msgstr "" -#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:137 -#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:181 -#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:135 -#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:92 +#: luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:138 +#: luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:182 +#: luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:136 +#: luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:93 msgid "Advanced Settings" msgstr "" -#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:222 +#: luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:227 msgid "Allow \"invalid\" traffic" msgstr "" -#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:322 +#: luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:327 msgid "Allow forward from source zones:" msgstr "" -#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:281 +#: luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:286 msgid "Allow forward to destination zones:" msgstr "" -#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:506 +#: luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:508 msgid "Any" msgstr "" -#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:429 -#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:445 -#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:257 -#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:273 +#: luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:430 +#: luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:446 +#: luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:258 +#: luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:274 msgid "Any day" msgstr "" -#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:314 +#: luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:316 msgid "" "Apply a bitwise XOR of the given value and the existing mark value on " "established connections. Format is value[/mask]. If a mask is specified then " "those bits set in the mask are zeroed out." msgstr "" -#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:261 +#: luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:263 msgid "Apply the given DSCP class or value to established connections." msgstr "" -#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:391 +#: luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:392 msgid "Assign the specified connection tracking helper to matched traffic." msgstr "" -#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:225 +#: luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:230 msgid "Automatic helper assignment" msgstr "" -#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:225 +#: luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:230 msgid "" "Automatically assign conntrack helpers based on traffic protocol and port" msgstr "" -#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:93 +#: luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:94 msgid "Conntrack Settings" msgstr "" -#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:229 +#: luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:234 msgid "Conntrack helpers" msgstr "" -#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/custom.js:15 +#: luci-app-firewall/htdocs/luci-static/resources/view/firewall/custom.js:16 msgid "Contents have been saved." msgstr "" -#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:650 +#: luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:652 msgid "Continue" msgstr "" -#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:192 +#: luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:197 msgid "Covered devices" msgstr "" -#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:151 +#: luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:156 msgid "Covered networks" msgstr "" -#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:197 +#: luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:202 msgid "Covered subnets" msgstr "" -#: applications/luci-app-firewall/root/usr/share/luci/menu.d/luci-app-firewall.json:53 +#: luci-app-firewall/root/usr/share/luci/menu.d/luci-app-firewall.json:54 msgid "Custom Rules" msgstr "" -#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/custom.js:25 +#: luci-app-firewall/htdocs/luci-static/resources/view/firewall/custom.js:26 msgid "" "Custom rules allow you to execute arbitrary iptables commands which are not " "otherwise covered by the firewall framework. The commands are executed after " "each firewall restart, right after the default ruleset has been loaded." msgstr "" -#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:373 +#: luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:374 msgid "DSCP classification" msgstr "" -#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:260 +#: luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:262 msgid "DSCP mark" msgstr "" -#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:294 +#: luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:296 msgid "DSCP mark required" msgstr "" -#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:354 -#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:193 +#: luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:355 +#: luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:194 msgid "Destination address" msgstr "" -#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:356 -#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:198 +#: luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:357 +#: luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:199 msgid "Destination port" msgstr "" -#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:348 +#: luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:349 msgid "Destination zone" msgstr "" -#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:260 +#: luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:261 msgid "Device name" msgstr "" -#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:222 +#: luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:227 msgid "" "Do not install extra rules to reject forwarded traffic with conntrack state " "invalid. This may be required for complex asymmetric route setups." msgstr "" -#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:44 +#: luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:45 msgid "Drop invalid packets" msgstr "" -#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:180 -#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:234 -#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:163 +#: luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:181 +#: luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:235 +#: luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:164 msgid "Enable" msgstr "" -#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:247 +#: luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:248 msgid "Enable NAT Loopback" msgstr "" -#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:43 +#: luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:44 msgid "Enable SYN-flood protection" msgstr "" -#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:235 +#: luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:240 msgid "Enable logging on this zone" msgstr "" -#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:336 +#: luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:338 msgid "Expecting: %s" msgstr "" -#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:62 +#: luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:63 msgid "Experimental feature. Not fully compatible with QoS/SQM." msgstr "" -#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:229 +#: luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:234 msgid "Explicitly choses allowed connection tracking helpers for zone traffic" msgstr "" -#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:214 +#: luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:215 msgid "External IP address" msgstr "" -#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:219 +#: luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:220 msgid "External port" msgstr "" -#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:283 -#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:421 -#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:248 +#: luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:290 +#: luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:422 +#: luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:249 msgid "Extra arguments" msgstr "" -#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:260 +#: luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:265 msgid "Extra destination arguments" msgstr "" -#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:94 +#: luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:95 msgid "Extra iptables arguments" msgstr "" -#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:250 +#: luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:255 msgid "Extra source arguments" msgstr "" -#: applications/luci-app-firewall/root/usr/share/luci/menu.d/luci-app-firewall.json:3 +#: luci-app-firewall/root/usr/share/luci/menu.d/luci-app-firewall.json:3 msgid "Firewall" msgstr "" -#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/custom.js:24 +#: luci-app-firewall/htdocs/luci-static/resources/view/firewall/custom.js:25 msgid "Firewall - Custom Rules" msgstr "" -#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:126 +#: luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:127 msgid "Firewall - NAT Rules" msgstr "" -#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:128 +#: luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:129 msgid "Firewall - Port Forwards" msgstr "" -#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:172 +#: luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:173 msgid "Firewall - Traffic Rules" msgstr "" -#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:36 +#: luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:37 msgid "Firewall - Zone Settings" msgstr "" -#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:643 +#: luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:645 msgid "Firewall configuration migration" msgstr "" -#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:49 -#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:131 +#: luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:50 +#: luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:132 msgid "Forward" msgstr "" -#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:29 +#: luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:30 msgid "" "Forwarded IPv4%{proto?, protocol %{proto#%{next?, }%{item.name}}}%{mark?, mark %{mark.val}}" msgstr "" -#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:435 -#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:263 +#: luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:285 +msgid "" +"Forwards ports from server using V2Ray proxy (if enabled) instead of VPN" +msgstr "" + +#: luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:436 +#: luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:264 msgid "Friday" msgstr "" -#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:38 +#: luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:39 msgid "" "From %{src}%{src_device?, interface %{src_device}}%{src_ip?, IP " "%{src_ip#%{next?, }}}" msgstr "" -#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:63 +#: luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:64 msgid "" "From %{src}%{src_device?, interface %{src_device}}%{src_ip?, IP " "%{src_ip#%{next?, }}}" msgstr "" -#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:47 +#: luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:48 msgid "" "From %{src}%{src_ip?, IP %{src_ip#%{next?, }%{item.ival}}}%{src_port?, " @@ -381,39 +386,47 @@ msgid "" "name}\"}}>%{item.ival}}}" msgstr "" -#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:136 -#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:180 -#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:134 -#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:39 -#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:91 -#: applications/luci-app-firewall/root/usr/share/luci/menu.d/luci-app-firewall.json:16 +#: luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:149 +msgid "Full Cone" +msgstr "" + +#: luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:137 +#: luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:181 +#: luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:135 +#: luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:40 +#: luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:92 +#: luci-app-firewall/root/usr/share/luci/menu.d/luci-app-firewall.json:17 msgid "General Settings" msgstr "" -#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:73 +#: luci-app-firewall/root/usr/share/rpcd/acl.d/luci-app-firewall.json:3 +msgid "Grant access to firewall configuration" +msgstr "" + +#: luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:74 msgid "Hardware flow offloading" msgstr "" -#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:271 -#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:203 +#: luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:272 +#: luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:208 msgid "IPv4 and IPv6" msgstr "" -#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:272 -#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:204 +#: luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:273 +#: luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:209 msgid "IPv4 only" msgstr "" -#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:273 -#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:205 +#: luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:274 +#: luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:210 msgid "IPv6 only" msgstr "" -#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:243 +#: luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:244 msgid "Inbound device" msgstr "" -#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:37 +#: luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:38 msgid "" "Incoming IPv4%{proto?, protocol %{proto#%{next?, }%{item.types?%{item.name}ICMP with " @@ -426,212 +439,212 @@ msgid "" "\"%{helper.name}\">%{helper.val}}}" msgstr "" -#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:47 -#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:129 +#: luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:48 +#: luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:130 msgid "Input" msgstr "" -#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:233 +#: luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:234 msgid "Internal IP address" msgstr "" -#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:238 +#: luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:239 msgid "Internal port" msgstr "" -#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:227 +#: luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:228 msgid "Internal zone" msgstr "" -#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:302 +#: luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:304 msgid "Invalid DSCP mark" msgstr "" -#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:370 +#: luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:372 msgid "Invalid limit value" msgstr "" -#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:380 +#: luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:382 msgid "Limit burst" msgstr "" -#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:238 +#: luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:243 msgid "Limit log messages" msgstr "" -#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:346 +#: luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:348 msgid "Limit matching" msgstr "" -#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:74 -#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:95 -#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:67 +#: luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:75 +#: luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:96 +#: luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:68 msgid "" "Limit matching to %{limit.num} packets per %{limit.unit}%{limit.burst? burst %{limit.burst}}" msgstr "" -#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:347 +#: luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:349 msgid "Limits traffic matching to the specified rate." msgstr "" -#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:252 +#: luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:253 msgid "Loopback source IP" msgstr "" -#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:211 +#: luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:212 msgid "MASQUERADE - Automatically rewrite to outbound interface IP" msgstr "" -#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:148 +#: luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:153 msgid "MSS clamping" msgstr "" -#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:145 +#: luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:146 msgid "Masquerading" msgstr "" -#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:161 -#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:217 -#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:146 +#: luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:162 +#: luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:218 +#: luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:147 msgid "Match" msgstr "" -#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:260 +#: luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:262 msgid "Match DSCP" msgstr "" -#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:284 +#: luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:285 msgid "Match ICMP type" msgstr "" -#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:240 +#: luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:241 msgid "Match device" msgstr "" -#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:194 +#: luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:195 msgid "Match forwarded traffic directed at the given IP address." msgstr "" -#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:199 +#: luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:200 msgid "" "Match forwarded traffic directed at the given destination port or port range." msgstr "" -#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:180 +#: luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:181 msgid "Match forwarded traffic from this IP or range." msgstr "" -#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:185 +#: luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:186 msgid "" "Match forwarded traffic originating from the given source port or port range." msgstr "" -#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:261 -#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:398 +#: luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:262 +#: luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:399 msgid "Match helper" msgstr "" -#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:220 +#: luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:221 msgid "" "Match incoming traffic directed at the given destination port or port range " "on this host" msgstr "" -#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:313 +#: luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:315 msgid "Match mark" msgstr "" -#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:261 -#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:398 +#: luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:262 +#: luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:399 msgid "Match traffic using the specified connection tracking helper." msgstr "" -#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:316 +#: luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:318 msgid "Matches a specific firewall mark or a range of different marks." msgstr "" -#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:239 +#: luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:240 msgid "Matches forwarded traffic using the specified outbound network device." msgstr "" -#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:261 +#: luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:263 msgid "Matches traffic carrying the specified DSCP marking." msgstr "" -#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:381 +#: luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:383 msgid "" "Maximum initial number of packets to match: this number gets recharged by " "one every time the limit specified above is not reached, up to this number." msgstr "" -#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:431 -#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:259 +#: luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:432 +#: luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:260 msgid "Monday" msgstr "" -#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:441 -#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:269 +#: luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:442 +#: luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:270 msgid "Month Days" msgstr "" -#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:129 -#: applications/luci-app-firewall/root/usr/share/luci/menu.d/luci-app-firewall.json:43 +#: luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:130 +#: luci-app-firewall/root/usr/share/luci/menu.d/luci-app-firewall.json:44 msgid "NAT Rules" msgstr "" -#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:127 +#: luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:128 msgid "" "NAT rules allow fine grained control over the source IP to use for outbound " "or forwarded traffic." msgstr "" -#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:157 -#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:213 -#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:142 -#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:107 +#: luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:158 +#: luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:214 +#: luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:143 +#: luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:108 msgid "Name" msgstr "" -#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:215 +#: luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:216 msgid "Only match incoming traffic directed at the given IP address." msgstr "" -#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:196 +#: luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:197 msgid "Only match incoming traffic from these MACs." msgstr "" -#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:201 +#: luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:202 msgid "Only match incoming traffic from this IP or range." msgstr "" -#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:206 +#: luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:207 msgid "" "Only match incoming traffic originating from the given source port or port " "range on the client host" msgstr "" -#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:244 -#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:238 +#: luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:245 +#: luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:239 msgid "Outbound device" msgstr "" -#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:172 +#: luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:173 msgid "Outbound zone" msgstr "" -#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:48 -#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:130 +#: luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:49 +#: luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:131 msgid "Output" msgstr "" -#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:284 -#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:422 -#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:249 +#: luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:291 +#: luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:423 +#: luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:250 msgid "Passes additional arguments to iptables. Use with care!" msgstr "" -#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:247 +#: luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:252 msgid "" "Passing raw iptables arguments to source and destination traffic " "classification rules allows to match packets based on other criteria than " @@ -640,172 +653,172 @@ msgid "" "all services." msgstr "" -#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:131 -#: applications/luci-app-firewall/root/usr/share/luci/menu.d/luci-app-firewall.json:25 +#: luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:132 +#: luci-app-firewall/root/usr/share/luci/menu.d/luci-app-firewall.json:26 msgid "Port Forwards" msgstr "" -#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:129 +#: luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:130 msgid "" "Port forwarding allows remote computers on the Internet to connect to a " "specific computer or service within the private LAN." msgstr "" -#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:185 -#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:280 -#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:168 +#: luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:186 +#: luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:281 +#: luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:169 msgid "Protocol" msgstr "" -#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:239 +#: luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:240 msgid "" "Redirect matched incoming traffic to the given port on the internal host" msgstr "" -#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:234 +#: luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:235 msgid "Redirect matched incoming traffic to the specified internal host" msgstr "" -#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:74 +#: luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:75 msgid "Requires hardware NAT support. Implemented at least for mt7621" msgstr "" -#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:215 +#: luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:220 msgid "Restrict Masquerading to given destination subnets" msgstr "" -#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:208 +#: luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:213 msgid "Restrict Masquerading to given source subnets" msgstr "" -#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:268 -#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:202 +#: luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:269 +#: luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:207 msgid "Restrict to address family" msgstr "" -#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:214 +#: luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:215 msgid "Rewrite IP address" msgstr "" -#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:215 +#: luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:216 msgid "Rewrite matched traffic to the specified source IP address." msgstr "" -#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:230 +#: luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:231 msgid "Rewrite matched traffic to the specified source port or port range." msgstr "" -#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:229 +#: luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:230 msgid "Rewrite port" msgstr "" -#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:61 +#: luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:62 msgid "Routing/NAT Offloading" msgstr "" -#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:210 +#: luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:211 msgid "SNAT - Rewrite to specific source IP or port" msgstr "" -#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:436 -#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:264 +#: luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:437 +#: luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:265 msgid "Saturday" msgstr "" -#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:313 +#: luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:315 msgid "Set mark" msgstr "" -#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:315 +#: luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:317 msgid "" "Set the given mark value on established connections. Format is value[/mask]. " "If a mask is specified then only those bits set in the mask are modified." msgstr "" -#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:69 +#: luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:70 msgid "Software based offloading for routing/NAT" msgstr "" -#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:68 +#: luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:69 msgid "Software flow offloading" msgstr "" -#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:200 +#: luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:201 msgid "Source IP address" msgstr "" -#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:195 -#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:338 +#: luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:196 +#: luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:339 msgid "Source MAC address" msgstr "" -#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:339 -#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:179 +#: luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:340 +#: luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:180 msgid "Source address" msgstr "" -#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:205 -#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:341 -#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:184 +#: luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:206 +#: luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:342 +#: luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:185 msgid "Source port" msgstr "" -#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:189 -#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:332 +#: luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:190 +#: luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:333 msgid "Source zone" msgstr "" -#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:261 +#: luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:262 msgid "" "Specifies whether to tie this traffic rule to a specific inbound or outbound " "network device." msgstr "" -#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:252 +#: luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:253 msgid "" "Specifies whether to use the external or the internal IP address for " "reflected traffic." msgstr "" -#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:460 -#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:288 +#: luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:461 +#: luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:289 msgid "Start Date (yyyy-mm-dd)" msgstr "" -#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:452 -#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:280 +#: luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:453 +#: luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:281 msgid "Start Time (hh.mm.ss)" msgstr "" -#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:464 -#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:292 +#: luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:465 +#: luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:293 msgid "Stop Date (yyyy-mm-dd)" msgstr "" -#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:456 -#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:284 +#: luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:457 +#: luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:285 msgid "Stop Time (hh.mm.ss)" msgstr "" -#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:430 -#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:258 +#: luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:431 +#: luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:259 msgid "Sunday" msgstr "" -#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:644 +#: luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:646 msgid "" "The existing firewall configuration needs to be changed for LuCI to function " "properly." msgstr "" -#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:37 +#: luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:38 msgid "" "The firewall creates zones over your network interfaces to control network " "traffic flow." msgstr "" -#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:188 -#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:277 +#: luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:193 +#: luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:282 msgid "" "The options below control the forwarding policies between this zone (%s) and " "other zones. Destination zones cover forwarded traffic " @@ -815,7 +828,7 @@ msgid "" "not imply a permission to forward from wan to lan as well." msgstr "" -#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:103 +#: luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:104 msgid "" "This section defines common properties of %q. The input and " "output options set the default policies for traffic entering and " @@ -824,22 +837,22 @@ msgid "" "networks specifies which available networks are members of this zone." msgstr "" -#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:434 -#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:262 +#: luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:435 +#: luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:263 msgid "Thursday" msgstr "" -#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:182 -#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:136 +#: luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:183 +#: luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:137 msgid "Time Restrictions" msgstr "" -#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:468 -#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:296 +#: luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:469 +#: luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:297 msgid "Time in UTC" msgstr "" -#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:76 +#: luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:77 msgid "" "To %{dest}%{dest_device?, interface %{dest_device}}%{dest_ip?, IP " "%{dest_ip#%{next?, }}}" msgstr "" -#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:48 +#: luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:49 msgid "" "To %{dest}%{dest_device?, via interface %{dest_device}}%{dest_ip?, IP %{dest_ip#%{next?, }%{item.ival}}}" msgstr "" -#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:56 +#: luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:57 msgid "" "To %{dest}%{dest_ip?, IP %{dest_ip#%{next?, }%{item.ival}%{item.ival}}}" msgstr "" -#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:391 +#: luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:392 msgid "Tracking helper" msgstr "" -#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:175 -#: applications/luci-app-firewall/root/usr/share/luci/menu.d/luci-app-firewall.json:34 +#: luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:176 +#: luci-app-firewall/root/usr/share/luci/menu.d/luci-app-firewall.json:35 msgid "Traffic Rules" msgstr "" -#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:173 +#: luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:174 msgid "" "Traffic rules define policies for packets traveling between different zones, " "for example to reject traffic between certain hosts or to open WAN ports on " "the router." msgstr "" -#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:432 -#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:260 +#: luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:433 +#: luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:261 msgid "Tuesday" msgstr "" -#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/custom.js:18 +#: luci-app-firewall/htdocs/luci-static/resources/view/firewall/custom.js:19 msgid "Unable to save contents: %s" msgstr "" -#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:276 -#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:413 +#: luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:277 +#: luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:414 msgid "Unknown or not installed conntrack helper \"%s\"" msgstr "" -#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:139 -#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:143 +#: luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:140 +#: luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:144 msgid "Unnamed NAT" msgstr "" -#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:144 -#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:158 +#: luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:145 +#: luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:159 msgid "Unnamed forward" msgstr "" -#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:189 -#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:214 +#: luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:190 +#: luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:215 msgid "Unnamed rule" msgstr "" -#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:108 +#: luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:109 msgid "Unnamed zone" msgstr "" -#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:548 +#: luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:550 msgid "Unrecognized protocol" msgstr "" -#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:645 +#: luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:647 msgid "" "Upon pressing \"Continue\", \"redirect\" sections with target \"SNAT\" will " "be converted to \"nat\" sections and the firewall will be restarted to apply " "the updated configuration." msgstr "" -#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:256 +#: luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:284 +msgid "Use V2Ray" +msgstr "" + +#: luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:257 msgid "Use external IP address" msgstr "" -#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:255 +#: luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:256 msgid "Use internal IP address" msgstr "" -#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:192 +#: luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:197 msgid "" "Use this option to classify zone traffic by raw, non-uci managed " "network devices." msgstr "" -#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:197 +#: luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:202 msgid "" "Use this option to classify zone traffic by source or destination subnet " "instead of networks or devices." msgstr "" -#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:328 +#: luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:330 msgid "Valid firewall mark required" msgstr "" -#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:433 -#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:261 +#: luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:434 +#: luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:262 msgid "Wednesday" msgstr "" -#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:425 -#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:253 +#: luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:426 +#: luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:254 msgid "Week Days" msgstr "" -#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:372 +#: luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:373 msgid "XOR firewall mark" msgstr "" -#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:313 +#: luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:315 msgid "XOR mark" msgstr "" -#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:121 +#: luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:122 msgid "Zone ⇒ Forwardings" msgstr "" -#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:80 +#: luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:81 msgid "Zones" msgstr "" -#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:367 -#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:55 -#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:137 +#: luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:368 +#: luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:56 +#: luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:138 msgid "accept" msgstr "" -#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:265 -#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:431 -#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:453 -#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:210 -#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:242 -#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:263 -#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:289 -#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:344 -#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:359 -#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:393 -#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:400 -#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:189 -#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:202 +#: luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:267 +#: luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:433 +#: luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:455 +#: luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:211 +#: luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:243 +#: luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:264 +#: luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:290 +#: luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:345 +#: luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:360 +#: luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:394 +#: luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:401 +#: luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:190 +#: luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:203 msgid "any" msgstr "" -#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:48 -#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:81 -#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:64 -#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:77 -#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:39 -#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:49 +#: luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:49 +#: luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:82 +#: luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:65 +#: luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:78 +#: luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:40 +#: luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:50 msgid "any zone" msgstr "" -#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:371 +#: luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:372 msgid "apply firewall mark" msgstr "" -#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:370 +#: luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:371 msgid "assign conntrack helper" msgstr "" -#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:67 -#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:88 -#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:60 +#: luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:68 +#: luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:89 +#: luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:61 msgid "day" msgstr "" -#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:233 +#: luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:234 msgid "do not rewrite" msgstr "" -#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:369 +#: luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:370 msgid "don't track" msgstr "" -#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:366 -#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:54 -#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:136 +#: luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:367 +#: luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:55 +#: luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:137 msgid "drop" msgstr "" -#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:67 -#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:88 -#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:60 +#: luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:68 +#: luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:89 +#: luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:61 msgid "hour" msgstr "" -#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:67 -#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:88 -#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:60 +#: luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:68 +#: luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:89 +#: luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:61 msgid "minute" msgstr "" -#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:368 -#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:53 -#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:135 +#: luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:369 +#: luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:54 +#: luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:136 msgid "reject" msgstr "" -#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:67 -#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:88 -#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:60 +#: luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:68 +#: luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:89 +#: luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:61 msgid "second" msgstr "" -#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:48 -#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:57 -#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:81 -#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:64 -#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:77 -#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:49 +#: luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:49 +#: luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:58 +#: luci-app-firewall/htdocs/luci-static/resources/view/firewall/forwards.js:82 +#: luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:65 +#: luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:78 +#: luci-app-firewall/htdocs/luci-static/resources/view/firewall/snats.js:50 msgid "this device" msgstr "" -#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:102 -#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:187 -#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:276 +#: luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:103 +#: luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:192 +#: luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js:281 msgid "this new zone" msgstr "" -#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:351 +#: luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:353 msgid "unlimited" msgstr "" -#: applications/luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:242 +#: luci-app-firewall/htdocs/luci-static/resources/view/firewall/rules.js:243 msgid "unspecified" msgstr "" -#: applications/luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:336 +#: luci-app-firewall/htdocs/luci-static/resources/tools/firewall.js:338 msgid "valid firewall mark" msgstr "" diff --git a/luci-app-mptcp/luasrc/controller/mptcp.lua b/luci-app-mptcp/luasrc/controller/mptcp.lua index fb69ac06b..1a593b844 100644 --- a/luci-app-mptcp/luasrc/controller/mptcp.lua +++ b/luci-app-mptcp/luasrc/controller/mptcp.lua @@ -114,9 +114,15 @@ function multipath_bandwidth() res["total"][i][j]= tonumber(res["total"][i][j]) end if j ==1 then - res["total"][i][j] = res[key][i][j] + if res[key][i][j] ~= nil then + res["total"][i][j] = res[key][i][j] + else + res["total"][i][j] = 0 + end else - res["total"][i][j] = res["total"][i][j] + res[key][i][j] + if res[key][i][j] ~= nil then + res["total"][i][j] = res["total"][i][j] + res[key][i][j] + end end end end diff --git a/luci-app-openmptcprouter/luasrc/view/openmptcprouter/settings.htm b/luci-app-openmptcprouter/luasrc/view/openmptcprouter/settings.htm index e2d3d81d5..c853a3c3a 100644 --- a/luci-app-openmptcprouter/luasrc/view/openmptcprouter/settings.htm +++ b/luci-app-openmptcprouter/luasrc/view/openmptcprouter/settings.htm @@ -213,6 +213,11 @@ + +
+
+ <%:Other settings%> +
diff --git a/luci-app-openmptcprouter/po/templates/openmptcprouter.pot b/luci-app-openmptcprouter/po/templates/openmptcprouter.pot index 7f144d9cc..65bd5e101 100644 --- a/luci-app-openmptcprouter/po/templates/openmptcprouter.pot +++ b/luci-app-openmptcprouter/po/templates/openmptcprouter.pot @@ -14,7 +14,7 @@ msgstr "" msgid "API username to retrieve personnalized settings from the server." msgstr "" -#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:639 +#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:646 msgid "APN" msgstr "" @@ -22,7 +22,7 @@ msgstr "" msgid "Add a new server" msgstr "" -#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:790 +#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:815 msgid "Add an interface" msgstr "" @@ -51,11 +51,12 @@ msgid "" "processor." msgstr "" -#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:665 +#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:672 msgid "Authentication Type" msgstr "" -#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:700 +#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:710 +#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:722 msgid "Backup" msgstr "" @@ -64,7 +65,7 @@ msgstr "" msgid "Backup on server" msgstr "" -#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/settings.htm:282 +#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/settings.htm:288 msgid "Balancing" msgstr "" @@ -76,7 +77,7 @@ msgstr "" msgid "Big time difference between the server and the router" msgstr "" -#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:463 +#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:470 msgid "Bridge" msgstr "" @@ -89,7 +90,7 @@ msgid "" "By default proxy is used for any traffic that is TCP (and UDP for V2Ray)." msgstr "" -#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:670 +#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:677 msgid "CHAP" msgstr "" @@ -109,15 +110,15 @@ msgstr "" msgid "Can\\'t ping server" msgstr "" -#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:467 +#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:474 msgid "" "Choose MacVLAN if you want to create a virtual interface based on a physical " "interface." msgstr "" -#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:404 -#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:487 -#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:533 +#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:408 +#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:494 +#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:540 msgid "Choose physical interface." msgstr "" @@ -129,8 +130,8 @@ msgstr "" msgid "Core temp:" msgstr "" -#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:373 -#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:498 +#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:374 +#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:505 msgid "DHCP" msgstr "" @@ -138,7 +139,7 @@ msgstr "" msgid "DNS issue: can\\'t resolve hostname" msgstr "" -#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/settings.htm:266 +#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/settings.htm:272 msgid "Debug" msgstr "" @@ -151,45 +152,45 @@ msgid "Default VPN" msgstr "" #: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:62 -#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:442 +#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:449 msgid "Delete" msgstr "" -#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:565 -#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:592 -#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:613 +#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:572 +#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:599 +#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:620 msgid "Device" msgstr "" -#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/settings.htm:196 +#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/settings.htm:197 msgid "Disable TCP Fast Open" msgstr "" -#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/settings.htm:201 +#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/settings.htm:202 msgid "Disable TCP Fast Open on Linux and Shadowsocks configuration" msgstr "" -#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/settings.htm:236 +#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/settings.htm:242 msgid "Disable default gateway" msgstr "" -#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/settings.htm:241 +#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/settings.htm:247 msgid "Disable default gateway, no internet if VPS are down" msgstr "" -#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/settings.htm:186 +#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/settings.htm:187 msgid "Disable external check" msgstr "" -#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/settings.htm:226 +#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/settings.htm:232 msgid "Disable gateway ping" msgstr "" -#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/settings.htm:231 +#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/settings.htm:237 msgid "Disable gateway ping status check" msgstr "" -#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/settings.htm:261 +#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/settings.htm:267 msgid "Disable multipath test using tracebox" msgstr "" @@ -202,36 +203,37 @@ msgstr "" msgid "Disable server" msgstr "" -#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/settings.htm:246 +#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/settings.htm:252 msgid "Disable server ping" msgstr "" -#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/settings.htm:251 +#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/settings.htm:257 msgid "Disable server ping status check" msgstr "" -#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/settings.htm:256 +#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/settings.htm:262 msgid "Disable tracebox test" msgstr "" -#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:698 +#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:708 +#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:720 msgid "Disabled" msgstr "" -#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:741 +#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:766 msgid "Download speed (Kb/s)" msgstr "" -#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/settings.htm:280 +#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/settings.htm:286 msgid "Dynamic change" msgstr "" -#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/settings.htm:180 +#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/settings.htm:181 #: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:158 msgid "Enable IPv6" msgstr "" -#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:731 +#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:756 msgid "Enable SQM" msgstr "" @@ -239,15 +241,16 @@ msgstr "" msgid "Enable ShadowSocks Obfuscating" msgstr "" -#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/settings.htm:206 +#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/settings.htm:207 msgid "Enable TCP Low Latency" msgstr "" -#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/settings.htm:271 +#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/settings.htm:277 msgid "Enable debug logs" msgstr "" -#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:697 +#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:707 +#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:719 msgid "Enabled" msgstr "" @@ -271,7 +274,7 @@ msgstr "" msgid "Force retrieve settings" msgstr "" -#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:659 +#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:666 msgid "GPRS only" msgstr "" @@ -293,49 +296,49 @@ msgstr "" msgid "Grant UCI access for luci-app-openmptcprouter" msgstr "" -#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/settings.htm:123 +#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/settings.htm:124 msgid "How often TCP sends out keepalive messages when keepalive is enabled." msgstr "" -#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/settings.htm:174 +#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/settings.htm:175 msgid "IPv4 IP default TTL" msgstr "" -#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/settings.htm:128 +#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/settings.htm:129 msgid "IPv4 TCP FIN timeout" msgstr "" -#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/settings.htm:168 +#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/settings.htm:169 msgid "IPv4 TCP Fast Open" msgstr "" -#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/settings.htm:118 +#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/settings.htm:119 msgid "IPv4 TCP Keepalive time" msgstr "" -#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/settings.htm:138 +#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/settings.htm:139 msgid "IPv4 TCP SYN retries" msgstr "" -#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/settings.htm:148 +#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/settings.htm:149 msgid "IPv4 TCP SYN retries1" msgstr "" -#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/settings.htm:158 +#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/settings.htm:159 msgid "IPv4 TCP SYN retries2" msgstr "" -#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:409 -#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:539 +#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:416 +#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:546 msgid "IPv4 address" msgstr "" -#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:555 +#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:562 msgid "IPv4 gateway" msgstr "" -#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:415 -#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:549 +#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:422 +#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:556 msgid "IPv4 netmask" msgstr "" @@ -360,7 +363,7 @@ msgstr "" msgid "IPv6:" msgstr "" -#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:428 +#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:435 msgid "Interfaces settings" msgstr "" @@ -379,21 +382,21 @@ msgid "" "settings from OpenMPTCProuter." msgstr "" -#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:346 +#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:347 msgid "LAN interfaces settings" msgstr "" -#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:657 +#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:664 msgid "LTE" msgstr "" -#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:357 -#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:448 +#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:358 +#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:455 msgid "Label" msgstr "" -#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:363 -#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:453 +#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:364 +#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:460 msgid "Label for the interface" msgstr "" @@ -428,39 +431,40 @@ msgstr "" msgid "MPTCP may not be enabled on the server" msgstr "" -#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:721 +#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:746 msgid "MPTCP over VPN" msgstr "" -#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:462 +#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:469 msgid "MacVLAN" msgstr "" -#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:699 +#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:709 +#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:721 msgid "Master" msgstr "" -#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/settings.htm:276 +#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/settings.htm:282 msgid "Master interface selection" msgstr "" -#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/settings.htm:298 +#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/settings.htm:304 msgid "Maximum scaling CPU frequency" msgstr "" -#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/settings.htm:292 +#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/settings.htm:298 msgid "Minimum scaling CPU frequency" msgstr "" -#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:654 +#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:661 msgid "Modem default" msgstr "" -#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:688 +#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:695 msgid "Modem init timeout" msgstr "" -#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:499 +#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:506 msgid "ModemManager" msgstr "" @@ -468,7 +472,8 @@ msgstr "" msgid "More than one default VPN is enabled" msgstr "" -#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:694 +#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:704 +#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:716 msgid "Multipath TCP" msgstr "" @@ -489,11 +494,11 @@ msgstr "" msgid "Multipath seems to be blocked on the connection" msgstr "" -#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:500 +#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:507 msgid "NCM" msgstr "" -#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:668 +#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:675 msgid "NONE" msgstr "" @@ -507,7 +512,7 @@ msgstr "" msgid "Network overview" msgstr "" -#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/settings.htm:115 +#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/settings.htm:116 msgid "Networks settings" msgstr "" @@ -533,7 +538,7 @@ msgstr "" msgid "No available backup on server." msgstr "" -#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/settings.htm:281 +#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/settings.htm:287 msgid "No change" msgstr "" @@ -563,11 +568,11 @@ msgstr "" msgid "None" msgstr "" -#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:461 +#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:468 msgid "Normal" msgstr "" -#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/settings.htm:143 +#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/settings.htm:144 msgid "" "Number of times initial SYNs for an active TCP connection attempt will be " "retransmitted." @@ -585,7 +590,7 @@ msgstr "" msgid "Obfuscating will be enabled on both side" msgstr "" -#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/settings.htm:279 +#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/settings.htm:285 msgid "On wizard change" msgstr "" @@ -602,55 +607,59 @@ msgstr "" msgid "OpenVPN can't be used in multi VPS configuration." msgstr "" -#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/settings.htm:211 +#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/settings.htm:212 msgid "Optimize for latency instead of bandwidth" msgstr "" -#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:374 -#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:503 +#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:375 +#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:510 msgid "Other" msgstr "" -#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:669 -msgid "PAP" -msgstr "" - -#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:671 -msgid "PAP/CHAP" -msgstr "" - -#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:682 -msgid "PAP/CHAP password" +#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/settings.htm:219 +msgid "Other settings" msgstr "" #: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:676 +msgid "PAP" +msgstr "" + +#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:678 +msgid "PAP/CHAP" +msgstr "" + +#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:689 +msgid "PAP/CHAP password" +msgstr "" + +#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:683 msgid "PAP/CHAP username" msgstr "" -#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:645 +#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:652 msgid "PIN code" msgstr "" -#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:501 +#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:508 msgid "PPPoE" msgstr "" -#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:383 -#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:472 -#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:512 +#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:387 +#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:479 +#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:519 msgid "Physical interface" msgstr "" -#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:655 +#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:662 msgid "Prefer LTE" msgstr "" -#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:656 +#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:663 msgid "Prefer UMTS" msgstr "" -#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:368 -#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:493 +#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:369 +#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:500 msgid "Protocol" msgstr "" @@ -666,7 +675,7 @@ msgstr "" msgid "Proxy traffic:" msgstr "" -#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:502 +#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:509 msgid "QMI" msgstr "" @@ -682,24 +691,24 @@ msgstr "" msgid "Retrieve settings from server" msgstr "" -#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/settings.htm:324 -#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:799 +#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/settings.htm:330 +#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:824 msgid "Save & Apply" msgstr "" -#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/settings.htm:221 +#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/settings.htm:227 msgid "Save vnstats statistics on disk" msgstr "" -#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/settings.htm:216 +#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/settings.htm:222 msgid "Save vnstats stats" msgstr "" -#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/settings.htm:304 +#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/settings.htm:310 msgid "Scaling governor" msgstr "" -#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:793 +#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:818 msgid "Select the device you want to base the interface on." msgstr "" @@ -730,15 +739,15 @@ msgstr "" msgid "Server username" msgstr "" -#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:651 +#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:658 msgid "Service Type" msgstr "" -#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:544 +#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:551 msgid "Set an IP in the same network as the modem" msgstr "" -#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:560 +#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:567 msgid "Set here IP of the modem" msgstr "" @@ -758,12 +767,12 @@ msgid "" "all traffic if ShadowSocks is disabled." msgstr "" -#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:751 +#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:776 msgid "" "Set value between 80-95% of max download speed link. 0 to disable SQM/QoS." msgstr "" -#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:767 +#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:792 msgid "" "Set value between 80-95% of max upload speed link. 0 to disable SQM/QoS." msgstr "" @@ -789,8 +798,8 @@ msgstr "" msgid "Show all settings" msgstr "" -#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:372 -#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:497 +#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:373 +#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:504 msgid "Static address" msgstr "" @@ -798,11 +807,11 @@ msgstr "" msgid "Status" msgstr "" -#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/settings.htm:289 +#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/settings.htm:295 msgid "Systems settings" msgstr "" -#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/settings.htm:133 +#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/settings.htm:134 msgid "" "The length of time an orphaned (no longer referenced by any application) " "connection will remain in the FIN_WAIT_2 state before it is aborted at the " @@ -815,14 +824,14 @@ msgid "" "the processor, you should use chacha20." msgstr "" -#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/settings.htm:153 +#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/settings.htm:154 msgid "" "This value influences the time, after which TCP decides, that something is " "wrong due to unacknowledged RTO retransmissions, and reports this suspicion " "to the network layer." msgstr "" -#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/settings.htm:163 +#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/settings.htm:164 msgid "" "This value influences the timeout of an alive TCP connection, when RTO " "retransmissions remain unacknowledged." @@ -832,7 +841,7 @@ msgstr "" msgid "Total traffic:" msgstr "" -#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:458 +#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:465 msgid "Type" msgstr "" @@ -845,7 +854,7 @@ msgstr "" msgid "UBOND password" msgstr "" -#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:658 +#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:665 msgid "UMTS/GPRS" msgstr "" @@ -865,7 +874,7 @@ msgstr "" msgid "Update server" msgstr "" -#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:757 +#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:782 msgid "Upload speed (Kb/s)" msgstr "" @@ -874,8 +883,8 @@ msgstr "" msgid "Uptime:" msgstr "" -#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:746 -#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:762 +#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:771 +#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:787 msgid "Used by Glorytun UDP and SQM/QoS if enabled. 0 to use default value." msgstr "" @@ -924,7 +933,7 @@ msgstr "" msgid "Wan IP and gateway are identical" msgstr "" -#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/settings.htm:191 +#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/settings.htm:192 msgid "" "When enable check are done on external sites to get each WAN IP and the IP " "used to go outside." @@ -939,15 +948,15 @@ msgstr "" msgid "You" msgstr "" -#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:726 +#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:751 msgid "You can enable MPTCP over VPN if your provider filter Multipath TCP." msgstr "" -#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:378 +#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:379 msgid "You can use DHCP if you have multiple real ethernet ports." msgstr "" -#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:507 +#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:514 msgid "" "You can use DHCP if you have multiple real ethernet ports. Select other if " "you want to use another protocol available in Network Interfaces page." @@ -957,7 +966,7 @@ msgstr "" msgid "You can use a public IPv6 prefix only if you set only one server." msgstr "" -#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:429 +#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:436 msgid "You must disable DHCP on your modems and set IP in different networks." msgstr "" @@ -965,7 +974,7 @@ msgstr "" msgid "You should disable IPv6 here if server doesn't provide IPv6." msgstr "" -#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:736 +#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:761 msgid "You should disable SQM for LTE or any interfaces with variable speed." msgstr "" @@ -977,7 +986,7 @@ msgstr "" msgid "address:" msgstr "" -#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:660 +#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm:667 msgid "auto" msgstr "" @@ -1001,6 +1010,7 @@ msgid "mtu:" msgstr "" #: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:543 +#: luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm:699 msgid "multipath:" msgstr "" diff --git a/luci-app-openmptcprouter/root/etc/init.d/openmptcprouter b/luci-app-openmptcprouter/root/etc/init.d/openmptcprouter index 46fc817b7..8309d6c2d 100755 --- a/luci-app-openmptcprouter/root/etc/init.d/openmptcprouter +++ b/luci-app-openmptcprouter/root/etc/init.d/openmptcprouter @@ -23,8 +23,24 @@ omr_intf_set() { config_get ifname "$1" ifname config_get device "$1" device config_get proto "$1" proto + config_get addlatency "$1" addlatency "0" devicename=$(echo "$device" | cut -d'/' -f3) + [ -z "$ifname" ] && ifname=$(ifstatus "$1" | jsonfilter -q -e '@["l3_device"]') + + if [ -n "$ifname" ]; then + if [ "$addlatency" = "0" ] && [ "$(tc qdisc show $ifname | grep delay)" != "" ]; then + tc qdisc del dev ${ifname} root netem + fi + if [ "$addlatency" != "0" ]; then + if [ "$(tc qdisc show $ifname | grep delay)" != "" ]; then + tc qdisc add dev ${ifname} root netem delay ${addlatency}ms + elif [ "$(tc qdisc show $ifname | awk '/delay/ { print $10 }' | sed 's/ms//')" != "$addlatency" ]; then + tc qdisc replace dev ${ifname} root netem delay ${addlatency}ms + fi + fi + fi + if [ -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 diff --git a/luci-app-openmptcprouter/root/etc/uci-defaults/openmptcprouter b/luci-app-openmptcprouter/root/etc/uci-defaults/openmptcprouter index 7d85ea9c4..9fae15302 100755 --- a/luci-app-openmptcprouter/root/etc/uci-defaults/openmptcprouter +++ b/luci-app-openmptcprouter/root/etc/uci-defaults/openmptcprouter @@ -107,4 +107,7 @@ if [ "$(uci -q get openmptcprouter.settings.scaling_governor)" = "" ]; then commit openmptcprouter EOF fi + +sed -i 's/net.ipv4.tcp_retries2=3$/net.ipv4.tcp_retries2=15/' /etc/sysctl.d/zzz_openmptcprouter.conf + exit 0 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 25dd4743b..95abeb6d0 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 @@ -430,12 +430,9 @@ return view.extend({ so.datatype = 'list(unique(macaddr))'; so.rmempty = true; so.cfgvalue = function(section) { - var macs = uci.get('dhcp', section, 'mac'), + var macs = L.toArray(uci.get('dhcp', section, 'mac')), result = []; - if (!Array.isArray(macs)) - macs = (macs != null && macs != '') ? macs.split(/\ss+/) : []; - for (var i = 0, mac; (mac = macs[i]) != null; i++) if (/^([0-9a-fA-F]{1,2}):([0-9a-fA-F]{1,2}):([0-9a-fA-F]{1,2}):([0-9a-fA-F]{1,2}):([0-9a-fA-F]{1,2}):([0-9a-fA-F]{1,2})$/.test(mac)) result.push('%02X:%02X:%02X:%02X:%02X:%02X'.format( diff --git a/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js b/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js index 995515f01..5cd091920 100644 --- a/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js +++ b/luci-mod-network/htdocs/luci-static/resources/view/network/interfaces.js @@ -575,6 +575,10 @@ return view.extend({ o.value('backup',_('Backup')); o.default = 'off'; + o = s.taboption('advanced', form.Value, 'addlatency', _('Additional latency')); + o.datatype = 'uinteger'; + o.default = '0'; + if (L.hasSystemFeature('dnsmasq') || L.hasSystemFeature('odhcpd')) { o = s.taboption('dhcp', form.SectionValue, '_dhcp', form.TypedSection, 'dhcp'); o.depends('proto', 'static'); diff --git a/luci-theme-openmptcprouter/htdocs/luci-static/openmptcprouter/omr-logo-apple.png b/luci-theme-openmptcprouter/htdocs/luci-static/openmptcprouter/omr-logo-apple.png new file mode 100644 index 000000000..974d2e8a5 Binary files /dev/null and b/luci-theme-openmptcprouter/htdocs/luci-static/openmptcprouter/omr-logo-apple.png differ diff --git a/luci-theme-openmptcprouter/luasrc/view/themes/openmptcprouter/header.htm b/luci-theme-openmptcprouter/luasrc/view/themes/openmptcprouter/header.htm index 633686563..d45dd088c 100644 --- a/luci-theme-openmptcprouter/luasrc/view/themes/openmptcprouter/header.htm +++ b/luci-theme-openmptcprouter/luasrc/view/themes/openmptcprouter/header.htm @@ -32,6 +32,7 @@ + <% if node and node.css then %> <% end -%> diff --git a/openmptcprouter-full/Makefile b/openmptcprouter-full/Makefile index 17193689d..eace2e5bd 100644 --- a/openmptcprouter-full/Makefile +++ b/openmptcprouter-full/Makefile @@ -79,7 +79,7 @@ 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 + 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-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/openmptcprouter-vps b/openmptcprouter/files/etc/init.d/openmptcprouter-vps index d613900d5..88f43474a 100755 --- a/openmptcprouter/files/etc/init.d/openmptcprouter-vps +++ b/openmptcprouter/files/etc/init.d/openmptcprouter-vps @@ -717,63 +717,119 @@ _vps_firewall_redirect_port() { config_get dest_ip $1 dest_ip config_get dest_port $1 dest_port config_get src_ip $1 src_ip - if [ "$(echo $src_dport | cut -d'-' -f2)" -ge "65000" ]; then + config_get v2ray $1 v2ray "0" + 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" #uci -q delete firewall.$1 #return fi + [ "$(v2ray.main.enabled)" = "0" ] && v2ray="0" [ "$proto" = "all" ] && proto="tcp udp" [ "$proto" = "" ] && proto="tcp udp" [ "$src" = "vpn" ] && [ -n "$proto" ] && [ -n "$src_dport" ] && [ "$enabled" != "0" ] && { for protoi in $proto; do - checkfw="" - if [ "$family" = "ipv4" ]; then - if [ "$src_dip" = "" ]; then - checkfw=$(echo "$vpsfwlist" | grep "$src_dport # OMR $username redirect router $src_dport port $protoi") + if [ "$v2ray" = "0" ]; then + checkfw="" + if [ "$family" = "ipv4" ]; then + if [ "$src_dip" = "" ]; then + checkfw=$(echo "$vpsfwlist" | grep "$src_dport # OMR $username redirect router $src_dport port $protoi") + else + comment="" + [ -n "$src_dip" ] && { + comment=" to $src_dip" + iptables-save --counters | sed "s:-d $src_dip/32::g" | iptables-restore -w + } + [ -n "$src_ip" ] && comment=" from $src_ip" + checkfw=$(echo "$vpsfwlist" | grep "# OMR $username redirect router $src_dport port $protoi${comment}") + fi else - comment="" - [ -n "$src_dip" ] && { - comment=" to $src_dip" - iptables-save --counters | sed "s:-d $src_dip/32::g" | iptables-restore -w - } - [ -n "$src_ip" ] && comment=" from $src_ip" - checkfw=$(echo "$vpsfwlist" | grep "# OMR $username redirect router $src_dport port $protoi${comment}") + if [ "$src_dip" = "" ]; then + checkfw=$(echo "$vpsfw6list" | grep "$src_dport # OMR $username redirect router $src_dport port $protoi") + else + comment="" + [ -n "$src_dip" ] && comment=" to $src_dip" + [ -n "$src_ip" ] && comment=" from $src_ip" + checkfw=$(echo "$vpsfw6list" | grep "# OMR $username redirect router $src_dport port $protoi${comment}") + fi + fi + if [ "$checkfw" = "" ]; then + settings='{"name" : "router '$src_dport'","port" : "'$src_dport'","source_dip" : "'$src_dip'","source_ip" : "'$src_ip'","proto" : "'$protoi'","fwtype" : "DNAT","ipproto" : "'$family'"}' + _set_json "shorewallopen" "$settings" + fi + if [ "$family" = "ipv4" ]; then + if [ "$src_dip" = "" ]; then + vpsfwlist=$(echo "$vpsfwlist" | grep -v "$src_dport # OMR $username redirect router $src_dport port $protoi") + [ "$username" = "openmptcprouter" ] && vpsfwlist=$(echo "$vpsfwlist" | grep -v "$src_dport # OMR redirect router $src_dport port $protoi") + else + comment="" + [ -n "$src_dip" ] && comment=" to $src_dip" + [ -n "$src_ip" ] && comment=" from $src_ip" + vpsfwlist=$(echo "$vpsfwlist" | grep -v "# OMR $username redirect router $src_dport port $protoi${comment}") + [ "$username" = "openmptcprouter" ] && vpsfwlist=$(echo "$vpsfwlist" | grep -v "# OMR redirect router $src_dport port $protoi${comment}") + fi + else + if [ "$src_dip" = "" ]; then + vpsfw6list=$(echo "$vpsfw6list" | grep -v "$src_dport # OMR $username redirect router $src_dport port $protoi") + [ "$username" = "openmptcprouter" ] && vpsfw6list=$(echo "$vpsfw6list" | grep -v "$src_dport # OMR redirect router $src_dport port $protoi") + else + [ -n "$src_dip" ] && comment=" to $src_dip" + [ -n "$src_ip" ] && comment=" from $src_ip" + vpsfw6list=$(echo "$vpsfw6list" | grep -v "# OMR $username redirect router $src_dport port $protoi${comment}") + [ "$username" = "openmptcprouter" ] && vpsfw6list=$(echo "$vpsfw6list" | grep -v "# OMR redirect router $src_dport port $protoi${comment}") + fi fi else - if [ "$src_dip" = "" ]; then - checkfw=$(echo "$vpsfw6list" | grep "$src_dport # OMR $username redirect router $src_dport port $protoi") + checkfw="" + if [ "$family" = "ipv4" ]; then + if [ "$src_dip" = "" ]; then + checkfw=$(echo "$vpsfwlist" | grep "$src_dport # OMR $username open router $src_dport port $protoi") + else + comment="" + [ -n "$src_dip" ] && { + comment=" to $src_dip" + iptables-save --counters | sed "s:-d $src_dip/32::g" | iptables-restore -w + } + [ -n "$src_ip" ] && comment=" from $src_ip" + checkfw=$(echo "$vpsfwlist" | grep "# OMR $username open router $src_dport port $protoi${comment}") + fi else - comment="" - [ -n "$src_dip" ] && comment=" to $src_dip" - [ -n "$src_ip" ] && comment=" from $src_ip" - checkfw=$(echo "$vpsfw6list" | grep "# OMR $username redirect router $src_dport port $protoi${comment}") + if [ "$src_dip" = "" ]; then + checkfw=$(echo "$vpsfw6list" | grep "$src_dport # OMR $username open router $src_dport port $protoi") + else + comment="" + [ -n "$src_dip" ] && comment=" to $src_dip" + [ -n "$src_ip" ] && comment=" from $src_ip" + checkfw=$(echo "$vpsfw6list" | grep "# OMR $username open router $src_dport port $protoi${comment}") + fi fi - fi - if [ "$checkfw" = "" ]; then - settings='{"name" : "router '$src_dport'","port" : "'$src_dport'","source_dip" : "'$src_dip'","source_ip" : "'$src_ip'","proto" : "'$protoi'","fwtype" : "DNAT","ipproto" : "'$family'"}' - _set_json "shorewallopen" "$settings" - fi - if [ "$family" = "ipv4" ]; then - if [ "$src_dip" = "" ]; then - vpsfwlist=$(echo "$vpsfwlist" | grep -v "$src_dport # OMR $username redirect router $src_dport port $protoi") - [ "$username" = "openmptcprouter" ] && vpsfwlist=$(echo "$vpsfwlist" | grep -v "$src_dport # OMR redirect router $src_dport port $protoi") - else - comment="" - [ -n "$src_dip" ] && comment=" to $src_dip" - [ -n "$src_ip" ] && comment=" from $src_ip" - vpsfwlist=$(echo "$vpsfwlist" | grep -v "# OMR $username redirect router $src_dport port $protoi${comment}") - [ "$username" = "openmptcprouter" ] && vpsfwlist=$(echo "$vpsfwlist" | grep -v "# OMR redirect router $src_dport port $protoi${comment}") + if [ "$checkfw" = "" ]; then + settings='{"name" : "router '$src_dport'","port" : "'$src_dport'","source_dip" : "'$src_dip'","source_ip" : "'$src_ip'","proto" : "'$protoi'","fwtype" : "ACCEPT","ipproto" : "'$family'"}' + _set_json "shorewallopen" "$settings" + settings='{"name" : "router '$src_dport'","port" : "'$src_dport'","destip" : "'$dest_ip'","proto" : "'$protoi'"}' + _set_json "v2rayredirect" "$settings" fi - else - if [ "$src_dip" = "" ]; then - vpsfw6list=$(echo "$vpsfw6list" | grep -v "$src_dport # OMR $username redirect router $src_dport port $protoi") - [ "$username" = "openmptcprouter" ] && vpsfw6list=$(echo "$vpsfw6list" | grep -v "$src_dport # OMR redirect router $src_dport port $protoi") + if [ "$family" = "ipv4" ]; then + if [ "$src_dip" = "" ]; then + vpsfwlist=$(echo "$vpsfwlist" | grep -v "$src_dport # OMR $username open router $src_dport port $protoi") + [ "$username" = "openmptcprouter" ] && vpsfwlist=$(echo "$vpsfwlist" | grep -v "$src_dport # OMR open router $src_dport port $protoi") + else + comment="" + [ -n "$src_dip" ] && comment=" to $src_dip" + [ -n "$src_ip" ] && comment=" from $src_ip" + vpsfwlist=$(echo "$vpsfwlist" | grep -v "# OMR $username open router $src_dport port $protoi${comment}") + [ "$username" = "openmptcprouter" ] && vpsfwlist=$(echo "$vpsfwlist" | grep -v "# OMR open router $src_dport port $protoi${comment}") + fi else - [ -n "$src_dip" ] && comment=" to $src_dip" - [ -n "$src_ip" ] && comment=" from $src_ip" - vpsfw6list=$(echo "$vpsfw6list" | grep -v "# OMR $username redirect router $src_dport port $protoi${comment}") - [ "$username" = "openmptcprouter" ] && vpsfw6list=$(echo "$vpsfw6list" | grep -v "# OMR redirect router $src_dport port $protoi${comment}") + if [ "$src_dip" = "" ]; then + vpsfw6list=$(echo "$vpsfw6list" | grep -v "$src_dport # OMR $username open router $src_dport port $protoi") + [ "$username" = "openmptcprouter" ] && vpsfw6list=$(echo "$vpsfw6list" | grep -v "$src_dport # OMR open router $src_dport port $protoi") + else + [ -n "$src_dip" ] && comment=" to $src_dip" + [ -n "$src_ip" ] && comment=" from $src_ip" + vpsfw6list=$(echo "$vpsfw6list" | grep -v "# OMR $username open router $src_dport port $protoi${comment}") + [ "$username" = "openmptcprouter" ] && vpsfw6list=$(echo "$vpsfw6list" | grep -v "# OMR open router $src_dport port $protoi${comment}") + fi fi fi done