src/server/safs/cgi.c

changeset 536
e95fa761db0c
parent 535
bf07abfe7f0a
child 538
f9a7b5c76208
equal deleted inserted replaced
535:bf07abfe7f0a 536:e95fa761db0c
323 event->finish = NULL; 323 event->finish = NULL;
324 return 0; 324 return 0;
325 } 325 }
326 326
327 event->finish = cgi_event_finish; 327 event->finish = cgi_event_finish;
328 handler->writeev->finish = NULL; 328 handler->writeev->finish = NULL; // TODO: maybe this can be removed
329 CgiIOResult ret = cgi_read_output(handler, ev, "readevent"); 329 CgiIOResult ret = cgi_read_output(handler, ev, "readevent");
330 switch(ret) { 330 switch(ret) {
331 case CGI_IO_COMPLETE: { 331 case CGI_IO_COMPLETE: {
332 break; 332 break;
333 } 333 }
358 358
359 int cgi_writeevent(EventHandler *ev, Event *event) { 359 int cgi_writeevent(EventHandler *ev, Event *event) {
360 CGIHandler *handler = event->cookie; 360 CGIHandler *handler = event->cookie;
361 361
362 if(handler->cgi_eof || handler->result == REQ_ABORTED) { 362 if(handler->cgi_eof || handler->result == REQ_ABORTED) {
363 // same as in cgi_stdout_readevent
364 // request processing will be finished by the read event
363 log_ereport(LOG_DEBUG, "cgi-send: req: %p writeevent cgi_eof = TRUE result: %d", handler->parser->rq, handler->result); 365 log_ereport(LOG_DEBUG, "cgi-send: req: %p writeevent cgi_eof = TRUE result: %d", handler->parser->rq, handler->result);
366 handler->poll_out = FALSE;
367 event->finish = NULL;
368 return 0;
364 } 369 }
365 370
366 event->finish = cgi_event_finish; 371 event->finish = cgi_event_finish;
367 handler->readev->finish = NULL; 372 handler->readev->finish = NULL; // TODO: maybe this can be removed
368 CgiIOResult ret = cgi_read_output(handler, ev, "writeevent"); 373 CgiIOResult ret = cgi_read_output(handler, ev, "writeevent");
369 switch(ret) { 374 switch(ret) {
370 case CGI_IO_COMPLETE: { 375 case CGI_IO_COMPLETE: {
371 break; 376 break;
372 } 377 }
472 } 477 }
473 if(r < 0 && errno == EWOULDBLOCK) { 478 if(r < 0 && errno == EWOULDBLOCK) {
474 return CGI_IO_NEED_READ; 479 return CGI_IO_NEED_READ;
475 } 480 }
476 handler->cgi_eof = TRUE; 481 handler->cgi_eof = TRUE;
477 log_ereport(LOG_DEBUG, "cgi-send: rq: %p pid: %d set cgi_eof : %s", rq, handler->process.pid, debug_log); 482 log_ereport(LOG_DEBUG, "cgi-send: req: %p pid: %d set cgi_eof : %s", rq, handler->process.pid, debug_log);
478 return ret; 483 return ret;
479 } 484 }
480 485
481 int cgi_stderr_readevent(EventHandler *ev, Event *event) { 486 int cgi_stderr_readevent(EventHandler *ev, Event *event) {
482 CGIHandler *handler = event->cookie; 487 CGIHandler *handler = event->cookie;

mercurial