Changeset 23062


Ignore:
Timestamp:
2010-09-15T01:11:12+02:00 (7 years ago)
Author:
jow
Message:

[package] firewall: deliver remove hotplug events for all active zones/networks when restarting the firewall

Location:
trunk/package/firewall
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/package/firewall/Makefile

    r23024 r23062  
    1010 
    1111PKG_VERSION:=2 
    12 PKG_RELEASE:=13 
     12PKG_RELEASE:=14 
    1313 
    1414include $(INCLUDE_DIR)/package.mk 
  • trunk/package/firewall/files/lib/core.sh

    r22215 r23062  
    5050        fw_callback post core 
    5151 
     52        uci_set_state firewall core zones "$FW_ZONES" 
    5253        uci_set_state firewall core loaded 1 
    5354} 
     
    5758 
    5859        fw_callback pre stop 
     60 
     61        local old_zones z 
     62        config_get old_zones core zones 
     63        for z in $old_zones; do 
     64                local old_networks n i 
     65                config_get old_networks core "${z}_networks" 
     66                for n in $old_networks; do 
     67                        config_get i core "${n}_ifname" 
     68                        [ -n "$i" ] && env -i ACTION=remove ZONE="$z" \ 
     69                                INTERFACE="$n" DEVICE="$i" \ 
     70                                /sbin/hotplug-call firewall 
     71                done 
     72        done 
    5973 
    6074        fw_clear ACCEPT 
  • trunk/package/firewall/files/lib/core_interface.sh

    r23024 r23062  
    11# Copyright (C) 2009-2010 OpenWrt.org 
     2 
     3fw__uci_state_add() { 
     4        local var="$1" 
     5        local item="$2" 
     6 
     7        local val="$(uci_get_state firewall core $var)" 
     8        uci_set_state firewall core $var "${val:+$val }$item" 
     9} 
     10 
     11fw__uci_state_del() { 
     12        local var="$1" 
     13        local item="$2" 
     14 
     15        local val=" $(uci_get_state firewall core $var) " 
     16        val="${val// $item / }" 
     17        val="${val# }" 
     18        val="${val% }" 
     19        uci_set_state firewall core $var "$val" 
     20} 
    221 
    322fw_configure_interface() { 
     
    84103                        done 
    85104 
    86                         [ -n "$old_subnets" ] || ACTION=remove ZONE="$z" INTERFACE="$iface" DEVICE="$ifname" /sbin/hotplug-call firewall 
     105                        [ -n "$old_subnets" ] || { 
     106                                fw__uci_state_del "${z}_networks" "$iface" 
     107                                env -i ACTION=remove ZONE="$z" INTERFACE="$iface" DEVICE="$ifname" /sbin/hotplug-call firewall 
     108                        } 
    87109                done 
    88110 
     
    140162                append new_zones $zone_name 
    141163 
    142                 [ -n "$aliasnet" ] || ACTION=add ZONE="$zone_name" INTERFACE="$iface" DEVICE="$ifname" /sbin/hotplug-call firewall 
     164                [ -n "$aliasnet" ] || { 
     165                        fw__uci_state_add "${zone_name}_networks" "${zone_network}" 
     166                        env -i ACTION=add ZONE="$zone_name" INTERFACE="$iface" DEVICE="$ifname" /sbin/hotplug-call firewall 
     167                } 
    143168        } 
    144169        config_foreach load_zone zone 
Note: See TracChangeset for help on using the changeset viewer.