#ifdef _WIN32
req->tcp = !GetNamedPipeInfo((HANDLE)_get_osfhandle(req->listen_socket), NULL, NULL, NULL, NULL);
#endif
+ fcgi_hash_init(&req->env);
return req;
}
+void fcgi_destroy_request(fcgi_request *req) {
+ if (req->env.buckets) {
+ fcgi_hash_destroy(&req->env);
+ }
+}
+
static inline ssize_t safe_write(fcgi_request *req, const void *buf, size_t count)
{
int ret;
req->in_len = 0;
req->out_hdr = NULL;
req->out_pos = req->out_buf;
- fcgi_hash_init(&req->env);
req->has_env = 1;
if (safe_read(req, &hdr, sizeof(fcgi_header)) != sizeof(fcgi_header) ||
{
if (destroy && req->has_env) {
fcgi_hash_clean(&req->env);
- fcgi_hash_destroy(&req->env);
req->has_env = 0;
}
void fcgi_terminate(void);
int fcgi_listen(const char *path, int backlog);
fcgi_request* fcgi_init_request(fcgi_request *request, int listen_socket);
+void fcgi_destroy_request(fcgi_request *req);
void fcgi_set_allowed_clients(char *ip);
int fcgi_accept_request(fcgi_request *req);
int fcgi_finish_request(fcgi_request *req, int force_close);
break;
case 'h':
case '?':
+ fcgi_destroy_request(&request);
fcgi_shutdown();
no_headers = 1;
SG(headers_sent) = 1;
}
/* end of fastcgi loop */
}
+ fcgi_destroy_request(&request);
fcgi_shutdown();
if (cgi_sapi_module.php_ini_path_override) {