A bunch of cleanups to hopefully make the proxy_pass-related code a little saner and easier-to-follow.
I introduced at least one bug during this series which got fixed in 7/7. Extra sets of eyes to review would be greatly appreciated, thanks! And this is running live and serving critical information to readers of https://yhbt.net/ in all its glory! Once I'm reasonably satisfied with this; I'll continue work on making "proxy_buffering: false" work, so slow-client-capable upstreams can generate gigantic (hundreds of megabytes!) responses without filesystem overhead. But first, I think I should work on making those gigantic responses cheaper in terms of memory/CPU usage outside of yahns. This is git-http-backend for serving mega repos over smart HTTP, yahns is already great for dumb HTTP git clones. lib/yahns/proxy_http_response.rb | 236 +++++++++++++++------------------------ lib/yahns/proxy_pass.rb | 171 +--------------------------- lib/yahns/req_res.rb | 159 ++++++++++++++++++++++++++ 3 files changed, 252 insertions(+), 314 deletions(-) Eric Wong (7): proxy_pass: simplify writing request bodies upstream proxy_pass: hoist out proxy_res_headers method proxy_pass: simplify proxy_http_response proxy_pass: split out body and trailer reading in response proxy_pass: trim down proxy_response_finish, too proxy_pass: split out req_res into a separate file proxy_pass: fix resumes after complete buffering is unblocked -- unsubscribe: [email protected] archive: https://yhbt.net/yahns-public/
