conf/121452: /etc/rc.d/ppp not working as expected

Brooks Davis brooks at freebsd.org
Fri Mar 7 16:11:35 UTC 2008


The following patch should allow profile name to contain ".-/+" characters
as we do with interfaces.  It also documents the previous undocumnted
per-profile overrides of _mode and _nat which were the cause of the problem.
If someone who uses ppp could test this, I'd be happy to commit it.

-- Brooks

Index: etc/rc.d/ppp
===================================================================
RCS file: /home/ncvs/src/etc/rc.d/ppp,v
retrieving revision 1.16
diff -u -p -r1.16 ppp
--- etc/rc.d/ppp	26 Jan 2008 14:02:19 -0000	1.16
+++ etc/rc.d/ppp	7 Mar 2008 15:42:29 -0000
@@ -21,17 +21,22 @@ ppp_start_profile()
 	local _ppp_profile _ppp_mode _ppp_nat
 
 	_ppp_profile=$1
+	_ppp_profile_cleaned=$1
+	_punct=". - / +"
+	for _punct_c in $_punct; do
+		_ppp_profile_cleaned=`ltr ${_ppp_profile_cleaned} ${_punct_c} '_'`
+	done
 
 	# Check for ppp profile mode override.
 	#
-	eval _ppp_mode=\$ppp_${_ppp_profile}_mode
+	eval _ppp_mode=\$ppp_${_ppp_profile_cleaned}_mode
 	if [ -z "$_ppp_mode" ]; then
 		_ppp_mode=$ppp_mode
 	fi
 
 	# Check for ppp profile nat override.
 	#
-	eval _ppp_nat=\$ppp_${_ppp_profile}_nat
+	eval _ppp_nat=\$ppp_${_ppp_profile_cleaned}_nat
 	if [ -z "$_ppp_nat" ]; then
 		_ppp_nat=$ppp_nat
 	fi
Index: share/man/man5/rc.conf.5
===================================================================
RCS file: /home/ncvs/src/share/man/man5/rc.conf.5,v
retrieving revision 1.335
diff -u -p -r1.335 rc.conf.5
--- share/man/man5/rc.conf.5	5 Mar 2008 18:32:58 -0000	1.335
+++ share/man/man5/rc.conf.5	7 Mar 2008 15:42:29 -0000
@@ -1315,11 +1315,30 @@ If set to
 run the
 .Xr ppp 8
 daemon.
+.It Va ppp_profile
+.Pq Vt str
+The name of the profile to use from
+.Pa /etc/ppp/ppp.conf .
+Also used for per-profile overrides of
+.Va ppp_mode
+and
+.Va ppp_nat .
+When the profile name contains any of the characters
+.Dq Li .-/+
+they are translated to
+.Dq Li _
+for the proposes of the override variable names.
 .It Va ppp_mode
 .Pq Vt str
 Mode in which to run the
 .Xr ppp 8
 daemon.
+.It Va ppp_ Ns Ao Ar profile Ac Ns _mode
+.Pq Vt str
+Overrides the global
+.Va ppp_mode
+for
+.Ar profile .
 Accepted modes are
 .Dq Li auto ,
 .Dq Li ddial ,
@@ -1336,10 +1355,12 @@ Used in conjunction with
 .Va gateway_enable
 allows hosts on private network addresses access to the Internet using
 this host as a network address translating router.
-.It Va ppp_profile
+.It Va ppp_ Ns Ao Ar profile Ac Ns _nat
 .Pq Vt str
-The name of the profile to use from
-.Pa /etc/ppp/ppp.conf .
+Overrides the global
+.Va ppp_nat
+for
+.Ar profile .
 .It Va ppp_user
 .Pq Vt str
 The name of the user under which
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 187 bytes
Desc: not available
Url : http://lists.freebsd.org/pipermail/freebsd-bugs/attachments/20080307/762e2dfa/attachment.pgp


More information about the freebsd-bugs mailing list