Thus spoke Tom Eastep:


> I believe that the problem here is that Eiger2Beta uses ash for sh and
> ash's handling of at least the ${<variable>%%<pattern>} shell construct is
> broken:
>
> Here's what should happen (/bin/sh from Oxygen):
>
> # server="loc:192.168.1.1"
> # echo ${server%:*}
> loc
> # echo ${server%%:*}
> loc
> #
>
> Here's what happens with Eiger2:
>
> [root@wookie lrp-Eiger2]# bin/sh
> # server="loc:192.168.1.1"
> # echo ${server%:*}
> loc
> # echo ${server%%:*}
> lo
>
> Without a trace, I can't say for sure if that is the only problem but it's
> definitely enough of a problem to break Shorewall and accounts for the
> "Undefined server zone" errors that you are seeing. The "ash" from RH7 also
> shows this incorrect behavior.
>
> If you can lay your hands on a copy of /bin/sh from oxygen and use that, I
> think it will work. I wish I had time to put this together myself but
> unfortunately, I don't right now...
>

Pardon me for following my own post but there's another ash bug here. From
a trace (graphics Removed):

+ [ dmz:192.168.2.2 = dmz 192Øì^Èì^äì^Íì^] ]
[: 192Øì^Èì^äì^Íì^]: unknown operand

The condition being evaluated here is:

if [ "$server" = "${server%:*}" ] ; then

So the ${<variable>%<pattern>} construct is also broken in ash.

I have also confirmed that using /bin/sh from Oxygen-031401.ima works
flawlessly and is actually quite a bit faster than using /bin/bash from
RH7

-Tom
-- 
Tom Eastep             \ Alt Email: [EMAIL PROTECTED]
ICQ #60745924           \ Websites: http://seawall.sourceforge.net
[EMAIL PROTECTED]       \          http://seattlefirewall.dyndns.org
Shoreline, Washington USA \         http://shorewall.sourceforge.net
                           \_________________________________________


_______________________________________________
Leaf-devel mailing list
[EMAIL PROTECTED]
http://lists.sourceforge.net/lists/listinfo/leaf-devel

Reply via email to