title: cURL - "hanging" socket connection on Linux
body: <p>I have a program to send POST request to a server.<br>
  I'm using cURL to send request.<br>
  My program run on Windows and Linux (on the moment Ubuntu 9.10).  </p>
  
  <p>When server receive request it processing it and return error code (0000 if no errors) and error description (if any).<br>
  Server's web server is Microsoft IIS.  </p>
  
  <p>When I run my program at Windows it work well.<br>
  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".<br>
  As I know problem in server side - server doesn't send response's size and doesn't close socket connection.  </p>
  
  <p>cURL logs (from Linux):</p>
  
  <pre><code>
  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
  </code></pre>
  
  <p>On Windows logs are almost the same, but without timeout - it close socket immediately after reciving "0000 ".</p>
  
  <p>I can analyse received data and close connection if I get "0000 ", but it's a "dirty hack".  </p>
  
  <p>Any ideas?</p>