aboutsummaryrefslogtreecommitdiff
path: root/httpd/server_fcgi.c
diff options
context:
space:
mode:
authorReyk Floeter <reyk@esdenera.com>2016-08-15 20:57:36 +0200
committerReyk Floeter <reyk@esdenera.com>2016-08-15 20:57:36 +0200
commit8033504e79cf197d99ab20a6d89161a2f6a71a81 (patch)
tree534370b7a9418faf1c394a145e39ec7d0dd35104 /httpd/server_fcgi.c
parentf6babe9f2d05966903998909432e8b873b69192f (diff)
downloadhttpd-8033504e79cf197d99ab20a6d89161a2f6a71a81.tar.gz
httpd-8033504e79cf197d99ab20a6d89161a2f6a71a81.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.c12
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);