Hello!

We have a web application running on FreeBSD 7.4 (amd64) which uses libcurl to send data to another system via HTTPS POST request. After I upgraded curl from 7.19.6 to 7.24, a mysterious problem appeared. When the length of the POSTed form exceeds 16121 bytes, sending the POST request to another system fails (receiving system responds with Error 500 and writes in its log 'Invalid POST Request received'). Admin of the receiving system says that his system never sees more than 16121 bytes of the incoming POST request.

The problem does not appear when sending requests over HTTP instead of HTTPS, but this is no solution due to security requirements. Also I'm told that the problem does not appear when sending requests with curl 7.24 on Linux (don't know which distro).

I downgraded curl back to 7.21.3, and the problem seems to have disappeared. I have output of curl --trace from versions 7.24 and 7.21.3, but looking at these two outputs they seem rather similar to me.

Interesting thing is that both versions do seem to send the data in two "batches", as seen in the output of --trace. In my test case, after successful SSL negotioation, I see the following actions:

Send header, 263 bytes
Send data, 16121 bytes
Send data, 890 bytes

Note how the first "Send data" is 16121 bytes, which is also the size limit where requests start to fail with curl 7.24. It seems that in case of curl 7.24 the receiving server does not receive the second part of "Send data" and thus sees the request as broken. But what is actually the problem? I don't think I can remain with curl 7.21.3 indefinitely...

--
Toomas Aas

_______________________________________________
freebsd-questions@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-questions
To unsubscribe, send any mail to "freebsd-questions-unsubscr...@freebsd.org"

Reply via email to