mirror of
https://github.com/php/php-src.git
synced 2025-08-15 21:48:51 +02:00
Avoid multipy allocating of request env
This commit is contained in:
parent
86de98caba
commit
f20118aa66
4 changed files with 11 additions and 2 deletions
|
@ -794,10 +794,17 @@ fcgi_request *fcgi_init_request(fcgi_request *req, int listen_socket)
|
|||
#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;
|
||||
|
@ -935,7 +942,6 @@ static int fcgi_read_request(fcgi_request *req)
|
|||
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) ||
|
||||
|
@ -1144,7 +1150,6 @@ void fcgi_close(fcgi_request *req, int force, int destroy)
|
|||
{
|
||||
if (destroy && req->has_env) {
|
||||
fcgi_hash_clean(&req->env);
|
||||
fcgi_hash_destroy(&req->env);
|
||||
req->has_env = 0;
|
||||
}
|
||||
|
||||
|
|
|
@ -195,6 +195,7 @@ int fcgi_in_shutdown(void);
|
|||
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);
|
||||
|
|
|
@ -2101,6 +2101,7 @@ consult the installation file that came with this distribution, or visit \n\
|
|||
break;
|
||||
case 'h':
|
||||
case '?':
|
||||
fcgi_destroy_request(&request);
|
||||
fcgi_shutdown();
|
||||
no_headers = 1;
|
||||
SG(headers_sent) = 1;
|
||||
|
@ -2532,6 +2533,7 @@ fastcgi_request_done:
|
|||
}
|
||||
/* end of fastcgi loop */
|
||||
}
|
||||
fcgi_destroy_request(&request);
|
||||
fcgi_shutdown();
|
||||
|
||||
if (cgi_sapi_module.php_ini_path_override) {
|
||||
|
|
|
@ -1972,6 +1972,7 @@ fastcgi_request_done:
|
|||
}
|
||||
/* end of fastcgi loop */
|
||||
}
|
||||
fcgi_destroy_request(&request);
|
||||
fcgi_shutdown();
|
||||
|
||||
if (cgi_sapi_module.php_ini_path_override) {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue