Skip to content

Commit

Permalink
clang-format
Browse files Browse the repository at this point in the history
  • Loading branch information
helintongh committed Apr 18, 2024
1 parent ae21eec commit 7e6268f
Show file tree
Hide file tree
Showing 4 changed files with 220 additions and 217 deletions.
113 changes: 59 additions & 54 deletions include/cinatra/coro_http_client.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -322,7 +322,8 @@ class coro_http_client : public std::enable_shared_from_this<coro_http_client> {

void set_ws_sec_key(std::string sec_key) { ws_sec_key_ = std::move(sec_key); }

async_simple::coro::Lazy<bool> async_ws_connect(std::string uri, bool enable_ws_deflate = false) {
async_simple::coro::Lazy<bool> async_ws_connect(
std::string uri, bool enable_ws_deflate = false) {
resp_data data{};
auto [r, u] = handle_uri(data, uri);
if (!r) {
Expand All @@ -343,7 +344,8 @@ class coro_http_client : public std::enable_shared_from_this<coro_http_client> {
add_header("Sec-WebSocket-Key", ws_sec_key_);
add_header("Sec-WebSocket-Version", "13");
#ifdef CINATRA_ENABLE_GZIP
add_header("Sec-WebSocket-Extensions", "permessage-deflate; client_max_window_bits");
add_header("Sec-WebSocket-Extensions",
"permessage-deflate; client_max_window_bits");
#endif
}

Expand Down Expand Up @@ -407,7 +409,8 @@ class coro_http_client : public std::enable_shared_from_this<coro_http_client> {
#ifdef CINATRA_ENABLE_GZIP
if (enable_ws_deflate_ && is_server_support_ws_deflate_) {
std::string dest_buf;
if (cinatra::gzip_codec::deflate(std::string(source.begin(), source.end()), dest_buf)) {
if (cinatra::gzip_codec::deflate(
std::string(source.begin(), source.end()), dest_buf)) {
std::span<char> msg(dest_buf.data(), dest_buf.size());
auto header = ws.encode_frame(msg, op, need_mask, true, true);
std::vector<asio::const_buffer> buffers;
Expand All @@ -421,77 +424,79 @@ class coro_http_client : public std::enable_shared_from_this<coro_http_client> {
}
}
else {
CINATRA_LOG_ERROR << "compuress data error, data: " << std::string(source.begin(), source.end());
CINATRA_LOG_ERROR << "compuress data error, data: "
<< std::string(source.begin(), source.end());
data.net_err = std::make_error_code(std::errc::protocol_error);
data.status = 404;
}
}
else {
#endif
std::string encode_header = ws.encode_frame(source, op, need_mask);
std::vector<asio::const_buffer> buffers{
asio::buffer(encode_header.data(), encode_header.size()),
asio::buffer(source.data(), source.size())};
std::string encode_header = ws.encode_frame(source, op, need_mask);
std::vector<asio::const_buffer> buffers{
asio::buffer(encode_header.data(), encode_header.size()),
asio::buffer(source.data(), source.size())};

auto [ec, _] = co_await async_write(buffers);
if (ec) {
data.net_err = ec;
data.status = 404;
}
auto [ec, _] = co_await async_write(buffers);
if (ec) {
data.net_err = ec;
data.status = 404;
}
#ifdef CINATRA_ENABLE_GZIP
}
}
#endif
}
else {
while (true) {
auto result = co_await source();

#ifdef CINATRA_ENABLE_GZIP
if (enable_ws_deflate_ && is_server_support_ws_deflate_) {
std::string dest_buf;
if (cinatra::gzip_codec::deflate(std::string(result), dest_buf)) {
std::span<char> msg(dest_buf.data(), dest_buf.size());
std::string header =
ws.encode_frame(msg, op, need_mask, result.eof, true);
std::vector<asio::const_buffer> buffers;
buffers.push_back(asio::buffer(header));
buffers.push_back(asio::buffer(dest_buf));

auto [ec, sz] = co_await async_write(buffers);
if (ec) {
data.net_err = ec;
if (enable_ws_deflate_ && is_server_support_ws_deflate_) {
std::string dest_buf;
if (cinatra::gzip_codec::deflate(std::string(result), dest_buf)) {
std::span<char> msg(dest_buf.data(), dest_buf.size());
std::string header =
ws.encode_frame(msg, op, need_mask, result.eof, true);
std::vector<asio::const_buffer> buffers;
buffers.push_back(asio::buffer(header));
buffers.push_back(asio::buffer(dest_buf));

auto [ec, sz] = co_await async_write(buffers);
if (ec) {
data.net_err = ec;
data.status = 404;
}
}
else {
CINATRA_LOG_ERROR << "compuress data error, data: "
<< std::string(source.begin(), source.end());
data.net_err = std::make_error_code(std::errc::protocol_error);
data.status = 404;
}
}
else {
CINATRA_LOG_ERROR << "compuress data error, data: " << std::string(source.begin(), source.end());
data.net_err = std::make_error_code(std::errc::protocol_error);
data.status = 404;
}
}
else {
#endif

std::span<char> msg(result.buf.data(), result.buf.size());
std::string encode_header =
ws.encode_frame(msg, op, need_mask, result.eof);
std::vector<asio::const_buffer> buffers{
asio::buffer(encode_header.data(), encode_header.size()),
asio::buffer(msg.data(), msg.size())};
std::span<char> msg(result.buf.data(), result.buf.size());
std::string encode_header =
ws.encode_frame(msg, op, need_mask, result.eof);
std::vector<asio::const_buffer> buffers{
asio::buffer(encode_header.data(), encode_header.size()),
asio::buffer(msg.data(), msg.size())};

auto [ec, _] = co_await async_write(buffers);
if (ec) {
data.net_err = ec;
data.status = 404;
break;
}
auto [ec, _] = co_await async_write(buffers);
if (ec) {
data.net_err = ec;
data.status = 404;
break;
}

if (result.eof) {
break;
if (result.eof) {
break;
}
}
#ifdef CINATRA_ENABLE_GZIP
}
#ifdef CINATRA_ENABLE_GZIP
}
#endif
}

Expand Down Expand Up @@ -1933,10 +1938,10 @@ class coro_http_client : public std::enable_shared_from_this<coro_http_client> {
}
}
#ifdef CINATRA_ENABLE_GZIP
if (!is_close_frame && is_server_support_ws_deflate_ && enable_ws_deflate_) {
if (!is_close_frame && is_server_support_ws_deflate_ &&
enable_ws_deflate_) {
std::string out;
if (!cinatra::gzip_codec::inflate(std::string(data_ptr), out))
{
if (!cinatra::gzip_codec::inflate(std::string(data_ptr), out)) {
CINATRA_LOG_ERROR << "uncompuress data error";
data.status = 404;
data.net_err = std::make_error_code(std::errc::protocol_error);
Expand All @@ -1948,8 +1953,8 @@ class coro_http_client : public std::enable_shared_from_this<coro_http_client> {
}
else {
#endif
data.status = 200;
data.resp_body = {data_ptr, payload_len};
data.status = 200;
data.resp_body = {data_ptr, payload_len};
#ifdef CINATRA_ENABLE_GZIP
}
#endif
Expand Down
22 changes: 11 additions & 11 deletions include/cinatra/coro_http_connection.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -652,16 +652,15 @@ class coro_http_connection
case cinatra::ws_frame_type::WS_BINARY_FRAME: {
#ifdef CINATRA_ENABLE_GZIP
std::string out;
if (is_client_ws_compressed_)
{
if (!cinatra::gzip_codec::inflate(std::string(payload.begin(), payload.end()), out))
{
CINATRA_LOG_ERROR << "uncompuress data error";
result.ec = std::make_error_code(std::errc::protocol_error);
break;
}
result.eof = true;
result.data = {out.data(), out.size()};
if (is_client_ws_compressed_) {
if (!cinatra::gzip_codec::inflate(
std::string(payload.begin(), payload.end()), out)) {
CINATRA_LOG_ERROR << "uncompuress data error";
result.ec = std::make_error_code(std::errc::protocol_error);
break;
}
result.eof = true;
result.data = {out.data(), out.size()};
}
else {
result.eof = true;
Expand Down Expand Up @@ -862,7 +861,8 @@ class coro_http_connection
}
#ifdef CINATRA_ENABLE_GZIP
if (is_client_ws_compressed_) {
response_.add_header("Sec-WebSocket-Extensions", "permessage-deflate; client_no_context_takeover");
response_.add_header("Sec-WebSocket-Extensions",
"permessage-deflate; client_no_context_takeover");
}
#endif
}
Expand Down
Loading

0 comments on commit 7e6268f

Please sign in to comment.