cURL: интервал ожидания простоя больше указанного значения

Я использую libcurl для создания http-соединения с сервером. Во время инициализации я указал значение тайм-аута простоя, равное 5 секундам, а также задал функцию обратного вызова прогресса. Я ожидал, что cURL прервет соединение через 5 секунд бездействия и перестанет вызывать обратный вызов прогресса, но я обнаружил, что время ожидания завитка истекает примерно через 15 секунд. Почему curl требуется больше времени для тайм-аута, чем указано мной? Установка большего значения тайм-аута не помогает. Если я укажу 100 секунд, время ожидания истечет через 105 секунд бездействия.

code = s_curl_easy_setopt(m_curl_handle, CURLOPT_NOPROGRESS, 0);
assert(code == CURLE_OK);
code = s_curl_easy_setopt(m_curl_handle, CURLOPT_PROGRESSFUNCTION, progress_callback);
assert(code == CURLE_OK);

РЕДАКТИРОВАТЬ: Код времени ожидания

//this will set the timeout for quitting in case the network goes down
code = s_curl_easy_setopt(m_curl_handle, CURLOPT_LOW_SPEED_LIMIT, 1);
code = s_curl_easy_setopt(m_curl_handle, CURLOPT_LOW_SPEED_TIME, m_idle_timeout);
5
задан 341008 17 November 2010 в 05:27
поделиться