diff options
author | ishfb <ishfb@yandex-team.ru> | 2022-02-10 16:48:07 +0300 |
---|---|---|
committer | Daniil Cherednik <dcherednik@yandex-team.ru> | 2022-02-10 16:48:07 +0300 |
commit | 0170772a2dbf133f32e17ca137ff64790d43831f (patch) | |
tree | 68ce3ab477bcb9e09abf2b0a6e7b34287c53f0df /library/cpp/http/server/response.cpp | |
parent | df6128370874866447314ec18d8e67fc7bde40b4 (diff) | |
download | ydb-0170772a2dbf133f32e17ca137ff64790d43831f.tar.gz |
Restoring authorship annotation for <ishfb@yandex-team.ru>. Commit 1 of 2.
Diffstat (limited to 'library/cpp/http/server/response.cpp')
-rw-r--r-- | library/cpp/http/server/response.cpp | 56 |
1 files changed, 28 insertions, 28 deletions
diff --git a/library/cpp/http/server/response.cpp b/library/cpp/http/server/response.cpp index 52d64c91ce..52d5f28e5b 100644 --- a/library/cpp/http/server/response.cpp +++ b/library/cpp/http/server/response.cpp @@ -1,65 +1,65 @@ -#include "response.h" +#include "response.h" -#include <util/stream/output.h> +#include <util/stream/output.h> #include <util/stream/mem.h> #include <util/string/cast.h> - -THttpResponse& THttpResponse::AddMultipleHeaders(const THttpHeaders& headers) { - for (THttpHeaders::TConstIterator i = headers.Begin(); i != headers.End(); ++i) { - this->Headers.AddHeader(*i); - } - return *this; -} - + +THttpResponse& THttpResponse::AddMultipleHeaders(const THttpHeaders& headers) { + for (THttpHeaders::TConstIterator i = headers.Begin(); i != headers.End(); ++i) { + this->Headers.AddHeader(*i); + } + return *this; +} + THttpResponse& THttpResponse::SetContentType(const TStringBuf& contentType) { Headers.AddOrReplaceHeader(THttpInputHeader("Content-Type", ToString(contentType))); return *this; -} - +} + void THttpResponse::OutTo(IOutputStream& os) const { TVector<IOutputStream::TPart> parts; - const size_t FIRST_LINE_PARTS = 3; + const size_t FIRST_LINE_PARTS = 3; const size_t HEADERS_PARTS = Headers.Count() * 4; - const size_t CONTENT_PARTS = 5; - parts.reserve(FIRST_LINE_PARTS + HEADERS_PARTS + CONTENT_PARTS); - - // first line + const size_t CONTENT_PARTS = 5; + parts.reserve(FIRST_LINE_PARTS + HEADERS_PARTS + CONTENT_PARTS); + + // first line parts.push_back(IOutputStream::TPart(TStringBuf("HTTP/1.1 "))); parts.push_back(IOutputStream::TPart(HttpCodeStrEx(Code))); parts.push_back(IOutputStream::TPart::CrLf()); - - // headers + + // headers for (THttpHeaders::TConstIterator i = Headers.Begin(); i != Headers.End(); ++i) { parts.push_back(IOutputStream::TPart(i->Name())); parts.push_back(IOutputStream::TPart(TStringBuf(": "))); parts.push_back(IOutputStream::TPart(i->Value())); parts.push_back(IOutputStream::TPart::CrLf()); - } - + } + char buf[50]; if (!Content.empty()) { TMemoryOutput mo(buf, sizeof(buf)); - + mo << Content.size(); parts.push_back(IOutputStream::TPart(TStringBuf("Content-Length: "))); parts.push_back(IOutputStream::TPart(buf, mo.Buf() - buf)); parts.push_back(IOutputStream::TPart::CrLf()); - } - - // content + } + + // content parts.push_back(IOutputStream::TPart::CrLf()); if (!Content.empty()) { parts.push_back(IOutputStream::TPart(Content)); - } - + } + os.Write(parts.data(), parts.size()); } template <> void Out<THttpResponse>(IOutputStream& os, const THttpResponse& resp) { resp.OutTo(os); -} +} |