
Kazu Yamamoto (山本和彦) wrote:
You use parseURL. It returns Request whose requestBody is RequestBodyLBS L.empty. This means that your code does not relay HTTP body at all.
You are correct. So far I have really only tested this with http GET requests. Fixing that should be trivial.
I'm now implementing a reverse proxy. I tested several ways to realy HTTP body but only one solution which works is to get whole HTTP body as ByteString and specify it to RequestBodyLBS. This is store-and-forward, not pipelining.
My code can be found: https://github.com/kazu-yamamoto/wai-app-file-cgi/blob/master/Network/Wai/Ap...
I'm wondering if Enumerator can implement pipelining...
It definitely can. Have a a look at the function serveRequest in this file: https://github.com/erikd/simple-web-proxy/blob/master/src/simple-web-proxy.h... On a machine with 4Gig of RAM, I have simultaneous downloaded 4 copies of a 4Gig DVD ISO through my proxy, with memory usage never going above about 10%. I'm going right back to basics to try and get a really good understanding of Enumerators and Iteratees. Cheers, Erik -- ---------------------------------------------------------------------- Erik de Castro Lopo http://www.mega-nerd.com/