Отправка файла, используя cURL через proxy
От: _funt_  
Дата: 29.12.06 10:57
Оценка:
Вопрос по 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 на работу.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.