dmitry Fri Feb 15 14:51:53 2008 UTC
Modified files:
/php-src/sapi/cgi cgi_main.c fastcgi.c
Log:
optimization
http://cvs.php.net/viewvc.cgi/php-src/sapi/cgi/cgi_main.c?r1=1.348&r2=1.349&diff_format=u
Index: php-src/sapi/cgi/cgi_main.c
diff -u php-src/sapi/cgi/cgi_main.c:1.348 php-src/sapi/cgi/cgi_main.c:1.349
--- php-src/sapi/cgi/cgi_main.c:1.348 Mon Dec 31 07:12:19 2007
+++ php-src/sapi/cgi/cgi_main.c Fri Feb 15 14:51:52 2008
@@ -21,7 +21,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: cgi_main.c,v 1.348 2007/12/31 07:12:19 sebastian Exp $ */
+/* $Id: cgi_main.c,v 1.349 2008/02/15 14:51:52 dmitry Exp $ */
#include "php.h"
#include "php_globals.h"
@@ -754,7 +754,17 @@
2. When the first call occurs and the request is not set up,
flush fails on FastCGI.
*/
if (SG(sapi_started)) {
- sapi_cgibin_flush(SG(server_context));
+ if (fcgi_is_fastcgi()) {
+ if (
+#ifndef PHP_WIN32
+ !parent &&
+#endif
+
!fcgi_finish_request((fcgi_request*)SG(server_context))) {
+ php_handle_aborted_connection();
+ }
+ } else {
+ sapi_cgibin_flush(SG(server_context));
+ }
}
return SUCCESS;
}
http://cvs.php.net/viewvc.cgi/php-src/sapi/cgi/fastcgi.c?r1=1.43&r2=1.44&diff_format=u
Index: php-src/sapi/cgi/fastcgi.c
diff -u php-src/sapi/cgi/fastcgi.c:1.43 php-src/sapi/cgi/fastcgi.c:1.44
--- php-src/sapi/cgi/fastcgi.c:1.43 Mon Dec 31 07:12:19 2007
+++ php-src/sapi/cgi/fastcgi.c Fri Feb 15 14:51:52 2008
@@ -16,7 +16,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: fastcgi.c,v 1.43 2007/12/31 07:12:19 sebastian Exp $ */
+/* $Id: fastcgi.c,v 1.44 2008/02/15 14:51:52 dmitry Exp $ */
#include "php.h"
#include "fastcgi.h"
@@ -632,7 +632,7 @@
}
memcpy(tmp, p, name_len);
tmp[name_len] = 0;
- s = zend_strndup((char*)p + name_len, val_len);
+ s = estrndup((char*)p + name_len, val_len);
zend_hash_update(&req->env, tmp, name_len+1, &s, sizeof(char*),
NULL);
p += name_len + val_len;
}
@@ -644,7 +644,7 @@
static void fcgi_free_var(char **s)
{
- free(*s);
+ efree(*s);
}
static int fcgi_read_request(fcgi_request *req)
@@ -657,7 +657,7 @@
req->in_len = 0;
req->out_hdr = NULL;
req->out_pos = req->out_buf;
- zend_hash_init(&req->env, 0, NULL, (void (*)(void *)) fcgi_free_var, 1);
+ zend_hash_init(&req->env, 0, NULL, (void (*)(void *)) fcgi_free_var, 0);
if (safe_read(req, &hdr, sizeof(fcgi_header)) != sizeof(fcgi_header) ||
hdr.version < FCGI_VERSION_1) {
@@ -693,15 +693,15 @@
req->keep = (((fcgi_begin_request*)buf)->flags &
FCGI_KEEP_CONN);
switch ((((fcgi_begin_request*)buf)->roleB1 << 8) +
((fcgi_begin_request*)buf)->roleB0) {
case FCGI_RESPONDER:
- val = strdup("RESPONDER");
+ val = estrdup("RESPONDER");
zend_hash_update(&req->env, "FCGI_ROLE",
sizeof("FCGI_ROLE"), &val, sizeof(char*), NULL);
break;
case FCGI_AUTHORIZER:
- val = strdup("AUTHORIZER");
+ val = estrdup("AUTHORIZER");
zend_hash_update(&req->env, "FCGI_ROLE",
sizeof("FCGI_ROLE"), &val, sizeof(char*), NULL);
break;
case FCGI_FILTER:
- val = strdup("FILTER");
+ val = estrdup("FILTER");
zend_hash_update(&req->env, "FCGI_ROLE",
sizeof("FCGI_ROLE"), &val, sizeof(char*), NULL);
break;
default:
@@ -1168,11 +1168,13 @@
int fcgi_finish_request(fcgi_request *req)
{
+ int ret = 1;
+
if (req->fd >= 0) {
- fcgi_flush(req, 1);
+ ret = fcgi_flush(req, 1);
fcgi_close(req, 0, 1);
}
- return 1;
+ return ret;
}
char* fcgi_getenv(fcgi_request *req, const char* var, int var_len)
@@ -1195,7 +1197,7 @@
} else {
char **ret;
- val = strdup(val);
+ val = estrdup(val);
if (zend_hash_update(&req->env, var, var_len+1, &val,
sizeof(char*), (void**)&ret) == SUCCESS) {
return *ret;
}
--
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php