This commit is contained in:
2018-06-12 21:25:35 +02:00
parent 114f45fc87
commit 707637bde0

View File

@ -37,7 +37,7 @@ void log_error(const char *prefix, const string &str) {
log(prefix, "\x1B[1;31m" + str + "\x1B[0m"); log(prefix, "\x1B[1;31m" + str + "\x1B[0m");
} }
void php_error_handler(const char* prefix, FILE *stderr) { void php_error_handler(const char *prefix, FILE *stderr) {
string line; string line;
while (!(line = read_line(stderr)).empty()) { while (!(line = read_line(stderr)).empty()) {
log_error(prefix, line); log_error(prefix, line);
@ -246,9 +246,13 @@ bool connection_handler(const char *preprefix, const char *col1, const char *col
" REDIRECT_STATUS=" + cli_encode("CGI") + " REDIRECT_STATUS=" + cli_encode("CGI") +
" DOCUMENT_ROOT=" + cli_encode(getWebRoot(host)) + " DOCUMENT_ROOT=" + cli_encode(getWebRoot(host)) +
" " + req.cgiExport() + " " + req.cgiExport() +
(req.isExistingField("Content-Length")?" CONTENT_LENGTH="+cli_encode(req.getField("Content-Length")):"") + (req.isExistingField("Content-Length") ? " CONTENT_LENGTH=" +
(req.isExistingField("Content-Type")?" CONTENT_TYPE="+cli_encode(req.getField("Content-Type")):"") + cli_encode(req.getField(
((socket->isSecured())?" HTTPS=on":"") + "Content-Length"))
: "") +
(req.isExistingField("Content-Type") ? " CONTENT_TYPE=" + cli_encode(
req.getField("Content-Type")) : "") +
((socket->isSecured()) ? " HTTPS=on" : "") +
" PATH_INFO=" + cli_encode(path.getFilePathInfo()) + " PATH_INFO=" + cli_encode(path.getFilePathInfo()) +
" PATH_TRANSLATED=" + cli_encode(path.getAbsolutePath()) + " PATH_TRANSLATED=" + cli_encode(path.getAbsolutePath()) +
" QUERY_STRING=" + cli_encode(path.getQuery()) + " QUERY_STRING=" + cli_encode(path.getQuery()) +
@ -271,7 +275,9 @@ bool connection_handler(const char *preprefix, const char *col1, const char *col
childpid = pipes.pid; childpid = pipes.pid;
//if (req.getMethod() == "POST" || req.getMethod() == "PUT") { //if (req.getMethod() == "POST" || req.getMethod() == "PUT") {
long len = req.isExistingField("Content-Length") ? strtol(req.getField("Content-Length").c_str(), nullptr, 10) : -1; long len = req.isExistingField("Content-Length") ? strtol(
req.getField("Content-Length").c_str(), nullptr, 10) : (
req.getMethod() == "POST" || req.getMethod() == "PUT)?-1:0;
log(prefix, to_string(len)); log(prefix, to_string(len));
socket->receive(pipes.stdin, len); socket->receive(pipes.stdin, len);
//} //}
@ -283,7 +289,7 @@ bool connection_handler(const char *preprefix, const char *col1, const char *col
while (!(line = read_line(pipes.stdout)).empty()) { while (!(line = read_line(pipes.stdout)).empty()) {
long pos = line.find(':'); long pos = line.find(':');
string index = line.substr(0, pos); string index = line.substr(0, pos);
string data = line.substr(pos+1, line.length() - pos); string data = line.substr(pos + 1, line.length() - pos);
while (index[0] == ' ') index.erase(index.begin() + 0); while (index[0] == ' ') index.erase(index.begin() + 0);
while (index[index.length() - 1] == ' ') index.erase(index.end() - 1); while (index[index.length() - 1] == ' ') index.erase(index.end() - 1);
@ -317,7 +323,8 @@ bool connection_handler(const char *preprefix, const char *col1, const char *col
bool compress = /*path.isStatic() &&*/ type.find("text/") == 0 && bool compress = /*path.isStatic() &&*/ type.find("text/") == 0 &&
req.isExistingField("Accept-Encoding") && req.isExistingField("Accept-Encoding") &&
req.getField("Accept-Encoding").find("deflate") != string::npos; req.getField("Accept-Encoding").find(
"deflate") != string::npos;
if (compress) { if (compress) {
req.setField("Accept-Ranges", "none"); req.setField("Accept-Ranges", "none");