[Midnightbsd-cvs] src: etc/rc.d: Whack ppp-user...

laffer1 at midnightbsd.org laffer1 at midnightbsd.org
Sat Jan 17 12:24:51 EST 2009


Log Message:
-----------
Whack ppp-user... merge and cleanup ppp

Modified Files:
--------------
    src/etc/rc.d:
        ppp (r1.2 -> r1.3)

Removed Files:
-------------
    src/etc/rc.d:
        ppp-user

-------------- next part --------------
--- etc/rc.d/ppp-user
+++ /dev/null
@@ -1,48 +0,0 @@
-#!/bin/sh
-#
-# $FreeBSD: src/etc/rc.d/ppp-user,v 1.7 2004/12/15 12:39:28 brian Exp $
-# $MidnightBSD: src/etc/rc.d/ppp-user,v 1.2 2006/08/28 02:47:46 laffer1 Exp $
-
-# PROVIDE: ppp-user
-# REQUIRE: netif isdnd
-# KEYWORD: nojail
-
-. /etc/rc.subr
-
-name="ppp"
-rcvar=`set_rcvar`
-start_precmd="ppp_precmd"
-start_postcmd="ppp_postcmd"
-
-ppp_precmd()
-{
-	# Establish ppp mode.
-	#
-	if [ "${ppp_mode}" != "ddial" -a "${ppp_mode}" != "direct" \
-		-a "${ppp_mode}" != "dedicated" \
-		-a "${ppp_mode}" != "background" ]; then
-		ppp_mode="auto"
-	fi
-
-	rc_flags="$rc_flags -quiet -${ppp_mode}"
-
-	# Switch on NAT mode?
-	#
-	case ${ppp_nat} in
-	[Yy][Ee][Ss])
-		rc_flags="$rc_flags -nat"
-		;;
-	esac
-
-	rc_flags="$rc_flags ${ppp_profile}"
-}
-
-ppp_postcmd()
-{
-	# Re-Sync ipfilter so it picks up any new network interfaces
-	#
-	/etc/rc.d/ipfilter resync
-}
-
-load_rc_config $name
-run_rc_command "$1"
Index: ppp
===================================================================
RCS file: /home/cvs/src/etc/rc.d/ppp,v
retrieving revision 1.2
retrieving revision 1.3
diff -L etc/rc.d/ppp -L etc/rc.d/ppp -u -r1.2 -r1.3
--- etc/rc.d/ppp
+++ etc/rc.d/ppp
@@ -1,6 +1,6 @@
 #!/bin/sh
 #
-# $FreeBSD: src/etc/rc.d/ppp,v 1.11.2.1 2006/01/21 22:42:43 yar Exp $
+# $FreeBSD: src/etc/rc.d/ppp,v 1.13.2.1 2007/10/31 16:42:41 emax Exp $
 # $MidnightBSD$
 
 # PROVIDE: ppp
@@ -12,38 +12,106 @@
 name="ppp"
 rcvar=`set_rcvar`
 command="/usr/sbin/${name}"
-start_precmd="ppp_precmd"
-start_postcmd="ppp_postcmd"
+start_cmd="ppp_start"
+stop_cmd="ppp_stop"
+start_postcmd="ppp_poststart"
 
-ppp_precmd()
+ppp_start_profile()
 {
+	local _ppp_profile _ppp_mode _ppp_nat
+
+	_ppp_profile=$1
+
+	# Check for ppp profile mode override.
+	#
+	eval _ppp_mode=\$ppp_${_ppp_profile}_mode
+	if [ -z "$_ppp_mode" ]; then
+		_ppp_mode=$ppp_mode
+	fi
+
+	# Check for ppp profile nat override.
+	#
+	eval _ppp_nat=\$ppp_${_ppp_profile}_nat
+	if [ -z "$_ppp_nat" ]; then
+		_ppp_nat=$ppp_nat
+	fi
+
 	# Establish ppp mode.
 	#
-	if [ "${ppp_mode}" != "ddial" -a "${ppp_mode}" != "direct" \
-		-a "${ppp_mode}" != "dedicated" \
-		-a "${ppp_mode}" != "background" ]; then
-		ppp_mode="auto"
+	if [ "${_ppp_mode}" != "ddial" -a "${_ppp_mode}" != "direct" \
+		-a "${_ppp_mode}" != "dedicated" \
+		-a "${_ppp_mode}" != "background" ]; then
+		_ppp_mode="auto"
 	fi
 
-	rc_flags="$rc_flags -quiet -${ppp_mode}"
+	rc_flags="-quiet -${_ppp_mode}"
 
 	# Switch on NAT mode?
 	#
-	case ${ppp_nat} in
+	case ${_ppp_nat} in
 	[Yy][Ee][Ss])
 		rc_flags="$rc_flags -nat"
 		;;
 	esac
 
-	rc_flags="$rc_flags ${ppp_profile}"
+	# Run!
+	#
+	su -m $ppp_user -c "$command ${rc_flags} ${_ppp_profile}"
+}
+
+ppp_start()
+{
+	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
+		echo -n " $_p"
+		ppp_start_profile $_p
+	done
+
+	echo "."
 }
 
-ppp_postcmd()
+ppp_poststart()
 {
-	# Re-Sync ipfilter so it picks up any new network interfaces
+	# Re-Sync ipfilter and pf so they pick up any new network interfaces
 	#
 	/etc/rc.d/ipfilter resync
+	/etc/rc.d/pf resync
+}
+
+ppp_stop_profile() {
+	local _ppp_profile
+
+	_ppp_profile=$1
+
+	/bin/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 $*


More information about the Midnightbsd-cvs mailing list