#!/bin/sh # # netplug - policy agent for netplugd # # Copyright 2003 Key Research, Inc. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License, version 2, as # published by the Free Software Foundation. You are forbidden from # redistributing or modifying it under the terms of any other license, # including other versions of the GNU General Public License. # # This program is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details. PATH=/usr/bin:/bin:/usr/sbin:/sbin export PATH dev="$1" action="$2" case "$action" in in) if [ -x /sbin/ifup ]; then exec /sbin/ifup $dev else echo "Please teach me how to plug in an interface!" 1>&2 exit 1 fi ;; out) if [ -x /sbin/ifdown ]; then # At least on Fedora Core 1, the call to ip addr flush infloops # /sbin/ifdown $dev && exec /sbin/ip addr flush $dev exec /sbin/ifdown $dev else echo "Please teach me how to unplug an interface!" 1>&2 exit 1 fi ;; probe) # exec /sbin/ip link set $dev up >/dev/null 2>&1 if [ -x /sbin/ifconfig ]; then exec /sbin/ifconfig $dev up >/dev/null 2>&1 else echo "Failed to probe an interface!" 1>&2 exit 1 fi ;; *) echo "I have been called with a funny action of '%s'!" 1>&2 exit 1 ;; esac