#! /bin/sh

export PATH='/sbin:/bin:/usr/sbin:/usr/bin'

if [ $# -ne 1 ]; then
    echo "Usage: $0 ifname" 1>&2
    exit 1
elif [ ! "`which brctl`" ]; then
    echo 'Missing brctl - please install bridge-utils (or similar)' 1>&2
    exit 1
elif [ "`id -u`" -ne 0 ]; then
    if [ -w /var/spool/qemu_q ]; then
	echo "destroynet $1" >/var/spool/qemu_q/$$
	until [ -f /var/spool/qemu_q/$$. ]; do
	    usleep 200000
	done
	RETCODE=`tail -n 1 /var/spool/qemu_q/$$. | cut -f1`
	rm /var/spool/qemu_q/$$.
	exit ${RETCODE:1}
    else
	echo 'Must run as root when qemu-privd is not installed' 1>&2
	exit 1
    fi
fi

PRIMARY_IF=`netstat -nr | awk '$1 == "0.0.0.0" {print $NF; exit}'`
if [ -z "$PRIMARY_IF" ]; then
    PRIMARY_IF=`ifconfig | awk \
	    '$0 ~ /^[A-Za-z]/ && $1 != "lo" {print $1; exit}'`
fi

brctl delif "$PRIMARY_IF" "$1"

if [ "$PRIMARY_IF" = 'qemu' ]; then
    echo -e 'Tearing down temporary bridge ... \c'
    GWADDR=`netstat -nr | awk \
	    '$1 == "0.0.0.0" && $NF == "qemu" {print $2; exit}'`
    eval `ifconfig qemu | grep '\<inet addr:' | sed -e \
            's/inet addr:/IPADDR=/' -e 's/Bcast:/BCAST=/' -e 's/Mask:/MASK=/'`
    PRIMARY_IF=
    for IF in `ls /sys/class/net/qemu/brif`; do
	[ -z "$PRIMARY_IF" ] && PRIMARY_IF=$IF
	brctl delif qemu $IF
    done
    ifconfig qemu down
    brctl delbr qemu
    ifconfig "$PRIMARY_IF" "$IPADDR" netmask "$MASK" broadcast "$BCAST" up
    [ "$GWADDR" ] && route add -net default gw "$GWADDR"
    echo 'done.'
fi

exit 0
