diff options
author | anterpin <anterpin@yandex-team.com> | 2025-03-31 21:42:47 +0300 |
---|---|---|
committer | anterpin <anterpin@yandex-team.com> | 2025-03-31 21:54:42 +0300 |
commit | 2d512f78c593c3f4573742129c281d0fc5479de0 (patch) | |
tree | cdcec50b000439b5fe361c524d4e66a8e340b4a8 /library/cpp | |
parent | 57acd8934a357817125b6a17e79fe89d035b1d24 (diff) | |
download | ydb-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.cpp | 2 | ||||
-rw-r--r-- | library/cpp/http/misc/httpreqdata.h | 10 | ||||
-rw-r--r-- | library/cpp/http/server/http_ex.cpp | 1 |
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; |