From f17bc9fa58a84ce39bbcf17db4fd10f74a080cd0 Mon Sep 17 00:00:00 2001 From: hugogogo Date: Fri, 12 Aug 2022 23:31:59 +0200 Subject: [PATCH] wip test path cgi : - _cgi_pos seems to be ok - construct url from return is not implemented yet + renamed script with extension .php and .cpp --- default.config | 5 +++++ srcs/cgi-bin/cgi.cpp | Bin 873 -> 14576 bytes srcs/cgi-bin/{php-cgi => cgi.php} | 0 srcs/cgi-bin/cgi_cpp.cgi | Bin 14576 -> 0 bytes srcs/webserv/Webserv.hpp | 1 + srcs/webserv/cgi_script.cpp | 36 ++++++++++++++++++++++-------- srcs/webserv/response.cpp | 21 +++++++++-------- 7 files changed, 45 insertions(+), 18 deletions(-) mode change 100644 => 100755 srcs/cgi-bin/cgi.cpp rename srcs/cgi-bin/{php-cgi => cgi.php} (100%) delete mode 100755 srcs/cgi-bin/cgi_cpp.cgi diff --git a/default.config b/default.config index 088b63d..a5dc5f7 100644 --- a/default.config +++ b/default.config @@ -19,6 +19,11 @@ server { autoindex on; } + location /cgi-bin { + root ./srcs/cgi-bin/; + cgi_ext cgi php txt; + } + location /redirect { redirect 307 https://fr.wikipedia.org/wiki/Ketchup; # redirect 307 https://www.youtube.com/watch?v=rG6b8gjMEkw; diff --git a/srcs/cgi-bin/cgi.cpp b/srcs/cgi-bin/cgi.cpp old mode 100644 new mode 100755 index 3882239dbd5a205c4338311a4717a06be24ccd32..95013cbab183e1dadb657b89fd40e3c70bfc5ed6 GIT binary patch literal 14576 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 RLi+cs2IcQ_l!9CTe*xzN5cL26 literal 873 zcmZ`%$!@|h5Ix&pF%6eO3IR@4Vz|&%tptbkP?ZX$i3^s%p|(M#h=1=G6Lt<+^ybZ* zH%keGOvkf~0~5J6iYJpcE$u*rgd8411&s=6V3G(4*Y+<-Zy+5d3M!RkUWO$l+GJtq z6bK(K-koMO&yYWB302FB2~yNa3?fBd?Pm5LKUN0wB>*D=03IplB76;}r? fbq_<0qJUlV`p(mQW^Co{ncEJ`Oi8FmbVdIGW1R>M diff --git a/srcs/cgi-bin/php-cgi b/srcs/cgi-bin/cgi.php similarity index 100% rename from srcs/cgi-bin/php-cgi rename to srcs/cgi-bin/cgi.php diff --git a/srcs/cgi-bin/cgi_cpp.cgi b/srcs/cgi-bin/cgi_cpp.cgi deleted file mode 100755 index 95013cbab183e1dadb657b89fd40e3c70bfc5ed6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 14576 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 RLi+cs2IcQ_l!9CTe*xzN5cL26 diff --git a/srcs/webserv/Webserv.hpp b/srcs/webserv/Webserv.hpp index 12964a3..ee058d3 100644 --- a/srcs/webserv/Webserv.hpp +++ b/srcs/webserv/Webserv.hpp @@ -31,6 +31,7 @@ # include "utils.hpp" # include "http_status.hpp" # include "autoindex.hpp" +# include "colors.h" extern bool g_run; extern int g_last_signal; diff --git a/srcs/webserv/cgi_script.cpp b/srcs/webserv/cgi_script.cpp index fe81ff4..e928180 100644 --- a/srcs/webserv/cgi_script.cpp +++ b/srcs/webserv/cgi_script.cpp @@ -4,18 +4,36 @@ // TODO HUGO : go ameliorer la recherche comme on a dit. size_t Webserv::_cgi_pos(Client *client, std::string &path) { - size_t pos = NPOS; + std::vector v_ext; std::vector::const_iterator it; - it = client->assigned_location->cgi_ext.begin(); - while (it != client->assigned_location->cgi_ext.end()) + std::vector::const_iterator it_end; + size_t pos = 0; + + /*DEBUG*/ it = client->assigned_location->cgi_ext.begin(); std::cout << B_YELLOW << "\nDEBUG _cgi_pos()\n" << RESET << "vector_ext.size():[" << client->assigned_location->cgi_ext.size() << "]\n\n"; + v_ext = client->assigned_location->cgi_ext; + if (v_ext.empty()) + return NPOS; + /*DEBUG*/ std::cout << "ext:[" << *it << "]\n" << "path:[" << path << "]\n\n"; + it_end = client->assigned_location->cgi_ext.end(); + while (pos < path.size()) { - pos = std::min(path.find(*it) + it->size(), pos); - ++it; + /*DEBUG*/ std::cout << "\nwhile\n"; + if (path.compare(pos, 2, "./") == 0) + pos += 2; + /*DEBUG*/ std::cout << "&path[pos]:[" << &path[pos] << "]\n"; + pos = path.find('.', pos); + if (pos == NPOS) + return pos; + it = client->assigned_location->cgi_ext.begin(); + for ( ; it != it_end; ++it) + { + /*DEBUG*/ std::cout << " for\n"; std::cout << " &path[pos]:[" << &path[pos] << "]\n" << " *it:[" << *it << "]\n" << " (*it).size():[" << (*it).size() << "]\n" << " path.substr(pos, (*it).size()):[" << path.substr(pos + 1, (*it).size()) << "]\n\n"; + if (path.compare(pos + 1, (*it).size(), *it) == 0) + return pos; + } + pos++; } - if (pos == NPOS) - return false; - else - return true; + return pos; } std::string Webserv::_exec_cgi(Client *client) diff --git a/srcs/webserv/response.cpp b/srcs/webserv/response.cpp index 436e478..302e20b 100644 --- a/srcs/webserv/response.cpp +++ b/srcs/webserv/response.cpp @@ -71,15 +71,18 @@ void Webserv::_construct_response(Client *client) { std::string path = _replace_url_root(client, client->get_rq_abs_path()); -/* size_t pos = _cgi_pos(client, path); - if (pos != NPOS) - { - client->fill_script_path(path, pos); - std::string script_output = _exec_cgi(client); - _check_script_output(client, script_output); - client->response += script_output; - return; - } */ + size_t pos = _cgi_pos(client, path); +//debug +std::cout << "pos:" << pos << B_YELLOW << "\nfin debug _cgi_pos()\n\n" << RESET; + (void)pos; +// if (pos != NPOS) +// { +// client->fill_script_path(path, pos); +// std::string script_output = _exec_cgi(client); +// _check_script_output(client, script_output); +// client->response += script_output; +// return; +// } _process_method(client, path); }