CGI stderr handler

This commit is contained in:
2018-06-11 23:01:44 +02:00
parent 70f0b6f94a
commit 6c3e4c0ccd

View File

@ -37,6 +37,14 @@ 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) {
string line;
while (!(line = read_line(stderr)).empty()) {
log_error(prefix, line);
}
fclose(stderr);
}
string getETag(string filename) { string getETag(string filename) {
ifstream etags = ifstream("/var/necronda/ETags"); ifstream etags = ifstream("/var/necronda/ETags");
@ -114,6 +122,7 @@ string getETag(string filename) {
#include <iostream> #include <iostream>
#include <wait.h> #include <wait.h>
#include <thread>
long getPosition(std::string str, char c, int occurence) { long getPosition(std::string str, char c, int occurence) {
@ -267,12 +276,9 @@ bool connection_handler(const char *preprefix, const char *col1, const char *col
} }
fclose(pipes.stdin); fclose(pipes.stdin);
string line; thread *t = new thread(php_error_handler, prefix, pipes.stderr);
while (!(line = read_line(pipes.stderr)).empty()) {
log_error(prefix, line);
}
fclose(pipes.stderr);
string line;
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);