mirror of
https://github.com/3lswear/webserv.git
synced 2025-10-28 21:07:59 +03:00
feat: pass servers ip, port to client
This commit is contained in:
@@ -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<ServerConfig *> &configs)
|
||||
std::string Client::generateRespons(std::vector<ServerConfig *> &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();
|
||||
|
||||
@@ -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<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 *, ServerConfig *config);
|
||||
~Client();
|
||||
|
||||
@@ -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;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user