Есть ли способ, которым я могу отменить curl_easy_perform в C++ ??Отменить curl_easy_perform, пока он пытается подключиться
У меня есть сценарий, где я пытаюсь подключиться к сети ресурса, который отсутствует и curl_easy_perform занять определенное количество времени, прежде чем она возвращает CURLE_COULDNT_CONNECT. Но в то же время пользователь закрыл пользовательский интерфейс, который хочет подключиться, и я хочу немедленно отключить завиток и не ждать, пока он не сможет подключиться.
Я попытался хранить локон указатель, который я использую:
CURL *pEasy = curl_easy_init();
И потом, когда он делает curl_easy_perform я назвал
curl_easy_cleanup(pEasy);
В попытке освободить или «стоп» завиток соединения но он разбился, и я получил следующую ошибку от curl_easy_perform:
Unhandled exception at blah blah: Access violation reading location 0x00000004.
Есть ли способ отменить попытку подключения ???? Я прочел эту ссылку: How can I immediately cancel a curl operation?, но он, похоже, справится с отменой завитущего соединения после того, как он успешно подключился.
EDIT - РЕШЕНИЕ
Я обнаружил, что если я называю:
curl_easy_reset(pEasy);
Тогда
curlResult = curl_easy_perform (pEasy);
возвращается почти сразу же с результатом CURLE_OPERATION_TIMEDOUT.
Я думаю, что это то, что мне нужно :)
Извините, но это «решение» кажется мне совершенно неправильным ... –
Это не похоже на решение, на вопрос «Как отменить операцию немедленно». Я также ищу прямой ответ на этот вопрос. Пожалуйста, дайте мне знать, если они есть. – Swtsvn