You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@httpd.apache.org by Sumeet Singh <su...@openwave.com> on 2004/04/09 02:02:53 UTC
Re: [apache-modules] Re: Internal redirect from an output filter
(Apache2.x)
William A. Rowe, Jr. wrote:
>Sumeet Singh wrote:
>
>
>
>>> I was wondering if invoking an internal-redirect from within an output filter is legal. I need to do that from my output filter but want to make sure that it conforms to apache2.0 API before I go ahead and design/code it.
>>>
>>>
>
>I presume this is not safe, but is tolerated by die because we will mop up all
>of the resources very soon thereafter. Note that it is only successful if the
>headers had not been set up in an earlier call to pass brigade that made it
>to the protocol stack. I would look at the log results carefully and trace the
>request to ensure you are satisfied with the processing.
>
>It is certainly not recommended, that does not mean it's not possible.
>
>Bill
>
>
>
Yes, I also find it unsafe. However, note that some standard modules do
that too. For example mod_include runs sub-requests from within its
output filters. In my opinion this shouldn't be allowed, because with
the wrong configuration a web-admin could cause the server to go into
recursion. But since mod_include is a standard module, I guess what it
does is considered legal.
>---------------------------------------------------------------------
>To unsubscribe, e-mail: apache-modules-unsubscribe@covalent.net
>For additional commands, e-mail: apache-modules-help@covalent.net
>
>
>
>
Re: [apache-modules] Re: Internal redirect from an output filter
(Apache2.x)
Posted by Sumeet Singh <su...@openwave.com>.
André Malo wrote:
>* Sumeet Singh <su...@openwave.com> wrote:
>
>[internal redirects in output filters]
>
>
>
>>Yes, I also find it unsafe. However, note that some standard modules do
>>that too. For example mod_include runs sub-requests from within its
>>output filters. In my opinion this shouldn't be allowed, because with
>>the wrong configuration a web-admin could cause the server to go into
>>recursion. But since mod_include is a standard module, I guess what it
>>does is considered legal.
>>
>>
>
>Subrequests and internal redirects are entirely different things. A subrequest
>can be done from almost everywhere and affects just the data flow (if at all).
>An internal redirect affects the current _control flow_.
>
>nd
>
>
>
I understand how a sub-request is different from an internal-redirect.
However, my point was that of recursion. If you have any light to shed
on the original question I asked (that whether it is legal to invoke
ap_internal_redirect from an output filter) I would really appreciate that.
-rgds,
ss
p.s.
And by the way, I don't agree that sub-requests are *entirely different*
from internal-redirects. For example if you did a subrequest-uri-lookup
followed by a ap_run_sub_req you would still end-up running all the
stages (except post-read-request) and generating data and sending it
down the output filter stack. Same thing is done by internal-redirect.
There are subtle differences like the state of r->main/r->next/r->prev,
filters inherited by the new request, running or not running of
post_read_request and quick-handler stages, but finally both are
recursions. And both the above generate data going down the output
filter stack. After calling ap_internal_redirect you are supposed return
immediately with a OK/DONE, but what if you didn't - then you would
essentially be doing what people do with subrequests.
If you wish to continue this discussion, please start a separate thread.
Re: [apache-modules] Re: Internal redirect from an output filter
(Apache2.x)
Posted by André Malo <nd...@perlig.de>.
* Sumeet Singh <su...@openwave.com> wrote:
[internal redirects in output filters]
> Yes, I also find it unsafe. However, note that some standard modules do
> that too. For example mod_include runs sub-requests from within its
> output filters. In my opinion this shouldn't be allowed, because with
> the wrong configuration a web-admin could cause the server to go into
> recursion. But since mod_include is a standard module, I guess what it
> does is considered legal.
Subrequests and internal redirects are entirely different things. A subrequest
can be done from almost everywhere and affects just the data flow (if at all).
An internal redirect affects the current _control flow_.
nd