nat46: harden 464xlat teardown logic
Quit the teardown function in case the file 464-$cfg-anycast is not present as it means no clean up of ip rules is required. It fixes error traces like "cat: can't open '/tmp/464-wan6_4-anycast': No such file or directory" and "Error: inet6 prefix is expected rather than "lookup"." At the same time remove the unused variable anycast_active. Signed-off-by: Hans Dedecker <dedeckeh@gmail.com>
This commit is contained in:
parent
d464bf11b8
commit
013b91dc6d
2 changed files with 4 additions and 3 deletions
|
@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
|
||||||
include $(INCLUDE_DIR)/kernel.mk
|
include $(INCLUDE_DIR)/kernel.mk
|
||||||
|
|
||||||
PKG_NAME:=nat46
|
PKG_NAME:=nat46
|
||||||
PKG_VERSION:=10
|
PKG_VERSION:=11
|
||||||
PKG_RELEASE:=$(PKG_SOURCE_VERSION)
|
PKG_RELEASE:=$(PKG_SOURCE_VERSION)
|
||||||
|
|
||||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
|
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
|
||||||
|
|
|
@ -81,13 +81,14 @@ proto_464xlat_setup() {
|
||||||
proto_464xlat_teardown() {
|
proto_464xlat_teardown() {
|
||||||
local cfg="$1"
|
local cfg="$1"
|
||||||
local link="464-$cfg"
|
local link="464-$cfg"
|
||||||
|
|
||||||
|
[ -f /tmp/464-$cfg-anycast ] || return
|
||||||
local ip6addr=$(cat /tmp/464-$cfg-anycast)
|
local ip6addr=$(cat /tmp/464-$cfg-anycast)
|
||||||
local anycast_active
|
|
||||||
|
|
||||||
464xlatcfg "$link"
|
464xlatcfg "$link"
|
||||||
|
|
||||||
rm -rf /tmp/464-$cfg-anycast
|
rm -rf /tmp/464-$cfg-anycast
|
||||||
ip -6 rule del to $ip6addr lookup prelocal
|
[ -n "$ip6addr" ] && ip -6 rule del to $ip6addr lookup prelocal
|
||||||
|
|
||||||
if [ -z "$(ls /tmp/464-*-anycast 2>&-)" ]; then
|
if [ -z "$(ls /tmp/464-*-anycast 2>&-)" ]; then
|
||||||
ip -6 rule del from all lookup local
|
ip -6 rule del from all lookup local
|
||||||
|
|
Loading…
Reference in a new issue