> Ok, I have changed the framework to use CGI.pm rather than printing the
> headers on STDOUT myself.
> 
> I _still_ get the same problem, wether or not PerlSendHeaders is turned
> on or off.
> It doesn't seem to make any difference whatsoever.
> 
> Is there any extra test I can write to pinpoint the problem?

ok, I took a look at your bug tarball (which, btw, made it much easier for
me to figure out exactly what you were trying to do and what the problem was
- thanks!)

basically, this will never be possible with Registry in mod_cgi emulation
mode.  you can subclass Apache::RegistryNG to make the required
manipulations transparent (and I can show you how), but short of that you
are out of luck.

however, in your test script you seem to be ok with using the mod_perl API -
you have a 'my $r = shift' in there.  in that case, you're in luck.
basically, to use the Status: hack in this way you need to be in total
control of the request.  luckily there is an official Apache API for this -
just return DONE from your handler to tell Apache to just move on to
logging, you have sent everything that needs to be sent.  in the case of
Registry, it's really $r->status(DONE) (which is just a hack to get around
Registry's subroutine wrapping and isn't the same as calling
$r->status(DONE) from a handler, which you should never do).

so, add that to your script and *poof* you're good to go.  I've uploaded
your tarball with the changes contained within.  I also updated your test
script a bit to help you be a little more idiomatic in your test writing (if
you're interested in that kind of thing).

  http://perl.apache.org/~geoff/bug-reporting-404-not-found-mp1.tar.gz

HTH

--Geoff


-- 
Report problems: http://perl.apache.org/bugs/
Mail list info: http://perl.apache.org/maillist/modperl.html
List etiquette: http://perl.apache.org/maillist/email-etiquette.html

Reply via email to