in src/aws-cpp-sdk-core/source/http/windows/WinHttpSyncHttpClient.cpp [94:179]
void AzWinHttpLogLastError(const char* FuncName)
{
#define AZ_WINHTTP_ERROR(win_http_error) \
{win_http_error, #win_http_error}
#define AZ_WINHTTP_ERROR_FALLBACK(win_http_error, value) \
{value, #win_http_error}
static const std::pair<DWORD, const char*> WIN_HTTP_ERRORS[] = {
AZ_WINHTTP_ERROR(ERROR_WINHTTP_OUT_OF_HANDLES),
AZ_WINHTTP_ERROR(ERROR_WINHTTP_TIMEOUT),
AZ_WINHTTP_ERROR(ERROR_WINHTTP_INTERNAL_ERROR),
AZ_WINHTTP_ERROR(ERROR_WINHTTP_INVALID_URL),
AZ_WINHTTP_ERROR(ERROR_WINHTTP_UNRECOGNIZED_SCHEME),
AZ_WINHTTP_ERROR(ERROR_WINHTTP_NAME_NOT_RESOLVED),
AZ_WINHTTP_ERROR(ERROR_WINHTTP_INVALID_OPTION),
AZ_WINHTTP_ERROR(ERROR_WINHTTP_OPTION_NOT_SETTABLE),
AZ_WINHTTP_ERROR(ERROR_WINHTTP_SHUTDOWN),
AZ_WINHTTP_ERROR(ERROR_WINHTTP_LOGIN_FAILURE),
AZ_WINHTTP_ERROR(ERROR_WINHTTP_OPERATION_CANCELLED),
AZ_WINHTTP_ERROR(ERROR_WINHTTP_INCORRECT_HANDLE_TYPE),
AZ_WINHTTP_ERROR(ERROR_WINHTTP_INCORRECT_HANDLE_STATE),
AZ_WINHTTP_ERROR(ERROR_WINHTTP_CANNOT_CONNECT),
AZ_WINHTTP_ERROR(ERROR_WINHTTP_CONNECTION_ERROR),
AZ_WINHTTP_ERROR(ERROR_WINHTTP_RESEND_REQUEST),
AZ_WINHTTP_ERROR(ERROR_WINHTTP_CLIENT_AUTH_CERT_NEEDED),
AZ_WINHTTP_ERROR(ERROR_WINHTTP_CANNOT_CALL_BEFORE_OPEN),
AZ_WINHTTP_ERROR(ERROR_WINHTTP_CANNOT_CALL_BEFORE_SEND),
AZ_WINHTTP_ERROR(ERROR_WINHTTP_CANNOT_CALL_AFTER_SEND),
AZ_WINHTTP_ERROR(ERROR_WINHTTP_CANNOT_CALL_AFTER_OPEN),
AZ_WINHTTP_ERROR(ERROR_WINHTTP_HEADER_NOT_FOUND),
AZ_WINHTTP_ERROR(ERROR_WINHTTP_INVALID_SERVER_RESPONSE),
AZ_WINHTTP_ERROR(ERROR_WINHTTP_INVALID_HEADER),
AZ_WINHTTP_ERROR(ERROR_WINHTTP_INVALID_QUERY_REQUEST),
AZ_WINHTTP_ERROR(ERROR_WINHTTP_HEADER_ALREADY_EXISTS),
AZ_WINHTTP_ERROR(ERROR_WINHTTP_REDIRECT_FAILED),
AZ_WINHTTP_ERROR(ERROR_WINHTTP_AUTO_PROXY_SERVICE_ERROR),
AZ_WINHTTP_ERROR(ERROR_WINHTTP_BAD_AUTO_PROXY_SCRIPT),
AZ_WINHTTP_ERROR(ERROR_WINHTTP_UNABLE_TO_DOWNLOAD_SCRIPT),
AZ_WINHTTP_ERROR(ERROR_WINHTTP_UNHANDLED_SCRIPT_TYPE),
AZ_WINHTTP_ERROR(ERROR_WINHTTP_SCRIPT_EXECUTION_ERROR),
AZ_WINHTTP_ERROR(ERROR_WINHTTP_NOT_INITIALIZED),
AZ_WINHTTP_ERROR(ERROR_WINHTTP_SECURE_FAILURE),
AZ_WINHTTP_ERROR(ERROR_WINHTTP_SECURE_CERT_DATE_INVALID),
AZ_WINHTTP_ERROR(ERROR_WINHTTP_SECURE_CERT_CN_INVALID),
AZ_WINHTTP_ERROR(ERROR_WINHTTP_SECURE_INVALID_CA),
AZ_WINHTTP_ERROR(ERROR_WINHTTP_SECURE_CERT_REV_FAILED),
AZ_WINHTTP_ERROR(ERROR_WINHTTP_SECURE_CHANNEL_ERROR),
AZ_WINHTTP_ERROR(ERROR_WINHTTP_SECURE_INVALID_CERT),
AZ_WINHTTP_ERROR(ERROR_WINHTTP_SECURE_CERT_REVOKED),
AZ_WINHTTP_ERROR(ERROR_WINHTTP_SECURE_CERT_WRONG_USAGE),
AZ_WINHTTP_ERROR(ERROR_WINHTTP_AUTODETECTION_FAILED),
AZ_WINHTTP_ERROR(ERROR_WINHTTP_HEADER_COUNT_EXCEEDED),
AZ_WINHTTP_ERROR(ERROR_WINHTTP_HEADER_SIZE_OVERFLOW),
AZ_WINHTTP_ERROR(ERROR_WINHTTP_CHUNKED_ENCODING_HEADER_SIZE_OVERFLOW),
AZ_WINHTTP_ERROR(ERROR_WINHTTP_RESPONSE_DRAIN_OVERFLOW),
AZ_WINHTTP_ERROR(ERROR_WINHTTP_CLIENT_CERT_NO_PRIVATE_KEY),
AZ_WINHTTP_ERROR(ERROR_WINHTTP_CLIENT_CERT_NO_ACCESS_PRIVATE_KEY),
AZ_WINHTTP_ERROR_FALLBACK(ERROR_WINHTTP_CLIENT_AUTH_CERT_NEEDED_PROXY, (WINHTTP_ERROR_BASE + 187)),
AZ_WINHTTP_ERROR_FALLBACK(ERROR_WINHTTP_SECURE_FAILURE_PROXY, (WINHTTP_ERROR_BASE + 188)),
AZ_WINHTTP_ERROR_FALLBACK(ERROR_WINHTTP_RESERVED_189, (WINHTTP_ERROR_BASE + 189)),
AZ_WINHTTP_ERROR_FALLBACK(ERROR_WINHTTP_HTTP_PROTOCOL_MISMATCH, (WINHTTP_ERROR_BASE + 190)),
AZ_WINHTTP_ERROR_FALLBACK(ERROR_WINHTTP_GLOBAL_CALLBACK_FAILED, (WINHTTP_ERROR_BASE + 191)),
AZ_WINHTTP_ERROR_FALLBACK(ERROR_WINHTTP_FEATURE_DISABLED, (WINHTTP_ERROR_BASE + 192)),
AZ_WINHTTP_ERROR(ERROR_INVALID_PARAMETER),
AZ_WINHTTP_ERROR(ERROR_NOT_ENOUGH_MEMORY)
};
#undef AZ_WINHTTP_ERROR
#undef AZ_WINHTTP_ERROR_FALLBACK
static const size_t WIN_HTTP_ERRORS_SZ = sizeof(WIN_HTTP_ERRORS) / sizeof(WIN_HTTP_ERRORS[0]);
const auto lastError = GetLastError();
size_t errorIdx = 0;
for(; errorIdx < WIN_HTTP_ERRORS_SZ; ++errorIdx)
{
if(WIN_HTTP_ERRORS[errorIdx].first == lastError)
{
AWS_LOGSTREAM_ERROR("WinHttp", "Failed to " << FuncName << " with an error code: " << WIN_HTTP_ERRORS[errorIdx].second);
break;
}
}
if (errorIdx == WIN_HTTP_ERRORS_SZ)
{
AWS_LOGSTREAM_ERROR("WinHttp", "Failed to " << FuncName << " with an unknown error code: " << lastError);
}
}