From 2db1cc0de93754e8a21b781e040b0c09bdbfb8e4 Mon Sep 17 00:00:00 2001 From: Dietmar Maurer Date: Thu, 8 May 2014 09:09:12 +0200 Subject: [PATCH] tap_unplug: auto-detect bridge, improve error messages Based on patch sent by Alexandre. --- data/PVE/Network.pm | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/data/PVE/Network.pm b/data/PVE/Network.pm index 4677bf9..885be0e 100644 --- a/data/PVE/Network.pm +++ b/data/PVE/Network.pm @@ -88,16 +88,19 @@ sub tap_plug { } sub tap_unplug { - my ($iface, $bridge, $tag) = @_; + my ($iface) = @_; - if (-d "/sys/class/net/$bridge/bridge") { - $bridge .= "v$tag" if $tag; + my $path= "/sys/class/net/$iface/brport/bridge"; + if (-l $path) { + my $bridge = basename(readlink($path)); + #avoid insecure dependency; + ($bridge) = $bridge =~ /(\S+)/; system("/sbin/brctl delif $bridge $iface") == 0 || - die "can't del interface from bridge\n"; + die "can't del interface '$iface' from bridge '$bridge'\n"; } else { system ("/usr/bin/ovs-vsctl del-port $iface") == 0 || - die "can't del interface from bridge\n"; + die "can't del ovs port '$iface'\n"; } } -- 2.39.2