+ in fill_script_path() : scipt_path and script_info are filled, removing leadin dot
+ in _cgi_pos() : check validity of extension if it's only alpha characters + severall pbm appears
This commit is contained in:
@@ -202,27 +202,26 @@ void Client::parse_request_body()
|
||||
status = 413; // HTTP Client Errors
|
||||
}
|
||||
|
||||
// TODO HUGO : faire la fonction, mdr.
|
||||
void Client::fill_script_path(const std::string &path, size_t pos)
|
||||
// TODO HUGO : what if the root doesn't start with leading "." ?
|
||||
void Client::fill_script_path(std::string &path, size_t pos)
|
||||
{
|
||||
(void)path;
|
||||
(void)pos;
|
||||
/* size_t pos;
|
||||
size_t len = path.size();
|
||||
std::string path = this->get_rq_abs_path();
|
||||
std::string tmp;
|
||||
|
||||
pos = path.find(script);
|
||||
if (pos == 0)
|
||||
// should start with "/"
|
||||
// and being relative to the root :
|
||||
// if the path to the script is "root/cgi-bin/cgi.php"
|
||||
// the path relative to the root would be : /cgi-bin/cgi.php
|
||||
// here we receive the path as : "./cgi-bin/cgi.php/optionnal"
|
||||
// so we should remove the leading "."
|
||||
/*DEBUG*/ std::cout << "\n" << B_PURPLE << "debug path dot" << RESET << "\npath:[" << path << "]\n" << "&path[pos]:[" << &path[pos] << "]\n";
|
||||
if (path[0] == '.')
|
||||
{
|
||||
tmp = path.substr(0, pos + len);
|
||||
_request.script.path = "./srcs" + tmp; // TODO: root path ?
|
||||
path.erase(0, 1);
|
||||
pos--;
|
||||
} /*DEBUG*/ std::cout << "path:[" << path << "]\n" << "&path[pos]:[" << &path[pos] << "]\n";
|
||||
|
||||
_request.script.path = "./srcs" + tmp; // TODO: root path ?
|
||||
_request.script.info = path.substr(pos + len);
|
||||
return true;
|
||||
}
|
||||
return false; */
|
||||
_request.script.path = path.substr(0, pos); /*DEBUG*/ std::cout << "script_path:[" << _request.script.path << "]\n";
|
||||
_request.script.info = path.substr(pos); /*DEBUG*/ std::cout << "script_info:[" << _request.script.info << "]\n" << B_PURPLE << "end debug path dot" << RESET << "\n";
|
||||
}
|
||||
|
||||
void Client::clear()
|
||||
|
||||
Reference in New Issue
Block a user