wip cgi env variables

This commit is contained in:
hugogogo
2022-08-06 11:34:48 +02:00
parent 83536ee8ad
commit 6f171ec07b
6 changed files with 66 additions and 14 deletions

View File

@@ -22,5 +22,19 @@ void Webserv::_accept_connection(int fd)
_clients.push_back(Client());
_clients.back().fd = accepted_fd;
// HUGO WIP
//
_clients.back().port = ::itos(addr.sin_port);
struct in_addr tmp = { addr.sin_addr.s_addr };
_clients.back().ip = inet_ntoa( tmp );
std::cout
<< "port:" << _clients.back().port
<< " ip:" << _clients.back().ip
<< "\n";
//
// HUGO END
_epoll_update(accepted_fd, EPOLLIN, EPOLL_CTL_ADD);
}

View File

@@ -36,17 +36,18 @@ char** Webserv::_set_env(Client *client)
env[4] = _dup_env("PATH_INFO");
env[5] = _dup_env("PATH_TRANSLATED");
env[6] = _dup_env("QUERY_STRING");
env[7] = _dup_env("REMOTE_ADDR");
env[7] = _dup_env("REMOTE_ADDR", client->ip);
env[8] = _dup_env("REMOTE_HOST", client->get_headers("Host")); // just test
env[9] = _dup_env("REMOTE_IDENT");
env[10] = _dup_env("REMOTE_USER");
env[9] = _dup_env("REMOTE_IDENT"); // TODO: implement if authentification
env[10] = _dup_env("REMOTE_USER"); // TODO: implement if authentification
env[11] = _dup_env("REQUEST_METHOD", client->get_method());
env[12] = _dup_env("SCRIPT_NAME");
env[13] = _dup_env("SERVER_NAME");
env[14] = _dup_env("SERVER_PORT");
env[12] = _dup_env("SCRIPT_NAME"); // TODO: define (https://www.rfc-editor.org/rfc/rfc3875#section-4.1.13
// ,https://www.rfc-editor.org/rfc/rfc3875#section-8.2)
env[13] = _dup_env("SERVER_NAME", client->get_hostname());
env[14] = _dup_env("SERVER_PORT", client->get_port());
env[15] = _dup_env("SERVER_PROTOCOL", client->get_version());
env[16] = _dup_env("SERVER_SOFTWARE");
env[17] = _dup_env("REDIRECT_STATUS");
env[16] = _dup_env("SERVER_SOFTWARE", "webser/1.0");
env[17] = _dup_env("REDIRECT_STATUS", "200");
env[18] = NULL;
return env;

View File

@@ -24,6 +24,7 @@ void Webserv::init_virtual_servers(std::vector<ServerConfig>* servers)
std::perror("err socket()");
throw std::runtime_error("Socket init");
}
// HUGO ADD
//
// allow socket descriptor to be reuseable
@@ -36,6 +37,7 @@ void Webserv::init_virtual_servers(std::vector<ServerConfig>* servers)
}
//
// HUGO ADD END
_listen_sockets.push_back(ret);
_bind(_listen_sockets.back(), std::atoi(it->port.data()), it->host);