svn commit: r221227 - head/etc

Doug Barton dougb at FreeBSD.org
Fri Apr 29 21:10:41 UTC 2011


Author: dougb
Date: Fri Apr 29 21:10:41 2011
New Revision: 221227
URL: http://svn.freebsd.org/changeset/base/221227

Log:
  Rather than trusting that nothing is going to sneak in before the
  early_late_divider in the second run (and thus be skipped altogether),
  keep a list of the scripts run early, and use that list to skip things
  in the second run.
  
  This has the primary benefit of not skipping a local script that gets
  ordered too early in the second run. It also gives an opportunity to
  clean up/simplify the code a bit.
  
  Use a space-separated list rather than the more traditional colon for
  maximum insurance against creativity in local naming conventions.
  
  Reviewed by:	brooks

Modified:
  head/etc/rc

Modified: head/etc/rc
==============================================================================
--- head/etc/rc	Fri Apr 29 21:09:03 2011	(r221226)
+++ head/etc/rc	Fri Apr 29 21:10:41 2011	(r221227)
@@ -84,8 +84,10 @@ fi
 #
 files=`rcorder ${skip} /etc/rc.d/* 2>/dev/null`
 
+_rc_elem_done=' '
 for _rc_elem in ${files}; do
 	run_rc_script ${_rc_elem} ${_boot}
+	_rc_elem_done="${_rc_elem_done}${_rc_elem} "
 
 	case "$_rc_elem" in
 	*/${early_late_divider})	break ;;
@@ -103,14 +105,9 @@ case ${local_startup} in
 esac
 
 files=`rcorder ${skip} /etc/rc.d/* ${local_rc} 2>/dev/null`
-_skip_early=1
 for _rc_elem in ${files}; do
-	case "$_skip_early" in
-	1)	case "$_rc_elem" in
-		*/${early_late_divider})	_skip_early=0 ;;
-		esac
-		continue
-		;;
+	case "$_rc_elem_done" in
+	*" $_rc_elem "*)	continue ;;
 	esac
 
 	run_rc_script ${_rc_elem} ${_boot}


More information about the svn-src-all mailing list