[backfire] firewall: merge r28669
authorjow <jow@3c298f89-4303-0410-b956-a3cf2f4a3e73>
Sat, 29 Oct 2011 18:09:25 +0000 (18:09 +0000)
committerjow <jow@3c298f89-4303-0410-b956-a3cf2f4a3e73>
Sat, 29 Oct 2011 18:09:25 +0000 (18:09 +0000)
git-svn-id: svn://svn.openwrt.org/openwrt/branches/backfire@28671 3c298f89-4303-0410-b956-a3cf2f4a3e73

package/firewall/Makefile
package/firewall/files/lib/core.sh
package/firewall/files/lib/core_init.sh
package/firewall/files/lib/core_interface.sh

index 90a6eae67bb244300c059182366eadf47bd3689f..14f31a4aee5e15f117e00a266c29e47a2c70e324 100644 (file)
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
 PKG_NAME:=firewall
 
 PKG_VERSION:=2
 PKG_NAME:=firewall
 
 PKG_VERSION:=2
-PKG_RELEASE:=34.5
+PKG_RELEASE:=34.6
 
 include $(INCLUDE_DIR)/package.mk
 
 
 include $(INCLUDE_DIR)/package.mk
 
index c383597810e38703c7e4ebe95eb1ed4610708df2..0297518a5d620d07782786f59c22c84c03271b8f 100644 (file)
@@ -67,6 +67,12 @@ fw_stop() {
                        [ -n "$i" ] && env -i ACTION=remove ZONE="$z" \
                                INTERFACE="$n" DEVICE="$i" /sbin/hotplug-call firewall
                done
                        [ -n "$i" ] && env -i ACTION=remove ZONE="$z" \
                                INTERFACE="$n" DEVICE="$i" /sbin/hotplug-call firewall
                done
+
+               config_get i core "${z}_tcpmss"
+               [ "$i" == 1 ] && {
+                       fw del i m FORWARD zone_${z}_MSSFIX
+                       fw del i m zone_${z}_MSSFIX
+               }
        done
 
        fw_clear ACCEPT
        done
 
        fw_clear ACCEPT
index 87f40e0820f66bc4fe48607a1d7e681022d015fd..8ee5dc23f43424edcca811ee6724e36355f178b9 100644 (file)
@@ -195,7 +195,6 @@ fw_load_zone() {
        fw add $mode f ${chain}_ACCEPT
        fw add $mode f ${chain}_DROP
        fw add $mode f ${chain}_REJECT
        fw add $mode f ${chain}_ACCEPT
        fw add $mode f ${chain}_DROP
        fw add $mode f ${chain}_REJECT
-       fw add $mode f ${chain}_MSSFIX
 
        # TODO: Rename to ${chain}_input
        fw add $mode f ${chain}
 
        # TODO: Rename to ${chain}_input
        fw add $mode f ${chain}
@@ -213,8 +212,11 @@ fw_load_zone() {
 
        fw add $mode r ${chain}_notrack
 
 
        fw add $mode r ${chain}_notrack
 
-       [ $zone_mtu_fix == 1 ] && \
-               fw add $mode f FORWARD ${chain}_MSSFIX ^
+       [ $zone_mtu_fix == 1 ] && {
+               fw add $mode m ${chain}_MSSFIX
+               fw add $mode m FORWARD ${chain}_MSSFIX ^
+               uci_set_state firewall core ${zone_name}_tcpmss 1
+       }
 
        [ $zone_custom_chains == 1 ] && {
                [ $FW_ADD_CUSTOM_CHAINS == 1 ] || \
 
        [ $zone_custom_chains == 1 ] && {
                [ $FW_ADD_CUSTOM_CHAINS == 1 ] || \
@@ -235,10 +237,14 @@ fw_load_zone() {
                        zone_log_limit="$zone_log_limit/minute"
 
                local t
                        zone_log_limit="$zone_log_limit/minute"
 
                local t
-               for t in REJECT DROP MSSFIX; do
+               for t in REJECT DROP; do
                        fw add $mode f ${chain}_${t} LOG ^ \
                        fw add $mode f ${chain}_${t} LOG ^ \
-                               { -m limit --limit $zone_log_limit --log-prefix "$t($zone_name): "  }
+                               { -m limit --limit $zone_log_limit --log-prefix "$t($zone_name): " }
                done
                done
+
+               [ $zone_mtu_fix == 1 ] && \
+                       fw add $mode m ${chain}_MSSFIX LOG ^ \
+                               { -m limit --limit $zone_log_limit --log-prefix "MSSFIX($zone_name): " }
        }
 
        # NB: if MASQUERADING for IPv6 becomes available we'll need a family check here
        }
 
        # NB: if MASQUERADING for IPv6 becomes available we'll need a family check here
index 84e07e0e25d69d7a07c0107374e9b9fa46b95c8b..8023e7fb8d0bb6c15693de1c2ef7e72c619550ae 100644 (file)
@@ -96,7 +96,9 @@ fw_configure_interface() {
                fw $action $mode f ${chain}_REJECT reject $ { -o "$ifname" $onet }
                fw $action $mode f ${chain}_REJECT reject $ { -i "$ifname" $inet }
 
                fw $action $mode f ${chain}_REJECT reject $ { -o "$ifname" $onet }
                fw $action $mode f ${chain}_REJECT reject $ { -i "$ifname" $inet }
 
-               fw $action $mode f ${chain}_MSSFIX TCPMSS  $ { -o "$ifname" -p tcp --tcp-flags SYN,RST SYN --clamp-mss-to-pmtu $onet }
+               [ "$(uci_get_state firewall core "${zone}_tcpmss")" == 1 ] && \
+                       fw $action $mode m ${chain}_MSSFIX TCPMSS $ \
+                               { -o "$ifname" -p tcp --tcp-flags SYN,RST SYN --clamp-mss-to-pmtu $onet }
 
                fw $action $mode f input   ${chain}         $ { -i "$ifname" $inet }
                fw $action $mode f forward ${chain}_forward $ { -i "$ifname" $inet }
 
                fw $action $mode f input   ${chain}         $ { -i "$ifname" $inet }
                fw $action $mode f forward ${chain}_forward $ { -i "$ifname" $inet }