src/server/safs/cgi.h

changeset 516
ec22d4ccd081
parent 502
11ac3761c0e3
child 517
be62c9604377
--- a/src/server/safs/cgi.h	Sun Apr 07 10:25:01 2024 +0200
+++ b/src/server/safs/cgi.h	Sun May 12 11:26:59 2024 +0200
@@ -35,7 +35,16 @@
 #ifdef __cplusplus
 extern "C" {
 #endif
+    
+enum CgiIOResult {
+    CGI_IO_COMPLETE = 0,
+    CGI_IO_NEED_READ,
+    CGI_IO_NEED_WRITE,
+    CGI_IO_ERROR
+};
 
+typedef enum CgiIOResult CgiIOResult;
+    
 typedef struct {
     int in[2];
     int out[2];
@@ -64,6 +73,12 @@
     char *path;
     
     /*
+     * event object for pollin
+     * active by default and my be deactivated/reactivated in some cases
+     */
+    Event *readev;
+    
+    /*
      * event object prepared for pollout
      * only activated if write returns EWOULDBLOCK
      */
@@ -155,7 +170,7 @@
 int cgi_event_finish(EventHandler *ev, Event *event);
 int cgi_writeevent(EventHandler *ev, Event *event);
 
-int cgi_read_output(CGIHandler *handler, EventHandler *ev);
+CgiIOResult cgi_read_output(CGIHandler *handler, EventHandler *ev);
 
 CGIResponseParser* cgi_parser_new(Session *sn, Request *rq);
 void cgi_parser_free(CGIResponseParser *parser);

mercurial