diff options
Diffstat (limited to 'main/dnsmasq/dnsmasq.initd')
-rw-r--r-- | main/dnsmasq/dnsmasq.initd | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/main/dnsmasq/dnsmasq.initd b/main/dnsmasq/dnsmasq.initd index 9af390f56b..c7e753fd4b 100644 --- a/main/dnsmasq/dnsmasq.initd +++ b/main/dnsmasq/dnsmasq.initd @@ -93,14 +93,23 @@ start_pre() { setup_firewall -I -A fi if yesno "$DNSMASQ_LISTEN_BRIDGE_ADDR"; then - command_args="$command_args --listen-address ${BRIDGE_ADDR}" + local addr + for addr in $BRIDGE_ADDR; do + command_args="$command_args --listen-address ${addr%/*}" + done fi command_args="$command_args --strict-order --bind-interfaces --except-interface=lo --interface=$BRIDGE --dhcp-range $BRIDGE_DHCP_RANGE --dhcp-lease-max=$BRIDGE_DHCP_MAX --dhcp-no-override --dhcp-leasefile=$leasefile --dhcp-authoritative" } stop_post() { if [ -n "$BRIDGE" ]; then - ip addr del ${BRIDGE_ADDR}/${BRIDGE_NETMASK} dev $BRIDGE + local addr + for addr in $BRIDGE_ADDR $BRIDGE_ADDR_EXTRA; do + case "$addr" in + */*) ip addr del $addr dev $BRIDGE;; + *) ip addr del $addr/${BRIDGE_NETMASK} dev $BRIDGE;; + esac + done ip link set dev $BRIDGE down if [ -z "$DISABLE_IPTABLES" ]; then setup_firewall -D -D |