From 6aa26f9fd20f28e6fb89984b8b3697d64ec617f7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Iago=20L=C3=B3pez=20Galeiras?= Date: Tue, 3 May 2016 12:21:58 +0200 Subject: [PATCH] plugins/bridge: clean masquerading rules In the Add command we set up masquerading rules that didn't have a corresponding clean-up code in Del. Add the clean-up code. --- plugins/main/bridge/bridge.go | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/plugins/main/bridge/bridge.go b/plugins/main/bridge/bridge.go index e4bc106c..cc363a41 100644 --- a/plugins/main/bridge/bridge.go +++ b/plugins/main/bridge/bridge.go @@ -238,14 +238,25 @@ func cmdDel(args *skel.CmdArgs) error { return err } - err = ipam.ExecDel(n.IPAM.Type, args.StdinData) + var ipn *net.IPNet + err = ns.WithNetNSPath(args.Netns, false, func(hostNS *os.File) error { + var err error + ipn, err = ip.DelLinkByNameAddr(args.IfName, netlink.FAMILY_V4) + return err + }) if err != nil { return err } - return ns.WithNetNSPath(args.Netns, false, func(hostNS *os.File) error { - return ip.DelLinkByName(args.IfName) - }) + if n.IPMasq { + chain := utils.FormatChainName(n.Name, args.ContainerID) + comment := utils.FormatComment(n.Name, args.ContainerID) + if err = ip.TeardownIPMasq(ipn, chain, comment); err != nil { + return err + } + } + + return ipam.ExecDel(n.IPAM.Type, args.StdinData) } func main() {