src/server/safs/cgi.h

changeset 433
39fe86ae4db0
parent 431
032b0ad35ee3
child 451
edbbb3000494
equal deleted inserted replaced
432:7c9137f9e7f9 433:39fe86ae4db0
54 } CGIResponseParser; 54 } CGIResponseParser;
55 55
56 typedef struct CGIHandler { 56 typedef struct CGIHandler {
57 CGIProcess process; 57 CGIProcess process;
58 CGIResponseParser *parser; 58 CGIResponseParser *parser;
59 HttpResponseWriter *response;
59 char *path; 60 char *path;
60 Event *writeev; 61 Event *writeev;
61 Event *stderrev; 62 Event *stderrev;
62 char *stderr_tmp; 63 char *stderr_tmp;
63 int stderr_tmplen; 64 int stderr_tmplen;
65 char *writebuf;
66 size_t writebuf_alloc;
67 size_t writebuf_size;
68 size_t writebuf_pos;
64 WSBool stderr_finished; 69 WSBool stderr_finished;
70 WSBool read_output_finished;
71 WSBool send_response_finished;
72 WSBool poll_out;
65 int result; 73 int result;
66 } CGIHandler; 74 } CGIHandler;
67 75
68 int send_cgi(pblock *pb, Session *sn, Request *rq); 76 int send_cgi(pblock *pb, Session *sn, Request *rq);
69 77
74 int cgi_close(CGIProcess *p); 82 int cgi_close(CGIProcess *p);
75 83
76 int cgi_stdout_readevent(EventHandler *ev, Event *event); 84 int cgi_stdout_readevent(EventHandler *ev, Event *event);
77 int cgi_stderr_readevent(EventHandler *ev, Event *event); 85 int cgi_stderr_readevent(EventHandler *ev, Event *event);
78 int cgi_event_finish(EventHandler *ev, Event *event); 86 int cgi_event_finish(EventHandler *ev, Event *event);
87 int cgi_writeevent(EventHandler *ev, Event *event);
88
89 int cgi_read_output(CGIHandler *handler, EventHandler *ev);
79 90
80 CGIResponseParser* cgi_parser_new(Session *sn, Request *rq); 91 CGIResponseParser* cgi_parser_new(Session *sn, Request *rq);
81 void cgi_parser_free(CGIResponseParser *parser); 92 void cgi_parser_free(CGIResponseParser *parser);
82 int cgi_parse_response(CGIResponseParser *parser, char *buf, size_t len, size_t *bpos); 93 int cgi_parse_response(CGIResponseParser *parser, char *buf, size_t len, size_t *bpos);
83 94

mercurial