This commit is contained in:
Eric LAZO
2022-08-17 19:45:37 +02:00
parent 4fdbb1e0eb
commit da5d1f38b0
8 changed files with 205 additions and 32 deletions

23
42.config Normal file
View File

@@ -0,0 +1,23 @@
server {
server_name server1;
listen 0.0.0.0:4040;
client_body_limit 1000;
index youpi.bla; # this is another comment
root ./YoupiBanane/;
error_page 404 ./www/error_pages/error_404.html;
location / {
allow_methods GET;
}
location /directory {
index youpi.bad_extention;
}
}

View File

@@ -5,7 +5,7 @@ server {
server_name server1;
listen 0.0.0.0:4040;
listen 0.0.0.0:8080;
client_body_limit 1;
# Max == 18446744073709551615 / 1024 == 18014398509481984

98
Tester/test3.config Normal file
View File

@@ -0,0 +1,98 @@
server {
# this is a comment
server_name server1;
listen 8080;
# listen 70000;
# client_body_limit asdfa;
client_body_limit 1000;
# Max == 18446744073709551615 / 1024 == 18014398509481984
index index.html; # this is another comment
#index mdr.html; # this is another comment
root ./Tester/www/;
error_page 404 ./Tester/www/error_pages/error_404.html;
location / {
allow_methods GET;
root ./Tester/www/;
}
location /srcs/cgi-bin/ {
root ./srcs/cgi-bin/;
allow_methods POST;
cgi_ext php;
}
location /list {
autoindex on;
}
location /cgi-bin {
root ./srcs/cgi-bin/;
cgi_ext out php sh;
}
location /upload {
allow_methods POST;
autoindex on;
upload_dir ./Tester/www/user_files/;
# root doesnt matter if used only with POST and no CGI
}
location /the_dump {
allow_methods GET DELETE;
root ./Tester/www/user_files;
autoindex on;
}
location /redirect {
redirect 307 https://fr.wikipedia.org/wiki/Ketchup;
# redirect 307 https://www.youtube.com/watch?v=rG6b8gjMEkw;
}
location /test {
index index1.html subdex.html;
root ./Tester/www/test/;
}
location /stylesheet {
root ./stylesheet/;
}
location /test/index1.html {
root ./Tester/www/test/index1.html;
index index1.html subdex.html;
}
location /hilarious_404/ {
redirect 301 https://berniesanders.com/404/;
}
location /test/something.html {
# allow_methods DELETE;
root ./Tester/www/test/something.html;
}
location /test/test_deeper/ {
# allow_methods
root ./Tester/www/test/test_deeper/;
}
location /test/test_deeper/super_deep {
root ./Tester/www/test/test_deeper/super_deep/;
}
# location /test/test_deeper/something.html {
# allow_methods DELETE;
# }
}

View File

@@ -3,7 +3,7 @@
test_name="Body Test"
config_file="./Tester/test2.config"
port=4040
port=8080
host="localhost"
#paths=("/" "/test" "/test/" "/list" "list" "/wrong") # you can add many

74
Tester/test_port.sh Normal file
View File

@@ -0,0 +1,74 @@
#! /bin/bash
test_name="Port Test"
config_file="./Tester/test3.config"
port=8080
host="localhost"
#paths=("/" "/test" "/test/" "/list" "list" "/wrong") # you can add many
paths=("/") # you can add many
#methods=("GET" "POST" "DELETE")
methods=("GET")
httpz=("HTTP/1.1")
l1="${methods[0]} ${paths[0]} ${httpz[0]}"
header="Host: $host"
body=
run_this_test()
{
for i in "${paths[@]}"
do
l1="${methods[0]} $i ${httpz[0]}"
request="$l1\n$header\n$body\n"
{
echo "----- $test_name -----"
echo -e "$_RED$request$_END"
} >> telnet.log
echo -e "$request"
sleep 1
echo -e "\n" >> telnet.log
done
}
# expected result...
files=()
file="expected_path_test.txt"
files+=("expected_path_test.txt")
#files+=("expected_path_root_test.txt")
#files+=("expected_path_testnoslash_test.txt")
#files+=("expected_path_testslash_test.txt")
#files+=("expected_path_list_test.txt")
#files+=("expected_path_badlist_test.txt")
#files+=("expected_path_wrong_test.txt")
#local_expected_test_file=$file
local_expected_test_files=()
test_path=""
add_path()
{
for i in "${files[@]}"
do
local_expected_test_files+=("$test_path$i")
done
}
#add_path

View File

@@ -1,27 +1,4 @@
telnet> Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
HTTP/1.1 200 OK
Server: Webserv/0.1
Connection: keep-alive
Content-Type: text/html; charset=UTF-8
Content-Length: 193
<!DOCTYPE html>
<html>
<head>
<title>Le Webserv</title>
</head>
<body>
<h1 style="text-align:center">Le index (˘ ͜ʖ˘)</h1>
<hr>
<p style="text-align:center">(˚3˚)</p>
</body>
</html>
HTTP/1.1 400 Bad Request
Server: Webserv/0.1
Connection: close
Content-Type: text/html; charset=UTF-8
Content-Length: 185
<!DOCTYPE html><html><head><title>400 Bad Request</title></head><body><h1 style="text-align:center">400 Bad Request</h1><hr><p style="text-align:center">Le Webserv/0.1</p></body></html>
telnet> ?Invalid command
telnet> ?Invalid command
telnet> telnet> telnet>

View File

@@ -22,7 +22,8 @@ _END='\033[0m'
#test_file_names=("test_template.sh" "test_header.sh" "test_path.sh")
#test_file_names=("test_method.sh" "test_header.sh" "test_path.sh")
test_file_names=("test_body.sh")
test_file_names=("test_port.sh")
#test_file_names=("test_body.sh")
#test_file_names=("test_valid_uri.sh")
#test_file_names=("test_path.sh")

View File

@@ -421,9 +421,9 @@ void Client::_parse_port_hostname(std::string host)
void Client::_check_request_errors()
{
// /* Debug */ std::cerr << "Content-Length=" << get_rq_headers("Content-Length") << "\n";
// /* Debug */ std::cerr << "strtoul=" << std::strtoul(get_rq_headers("Content-Length").c_str(), NULL, 10) << "\n";
// /* Debug */ std::cerr << "client_body_limit=" << assigned_server->client_body_limit << "\n";
/* Debug */ std::cerr << "Content-Length=" << get_rq_headers("Content-Length") << "\n";
/* Debug */ std::cerr << "strtoul=" << std::strtoul(get_rq_headers("Content-Length").c_str(), NULL, 10) << "\n";
/* Debug */ std::cerr << "client_body_limit=" << assigned_server->client_body_limit << "\n";
///////////////////////
// Request line checks
if (_request.method == UNKNOWN)