aboutsummaryrefslogtreecommitdiff
path: root/src/zenhttp/clients/httpclientcpr.cpp
diff options
context:
space:
mode:
authorDan Engelbrecht <[email protected]>2025-11-04 10:52:28 +0100
committerGitHub Enterprise <[email protected]>2025-11-04 10:52:28 +0100
commit6548080e9da9b09f6800fc4bd4c1c3ed4a5eede4 (patch)
tree5790ea775ad57d948a7eaf16bf11fcb237f29a0f /src/zenhttp/clients/httpclientcpr.cpp
parentabort build upload if we fail to finalize a build part (#623) (diff)
downloadzen-6548080e9da9b09f6800fc4bd4c1c3ed4a5eede4.tar.xz
zen-6548080e9da9b09f6800fc4bd4c1c3ed4a5eede4.zip
add `--verbose-http` option to builds commands (#630)
Diffstat (limited to 'src/zenhttp/clients/httpclientcpr.cpp')
-rw-r--r--src/zenhttp/clients/httpclientcpr.cpp54
1 files changed, 54 insertions, 0 deletions
diff --git a/src/zenhttp/clients/httpclientcpr.cpp b/src/zenhttp/clients/httpclientcpr.cpp
index ca4d03dd4..333fd20b0 100644
--- a/src/zenhttp/clients/httpclientcpr.cpp
+++ b/src/zenhttp/clients/httpclientcpr.cpp
@@ -432,6 +432,60 @@ CprHttpClient::AllocSession(const std::string_view BaseUrl,
{
CprSession->SetHttpVersion(cpr::HttpVersion{cpr::HttpVersionCode::VERSION_2_0_PRIOR_KNOWLEDGE});
}
+ if (ConnectionSettings.Verbose)
+ {
+ // CprSession->SetVerbose(cpr::Verbose{ true });
+ CprSession->SetDebugCallback(cpr::DebugCallback{
+ [this](cpr::DebugCallback::InfoType type, std::string data, intptr_t userdata) {
+ cpr::Session* CprSession = (cpr::Session*)userdata;
+ ZEN_UNUSED(CprSession);
+ switch (type)
+ {
+ case cpr::DebugCallback::InfoType::TEXT:
+ if (data.find("need more data"sv) == std::string::npos)
+ {
+ ZEN_INFO("TEXT: {}", data);
+ }
+ break;
+ case cpr::DebugCallback::InfoType::HEADER_IN:
+ ZEN_INFO("HIN : {}", data);
+ break;
+ case cpr::DebugCallback::InfoType::HEADER_OUT:
+ if (std::string::size_type TokenPos = data.find("Authorization: Bearer "sv); TokenPos != std::string::npos)
+ {
+ TokenPos += 22;
+ std::string::size_type TokenEndPos = data.find_first_of("\r\n", TokenPos);
+ if (TokenEndPos == std::string::npos)
+ {
+ TokenEndPos = data.length();
+ }
+ std::string Copy = data;
+ Copy.replace(Copy.begin() + TokenPos,
+ Copy.begin() + TokenEndPos,
+ fmt::format("[{} char token]", TokenEndPos - TokenPos));
+ ZEN_INFO("HOUT: {}", Copy);
+ }
+ else
+ {
+ ZEN_INFO("HOUT: {}", data);
+ }
+ break;
+ case cpr::DebugCallback::InfoType::DATA_IN:
+ // ZEN_INFO("DATA_IN: {}", data);
+ break;
+ case cpr::DebugCallback::InfoType::DATA_OUT:
+ // ZEN_INFO("DATA_OUT: {}", data);
+ break;
+ case cpr::DebugCallback::InfoType::SSL_DATA_IN:
+ // ZEN_INFO("SSL_DATA_IN: {}", data);
+ break;
+ case cpr::DebugCallback::InfoType::SSL_DATA_OUT:
+ // ZEN_INFO("SSL_DATA_OUT: {}", data);
+ break;
+ }
+ },
+ (intptr_t)CprSession});
+ }
}
if (!AdditionalHeader->empty())