diff options
author | Reyk Floeter <reyk@esdenera.com> | 2016-08-15 20:57:36 +0200 |
---|---|---|
committer | Reyk Floeter <reyk@esdenera.com> | 2016-08-15 20:57:36 +0200 |
commit | 8033504e79cf197d99ab20a6d89161a2f6a71a81 (patch) | |
tree | 534370b7a9418faf1c394a145e39ec7d0dd35104 /httpd/server_fcgi.c | |
parent | f6babe9f2d05966903998909432e8b873b69192f (diff) | |
download | httpd-fcgi-persist.tar.gz httpd-fcgi-persist.zip |
If you see any problem connecting to httpd fastcgi, stalledfcgi-persist
connections, please have a look at the log files for:
"server_response: request %d in %s not finished"
where %d is the request number in a persistent connection and %s is
either server_file or server_fcgi.
The server_fcgi.c code also includes "//"-commented code for two
possible solutions: either reset after each FCGI_END_REQUEST or after
finishing the end request or any possible padding.
Diffstat (limited to 'httpd/server_fcgi.c')
-rw-r--r-- | httpd/server_fcgi.c | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/httpd/server_fcgi.c b/httpd/server_fcgi.c index 21ebeed..47cfbf1 100644 --- a/httpd/server_fcgi.c +++ b/httpd/server_fcgi.c @@ -99,6 +99,8 @@ server_fcgi(struct httpd *env, struct client *clt) const char *stripped, *p, *alias, *errstr = NULL; char *str, *script = NULL; + clt->clt_persist_running = __func__; + if (srv_conf->socket[0] == ':') { struct sockaddr_storage ss; in_port_t port; @@ -575,11 +577,18 @@ server_fcgi_read(struct bufferevent *bev, void *arg) clt->clt_fcgi_state = FCGI_READ_HEADER; clt->clt_fcgi_toread = sizeof(struct fcgi_record_header); +// variant a 1/2: +// if (clt->clt_fcgi_end) +// server_reset_http(clt, +// "FCGI_READ_CONTENT"); } else { clt->clt_fcgi_state = FCGI_READ_PADDING; clt->clt_fcgi_toread = clt->clt_fcgi_padding_len; } +// variant b 1/1: +// if (clt->clt_fcgi_type == FCGI_END_REQUEST) +// server_reset_http(clt, "FCGI_END_REQUEST"); break; case FCGI_READ_PADDING: evbuffer_drain(clt->clt_srvevb, @@ -587,6 +596,9 @@ server_fcgi_read(struct bufferevent *bev, void *arg) clt->clt_fcgi_state = FCGI_READ_HEADER; clt->clt_fcgi_toread = sizeof(struct fcgi_record_header); +// variant a 2/2: +// if (clt->clt_fcgi_end) +// server_reset_http(clt, "FCGI_READ_PADDING"); break; } } while (len > 0); |