We're looking into the OCaml cohttp library. We want to build a simple REST-server based on top of it. We'd be using it to transfer large quantities of data. The cohttp library in this case will need to fall back to chunked transfer.
We dug a bit around in the source code and we suspect that chunked transfer is broken. It seems unable to distinguish between a POST that failed while doing chunked transfer encoding because the client terminated the connection
prematurely and a POST that successfully finished? When checking out the
code in Transfer_io.Chunked it seems that both cases end with a 'Done' value.
There
also seems to be a Final_chunk value but that's only used in the Transfer_io.Fixed module. I would
have expected this Final_chunk constructor to be used when the last line of a chunked transfer encoding is
encountered (reading a line containing '0' basically), but that doesn't seem to be the case.
Any suggestions?
Mark
HGST E-mail
Confidentiality Notice & Disclaimer: This e-mail and any files transmitted with it may contain confidential
or legally privileged information of HGST and are intended solely for the use
of the individual or entity to which they are addressed. If you are not the
intended recipient, any disclosure, copying, distribution or any action taken
or omitted to be taken in reliance on it, is prohibited. If you have received this e-mail in error,
please notify the sender immediately and delete the e-mail in its entirety from
your system.
|