diff --git a/cgi_tester b/cgi_tester new file mode 100644 index 0000000..031c2ca Binary files /dev/null and b/cgi_tester differ diff --git a/config/default.conf b/config/default.conf index 0d9ff60..27799f6 100644 --- a/config/default.conf +++ b/config/default.conf @@ -123,4 +123,39 @@ server { cgi_enabled yes; cgi_ext .php /usr/bin/php-cgi; -} \ No newline at end of file +} + +server { + listen 8083; + host 127.0.0.1; + server_name localhost; + + root ./htdocs/YoupiBanane/; + index index.html index2.htm; + + location / { + root ./htdocs/YoupiBanane/; + index index.html; + allowed_methods GET; + + } + location /put_test { + root ./htdocs/YoupiBanane/; + allowed_methods PUT; + } + + location /post_body { + root ./htdocs/YoupiBanane/; + client_max_body_size 100; + allowed_methods POST; + + } + location /directory { + root ./htdocs/YoupiBanane/; + index youpi.bad_extension + allowed_methods GET; + } + + cgi_enabled yes; + cgi_ext .bla ./ubuntu_cgi_tester + } \ No newline at end of file diff --git a/htdocs/YoupiBanane/Yeah/not_happy.bad_extension b/htdocs/YoupiBanane/Yeah/not_happy.bad_extension new file mode 100644 index 0000000..e69de29 diff --git a/htdocs/YoupiBanane/nop/youpi.bad_extension b/htdocs/YoupiBanane/nop/youpi.bad_extension new file mode 100644 index 0000000..e69de29 diff --git a/htdocs/YoupiBanane/nop/youpi.pouic b/htdocs/YoupiBanane/nop/youpi.pouic new file mode 100644 index 0000000..e69de29 diff --git a/htdocs/YoupiBanane/youpi.bad_extension b/htdocs/YoupiBanane/youpi.bad_extension new file mode 100644 index 0000000..e69de29 diff --git a/htdocs/YoupiBanane/youpi.bla b/htdocs/YoupiBanane/youpi.bla new file mode 100644 index 0000000..e69de29 diff --git a/tester b/tester new file mode 100644 index 0000000..ccb1060 Binary files /dev/null and b/tester differ diff --git a/ubuntu_cgi_tester b/ubuntu_cgi_tester new file mode 100755 index 0000000..9675194 Binary files /dev/null and b/ubuntu_cgi_tester differ diff --git a/ubuntu_tester b/ubuntu_tester new file mode 100755 index 0000000..4b663cb Binary files /dev/null and b/ubuntu_tester differ diff --git a/webserv/config/validation/ConfigValidator.cpp b/webserv/config/validation/ConfigValidator.cpp index dbd02b3..5faaea2 100644 --- a/webserv/config/validation/ConfigValidator.cpp +++ b/webserv/config/validation/ConfigValidator.cpp @@ -37,7 +37,8 @@ ConfigValidator::ConfigValidator(const GlobalConfig *config) : engine_(std::make /*Location Directive Rules*/ engine_->addLocationRule("allowed_methods", - std::make_unique(std::vector{"GET", "POST", "DELETE"})); + std::make_unique(std::vector{"GET", "POST", "DELETE", "PUT"}, + true)); engine_->addLocationRule("root", std::make_unique(true)); engine_->addLocationRule("cgi_ext", std::make_unique(false)); diff --git a/webserv/config/validation/directive_rules/CgiExtValidationRule.cpp b/webserv/config/validation/directive_rules/CgiExtValidationRule.cpp index fd210f5..6cc041b 100644 --- a/webserv/config/validation/directive_rules/CgiExtValidationRule.cpp +++ b/webserv/config/validation/directive_rules/CgiExtValidationRule.cpp @@ -17,7 +17,7 @@ CgiExtValidationRule::CgiExtValidationRule(bool requiresValue) bool isAllowedCGIExtension(const std::string &extension) { - static const std::vector allowedExtensions = {".php", ".py"}; + static const std::vector allowedExtensions = {".php", ".py", ".bla"}; return std::ranges::any_of(allowedExtensions, [&extension](const auto &it) { return extension == it; }); }