https://bz.apache.org/bugzilla/show_bug.cgi?id=61616

--- Comment #60 from Yann Ylavic <ylavic....@gmail.com> ---
Hi Mohamed,

(In reply to Mohamed El Housseine from comment #58)
> 
> In its second call (for handling remaining data in input filters) it can
> return:
> 
> APR_SUCCESS
> APR_STATUS_IS_INCOMPLETE
> ERROR
> 
> APR_STATUS_IS_EOF can't be returned, because we are handling remaining
> (existing) data.
The issue is that ap_proxy_transfer_between_connections() is a loop, and once
it has consumed pending data it also consumes the socket (with all of its
possible error codes) until the other side is full.
So I think we need the same logic than in the POLLIN case...

Also, the httpd code in trunk now handles pending data very differently (no
c->data_in_{out,in}put_filters anymore, the whole filter chain is involved),
while our patches until now are 2.4.x (and even 2.4.29) specific.
For anything to be accepted/upstreamed in the httpd project, it must first go
into trunk, that's the next step.

When writing these patches I had that in mind because I'd like to share as much
code as possible between mod_proxy's__connect, _wstunnel and even _http (which
I'd like to see handling websocket traffic too). So the proxy_connect loop is
(expectedly) meant to be a shared helper (along with common things in struct
proxy_connect_conn).

So the goal (for me) is a wider refactorization which I wanted to make work in
2.4.x first (outside of new trunk "concepts") such that I have both something
to compare and possibly a backport plan (without the full monty ;)

Thanks anyway for your analyses and proposals that help a lot!

-- 
You are receiving this mail because:
You are the assignee for the bug.
---------------------------------------------------------------------
To unsubscribe, e-mail: bugs-unsubscr...@httpd.apache.org
For additional commands, e-mail: bugs-h...@httpd.apache.org

Reply via email to