You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@httpd.apache.org by Cliff Woolley <jw...@virginia.edu> on 2002/05/04 06:52:14 UTC

mod_include if expr parsing

-------------------------------------------------------------
http://nagoya.apache.org/bugzilla/show_bug.cgi?id=8462

<!--#elif expr="($SERVER_PORT = 443) && ($p_ssl = 1)" -->
produces a "Unmatched '('" error which is wrong.
-------------------------------------------------------------

This looks like a legitimate bug, though from looking through the CVS
history I don't really think this code changed much between 1.3 and 2.0,
so I can't really see how it worked in 1.3.  You get the error message
after the parse tree has been generated and then you go to walk the tree
and it encounters a ( it didn't expect.  The parse tree that gets
generated doesn't look totally kosher (in particular, some of the ->parent
pointers seem wrong).  Is anyone especially familiar with this code?

--Cliff


--------------------------------------------------------------
   Cliff Woolley
   cliffwoolley@yahoo.com
   Charlottesville, VA




Re: mod_include if expr parsing

Posted by Cliff Woolley <jw...@virginia.edu>.
On Fri, 3 May 2002, Brian Pane wrote:

> The scanning loop in get_ptoken() was consuming the ')'
> right after the "443".  I just committed a fix.

Thanks!  It strikes me that the parsing engine in there is relatively
clunky... I wouldn't mind rewriting the thing.  But then again, I guess
there's something to be said for code that's been in service for a long
time.

--Cliff

--------------------------------------------------------------
   Cliff Woolley
   cliffwoolley@yahoo.com
   Charlottesville, VA



Re: mod_include if expr parsing

Posted by Brian Pane <bp...@pacbell.net>.
The scanning loop in get_ptoken() was consuming the ')'
right after the "443".  I just committed a fix.

--Brian

Cliff Woolley wrote:

>-------------------------------------------------------------
>http://nagoya.apache.org/bugzilla/show_bug.cgi?id=8462
>
><!--#elif expr="($SERVER_PORT = 443) && ($p_ssl = 1)" -->
>produces a "Unmatched '('" error which is wrong.
>-------------------------------------------------------------
>
>This looks like a legitimate bug, though from looking through the CVS
>history I don't really think this code changed much between 1.3 and 2.0,
>so I can't really see how it worked in 1.3.  You get the error message
>after the parse tree has been generated and then you go to walk the tree
>and it encounters a ( it didn't expect.  The parse tree that gets
>generated doesn't look totally kosher (in particular, some of the ->parent
>pointers seem wrong).  Is anyone especially familiar with this code?
>
>--Cliff
>
>
>--------------------------------------------------------------
>   Cliff Woolley
>   cliffwoolley@yahoo.com
>   Charlottesville, VA
>
>
>
>
>  
>