diff options
author | Jouke Witteveen <j.witteveen@gmail.com> | 2012-02-22 14:07:18 +0100 |
---|---|---|
committer | Jouke Witteveen <j.witteveen@gmail.com> | 2012-02-22 14:07:18 +0100 |
commit | 9564b6c6662b58a6a7d7f5966f75412c71904659 (patch) | |
tree | a3fb93d268a509a51708a861bc4a91c65a626890 /rc.d/net-auto-wired | |
parent | bc1db05d3b1dc16bb49f9546b8634f181c9090e9 (diff) | |
download | netctl-9564b6c6662b58a6a7d7f5966f75412c71904659.tar.gz netctl-9564b6c6662b58a6a7d7f5966f75412c71904659.tar.xz |
Make net-auto-wired more like net-auto-wireless
The latter is more advanced. This fixes FS#26607 which was reported by Olivier Mehani (shtrom).
Diffstat (limited to 'rc.d/net-auto-wired')
-rwxr-xr-x | rc.d/net-auto-wired | 38 |
1 files changed, 25 insertions, 13 deletions
diff --git a/rc.d/net-auto-wired b/rc.d/net-auto-wired index 9493857..21f487d 100755 --- a/rc.d/net-auto-wired +++ b/rc.d/net-auto-wired @@ -2,6 +2,7 @@ . /etc/rc.conf . /etc/rc.d/functions +. /usr/lib/network/globals . /etc/conf.d/netcfg if [[ ! -x /usr/sbin/ifplugd ]]; then @@ -9,6 +10,12 @@ if [[ ! -x /usr/sbin/ifplugd ]]; then exit 1 fi +if [ -z "${WIRED_INTERFACE}" ]; then + echo "No interface name set. Add to /etc/conf.d/netcfg a line" + echo " WIRED_INTERFACE=\"your_interface\"" + exit 1 +fi + CFG=/etc/ifplugd/ifplugd.conf ACTION=/etc/ifplugd/netcfg.action PIDFILE=/var/run/ifplugd.$WIRED_INTERFACE.pid @@ -19,35 +26,40 @@ PIDFILE=/var/run/ifplugd.$WIRED_INTERFACE.pid 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}\}`" [ -z "$A" ] && A="$ARGS" [ -z "$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 - stat_fail - else + if [[ -f $PIDFILE ]]; then add_daemon net-auto-wired stat_done + else + stat_fail fi ;; stop) - stat_busy "Stopping netcfg auto-wired mode for interface ${WIRED_INTERFACE}" - [ -n "$PID" ] && /usr/sbin/ifplugd -k -i $WIRED_INTERFACE -r $ACTION - if [ $? -gt 0 ]; then - stat_fail - else - rm_daemon net-auto-wired - stat_done + if ! ck_daemon net-auto-wired; then + stat_busy "Stopping netcfg auto-wired mode for interface ${WIRED_INTERFACE}" + [ -n "$PID" ] && /usr/sbin/ifplugd -k -i $WIRED_INTERFACE -r $ACTION + if [ $? -eq 0 ]; then + rm_daemon net-auto-wired + stat_done + else + stat_fail + fi fi ;; restart) - $0 stop + "$0" stop sleep 1 - $0 start + "$0" start ;; *) - echo "usage: $0 {start|stop|restart}" + echo "Usage: $0 {start|stop|restart}" esac exit 0 |