|
|
|
@ -1804,9 +1804,10 @@ static void fcgi_stdin_append(server *srv, connection *con, handler_ctx *hctx, i
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
static int fcgi_create_env(server *srv, handler_ctx *hctx, int request_id) {
|
|
|
|
|
static int fcgi_create_env(server *srv, handler_ctx *hctx) {
|
|
|
|
|
FCGI_BeginRequestRecord beginRecord;
|
|
|
|
|
FCGI_Header header;
|
|
|
|
|
int request_id;
|
|
|
|
|
|
|
|
|
|
plugin_data *p = hctx->plugin_data;
|
|
|
|
|
fcgi_extension_host *host= hctx->host;
|
|
|
|
@ -1822,6 +1823,14 @@ static int fcgi_create_env(server *srv, handler_ctx *hctx, int request_id) {
|
|
|
|
|
|
|
|
|
|
/* send FCGI_BEGIN_REQUEST */
|
|
|
|
|
|
|
|
|
|
if (hctx->request_id == 0) {
|
|
|
|
|
hctx->request_id = 1; /* always use id 1 as we don't use multiplexing */
|
|
|
|
|
} else {
|
|
|
|
|
log_error_write(srv, __FILE__, __LINE__, "sd",
|
|
|
|
|
"fcgi-request is already in use:", hctx->request_id);
|
|
|
|
|
}
|
|
|
|
|
request_id = hctx->request_id;
|
|
|
|
|
|
|
|
|
|
fcgi_header(&(beginRecord.header), FCGI_BEGIN_REQUEST, request_id, sizeof(beginRecord.body), 0);
|
|
|
|
|
beginRecord.body.roleB0 = hctx->fcgi_mode;
|
|
|
|
|
beginRecord.body.roleB1 = 0;
|
|
|
|
@ -2207,15 +2216,7 @@ static handler_t fcgi_write_request(server *srv, handler_ctx *hctx) {
|
|
|
|
|
"load:", hctx->proc->load);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/* move the proc-list entry down the list */
|
|
|
|
|
if (hctx->request_id == 0) {
|
|
|
|
|
hctx->request_id = 1; /* always use id 1 as we don't use multiplexing */
|
|
|
|
|
} else {
|
|
|
|
|
log_error_write(srv, __FILE__, __LINE__, "sd",
|
|
|
|
|
"fcgi-request is already in use:", hctx->request_id);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (-1 == fcgi_create_env(srv, hctx, hctx->request_id)) return HANDLER_ERROR;
|
|
|
|
|
if (-1 == fcgi_create_env(srv, hctx)) return HANDLER_ERROR;
|
|
|
|
|
|
|
|
|
|
fdevent_event_add(srv->ev, &(hctx->fde_ndx), hctx->fd, FDEVENT_IN);
|
|
|
|
|
fcgi_set_state(srv, hctx, FCGI_STATE_WRITE);
|
|
|
|
|