diff --git a/Tester/test2.config b/Tester/test2.config new file mode 100644 index 0000000..dc39e1a --- /dev/null +++ b/Tester/test2.config @@ -0,0 +1,95 @@ + +server { + +# this is a comment + + server_name server1; + + listen 0.0.0.0:4040; + + client_body_limit 1; + # Max == 18446744073709551615 / 1024 == 18014398509481984 + + index index.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 doesn’t 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; +# } + +} diff --git a/Tester/test_body.sh b/Tester/test_body.sh new file mode 100644 index 0000000..63c4bde --- /dev/null +++ b/Tester/test_body.sh @@ -0,0 +1,84 @@ +#! /bin/bash + +test_name="Body Test" + +config_file="./Tester/test2.config" +port=4040 +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\n" +body="this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message this is a message \n" + +# turns out this does nothing... +#header_cycle=("Content-Length: 17" "Content-Length: 14" "Content-Length: 25") +#header_cycle=("Content-Length: 17" "") +#header_cycle=("Content-Length: 17") +#header_cycle=() +header+="Content-Length: 15" + +run_this_test() +{ + +# for i in "${header_cycle[@]}" + for i in "${paths[@]}" + do +# l1="${methods[0]} ${paths[0]} ${httpz[0]}" + l1="${methods[0]} $i ${httpz[0]}" +# header_send="$header$i" + header_send="$header" + request="$l1\n$header_send\n\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_body_test.txt" +files+=("expected_body_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 + + + + diff --git a/Tester/test_valid_uri.sh b/Tester/test_valid_uri.sh index ba273a5..00dc8fe 100644 --- a/Tester/test_valid_uri.sh +++ b/Tester/test_valid_uri.sh @@ -47,15 +47,7 @@ files=() file="expected_valid_uri_test.txt" files+=("expected_valid_files_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="" diff --git a/compare.txt b/compare.txt index 2ff687b..689022d 100644 --- a/compare.txt +++ b/compare.txt @@ -1,114 +1,10 @@ telnet> Trying 127.0.0.1... Connected to localhost. Escape character is '^]'. -HTTP/1.1 200 OK +HTTP/1.1 413 Content Too Large Server: Webserv/0.1 -Connection: keep-alive +Connection: close Content-Type: text/html; charset=UTF-8 -Content-Length: 193 +Content-Length: 197 - - - - Le Webserv - - -

Le index (˘ ͜ʖ˘)

-
-

(˚3˚)

- - -HTTP/1.1 200 OK -Server: Webserv/0.1 -Connection: keep-alive -Content-Type: text/css; charset=UTF-8 -Content-Length: 43 - -h1 { - color: red; - text-align: center; -} -HTTP/1.1 200 OK -Server: Webserv/0.1 -Connection: keep-alive -Content-Type: text/html; charset=UTF-8 -Content-Length: 207 - - - - - Webserv test Something - - -

Webserv Test Something

-
-

(˚3˚)

- - -HTTP/1.1 200 OK -Server: Webserv/0.1 -Connection: keep-alive -Content-Type: text/html; charset=UTF-8 -Content-Length: 207 - - - - - Webserv test Something - - -

Webserv Test Something

-
-

(˚3˚)

- - -HTTP/1.1 200 OK -Server: Webserv/0.1 -Connection: keep-alive -Content-Type: text/html; charset=UTF-8 -Content-Length: 227 - - - - - Webserv test index - - - -

Webserv Test Index

-
-

(˚3˚)

- - -HTTP/1.1 200 OK -Server: Webserv/0.1 -Connection: keep-alive -Content-Type: text/html; charset=UTF-8 -Content-Length: 1277 - -Index of ./Tester/www/

Index of ./Tester/www/


..
-upload_form.html
-form_get.html
-kermit.ico
-upload_form_single.html
-Cagneyc_intro.gif
-Van_Eyck_Portrait_Arnolfini.jpg
-root.png
-test
-drill.jpg
-punpun.png
-favicon.ico
-index.html
-rfc2119.html
-error_pages
-rfc2119_files
-

HTTP/1.1 301 Moved Permanently -Location: https://berniesanders.com/404/ - -Server: Webserv/0.1 -Connection: keep-alive -HTTP/1.1 307 Temporary Redirect -Location: https://fr.wikipedia.org/wiki/Ketchup - -Server: Webserv/0.1 -Connection: keep-alive +413 Content Too Large

413 Content Too Large


Le Webserv/0.1

\ No newline at end of file diff --git a/main_test.sh b/main_test.sh index 4049bfd..6cda415 100755 --- a/main_test.sh +++ b/main_test.sh @@ -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_valid_uri.sh") +test_file_names=("test_body.sh") +#test_file_names=("test_valid_uri.sh") #test_file_names=("test_path.sh") test_files=() diff --git a/srcs/config/postProcessing.cpp b/srcs/config/postProcessing.cpp index 63d4861..dfe5ab4 100644 --- a/srcs/config/postProcessing.cpp +++ b/srcs/config/postProcessing.cpp @@ -23,11 +23,6 @@ void ConfigParser::_post_processing(std::vector *servers) if (it->client_body_limit == 0) it->client_body_limit = 1 * MB; - - - // if error_pages is left empty, we'll use the defaults which - // i believe are set elsewhere... - if (!_find_root_path_location(it->locations)) { @@ -84,7 +79,6 @@ void ConfigParser::_post_processing(std::vector *servers) } } -// const? bool ConfigParser::_find_root_path_location(std::vector locations) const { std::vector::const_iterator it = locations.begin(); @@ -96,5 +90,4 @@ bool ConfigParser::_find_root_path_location(std::vector location ++it; } return false; -} - +} \ No newline at end of file diff --git a/urls.txt b/urls.txt index 82ecc7e..bd87e74 100644 --- a/urls.txt +++ b/urls.txt @@ -1,5 +1,9 @@ http://localhost:4040 +http://localhost:4040/punpun.png +http://localhost:4040/Cagneyc_intro.gif +http://localhost:4040/drill.jpg http://localhost:4040/test http://localhost:4040/test/test_deeper/ http://localhost:4040/test/test_deeper/super_deep/ http://localhost:4040/test/index1.html +