diff --git a/src/Client/Client.cpp b/src/Client/Client.cpp index 797b6dd..c4538fb 100644 --- a/src/Client/Client.cpp +++ b/src/Client/Client.cpp @@ -2,13 +2,15 @@ //-------------------------------------------------Constructors--------------------------------------- -Client::Client() +Client::Client(struct serverListen servers_config) { allRead = false; done = false; this->_fd = -1; this->_sended = 0; _to_send_char = NULL; + + connected_to = servers_config; } Client::Client(char *str) @@ -157,12 +159,12 @@ std::string Client::generateRespons(void) return (_toSend); } -std::string Client::generateRespons(serverListen &reqData, std::vector &configs) +std::string Client::generateRespons(std::vector &configs) { size_t len; location *tmp; - _config = Config::getConfig(configs, _request, reqData); + _config = Config::getConfig(configs, _request, connected_to); tmp = Config::getLocation(_config->getLocations(), _request.getURI()); _response.setData(_request, _config, tmp); _response.generate(); diff --git a/src/Client/Client.hpp b/src/Client/Client.hpp index 16c2b79..8501db2 100644 --- a/src/Client/Client.hpp +++ b/src/Client/Client.hpp @@ -39,6 +39,8 @@ public: ENDED } req_status; + struct serverListen connected_to; + int serverfd; size_t readn; size_t left; @@ -72,9 +74,11 @@ public: void increaseCounter(void); void increaseRecvCounter(unsigned int n); std::string generateRespons(void); - std::string generateRespons(serverListen &, std::vector &); + /* std::string generateRespons(serverListen &, std::vector &); */ + std::string generateRespons(std::vector &); - Client(); + /* Client(); */ + Client(struct serverListen servers_config); Client(char *); Client(char *, ServerConfig *config); ~Client(); diff --git a/src/Server/Server.cpp b/src/Server/Server.cpp index 4dfa5a9..95feaa9 100644 --- a/src/Server/Server.cpp +++ b/src/Server/Server.cpp @@ -235,20 +235,23 @@ void Server::start(void) int client_sock = accept(fd, (sock_it->second).getSockaddr(), (sock_it->second).getSocklen()); if (client_sock > 0) + { + client_map[client_sock] = new Client((sock_it->second).min_config); add_to_epoll_list(client_sock, client_events); + } else throw std::logic_error("accept didnt work"); } else { - if (client_map.find(fd) == client_map.end()) - client_map[fd] = new Client(); + /* if (client_map.find(fd) == client_map.end()) */ + /* client_map[fd] = new Client(); */ if (events & EPOLLIN) { readSocket(*client_map[fd], fd); if (client_map[fd]->readyToSend()) { - client_map[fd]->generateRespons(); + client_map[fd]->generateRespons(_configs); struct epoll_event ev;