diff --git a/webserv/client/Client.cpp b/webserv/client/Client.cpp index 90b24cb..fec0780 100644 --- a/webserv/client/Client.cpp +++ b/webserv/client/Client.cpp @@ -3,13 +3,10 @@ #include #include -#include - Client::Client(std::unique_ptr socket, Server &server, const ServerConfig &server_config) - : client_socket_(std::move(socket)), server_(std::ref(server)), server_config_(std::cref(server_config)), + : client_socket_(std::move(socket)), server_(std::ref(server)), server_config_(std::cref(server_config)), httpRequest_(std::make_unique(&server_config, this)) { - } Client::~Client() @@ -18,33 +15,36 @@ Client::~Client() server_.removeFromEpoll(*client_socket_); }; - void Client::request() { - char buffer[9] = {}; // NOLINT(cppcoreguidelines-avoid-c-arrays) + char buffer[bufferSize_] = {}; // NOLINT(cppcoreguidelines-avoid-c-arrays) ssize_t bytesRead = client_socket_->recv(buffer, sizeof(buffer) - 1); // NOLINT(cppcoreguidelines-pro-bounds-array-to-pointer-decay) if (bytesRead < 0) { - perror("Read error"); + Log::error("Read error"); return; } if (bytesRead == 0) { - std::cout << "Client disconnected, fd: " << client_socket_->getFd() << '\n'; + Log::info("Client disconnected, fd: " + std::to_string(client_socket_->getFd())); return; } buffer[bytesRead] = '\0'; // NOLINT(cppcoreguidelines-pro-bounds-constant-array-index) httpRequest_->receiveData(buffer, static_cast(bytesRead)); - if(httpRequest_->getState() == HttpRequest::State::Complete) { - Log::info("Received complete request:\n" + httpRequest_->getHeaders() + httpRequest_->getBody() + "\n=== FULL REQUEST FINISHED\n"); + if (httpRequest_->getState() == HttpRequest::State::Complete) + { + Log::info("Received complete request:\n" + httpRequest_->getHeaders() + httpRequest_->getBody() + + "\n=== FULL REQUEST FINISHED\n"); server_.responseReady(client_socket_->getFd()); httpRequest_->reset(); } - else { - Log::debug("Received partial request:\n" + httpRequest_->getHeaders() + httpRequest_->getBody() + "\n=== PARTIAL REQUEST\n"); + else + { + Log::debug("Received partial request:\n" + httpRequest_->getHeaders() + httpRequest_->getBody() + + "\n=== PARTIAL REQUEST\n"); } } diff --git a/webserv/client/Client.hpp b/webserv/client/Client.hpp index 08cd1d9..2414c22 100644 --- a/webserv/client/Client.hpp +++ b/webserv/client/Client.hpp @@ -25,12 +25,8 @@ class Client [[nodiscard]] std::string getResponse() const; private: + constexpr static size_t bufferSize_ = 4096; std::unique_ptr httpRequest_ = nullptr; - int parseHeaderforContentLength(const std::string &request); - // int contentLength_{-1}; - // std::string requestBuffer_; - // std::string header_; - // std::string content_; std::unique_ptr client_socket_; const Server &server_; const ServerConfig &server_config_;