log all cgi pipe fds

2 months ago

author
Olaf Wintermann <olaf.wintermann@gmail.com>
date
Sat, 18 Jan 2025 12:13:08 +0100 (2 months ago)
changeset 566
963edce64e6e
parent 565
6a0138b67cee
child 567
fed45fc71e7c

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);
 

mercurial