diff --git a/.clang-format b/.clang-format new file mode 100644 index 0000000..7a2deec --- /dev/null +++ b/.clang-format @@ -0,0 +1,5 @@ +UseTab: Always +IndentWidth: 4 +TabWidth: 4 +AlignConsecutiveDeclarations: true +ConstructorInitializerIndentWidth: 4 diff --git a/exemples/test.toml b/exemples/test.toml index 0c3b0ff..4db457e 100644 --- a/exemples/test.toml +++ b/exemples/test.toml @@ -1,21 +1,37 @@ [server] -server_names = { "localhost", "2B5.local" } # can be a array or a str -port = { 8080, 8090 } # can be a array or a int +server_names = { "localhost", "2B5.local" } +host = "localhost" +port = 8080 -root = "/nfs/adjoly/workspace/kanel.ovh" -max_post_size = "10M" +root = "/var/www/html" +methods = { "GET", "POST", "DELETE" } -cookies = true +dirlist = false uploads = false -dirlist = true +cookies = false -methods = {"GET", "POST", "DELETE"} -index = "index.html" +cgi_path = "/bin/php" +cgi_ext = ".php" -[server.error_page] +client_max_body_size = "10M" + +[server.error_pages] 404 = "not_found.html" 401 = "unauthorized.html" 402 = "uwu.html" -[server.cgi] -py = "/usr/bin/python3" +[server.location./] +methods = { "GET" } +root = "/var/www/html" +dirlist = true + +[server.location./api] +methods = { "GET", "POST" } +uploads = true +root = "/var/www/api" +upload_path = "/etc/webserv/up" +cgi_path = "/bin/go" +cgi_ext = ".go" + +[server.location./redir] +redirect = "https://kanel.ovh" diff --git a/includes/config/AConfig.hpp b/includes/config/AConfig.hpp new file mode 100644 index 0000000..ce612ab --- /dev/null +++ b/includes/config/AConfig.hpp @@ -0,0 +1,25 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* AConfig.hpp :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: adjoly +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2025/03/19 14:11:28 by adjoly #+# #+# */ +/* Updated: 2025/03/19 14:27:56 by adjoly ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#pragma once + +#include +#include +#include + +class AConfig { + public: + protected: + private: + std::vector serverNames; + std::map cgi; +}; diff --git a/includes/config/ARoute.hpp b/includes/config/ARoute.hpp new file mode 100644 index 0000000..db5a1e6 --- /dev/null +++ b/includes/config/ARoute.hpp @@ -0,0 +1,15 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ARoute.hpp :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: adjoly +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2025/03/19 14:59:41 by adjoly #+# #+# */ +/* Updated: 2025/03/19 15:52:16 by adjoly ### ########.fr */ +/* */ +/* ************************************************************************** */ + +class Route { + +}; diff --git a/includes/config/ParsedConfig.hpp b/includes/config/ParsedConfig.hpp new file mode 100644 index 0000000..05ba4f3 --- /dev/null +++ b/includes/config/ParsedConfig.hpp @@ -0,0 +1,22 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ParsedConfig.hpp :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: adjoly +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2025/03/19 14:11:28 by adjoly #+# #+# */ +/* Updated: 2025/03/19 15:52:16 by adjoly ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#pragma once + + +class config { + public: + protected: + private: + std::map cgi; + +}; diff --git a/includes/config/Route.hpp b/includes/config/Route.hpp new file mode 100644 index 0000000..6dbcaac --- /dev/null +++ b/includes/config/Route.hpp @@ -0,0 +1,32 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* Route.hpp :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: adjoly +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2025/03/19 14:59:41 by adjoly #+# #+# */ +/* Updated: 2025/03/19 15:52:16 by adjoly ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#pragma once + +#include + +namespace webserv { +namespace config { + +struct cgi { + std::string path; + std::string ext; +}; + +class Route { + public: + protected: + private: +}; + +} // namespace config +} // namespace webserv diff --git a/includes/config/default.hpp b/includes/config/default.hpp new file mode 100644 index 0000000..6337e52 --- /dev/null +++ b/includes/config/default.hpp @@ -0,0 +1,16 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* default.hpp :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: adjoly +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2025/03/19 14:15:51 by adjoly #+# #+# */ +/* Updated: 2025/03/19 14:16:39 by adjoly ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#pragma once + +#include +#include "Config.hpp" diff --git a/lib/tomlpp b/lib/tomlpp index 0b51282..d81ec4a 160000 --- a/lib/tomlpp +++ b/lib/tomlpp @@ -1 +1 @@ -Subproject commit 0b512825bc9166a04446cef5ff3a1026d53d4f3b +Subproject commit d81ec4a0baf2771e083f3514cb0b7794bbe68f42 diff --git a/src/main.cpp b/src/main.cpp index 75636b5..446d767 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -6,8 +6,10 @@ /* By: mmoussou + +int main(int, char **) { return 0; }