#!/bin/bash . /etc/rc.conf . /etc/rc.d/functions . /usr/lib/network/globals . /etc/conf.d/netcfg if [[ ! -x /usr/sbin/ifplugd ]]; then exit_stderr "Please install 'ifplugd' to use net-auto-wired" fi if [[ -z "${WIRED_INTERFACE}" ]]; then exit_stderr "No interface name set. Add to /etc/conf.d/netcfg a line"$'\n' \ " WIRED_INTERFACE='your_interface'" fi CFG=/etc/ifplugd/ifplugd.conf ACTION=/etc/ifplugd/netcfg.action PIDFILE=/var/run/ifplugd.$WIRED_INTERFACE.pid [[ -f $PIDFILE ]] && read PID < $PIDFILE # Source ifplugd configuration [ -f $CFG ] && . $CFG case "$1" in start) if ! ck_daemon net-auto-wired; then exit_stderr "net-auto-wired has already been started: try \"/etc/rc.d/net-auto-wired restart\"" fi stat_busy "Starting netcfg auto-wired mode for interface ${WIRED_INTERFACE}" A="`eval echo \$\{ARGS_${WIRED_INTERFACE}\}`" [[ "$A" ]] || A="$ARGS" [[ "$PID" ]] || /usr/sbin/ifplugd -i $WIRED_INTERFACE -r $ACTION $A # ifplugd may return non-zero, but still succeed if -w is passed, as default in upstream config. sleep 1 if [[ -f $PIDFILE ]]; then add_daemon net-auto-wired stat_done else stat_fail fi ;; stop) if ! ck_daemon net-auto-wired; then stat_busy "Stopping netcfg auto-wired mode for interface ${WIRED_INTERFACE}" if [[ "$PID" ]] && /usr/sbin/ifplugd -k -i $WIRED_INTERFACE -r $ACTION; then rm_daemon net-auto-wired stat_done else stat_fail fi fi ;; restart) "$0" stop sleep 1 "$0" start ;; *) echo "Usage: $0 {start|stop|restart}" esac exit 0