src/server/safs/cgi.h

changeset 430
83560f32e7d5
parent 415
d938228c382e
child 431
032b0ad35ee3
--- a/src/server/safs/cgi.h	Sat Nov 12 17:34:58 2022 +0100
+++ b/src/server/safs/cgi.h	Sat Nov 12 20:50:45 2022 +0100
@@ -39,6 +39,7 @@
 typedef struct {
     int in[2];
     int out[2];
+    int err[2];
     pid_t pid;
 } CGIProcess;
 
@@ -48,7 +49,18 @@
     CxBuffer  tmp;
     int       status;
     char      *msg;
+    size_t    response_length;
+    WSBool    cgiheader;
 } CGIResponseParser;
+
+typedef struct CGIHandler {
+    CGIProcess process;
+    CGIResponseParser *parser;
+    char *path;
+    Event *writeev;
+    char *stderr_tmp;
+    int result;
+} CGIHandler;
     
 int send_cgi(pblock *pb, Session *sn, Request *rq);
 
@@ -58,6 +70,10 @@
 
 int cgi_close(CGIProcess *p);
 
+int cgi_stdout_readevent(EventHandler *ev, Event *event);
+int cgi_stderr_readevent(EventHandler *ev, Event *event);
+int cgi_event_finish(EventHandler *ev, Event *event);
+
 CGIResponseParser* cgi_parser_new(Session *sn, Request *rq);
 void cgi_parser_free(CGIResponseParser *parser);
 int cgi_parse_response(CGIResponseParser *parser, char *buf, size_t len, size_t *bpos);

mercurial