Hello. HTTP/1.1 has a rarely implemented but very useful feature that lets the server interject with a redirect or acknowledgement before any data is sent in a PUT, something that I would quite like to see implemented in lftp.
This feature is described in RFC 2616 section 8.2.3. The rough outline of how it works is that the client sends an "Expect: 100-continue" header to indicate that it's letting the server respond to the headers, and delays sending the payload until the server responds with a "100 Continue" or some other header like "307 Temporary Redirect" to indicate a more suitable location. If the server doesn't respond to the expectation within a short timespan, the client may send the data anyway, thus assuming that the server doesn't understand the expectation. The reason I'd like to see the inclusion of this feature in lftp is because we have a storage system which offers a WebDAV entrypoint which redirects capable clients to dedicated download/upload servers instead of routing all traffic through the control node. To make things more fun, in this system this involves a downgrade from HTTPS to HTTP as well. I would be perfectly happy if this was hidden behind a setting to avoid it from breaking existing use cases. I took a look at how to implement this but got very lost in the implementation of the Http state machine. If I force-add a "Expect: 100-continue" header, I end up with this and no further progress. put: File moved: 307 Temporary Redirect (100M -> http://localhost.localdomain:21656/public/100M?dcache-http-uuid=4c8250e9-62c0-47e0-baaf-71249db526ab) -- Lars Viklund | z...@acc.umu.se _______________________________________________ lftp-devel mailing list lftp-devel@uniyar.ac.ru http://univ.uniyar.ac.ru/mailman/listinfo/lftp-devel