aboutsummaryrefslogtreecommitdiffstats
path: root/library/cpp
diff options
context:
space:
mode:
authoranterpin <anterpin@yandex-team.com>2025-03-31 21:42:47 +0300
committeranterpin <anterpin@yandex-team.com>2025-03-31 21:54:42 +0300
commit2d512f78c593c3f4573742129c281d0fc5479de0 (patch)
treecdcec50b000439b5fe361c524d4e66a8e340b4a8 /library/cpp
parent57acd8934a357817125b6a17e79fe89d035b1d24 (diff)
downloadydb-2d512f78c593c3f4573742129c281d0fc5479de0.tar.gz
Add Body to report
Add test Add body to reqenv commit_hash:222fa588fa7d7a7f65869bd997d32610e78b7378
Diffstat (limited to 'library/cpp')
-rw-r--r--library/cpp/http/misc/httpreqdata.cpp2
-rw-r--r--library/cpp/http/misc/httpreqdata.h10
-rw-r--r--library/cpp/http/server/http_ex.cpp1
3 files changed, 13 insertions, 0 deletions
diff --git a/library/cpp/http/misc/httpreqdata.cpp b/library/cpp/http/misc/httpreqdata.cpp
index ed5e8872c9..028418bc4a 100644
--- a/library/cpp/http/misc/httpreqdata.cpp
+++ b/library/cpp/http/misc/httpreqdata.cpp
@@ -81,6 +81,8 @@ TStringBuf TBaseServerRequestData::Environment(TStringBuf key) const {
return ip ? *ip : RemoteAddr();
} else if (ciKey == "QUERY_STRING") {
return Query();
+ } else if (ciKey == "BODY") {
+ return Body();
} else if (ciKey == "SERVER_NAME") {
return ServerName();
} else if (ciKey == "SERVER_PORT") {
diff --git a/library/cpp/http/misc/httpreqdata.h b/library/cpp/http/misc/httpreqdata.h
index b5c9e446a9..48854923d1 100644
--- a/library/cpp/http/misc/httpreqdata.h
+++ b/library/cpp/http/misc/httpreqdata.h
@@ -7,6 +7,7 @@
#include <util/system/defaults.h>
#include <util/string/cast.h>
#include <library/cpp/cgiparam/cgiparam.h>
+#include <util/memory/blob.h>
#include <util/network/address.h>
#include <util/network/socket.h>
#include <util/generic/hash.h>
@@ -52,6 +53,10 @@ public:
return OrigQuery_;
}
+ TStringBuf Body() const {
+ return Body_.AsStringBuf();
+ }
+
void AppendQueryString(TStringBuf str);
TStringBuf RemoteAddr() const;
void SetRemoteAddr(TStringBuf addr);
@@ -77,6 +82,10 @@ public:
Socket_ = s;
}
+ void SetBody(const TBlob& body) noexcept {
+ Body_ = body;
+ }
+
ui64 RequestBeginTime() const noexcept {
return BeginTime_;
}
@@ -93,6 +102,7 @@ private:
TString Path_;
TStringBuf Query_;
TStringBuf OrigQuery_;
+ TBlob Body_;
THttpHeadersContainer HeadersIn_;
SOCKET Socket_;
ui64 BeginTime_;
diff --git a/library/cpp/http/server/http_ex.cpp b/library/cpp/http/server/http_ex.cpp
index 0681da10ff..ead37da56d 100644
--- a/library/cpp/http/server/http_ex.cpp
+++ b/library/cpp/http/server/http_ex.cpp
@@ -93,6 +93,7 @@ bool THttpClientRequestExtension::ProcessHeaders(TBaseServerRequestData& rd, TBl
} else {
postData = TBlob::FromStream(Input());
}
+ rd.SetBody(postData);
} catch (...) {
Output() << "HTTP/1.1 400 Bad request\r\n\r\n";
return false;