Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 01 May 2008 07:59:38 +0300
From:      Mike Makonnen <mtm@wubethiopia.com>
To:        Oliver Lehmann <oliver@FreeBSD.org>
Cc:        stable@freebsd.org
Subject:   Re: error in src/etc/rc.d/mountcritlocal
Message-ID:  <48194E3A.5000609@wubethiopia.com>
In-Reply-To: <20080430151402.23674a45.oliver@FreeBSD.org>
References:  <20080428173019.9741ad41.oliver@FreeBSD.org>	<4817FAC3.3090304@wubethiopia.com> <20080430151402.23674a45.oliver@FreeBSD.org>

next in thread | previous in thread | raw e-mail | index | archive | help
This is a multi-part message in MIME format.
--------------020305090805060902050004
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 7bit

Oliver Lehmann wrote:
> Mike Makonnen wrote:
>
>   
>> I'm not sure what you mean. The checkyesno() routine considers "true" a 
>> valid parameter. Could you please post the exact error you're getting.
>>     
>
> I already posted it... I'm getting:
>
> $true is not set properly - see rc.conf(5)
>
> This is because:
>
> you call "start_boot true"
> start_boot itself calls checkyesno $1 - so it calls "checkyesno true"
>
> checkyesno then defines _value with "eval _value=\$${1}" so _value gets
> $true which is not an allowed value.
>
> let me past the comment of checkyesno:
>
> # checkyesno var
> #       Test $1 variable, and warn if not set to YES or NO.
> #       Return 0 if it's "yes" (et al), nonzero otherwise.
>
> A variablename has to be handed over to checkyesno, not a value like
> "true" or "yes" or whatever else. You see the error?
>
>   
Please try the attached patch.
Thanks!

Cheers.

-- 
Mike Makonnen         | GPG-KEY: http://people.freebsd.org/~mtm/mtm.asc
mtm @ wubethiopia.com | AC7B 5672 2D11 F4D0 EBF8  5279 5359 2B82 7CD4 1F55
mtm @ FreeBSD.Org     | FreeBSD - http://www.freebsd.org


--------------020305090805060902050004
Content-Type: text/plain;
 name="etc-start_boot.diff"
Content-Transfer-Encoding: 7bit
Content-Disposition: inline;
 filename="etc-start_boot.diff"

Index: etc/rc.subr
===================================================================
RCS file: /home/ncvs/src/etc/rc.subr,v
retrieving revision 1.80
diff -u -r1.80 rc.subr
--- etc/rc.subr	26 Jan 2008 11:22:11 -0000	1.80
+++ etc/rc.subr	1 May 2008 04:57:36 -0000
@@ -171,10 +171,14 @@
 {
 	local always
 
-	if [ -n "$1" ] && checkyesno $1; then
+        case $1 in
+                #       "yes", "true", "on", or "1"
+        [Yy][Ee][Ss]|[Tt][Rr][Uu][Ee]|[Oo][Nn]|1)
 		always=true
-	else
+		;;
+	*)
 		always=false
+		;;
 	fi
 	if [ "$autoboot" = yes -o "$always" = true ]; then
 		echo "ERROR: ABORTING BOOT (sending SIGTERM to parent)!"

--------------020305090805060902050004--



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