src/server/safs/cgi.h

changeset 499
ef77854a91f3
parent 451
edbbb3000494
child 501
2aa6bd9f166f
equal deleted inserted replaced
498:0d80f8a2b29f 499:ef77854a91f3
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 HttpResponseWriter *response;
60
61 /*
62 * request path (rq->vars path)
63 */
60 char *path; 64 char *path;
65
66 /*
67 * event object prepared for pollout
68 * only activated if write returns EWOULDBLOCK
69 */
61 Event *writeev; 70 Event *writeev;
62 Event *stderrev; 71
72 /*
73 * temp buffer used for parsing stderr lines
74 */
63 char *stderr_tmp; 75 char *stderr_tmp;
76 /*
77 * current length of stderr_tmp
78 */
64 int stderr_tmplen; 79 int stderr_tmplen;
80
81 /*
82 * allocation size of stderr_tmp
83 */
65 int stderr_tmpalloc; 84 int stderr_tmpalloc;
85
86 /*
87 * output buffer
88 */
66 char *writebuf; 89 char *writebuf;
90
91 /*
92 * writebuf allocation size
93 */
67 size_t writebuf_alloc; 94 size_t writebuf_alloc;
95
96 /*
97 * currently used size of writebuf
98 */
68 size_t writebuf_size; 99 size_t writebuf_size;
100
101 /*
102 * current writebuf pos (writebuf_size - write_buf_pos = remaining)
103 */
69 size_t writebuf_pos; 104 size_t writebuf_pos;
70 WSBool stderr_finished; 105
71 WSBool read_output_finished; 106 /*
72 WSBool send_response_finished; 107 * poll_out event active
108 */
73 WSBool poll_out; 109 WSBool poll_out;
110
111 /*
112 * number of currently open events (stdout, stderr, [stdout])
113 */
114 int events;
115
116 /*
117 * error indicator
118 */
74 int result; 119 int result;
75 } CGIHandler; 120 } CGIHandler;
76 121
77 int send_cgi(pblock *pb, Session *sn, Request *rq); 122 int send_cgi(pblock *pb, Session *sn, Request *rq);
78 123

mercurial