perl-modperl mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Jindo" <>
Subject RE: $r->prev is always defined
Date Mon, 09 Sep 2002 16:10:46 GMT

Unfortunately, I did suspect the same before and called Index.cgi
directly.  By calling it directly, $r->log_error($r->prev()->uri())
still perfectly printed one line in error_log.

It's rather a very strange behaviour that I hope someone could figure it
out.  $r->prev() returns a blessed reference while $r->main() returns
undef.  This violates the logic because if $r->prev() does not return
undef, then $r->main() should returns something too as $r is one of the
subsequent internal redirects when $r->prev() is defined.

The workaround I came up is to test $r->main().  If I have the problem
figured out I'll let the list know.



-----Original Message-----
From: Geoffrey Young [] 
Sent: Monday, September 09, 2002 9:35 PM
To: Jindo
Subject: Re: $r->prev is always defined

Jindo wrote:
> Hello,
> According to docs, $r->prev returns undef unless there is an internal
> redirect.  But to 
> my surprises, $r->prev is always defined, severely breaking down the
> code/flow logic 
> of my scripts.
> Here is what I have in /Index.cgi (My browser defaults to that page)
> debugging
> $r->log_error($r->prev()->uri());
> $r->log_error($r->uri());

I'd suspect that it's probably mod_dir (via DirectoryIndex) that's 
causing this (since it calls ap_internal_redirect, which sets $r->prev 
and $r->prev->uri).

I also suspect that if you called /Index.cgi directly, you'd get a 500 
(and $r->prev would be undef so $r->prev->uri would bomb).



View raw message