RE: [PHP-CVS] cvs: php-src(PHP_5_2) / NEWS /ext/soap soap.c
| From: | Dmitry Stogov | Date: | Mon, 07 May 2007 08:19:14 +0000 |
| Subject: | RE: [PHP-CVS] cvs: php-src(PHP_5_2) / NEWS /ext/soap soap.c | ||
| References: | 1 | Groups: | php.cvs |
| Request: | Send a blank email to php-cvs+get-44205@lists.php.net to get a copy of this message | ||
Hi Ilia,
Why do you completely break ext/soap (all tests are failed)?
Why do you do it in PHP_5_2 branch? (we have HEAD for experiments)
Your patch doesn't allow me to fix other ext/soap issues, because it
completely breaks test suite.
Please finish your fix ASAP (also for HEAD) or revert it.
Thanks. Dmitry.
> -----Original Message-----
> From: Ilia Alshanetsky [mailto:iliaa@php.net]
> Sent: Sunday, May 06, 2007 9:21 PM
> To: php-cvs@lists.php.net
> Subject: [PHP-CVS] cvs: php-src(PHP_5_2) / NEWS /ext/soap soap.c
>
>
> iliaa Sun May 6 17:21:13 2007 UTC
>
> Modified files: (Branch: PHP_5_2)
> /php-src NEWS
> /php-src/ext/soap soap.c
> Log:
>
> Allow SOAP extension's handler() to work even when
>
> always_populate_raw_post_data is off.
>
> # Tests will be updated in the next few days
>
>
> http://cvs.php.net/viewvc.cgi/php-src/NEWS?r1=1.2027.2.547.2.6
> 85&r2=1.2027.2.547.2.686&diff_format=u
> Index: php-src/NEWS
> diff -u php-src/NEWS:1.2027.2.547.2.685
> php-src/NEWS:1.2027.2.547.2.686
> --- php-src/NEWS:1.2027.2.547.2.685 Sun May 6 16:34:14 2007
> +++ php-src/NEWS Sun May 6 17:21:13 2007
> @@ -1,6 +1,8 @@
> PHP
> NEWS
>
> ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
> |||||||||||||||||
> ?? ??? 2007, PHP 5.2.3
> +- Allow SOAP extension's handler() to work even when
> + always_populate_raw_post_data is off. (Ilia)
> - Fixed ext/filter Email Validation Vulnerability (MOPB-24
> by Stefan Esser)
> (Ilia)
> - Fixed altering $this via argument named "this". (Dmitry)
> http://cvs.php.net/viewvc.cgi/php-src/ext/soap/soap.c?r1=1.156
> .2.28.2.23&r2=1.156.2.28.2.24&diff_format=u
> Index: php-src/ext/soap/soap.c
> diff -u php-src/ext/soap/soap.c:1.156.2.28.2.23
> php-src/ext/soap/soap.c:1.156.2.28.2.24
> --- php-src/ext/soap/soap.c:1.156.2.28.2.23 Wed May 2 08:22:13 2007
> +++ php-src/ext/soap/soap.c Sun May 6 17:21:13 2007
> @@ -17,7 +17,7 @@
> | Dmitry Stogov <dmitry@zend.com>
> |
>
> +-------------------------------------------------------------
> ---------+
> */
> -/* $Id: soap.c,v 1.156.2.28.2.23 2007/05/02 08:22:13 dmitry Exp $ */
> +/* $Id: soap.c,v 1.156.2.28.2.24 2007/05/06 17:21:13 iliaa Exp $ */
>
> #ifdef HAVE_CONFIG_H
> #include "config.h"
> @@ -140,8 +140,6 @@
> SOAP_GLOBAL(soap_version) = _old_soap_version;
> #endif
>
> -#define HTTP_RAW_POST_DATA "HTTP_RAW_POST_DATA"
> -
> #define ZERO_PARAM() \
> if (ZEND_NUM_ARGS() != 0) \
> WRONG_PARAM_COUNT;
> @@ -1403,7 +1401,7 @@
> sdlPtr old_sdl = NULL;
> soapServicePtr service;
> xmlDocPtr doc_request=NULL, doc_return;
> - zval function_name, **params, **raw_post, *soap_obj, retval;
> + zval function_name, **params, *soap_obj, retval;
> char *fn_name, cont_len[30];
> int num_params = 0, size, i, call_status = 0;
> xmlChar *buf;
> @@ -1478,8 +1476,9 @@
> }
>
> if (ZEND_NUM_ARGS() == 0) {
> - if (zend_hash_find(&EG(symbol_table),
> HTTP_RAW_POST_DATA, sizeof(HTTP_RAW_POST_DATA), (void **)
> &raw_post)!=FAILURE
> - && ((*raw_post)->type==IS_STRING)) {
> + if (SG(request_info).raw_post_data) {
> + char *post_data =
> SG(request_info).raw_post_data;
> + int post_data_length =
> SG(request_info).raw_post_data_length;
> zval **server_vars, **encoding;
>
> zend_is_auto_global("_SERVER",
> sizeof("_SERVER")-1 TSRMLS_CC); @@ -1497,13 +1496,13 @@
>
> zend_hash_exists(EG(function_table), "gzinflate",
> sizeof("gzinflate"))) {
> ZVAL_STRING(&func,
> "gzinflate", 0);
> params[0] = ¶m;
> - ZVAL_STRINGL(params[0],
> Z_STRVAL_PP(raw_post)+10, Z_STRLEN_PP(raw_post)-10, 0);
> + ZVAL_STRINGL(params[0],
> post_data+10, post_data_length-10, 0);
> INIT_PZVAL(params[0]);
> } else if
> (strcmp(Z_STRVAL_PP(encoding),"deflate") == 0 &&
> zend_hash_exists(EG(function_table),
> "gzuncompress", sizeof("gzuncompress"))) {
> ZVAL_STRING(&func,
> "gzuncompress", 0);
> params[0] = ¶m;
> - ZVAL_STRINGL(params[0],
> Z_STRVAL_PP(raw_post), Z_STRLEN_PP(raw_post), 0);
> + ZVAL_STRINGL(params[0],
> post_data, post_data_length, 0);
> INIT_PZVAL(params[0]);
> } else {
> php_error_docref(NULL
> TSRMLS_CC, E_ERROR,"Request is compressed with unknown
> compression '%s'",Z_STRVAL_PP(encoding)); @@ -1516,16 +1515,9 @@
> php_error_docref(NULL
> TSRMLS_CC, E_ERROR,"Can't uncompress compressed request");
> }
> } else {
> - doc_request =
> soap_xmlParseMemory(Z_STRVAL_PP(raw_post),Z_STRLEN_PP(raw_post));
> + doc_request =
> soap_xmlParseMemory(post_data, post_data_length);
> }
> } else {
> - if (SG(request_info).request_method &&
> - strcmp(SG(request_info).request_method,
> "POST") == 0) {
> - if
> (!zend_ini_long("always_populate_raw_post_data",
> sizeof("always_populate_raw_post_data"), 0)) {
> - php_error_docref(NULL
> TSRMLS_CC, E_ERROR, "PHP-SOAP requires
> 'always_populate_raw_post_data' to be on please check your
> php.ini file");
> - }
> - }
> - soap_server_fault("Server", "Bad
> Request. Can't find HTTP_RAW_POST_DATA", NULL, NULL, NULL TSRMLS_CC);
> return;
> }
> } else {
>
> --
> PHP CVS Mailing List (http://www.php.net/)
> To unsubscribe, visit: http://www.php.net/unsub.php
>