Tested and fixed server_name resolution
This commit is contained in:
@@ -1,8 +1,9 @@
|
|||||||
|
|
||||||
server {
|
server {
|
||||||
|
|
||||||
# this is a comment
|
# this is a comment
|
||||||
|
|
||||||
server_name our_server;
|
server_name server1;
|
||||||
|
|
||||||
listen 0.0.0.0:4040;
|
listen 0.0.0.0:4040;
|
||||||
|
|
||||||
@@ -92,5 +93,13 @@ server {
|
|||||||
# allow_methods DELETE;
|
# allow_methods DELETE;
|
||||||
# }
|
# }
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
server {
|
||||||
|
server_name server2;
|
||||||
|
|
||||||
|
listen 0.0.0.0:4040;
|
||||||
|
|
||||||
|
index index.html;
|
||||||
|
root ./www2/;
|
||||||
}
|
}
|
||||||
|
|||||||
7
memo.txt
7
memo.txt
@@ -1,21 +1,20 @@
|
|||||||
IN 42 SUBJECT AND/OR PRIORITY :
|
IN 42 SUBJECT AND/OR PRIORITY :
|
||||||
- CGI (TODO HUGO)
|
- CGI (TODO HUGO)
|
||||||
- chunked request (need testing)
|
|
||||||
|
|
||||||
- Need to test normal body parsing
|
- Need to test normal body parsing (Verif avec HUGO)
|
||||||
- upload files testing and adjustements
|
|
||||||
|
|
||||||
- Ecrire des tests !
|
- Ecrire des tests !
|
||||||
- handle redirection (Work, but weird behavior need deeper test)
|
- handle redirection (Work, but weird behavior need deeper test)
|
||||||
|
|
||||||
- check return 0 de send()
|
|
||||||
- curl --resolve, for testing hostname
|
- curl --resolve, for testing hostname
|
||||||
|
curl -v --resolve server1:4040:127.0.0.1 --resolve server2:4040:127.0.0.1 server1:4040
|
||||||
- test limit de connexions sur listen()
|
- test limit de connexions sur listen()
|
||||||
|
|
||||||
-----------------------------
|
-----------------------------
|
||||||
Si ce n'est pas deja fait :
|
Si ce n'est pas deja fait :
|
||||||
peut-être check si ip > 32bits
|
peut-être check si ip > 32bits
|
||||||
-----------------------------
|
-----------------------------
|
||||||
|
- chunked request (need testing)
|
||||||
- client_body_limit 0 valeur special pour desactiver dans config
|
- client_body_limit 0 valeur special pour desactiver dans config
|
||||||
- gerer le champ "Accept" du client
|
- gerer le champ "Accept" du client
|
||||||
- gerer les ".." dans un URL (verifier que l'on ne sort pas du dossier "root")
|
- gerer les ".." dans un URL (verifier que l'on ne sort pas du dossier "root")
|
||||||
|
|||||||
@@ -57,6 +57,11 @@ int Webserv::_send_response(Client *client)
|
|||||||
std::cerr << "client.fd =" << client->get_cl_fd() << "\n"; // DEBUG
|
std::cerr << "client.fd =" << client->get_cl_fd() << "\n"; // DEBUG
|
||||||
return SEND_CLOSE;
|
return SEND_CLOSE;
|
||||||
}
|
}
|
||||||
|
if (ret == 0) // actually never happen ?
|
||||||
|
{
|
||||||
|
std::cerr << "SEND RET 0 for client.fd =" << client->get_cl_fd() << "\n"; // DEBUG
|
||||||
|
return SEND_CLOSE;
|
||||||
|
}
|
||||||
std::cerr << "ret send() = " << ret << "\n"; // DEBUG
|
std::cerr << "ret send() = " << ret << "\n"; // DEBUG
|
||||||
|
|
||||||
return SEND_COMPLETE;
|
return SEND_COMPLETE;
|
||||||
@@ -167,12 +172,17 @@ void Webserv::_append_body(Client *client, const std::string &body, const std::s
|
|||||||
ServerConfig *_determine_process_server(Client *client, std::vector<ServerConfig> &servers)
|
ServerConfig *_determine_process_server(Client *client, std::vector<ServerConfig> &servers)
|
||||||
{
|
{
|
||||||
/*
|
/*
|
||||||
|
Behavior like this :
|
||||||
http://nginx.org/en/docs/http/request_processing.html
|
http://nginx.org/en/docs/http/request_processing.html
|
||||||
_determine_process_server() should be complete.
|
|
||||||
TODO : test it
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
std::string const &server_name = client->get_rq_headers("Host");
|
std::string server_name = client->get_rq_headers("Host");
|
||||||
|
std::cerr << "server_name = " << server_name << "\n";
|
||||||
|
size_t pos = server_name.rfind(':');
|
||||||
|
if (pos != NPOS)
|
||||||
|
server_name.erase(pos);
|
||||||
|
std::cerr << "server_name = " << server_name << "\n";
|
||||||
|
|
||||||
std::vector<ServerConfig>::iterator it = servers.begin();
|
std::vector<ServerConfig>::iterator it = servers.begin();
|
||||||
std::vector<ServerConfig>::iterator default_server = servers.end();
|
std::vector<ServerConfig>::iterator default_server = servers.end();
|
||||||
|
|
||||||
|
|||||||
11
www2/index.html
Normal file
11
www2/index.html
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<title>Le Webserv</title>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<h1 style="text-align:center">( ͡◉ ͜ ʖ ͡◉) Le index du serveur 2 ! </h1>
|
||||||
|
<hr>
|
||||||
|
<p style="text-align:center">˚ಎ˚</p>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
Reference in New Issue
Block a user