commit - 4e2df59f1ce054617cd1ec17582b64f49596684c
commit + 247917be455490fb432d14a7cca37419333b7d3f
blob - 5876ccc00df7b8ed5658abe9d9b655d5d7260bb0
blob + 343235e2b8a8405d9203a5caaedf9eeb8ed2d1dd
--- fcgi.c
+++ fcgi.c
SPLAY_REMOVE(client_tree, &fcgi->fcg_clients, clt);
proxy_client_free(clt);
+
+ if (!fcgi->fcg_keep_conn)
+ fcgi->fcg_done = 1;
+
return (0);
}
fcgi_write(struct bufferevent *bev, void *d)
{
struct fcgi *fcgi = d;
+ struct evbuffer *out = EVBUFFER_OUTPUT(bev);
- (void)fcgi;
+ if (fcgi->fcg_done && EVBUFFER_LENGTH(out) == 0)
+ fcgi_error(bev, EVBUFFER_EOF, fcgi);
}
void
blob - bb28819a1da4f114ba787a5fd935bc7b068ff1c3
blob + 515d41d950c37724dbb178c003a47d2a84d69946
--- galileo.h
+++ galileo.h
int fcg_type;
uint16_t fcg_rec_id;
int fcg_keep_conn;
+ int fcg_done;
struct galileo *fcg_env;