Вопрос по cURL.
Пытаюсь пробиться через прокси с NTLM (Wingate 6)
В общем случае, стоит опция проверки любого прокси.
curl_easy_setopt(curl, CURLOPT_PROXYAUTH, CURLAUTH_ANY);
При попытке коннекта вылетаю с ошибкой передачи данных
About to connect() to proxy moon port 3128 (#0)
Trying 192.168.100.231...
connected
Connected to moon (192.168.100.231) port 3128 (#0)
POST http://klukvin:8889/files/main.jsp HTTP/1.1
User-Agent: HTTPPost/2.0 (Windows NT 5.1)
Host: klukvin:8889
Pragma: no-cache
Accept: */*
Proxy-Connection: Keep-Alive
Content-operation: 0
Content-Length: 327428
Content-Type: multipart/form-data;
boundary=----------------------------352292fc995c
------------------------------352292fc995c
Content-Disposition: form-data; name="File0"; filename="mov00004.3gp"
Content-Type: application/octet-stream
Send failure: Connection was aborted
failed sending data to the peer
Closing connection #0
Если использовать функцию отладки libcurl и после отправки заголовков в ней поставить, к примеру, Sleep(100), то:
About to connect() to proxy moon port 3128 (#0)
Trying 192.168.100.231...
connected
Connected to moon (192.168.100.231) port 3128 (#0)
POST http://klukvin:8889/files/main.jsp HTTP/1.1
User-Agent: HTTPPost/2.0 (Windows NT 5.1)
Host: klukvin:8889
Pragma: no-cache
Accept: */*
Proxy-Connection: Keep-Alive
Content-operation: 0
Content-Length: 327428
Content-Type: multipart/form-data;
boundary=----------------------------cce05b983f90
HTTP/1.1 407 Access Denied
Server: WinGate 6.0.4 (Build 1025)
Ну и дальше идет обмен. Все ок.
Это проблема libCurl или, может быть WinGate?
Да, еще. Если поставить опцию TCP_NODELAY:
curl_easy_setopt(curl, CURLOPT_TCP_NODELAY, TRUE);
то даже без задержки после заголовков все работает.
Хотелось бы понять как влияет флак TCP_NODELAY на работу.