more script tests

+ add cgi checks for error in script output
+ fix script_path relative to absolute
+ cgi makefile more efficient
This commit is contained in:
Hugo LAMY
2022-08-16 18:24:49 +02:00
parent ff443c80b1
commit 1ed4128afc
21 changed files with 485 additions and 109 deletions

View File

@@ -69,14 +69,6 @@ std::string parse_env(const std::string & env)
return ret;
}
std::string parse_body()
{
std::string ret;
std::cin >> ret;
return ret;
}
std::string print_env(char **env, std::string tag)
{
std::string ret = "";
@@ -114,7 +106,7 @@ std::string
return ret;
}
std::string get_form_infos()
std::string get_form_infos(const std::string & rq_body)
{
std::string form_infos;
std::string method;
@@ -122,14 +114,14 @@ std::string get_form_infos()
method = parse_env("REQUEST_METHOD");
if (method == "POST")
form_infos = parse_body();
form_infos = rq_body;
else if (method == "GET")
form_infos = parse_env("QUERY_STRING");
return form_infos;
}
std::string get_value(std::string key)
std::string get_value(const std::string & key, const std::string & rq_body)
{
std::string infos;
std::string ret;
@@ -137,7 +129,7 @@ std::string get_value(std::string key)
size_t end;
size_t len;
infos = get_form_infos();
infos = get_form_infos(rq_body);
pos = str_tolower(infos).find(str_tolower(key));
if (pos == NPOS)
return "";
@@ -155,15 +147,17 @@ std::string get_value(std::string key)
}
void
fill_response_basic(char **env, std::string & http_body, std::string & http_header)
fill_response_basic(
char **env,
std::string & http_body,
std::string & http_header,
const std::string & rq_body)
{
std::string rq_method = "not found";
std::string rq_body;
std::string rq_query;
std::string form_infos;
rq_method = parse_env("REQUEST_METHOD");
rq_body = parse_body();
rq_query = parse_env("QUERY_STRING");
if (rq_method == "POST")