I have a program to send POST request to a server.
I'm using cURL to send request.
My program run on Windows and Linux (on the moment Ubuntu 9.10).
When server receive request it processing it and return error code (0000 if no errors) and error description (if any).
Server's web server is Microsoft IIS.
When I run my program at Windows it work well.
But when I run the program at Linux it hangs up for 30 seconds (cURL's timeout) and return error "Operation timed out after 30000 milliseconds with 5 bytes received".
As I know problem in server side - server doesn't send response's size and doesn't close socket connection.
cURL logs (from Linux):
11:00:09.544 Process() curl: libcurl/7.19.5 OpenSSL/0.9.8g zlib/1.2.3.3 libidn/1.15
11:00:09.941 DebugCallback() About to connect() to sms1.redoxygen.net port 80 (#0)
11:00:09.941 DebugCallback() Trying 203.145.62.146...
11:00:10.084 DebugCallback() Connected to sms1.redoxygen.net (203.145.62.146) port 80 (#0)
11:00:10.085 DebugCallback() POST /sms.dll?private&type=26 HTTP/1.1
Host: sms1.redoxygen.net
Content-Length: 244
11:00:10.086 DebugCallback() [244 bytes of DATA]
11:00:10.087 ReadCallback() No more data to send
11:00:10.292 WriteCallback() HTTP/1.1 200 OK
11:00:10.293 DebugCallback() Content-Type: text/html
11:00:10.294 DebugCallback() no chunk, no close, no size. Assume close to signal end
11:00:10.294 WriteCallback()
11:00:10.466 DebugCallback() 0000
11:00:40.500 DebugCallback() Operation timed out after 30000 milliseconds with 5 bytes received
11:00:40.501 DebugCallback() Closing connection #0
On Windows logs are almost the same, but without timeout - it close socket immediately after reciving "0000 ".
I can analyse received data and close connection if I get "0000 ", but it's a "dirty hack".
Any ideas?