diff --git a/webserv/server/Server.cpp b/webserv/server/Server.cpp index 35e7fbf..6093871 100644 --- a/webserv/server/Server.cpp +++ b/webserv/server/Server.cpp @@ -55,7 +55,7 @@ void Server::start() { setupServerSocket(*config); } - if (fdToConfig_.empty()) + if (listener_fds_.empty()) { Log::fatal("No server sockets created."); throw std::runtime_error("No server sockets created."); @@ -111,7 +111,7 @@ void Server::setupServerSocket(const ServerConfig &config) addToEpoll(*serverSocket, EPOLLIN); listeners_.push_back(std::move(serverSocket)); - fdToConfig_.insert({server_fd, std::cref(config)}); + listener_fds_.insert(server_fd); Log::info("Server listening on " + host + ":" + std::to_string(port) + "..."); // static_cast(config["listen"]) + "..."); } @@ -156,24 +156,6 @@ Client &Server::getClient(int fd) const throw std::runtime_error("Client not found for fd: " + std::to_string(fd)); } -const ServerConfig &Server::getConfig(const Socket &socket) const -{ - Log::trace(LOCATION); - return getConfig(socket.getFd()); -} - -const ServerConfig &Server::getConfig(int fd) const -{ - Log::trace(LOCATION); - auto it = fdToConfig_.find(fd); - if (it != fdToConfig_.end()) - { - return (it->second.get()); - } - Log::error("Config not found for fd: " + std::to_string(fd)); - throw std::runtime_error("Config not found for fd: " + std::to_string(fd)); -} - void Server::handleRequest(struct epoll_event *event) const { Log::trace(LOCATION); @@ -220,7 +202,7 @@ void Server::eventLoop() removeFromEpoll(getListener(event.data.fd)); close(event.data.fd); } - else if (fdToConfig_.contains(event.data.fd)) + else if (listener_fds_.contains(event.data.fd)) { handleConnection(&event); } diff --git a/webserv/server/Server.hpp b/webserv/server/Server.hpp index c489c39..ca1af2d 100644 --- a/webserv/server/Server.hpp +++ b/webserv/server/Server.hpp @@ -6,10 +6,11 @@ #include // for Socket #include // for uint32_t -#include // for reference_wrapper + #include // for unique_ptr #include // for unordered_map #include // for vector +#include // for set class Client; class ConfigManager; @@ -42,13 +43,12 @@ class Server void eventLoop(); Socket &getListener(int fd) const; Client &getClient(int fd) const; - const ServerConfig &getConfig(int fd) const; - const ServerConfig &getConfig(const Socket &socket) const; + private: int epoll_fd_; const ConfigManager &configManager_; std::vector> listeners_; - std::unordered_map> fdToConfig_; + std::set listener_fds_; std::unordered_map> clients_; };