dmitry Fri Feb 15 06:51:41 2008 UTC Modified files: /php-src/ext/soap soap.c Log: Fixed bug #43507 (SOAPFault HTTP Status 500 - would like to be able to set the HTTP Status) http://cvs.php.net/viewvc.cgi/php-src/ext/soap/soap.c?r1=1.241&r2=1.242&diff_format=u Index: php-src/ext/soap/soap.c diff -u php-src/ext/soap/soap.c:1.241 php-src/ext/soap/soap.c:1.242 --- php-src/ext/soap/soap.c:1.241 Wed Jan 16 06:15:19 2008 +++ php-src/ext/soap/soap.c Fri Feb 15 06:51:41 2008 @@ -17,7 +17,7 @@ | Dmitry Stogov <[EMAIL PROTECTED]> | +----------------------------------------------------------------------+ */ -/* $Id: soap.c,v 1.241 2008/01/16 06:15:19 dmitry Exp $ */ +/* $Id: soap.c,v 1.242 2008/02/15 06:51:41 dmitry Exp $ */ #ifdef HAVE_CONFIG_H #include "config.h" @@ -2382,6 +2382,8 @@ int size; xmlDocPtr doc_return; UConverter *old_runtime_conv, *old_output_conv; + zval **agent_name; + int use_http_error_status = 1; soap_version = SOAP_GLOBAL(soap_version); @@ -2389,11 +2391,21 @@ xmlDocDumpMemory(doc_return, &buf, &size); + zend_is_auto_global("_SERVER", sizeof("_SERVER") - 1 TSRMLS_CC); + if (PG(http_globals)[TRACK_VARS_SERVER] && + zend_ascii_hash_find(PG(http_globals)[TRACK_VARS_SERVER]->value.ht, "HTTP_USER_AGENT", sizeof("HTTP_USER_AGENT"), (void **) &agent_name) == SUCCESS && + Z_TYPE_PP(agent_name) == IS_STRING) { + if (strncmp(Z_STRVAL_PP(agent_name), "Shockwave Flash", sizeof("Shockwave Flash")-1) == 0) { + use_http_error_status = 0; + } + } /* Want to return HTTP 500 but apache wants to over write our fault code with their own handling... Figure this out later */ - sapi_add_header("HTTP/1.1 500 Internal Service Error", sizeof("HTTP/1.1 500 Internal Service Error")-1, 1); + if (use_http_error_status) { + sapi_add_header("HTTP/1.1 500 Internal Service Error", sizeof("HTTP/1.1 500 Internal Service Error")-1, 1); + } if (zend_ini_long("zlib.output_compression", sizeof("zlib.output_compression"), 0)) { sapi_add_header("Connection: close", sizeof("Connection: close")-1, 1); } else {
-- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php