On Mon, Aug 11, 2014 at 07:25:23AM -0600, Antoine Jacoutot wrote:
> CVSROOT:      /cvs
> Module name:  src
> Changes by:   ajacou...@cvs.openbsd.org       2014/08/11 07:25:23
> 
> Modified files:
>       etc/rc.d       : rc.subr 
> 
> Log message:
> Make it possible to pass arguments to _rc_parse_conf().
> 
> ok robert@

This badly breaks /etc/rc and /etc/netstart, which both use
_rc_parse_conf without parameters. Instead of wiring the default
parameters (/etc/rc.conf and /etc/rc.conf.local) there, too, I think
it's better to let _rc_parse_conf use them as defaults when it has
been invoked without parameters. Also, there's no reason to use
' ... in "$@"' in a for loop.

ok?

Index: rc.subr
===================================================================
RCS file: /cvs/src/etc/rc.d/rc.subr,v
retrieving revision 1.78
diff -u -p -r1.78 rc.subr
--- rc.subr     11 Aug 2014 13:25:23 -0000      1.78
+++ rc.subr     11 Aug 2014 19:22:36 -0000
@@ -121,7 +121,8 @@ _rc_parse_conf() {
                pf_rules ipsec_rules shlib_dirs pkg_scripts \
                nfs_server
 
-       for _rcfile in $@; do
+       [ $# -gt 0 ] || set -- /etc/rc.conf /etc.rc.conf.local
+       for _rcfile; do
                [[ -f $_rcfile ]] || continue
                while IFS='     ' read -r _l; do
                        [[ $_l == [!#=]*=* ]] || continue
@@ -263,7 +264,7 @@ _RC_RUNDIR=/var/run/rc.d
 _RC_RUNFILE=${_RC_RUNDIR}/${_name}
 
 # parse /etc/rc.conf{.local} for the daemon_flags
-_rc_do _rc_parse_conf /etc/rc.conf /etc/rc.conf.local
+_rc_do _rc_parse_conf
 
 eval _rcflags=\${${_name}_flags}
 eval _rcuser=\${${_name}_user}

Reply via email to