OSDN Git Service

firewall4: refresh fullcone patch
[immortalwrt/immortalwrt.git] / package / network / config / firewall4 / patches / 001-firewall4-add-support-for-fullcone-nat.patch
index 205d67c..9b11ee2 100644 (file)
@@ -11,10 +11,10 @@ invalid
 Renew: ZiMing Mo <msylgj@immortalwrt.org>
 ---
  root/etc/config/firewall                      |  1 +
- root/usr/share/firewall4/templates/ruleset.uc | 11 +++++-
+ root/usr/share/firewall4/templates/ruleset.uc | 13 +++++-
  .../firewall4/templates/zone-fullcone.uc      |  4 ++
  root/usr/share/ucode/fw4.uc                   | 38 ++++++++++++++++++-
- 4 files changed, 52 insertions(+), 2 deletions(-)
+ 4 files changed, 53 insertions(+), 3 deletions(-)
  create mode 100644 root/usr/share/firewall4/templates/zone-fullcone.uc
 
 --- a/root/etc/config/firewall
@@ -35,7 +35,7 @@ Renew: ZiMing Mo <msylgj@immortalwrt.org>
  
  table inet fw4
 @@ -238,6 +239,10 @@ table inet fw4 {
- {%   for (let redirect in fw4.redirects("dstnat_"+zone.name)): %}
+ {%   for (let redirect in fw4.redirects(`dstnat_${zone.name}`)): %}
                {%+ include("redirect.uc", { fw4, redirect }) %}
  {%   endfor %}
 +{%   if (fw4.default_option("fullcone")): %}
@@ -46,7 +46,7 @@ Renew: ZiMing Mo <msylgj@immortalwrt.org>
  
  {%  endif %}
 @@ -246,20 +251,24 @@ table inet fw4 {
- {%   for (let redirect in fw4.redirects("srcnat_"+zone.name)): %}
+ {%   for (let redirect in fw4.redirects(`srcnat_${zone.name}`)): %}
                {%+ include("redirect.uc", { fw4, redirect }) %}
  {%   endfor %}
 -{%   if (zone.masq): %}
@@ -57,7 +57,8 @@ Renew: ZiMing Mo <msylgj@immortalwrt.org>
  {%     endfor %}
  {%    endfor %}
  {%   endif %}
- {%   if (zone.masq6): %}
+-{%   if (zone.masq6): %}
++{%   if (zone.masq6 && !fw4.default_option("fullcone")): %}
  {%    for (let saddrs in zone.masq6_src_subnets): %}
  {%     for (let daddrs in zone.masq6_dest_subnets): %}
                {%+ include("zone-masq.uc", { fw4, zone, family: 6, saddrs, daddrs }) %}
@@ -75,18 +76,18 @@ Renew: ZiMing Mo <msylgj@immortalwrt.org>
 +++ b/root/usr/share/firewall4/templates/zone-fullcone.uc
 @@ -0,0 +1,4 @@
 +{# /usr/share/firewall4/templates/zone-fullcone.uc #}
-+              meta nfproto ipv4 fullcone comment "!fw4: Handle {{
++              fullcone comment "!fw4: Handle {{
 +              zone.name
-+}} IPv4 fullcone NAT traffic"
++}} IPv4/IPv6 fullcone NAT traffic"
 --- a/root/usr/share/ucode/fw4.uc
 +++ b/root/usr/share/ucode/fw4.uc
 @@ -1,3 +1,5 @@
 +// /usr/share/ucode/fw4.uc
 +
let fs = require("fs");
let uci = require("uci");
let ubus = require("ubus");
-@@ -419,6 +421,25 @@ function nft_try_hw_offload(devices) {
const fs = require("fs");
const uci = require("uci");
const ubus = require("ubus");
+@@ -428,6 +430,25 @@ function nft_try_hw_offload(devices) {
        return (rc == 0);
  }
  
@@ -112,7 +113,7 @@ Renew: ZiMing Mo <msylgj@immortalwrt.org>
  
  return {
        read_kernel_version: function() {
-@@ -1382,6 +1403,7 @@ return {
+@@ -1383,6 +1404,7 @@ return {
                        "dnat",
                        "snat",
                        "masquerade",
@@ -120,7 +121,7 @@ Renew: ZiMing Mo <msylgj@immortalwrt.org>
                        "accept",
                        "reject",
                        "drop"
-@@ -1787,6 +1809,7 @@ return {
+@@ -1802,6 +1824,7 @@ return {
                }
  
                let defs = this.parse_options(data, {
@@ -128,7 +129,7 @@ Renew: ZiMing Mo <msylgj@immortalwrt.org>
                        input: [ "policy", "drop" ],
                        output: [ "policy", "drop" ],
                        forward: [ "policy", "drop" ],
-@@ -1819,6 +1842,14 @@ return {
+@@ -1834,6 +1857,14 @@ return {
  
                delete defs.syn_flood;
  
@@ -143,7 +144,7 @@ Renew: ZiMing Mo <msylgj@immortalwrt.org>
                this.state.defaults = defs;
        },
  
-@@ -2041,10 +2072,15 @@ return {
+@@ -2058,10 +2089,15 @@ return {
                zone.related_subnets = related_subnets;
                zone.related_physdevs = related_physdevs;