2 months ago
log all cgi pipe fds
src/server/safs/cgi.c | file | annotate | diff | comparison | revisions | |
src/server/safs/cgi.h | file | annotate | diff | comparison | revisions |
--- a/src/server/safs/cgi.c Fri Jan 17 17:05:16 2025 +0100 +++ b/src/server/safs/cgi.c Sat Jan 18 12:13:08 2025 +0100 @@ -106,13 +106,13 @@ ZERO(handler, sizeof(CGIHandler)); handler->path = path; - int ret = cgi_start(&handler->process, path, argv, env); + int ret = cgi_start(rq, &handler->process, path, argv, env); if(ret != REQ_PROCEED) { util_env_free(env); cgi_free_argv(argv); return ret; } - log_ereport(LOG_DEBUG, "send-cgi: req: %p pid: %d pipes: [%d, %d]", rq, (int)handler->process.pid, handler->process.out[0], handler->process.err[0]); + log_ereport(LOG_DEBUG, "send-cgi: req: %p pid: %d", rq, (int)handler->process.pid); util_env_free(env); cgi_free_argv(argv); @@ -679,7 +679,7 @@ return 0; } -int cgi_start(CGIProcess *p, char *path, char *const argv[], char *const envp[]) { +int cgi_start(Request *rq, CGIProcess *p, char *path, char *const argv[], char *const envp[]) { if(pipe(p->in) || pipe(p->out) || pipe(p->err)) { log_ereport( LOG_FAILURE, @@ -730,7 +730,8 @@ // execute program exit(execve(script.ptr, argv, envp)); } else { - // parent + log_ereport(LOG_DEBUG, "send-cgi: start-cgi: req: %p pid: %d pipes: [%d, %d][%d, %d][%d, %d]", rq, (int)p->pid, p->out[0], p->out[1], p->err[0], p->err[1], p->in[0], p->in[1]); + // parent system_close(p->out[1]); system_close(p->err[1]); p->out[1] = -1;
--- a/src/server/safs/cgi.h Fri Jan 17 17:05:16 2025 +0100 +++ b/src/server/safs/cgi.h Sat Jan 18 12:13:08 2025 +0100 @@ -162,7 +162,7 @@ char** cgi_add_vars(char **env, Session *sn, Request *rq); -int cgi_start(CGIProcess *p, char *path, char *const argv[], char *const envp[]); +int cgi_start(Request *rq, CGIProcess *p, char *path, char *const argv[], char *const envp[]); int cgi_close(CGIProcess *p);