Line
Link Here
|
0 |
-- mod_proxy_fcgi.c |
0 |
++ mod_proxy_fcgi.c |
Line 433
Link Here
|
433 |
apr_bucket_brigade *ib, *ob; |
433 |
apr_bucket_brigade *ib, *ob, *cib; |
434 |
-- |
|
|
Line 441
Link Here
|
441 |
apr_pollfd_t pfd; |
441 |
apr_pollfd_t pfd[2]; |
442 |
-- |
|
|
Lines 453-457
Link Here
|
453 |
pfd.desc_type = APR_POLL_SOCKET; |
453 |
pfd[0].desc_type = APR_POLL_SOCKET; |
454 |
pfd.desc.s = conn->sock; |
454 |
pfd[0].desc.s = conn->sock; |
455 |
pfd.p = r->pool; |
455 |
pfd[0].p = r->pool; |
456 |
pfd.reqevents = APR_POLLIN | APR_POLLOUT; |
456 |
pfd[0].reqevents = APR_POLLIN | APR_POLLOUT; |
457 |
|
457 |
|
458 |
-- |
458 |
pfd[1].desc_type = APR_POLL_SOCKET; |
|
|
459 |
pfd[1].desc.s = (apr_socket_t*)ap_get_module_config(r->connection->conn_config, &core_module); |
460 |
pfd[1].p = r->connection->pool; |
461 |
pfd[1].reqevents = APR_POLLIN; |
Line 461
Link Here
|
|
|
465 |
cib = apr_brigade_create(r->connection->pool, c->bucket_alloc); |
Line 470
Link Here
|
470 |
rv = apr_poll(&pfd, 1, &n, timeout); |
475 |
rv = apr_poll(pfd, 2, &n, timeout); |
471 |
-- |
|
|
Line 479
Link Here
|
479 |
if (pfd.rtnevents & APR_POLLOUT) { |
484 |
if (pfd[0].rtnevents & APR_POLLOUT) { |
480 |
-- |
|
|
Line 544
Link Here
|
544 |
pfd.reqevents = APR_POLLIN; /* Done with input data */ |
549 |
pfd[0].reqevents = APR_POLLIN; /* Done with input data */ |
545 |
-- |
|
|
Line 562
Link Here
|
562 |
if (pfd.rtnevents & APR_POLLIN) { |
567 |
if( pfd[1].rtnevents & APR_POLLIN ) { |
563 |
-- |
568 |
rv = ap_get_brigade(r->connection->input_filters, cib, AP_MODE_SPECULATIVE, APR_NONBLOCK_READ, 256); |
|
|
569 |
if( rv != APR_SUCCESS && rv != APR_EAGAIN ) { |
570 |
ap_fcgi_fill_in_header(&header, AP_FCGI_ABORT_REQUEST, request_id, |
571 |
0, 0); |
572 |
ap_fcgi_header_to_array(&header, farray); |
573 |
vec[0].iov_base = (void *)farray; |
574 |
vec[0].iov_len = sizeof(farray); |
575 |
rv = send_data(conn, vec, 1, &len, 1); |
576 |
break; |
577 |
} |
578 |
} |
579 |
if (pfd[0].rtnevents & APR_POLLIN) { |
Line 762
Link Here
|
|
|
779 |
apr_brigade_destroy(cib); |