Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 12 Oct 2007 11:41:19 -0700
From:      "Maksim Yevmenkin" <maksim.yevmenkin@gmail.com>
To:        "Mike Makonnen" <mtm@freebsd.org>
Cc:        freebsd-rc@freebsd.org
Subject:   Re: multiple instances of ppp
Message-ID:  <bb4a86c70710121141h1223452bk6c4f88721c4c434@mail.gmail.com>
In-Reply-To: <bb4a86c70710070913w158343e3l3eba7bea64c29c91@mail.gmail.com>
References:  <bb4a86c70710061314j588ce9a9s6922d2c1e7100e6a@mail.gmail.com> <20071006215757.GA10458@terra.mike.lan> <bb4a86c70710061549o14447dfye9553a42ef77cadc@mail.gmail.com> <20071007110815.GA16458@terra.mike.lan> <bb4a86c70710070913w158343e3l3eba7bea64c29c91@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
Mike and All,

any objections to the following patch as an extension for new
/etc/rc.d/ppp? it allows to start/stop individual ppp profiles.

thanks,
max

Index: ppp
===================================================================
RCS file: /home/ncvs/src/etc/rc.d/ppp,v
retrieving revision 1.14
diff -u -r1.14 ppp
--- ppp 12 Oct 2007 16:35:36 -0000      1.14
+++ ppp 12 Oct 2007 18:39:01 -0000
@@ -13,6 +13,7 @@
 rcvar=`set_rcvar`
 command="/usr/sbin/${name}"
 start_cmd="ppp_start"
+stop_cmd="ppp_stop"
 start_postcmd="ppp_poststart"

 ppp_start_profile()
@@ -60,11 +61,16 @@

 ppp_start()
 {
-       local _p
+       local _ppp_profile _p
+
+       _ppp_profile=$*
+       if [ -z "${_ppp_profile}" ]; then
+               _ppp_profile=$ppp_profile
+       fi

        echo -n "Starting PPP profile:"

-       for _p in $ppp_profile; do
+       for _p in $_ppp_profile; do
                echo -n " $_p"
                ppp_start_profile $_p
        done
@@ -80,5 +86,32 @@
        /etc/rc.d/pf resync
 }

+ppp_stop_profile() {
+       local _ppp_profile
+
+       _ppp_profile=$1
+
+       pkill -f "^${command}.*[[:space:]]${_ppp_profile}\$" || \
+               echo -n "(not running)"
+}
+
+ppp_stop() {
+       local _ppp_profile _p
+
+       _ppp_profile=$*
+       if [ -z "${_ppp_profile}" ]; then
+               _ppp_profile=$ppp_profile
+       fi
+
+       echo -n "Stopping PPP profile:"
+
+       for _p in $_ppp_profile; do
+               echo -n " $_p"
+               ppp_stop_profile $_p
+       done
+
+       echo "."
+}
+
 load_rc_config $name
-run_rc_command "$1"
+run_rc_command $*


thanks,
max



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?bb4a86c70710121141h1223452bk6c4f88721c4c434>