dmitry          Fri Jul 13 14:01:11 2007 UTC

  Modified files:              
    /php-src/ext/soap   soap.c 
  Log:
  Fixed bug #41635 (SoapServer and zlib.output_compression with FastCGI result 
in major slowdown
  
  
http://cvs.php.net/viewvc.cgi/php-src/ext/soap/soap.c?r1=1.224&r2=1.225&diff_format=u
Index: php-src/ext/soap/soap.c
diff -u php-src/ext/soap/soap.c:1.224 php-src/ext/soap/soap.c:1.225
--- php-src/ext/soap/soap.c:1.224       Fri Jul  6 10:36:20 2007
+++ php-src/ext/soap/soap.c     Fri Jul 13 14:01:11 2007
@@ -17,7 +17,7 @@
   |          Dmitry Stogov <[EMAIL PROTECTED]>                             |
   +----------------------------------------------------------------------+
 */
-/* $Id: soap.c,v 1.224 2007/07/06 10:36:20 dmitry Exp $ */
+/* $Id: soap.c,v 1.225 2007/07/13 14:01:11 dmitry Exp $ */
 
 #ifdef HAVE_CONFIG_H
 #include "config.h"
@@ -2134,8 +2134,6 @@
                        php_error_docref(NULL TSRMLS_CC, E_ERROR, "Dump memory 
failed");
                }
 
-               snprintf(cont_len, sizeof(cont_len), "Content-Length: %d", 
size);
-               sapi_add_header(cont_len, strlen(cont_len), 1);
                if (soap_version == SOAP_1_2) {
                        sapi_add_header("Content-Type: application/soap+xml; 
charset=utf-8", sizeof("Content-Type: application/soap+xml; charset=utf-8")-1, 
1);
                } else {
@@ -2147,10 +2145,18 @@
                old_output_conv = UG(output_encoding_conv);
                UG(runtime_encoding_conv) = UG(utf8_conv);
                UG(output_encoding_conv) = UG(utf8_conv);
+
+               if (zend_ini_long("zlib.output_compression", 
sizeof("zlib.output_compression"), 0)) {
+                       sapi_add_header("Connection: close", 
sizeof("Connection: close")-1, 1);
+               } else {
+                       snprintf(cont_len, sizeof(cont_len), "Content-Length: 
%d", size);
+                       sapi_add_header(cont_len, strlen(cont_len), 1);
+               }
                php_write(buf, size TSRMLS_CC);
+               xmlFree(buf);
+
                UG(runtime_encoding_conv) = old_runtime_conv;
                UG(output_encoding_conv) = old_output_conv;
-               xmlFree(buf);
        } else {
                sapi_add_header("HTTP/1.1 202 Accepted", sizeof("HTTP/1.1 202 
Accepted")-1, 1);
                sapi_add_header("Content-Length: 0", sizeof("Content-Length: 
0")-1, 1);

-- 
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to