retry resolve failure
This commit is contained in:
@@ -135,6 +135,8 @@ public:
|
|||||||
long &response_code, stop_type &stop_requested) -> bool {
|
long &response_code, stop_type &stop_requested) -> bool {
|
||||||
REPERTORY_USES_FUNCTION_NAME();
|
REPERTORY_USES_FUNCTION_NAME();
|
||||||
|
|
||||||
|
CURLcode curl_code{};
|
||||||
|
const auto do_request = [&]() -> bool {
|
||||||
if (request.decryption_token.has_value() &&
|
if (request.decryption_token.has_value() &&
|
||||||
not request.decryption_token.value().empty()) {
|
not request.decryption_token.value().empty()) {
|
||||||
return make_encrypted_request(cfg, request, response_code,
|
return make_encrypted_request(cfg, request, response_code,
|
||||||
@@ -213,7 +215,7 @@ public:
|
|||||||
|
|
||||||
multi_request curl_request(curl, stop_requested);
|
multi_request curl_request(curl, stop_requested);
|
||||||
|
|
||||||
CURLcode curl_code{};
|
curl_code = CURLE_OK;
|
||||||
curl_request.get_result(curl_code, response_code);
|
curl_request.get_result(curl_code, response_code);
|
||||||
|
|
||||||
if (header_list != nullptr) {
|
if (header_list != nullptr) {
|
||||||
@@ -221,7 +223,8 @@ public:
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (curl_code != CURLE_OK) {
|
if (curl_code != CURLE_OK) {
|
||||||
event_system::instance().raise<curl_error>(curl_code, function_name, url);
|
event_system::instance().raise<curl_error>(curl_code, function_name,
|
||||||
|
url);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -230,6 +233,24 @@ public:
|
|||||||
}
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
|
};
|
||||||
|
|
||||||
|
bool ret{false};
|
||||||
|
for (std::uint8_t retry = 0U; !ret && retry < 5U; ++retry) {
|
||||||
|
ret = do_request();
|
||||||
|
if (ret) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (curl_code == CURLE_COULDNT_RESOLVE_HOST) {
|
||||||
|
std::this_thread::sleep_for(1s);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
Reference in New Issue
Block a user