Refactor Client class: replace std::cout with logging calls for read errors and client disconnections, and remove unused header parsing methods
This commit is contained in:
parent
90e70f2e82
commit
799cf250b7
@ -3,13 +3,10 @@
|
||||
#include <webserv/client/Client.hpp>
|
||||
#include <webserv/log/Log.hpp>
|
||||
|
||||
#include <iostream>
|
||||
|
||||
Client::Client(std::unique_ptr<Socket> socket, Server &server, const ServerConfig &server_config)
|
||||
: client_socket_(std::move(socket)), server_(std::ref(server)), server_config_(std::cref(server_config)),
|
||||
httpRequest_(std::make_unique<HttpRequest>(&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<size_t>(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");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -25,12 +25,8 @@ class Client
|
||||
[[nodiscard]] std::string getResponse() const;
|
||||
|
||||
private:
|
||||
constexpr static size_t bufferSize_ = 4096;
|
||||
std::unique_ptr<HttpRequest> httpRequest_ = nullptr;
|
||||
int parseHeaderforContentLength(const std::string &request);
|
||||
// int contentLength_{-1};
|
||||
// std::string requestBuffer_;
|
||||
// std::string header_;
|
||||
// std::string content_;
|
||||
std::unique_ptr<Socket> client_socket_;
|
||||
const Server &server_;
|
||||
const ServerConfig &server_config_;
|
||||
|
||||
Loading…
Reference in New Issue
Block a user