On Sun, Mar 22, 2015 at 10:01 AM Jos van den Oever <jos@vandenoever.info> wrote:
On Sunday 08 March 2015 07:28:30 you wrote:
> I've updated that Gist to be compatible with WAI 3.0. The basic changes I
> made were:
>
> 1. Change the way Warp settings are applied (no longer use record syntax,
> but explicit set* functions).
> 2. conduit is no longer the standard streaming interface for WAI, so
> imported Network.Wai.Conduit and used helper functions from there.
> 3. The specific question you asked about: the semantics for how to do
> resource allocation in an application have changed. There were some holes
> in the previous approach that allowed async exceptions to leak in at the
> wrong time. Instead, WAI 3.0 uses a similar interface to most resource
> allocation functions in Haskell (like bracket or withFile). Specifically,
> this looks like:
>
>
>     HCl.withResponse req2 man $ \res -> do
>         let body = mapOutput (Chunk . fromByteString) $
> HCC.bodyReaderSource $ HCl.responseBody res
>             headers = filter safeResHeader $ HCl.responseHeaders res
>         respond $ responseSource (HCl.responseStatus res) headers body

I'd like my proxy to be a caching proxy so each request shoule be saved to a
file. I've tried adding an additional sink, (sinkFile) or conduit (conduitFie)
to the HCC.bodyReaderSource, but cannot it right. What would be a good way to
do this?



What have you tried so far?

Michael