diff --git a/ChangeLog b/ChangeLog index d0233d109d..a093fc70ba 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,12 @@ +2006-04-16 Dan Williams + + Patch from Paul Blazejowski + * configure.in + initscript/Slackware/Makefile.am + initscript/Slackware/rc.networkmanager-dispatcher.in + initscript/Slackware/rc.networkmanager.in + - Update slackware initscripts + 2006-04-10 Robert Love * gnome/vpn-properties/nm-vpn-properties.c: Intercept and short-circuit diff --git a/configure.in b/configure.in index 7aac0b6041..3e488c15d5 100644 --- a/configure.in +++ b/configure.in @@ -341,6 +341,8 @@ initscript/Gentoo/Makefile initscript/Gentoo/NetworkManager initscript/Debian/Makefile initscript/Slackware/Makefile +initscript/Slackware/rc.networkmanager +initscript/Slackware/rc.networkmanager-dispatcher initscript/SUSE/Makefile initscript/SUSE/networkmanager initscript/SUSE/networkmanager-dispatcher diff --git a/initscript/Slackware/Makefile.am b/initscript/Slackware/Makefile.am index 5c7c4421df..70c508ff5b 100644 --- a/initscript/Slackware/Makefile.am +++ b/initscript/Slackware/Makefile.am @@ -1,5 +1,5 @@ -EXTRA_DIST = rc.networkmanager +EXTRA_DIST = rc.networkmanager rc.networkmanager-dispatcher initddir = $(sysconfdir)/rc.d -initd_SCRIPTS = rc.networkmanager +initd_SCRIPTS = rc.networkmanager rc.networkmanager-dispatcher diff --git a/initscript/Slackware/rc.networkmanager-dispatcher.in b/initscript/Slackware/rc.networkmanager-dispatcher.in new file mode 100644 index 0000000000..72e5b4ab6e --- /dev/null +++ b/initscript/Slackware/rc.networkmanager-dispatcher.in @@ -0,0 +1,99 @@ +#!/bin/sh +# +# NetworkManagerDispatcher: NetworkManagerDispatcher daemon +# +# description: This is a daemon for automatically switching network \ +# connections to the best available connection. \ +# +# processname: NetworkManagerDispatcher +# pidfile: /var/run/NetworkManagerDispatcher.pid +# + +prefix=@prefix@ +exec_prefix=@prefix@ +sbindir=@sbindir@ + +NETWORKMANAGER_BIN=${sbindir}/NetworkManagerDispatcher + +# Sanity checks. +[ -x $NETWORKMANAGER_BIN ] || exit 0 + +# We need /sbin/ip +[ -x /sbin/ip ] || exit 0 + +PIDFILE=/var/run/NetworkManagerDispatcher.pid + +nm_start() +{ + if [ "`pgrep dbus-daemon`" = "" ]; then + echo "D-BUS must be running to start NetworkManagerDispatcher" + return + fi + + if [ "`pgrep hald`" = "" ]; then + echo "HAL must be running to start NetworkManagerDispatcher" + return + fi + + # Just in case the pidfile is still there, we may need to nuke it. + if [ -e "$PIDFILE" ]; then + rm -f $PIDFILE + fi + + echo "Starting NetworkManagerDispatcher daemon: $NETWORKMANAGER_BIN" + $NETWORKMANAGER_BIN +} + +nm_status() +{ + local pidlist=`cat $PIDFILE 2>/dev/null` + if [ -z "$pidlist" ]; then + return 1 + fi + local command=`ps -p $pidlist -o comm=` + if [ "$command" != 'NetworkManagerDispatcher' ]; then + return 1 + fi +} + +nm_stop() +{ + echo -en "Stopping NetworkManagerDispatcher: " + local pidlist=`cat $PIDFILE 2>/dev/null` + if [ ! -z "$pidlist" ]; then + kill $pidlist &>/dev/null + rm -f $PIDFILE &>/dev/null + fi + echo "stopped"; +} + +nm_restart() +{ + nm_stop + nm_start +} + +case "$1" in +'start') + if ( ! nm_status ); then + nm_start + else + echo "NetworkManagerDispatcher is already running (will not start it twice)." + fi + ;; +'stop') + nm_stop + ;; +'restart') + nm_restart + ;; +'status') + if ( nm_status ); then + echo "NetworkManagerDispatcher is currently running" + else + echo "NetworkManagerDispatcher is not running." + fi + ;; +*) + echo "usage $0 start|stop|status|restart" +esac diff --git a/initscript/Slackware/rc.networkmanager b/initscript/Slackware/rc.networkmanager.in old mode 100755 new mode 100644 similarity index 85% rename from initscript/Slackware/rc.networkmanager rename to initscript/Slackware/rc.networkmanager.in index f02eddff5f..2d5bab9105 --- a/initscript/Slackware/rc.networkmanager +++ b/initscript/Slackware/rc.networkmanager.in @@ -8,8 +8,18 @@ # processname: NetworkManager # pidfile: /var/run/NetworkManager.pid # + +prefix=@prefix@ +exec_prefix=@prefix@ +sbindir=@sbindir@ + +NETWORKMANAGER_BIN=${sbindir}/NetworkManager + +# Sanity checks. +[ -x $NETWORKMANAGER_BIN ] || exit 0 + # We need /sbin/ip -[ -x /sbin/ip ] || exit 1 +[ -x /sbin/ip ] || exit 0 PIDFILE=/var/run/NetworkManager.pid @@ -30,8 +40,8 @@ nm_start() rm -f $PIDFILE fi - echo "Starting NetworkManager daemon: /usr/sbin/NetworkManager" - /usr/sbin/NetworkManager + echo "Starting NetworkManager daemon: $NETWORKMANAGER_BIN" + $NETWORKMANAGER_BIN } nm_status()