feat: pass servers ip, port to client

This commit is contained in:
3lswear
2022-02-08 21:48:09 +03:00
parent 60a354d8a6
commit 0a791b2303
3 changed files with 17 additions and 8 deletions

View File

@@ -2,13 +2,15 @@
//-------------------------------------------------Constructors--------------------------------------- //-------------------------------------------------Constructors---------------------------------------
Client::Client() Client::Client(struct serverListen servers_config)
{ {
allRead = false; allRead = false;
done = false; done = false;
this->_fd = -1; this->_fd = -1;
this->_sended = 0; this->_sended = 0;
_to_send_char = NULL; _to_send_char = NULL;
connected_to = servers_config;
} }
Client::Client(char *str) Client::Client(char *str)
@@ -157,12 +159,12 @@ std::string Client::generateRespons(void)
return (_toSend); return (_toSend);
} }
std::string Client::generateRespons(serverListen &reqData, std::vector<ServerConfig *> &configs) std::string Client::generateRespons(std::vector<ServerConfig *> &configs)
{ {
size_t len; size_t len;
location *tmp; location *tmp;
_config = Config::getConfig(configs, _request, reqData); _config = Config::getConfig(configs, _request, connected_to);
tmp = Config::getLocation(_config->getLocations(), _request.getURI()); tmp = Config::getLocation(_config->getLocations(), _request.getURI());
_response.setData(_request, _config, tmp); _response.setData(_request, _config, tmp);
_response.generate(); _response.generate();

View File

@@ -39,6 +39,8 @@ public:
ENDED ENDED
} req_status; } req_status;
struct serverListen connected_to;
int serverfd; int serverfd;
size_t readn; size_t readn;
size_t left; size_t left;
@@ -72,9 +74,11 @@ public:
void increaseCounter(void); void increaseCounter(void);
void increaseRecvCounter(unsigned int n); void increaseRecvCounter(unsigned int n);
std::string generateRespons(void); std::string generateRespons(void);
std::string generateRespons(serverListen &, std::vector<ServerConfig *> &); /* std::string generateRespons(serverListen &, std::vector<ServerConfig *> &); */
std::string generateRespons(std::vector<ServerConfig *> &);
Client(); /* Client(); */
Client(struct serverListen servers_config);
Client(char *); Client(char *);
Client(char *, ServerConfig *config); Client(char *, ServerConfig *config);
~Client(); ~Client();

View File

@@ -235,20 +235,23 @@ void Server::start(void)
int client_sock = accept(fd, int client_sock = accept(fd,
(sock_it->second).getSockaddr(), (sock_it->second).getSocklen()); (sock_it->second).getSockaddr(), (sock_it->second).getSocklen());
if (client_sock > 0) if (client_sock > 0)
{
client_map[client_sock] = new Client((sock_it->second).min_config);
add_to_epoll_list(client_sock, client_events); add_to_epoll_list(client_sock, client_events);
}
else else
throw std::logic_error("accept didnt work"); throw std::logic_error("accept didnt work");
} }
else else
{ {
if (client_map.find(fd) == client_map.end()) /* if (client_map.find(fd) == client_map.end()) */
client_map[fd] = new Client(); /* client_map[fd] = new Client(); */
if (events & EPOLLIN) if (events & EPOLLIN)
{ {
readSocket(*client_map[fd], fd); readSocket(*client_map[fd], fd);
if (client_map[fd]->readyToSend()) if (client_map[fd]->readyToSend())
{ {
client_map[fd]->generateRespons(); client_map[fd]->generateRespons(_configs);
struct epoll_event ev; struct epoll_event ev;