diff --git a/Makefile b/Makefile index eab1fb34..99dc8977 100644 --- a/Makefile +++ b/Makefile @@ -81,6 +81,7 @@ install: ${PKGSOURCES} install -D -m 0755 qmupdate ${DESTDIR}${VARLIBDIR}/qmupdate install -D -m 0755 qemu.init.d ${DESTDIR}/etc/init.d/${PACKAGE} install -m 0755 pve-bridge ${DESTDIR}${VARLIBDIR}/pve-bridge + install -m 0755 pve-bridgedown ${DESTDIR}${VARLIBDIR}/pve-bridgedown install -s -m 0755 vmtar ${DESTDIR}${LIBDIR} install -s -m 0755 sparsecp ${DESTDIR}${LIBDIR} install -m 0755 qmextract ${DESTDIR}${LIBDIR} diff --git a/PVE/QemuServer.pm b/PVE/QemuServer.pm index 5ee2606d..53806f96 100644 --- a/PVE/QemuServer.pm +++ b/PVE/QemuServer.pm @@ -1202,7 +1202,7 @@ sub print_netdev_full { my $vmname = $conf->{name} || "vm$vmid"; if ($net->{bridge}) { - return "type=tap,id=$netid,ifname=${ifname},script=/var/lib/qemu-server/pve-bridge$vhostparam"; + return "type=tap,id=$netid,ifname=${ifname},script=/var/lib/qemu-server/pve-bridge,downscript=/var/lib/qemu-server/pve-bridgedown$vhostparam"; } else { return "type=user,id=$netid,hostname=$vmname"; } diff --git a/pve-bridgedown b/pve-bridgedown new file mode 100755 index 00000000..d18d88fc --- /dev/null +++ b/pve-bridgedown @@ -0,0 +1,16 @@ +#!/usr/bin/perl + +use strict; +use warnings; +use PVE::Network; + +my $iface = shift; + +die "no interface specified\n" if !$iface; + +die "got strange interface name '$iface'\n" + if $iface !~ m/^tap(\d+)i(\d+)$/; + +PVE::Network::tap_unplug($iface); + +exit 0;