[PHP-CVS] cvs: php-src(PHP_5_1) /ext/soap php_encoding.c php_encoding.h php_sdl.c
andrei Mon Apr 17 16:08:08 2006 UTC Modified files: (Branch: PHP_5_1) /php-src/ext/soap php_encoding.c php_encoding.h php_sdl.c Log: Some encodings were assumed to be default and, thus, were not made persistent. http://cvs.php.net/viewcvs.cgi/php-src/ext/soap/php_encoding.c?r1=1.103.2.20r2=1.103.2.21diff_format=u Index: php-src/ext/soap/php_encoding.c diff -u php-src/ext/soap/php_encoding.c:1.103.2.20 php-src/ext/soap/php_encoding.c:1.103.2.21 --- php-src/ext/soap/php_encoding.c:1.103.2.20 Mon Apr 10 13:29:48 2006 +++ php-src/ext/soap/php_encoding.c Mon Apr 17 16:08:08 2006 @@ -17,7 +17,7 @@ | Dmitry Stogov [EMAIL PROTECTED] | +--+ */ -/* $Id: php_encoding.c,v 1.103.2.20 2006/04/10 13:29:48 dmitry Exp $ */ +/* $Id: php_encoding.c,v 1.103.2.21 2006/04/17 16:08:08 andrei Exp $ */ #include time.h @@ -211,6 +211,9 @@ {{END_KNOWN_TYPES, NULL, NULL, NULL}, guess_zval_convert, guess_xml_convert} }; +int numDefaultEncodings = sizeof(defaultEncoding)/sizeof(encode); + + void whiteSpace_replace(char* str) { while (*str != '\0') { http://cvs.php.net/viewcvs.cgi/php-src/ext/soap/php_encoding.h?r1=1.38.2.2r2=1.38.2.3diff_format=u Index: php-src/ext/soap/php_encoding.h diff -u php-src/ext/soap/php_encoding.h:1.38.2.2 php-src/ext/soap/php_encoding.h:1.38.2.3 --- php-src/ext/soap/php_encoding.h:1.38.2.2Sun Apr 9 23:35:51 2006 +++ php-src/ext/soap/php_encoding.h Mon Apr 17 16:08:08 2006 @@ -17,7 +17,7 @@ | Dmitry Stogov [EMAIL PROTECTED] | +--+ */ -/* $Id: php_encoding.h,v 1.38.2.2 2006/04/09 23:35:51 andrei Exp $ */ +/* $Id: php_encoding.h,v 1.38.2.3 2006/04/17 16:08:08 andrei Exp $ */ #ifndef PHP_ENCODING_H #define PHP_ENCODING_H @@ -222,5 +222,6 @@ void delete_encoder_persistent(void *handle); extern encode defaultEncoding[]; +extern int numDefaultEncodings; #endif http://cvs.php.net/viewcvs.cgi/php-src/ext/soap/php_sdl.c?r1=1.88.2.9r2=1.88.2.10diff_format=u Index: php-src/ext/soap/php_sdl.c diff -u php-src/ext/soap/php_sdl.c:1.88.2.9 php-src/ext/soap/php_sdl.c:1.88.2.10 --- php-src/ext/soap/php_sdl.c:1.88.2.9 Mon Apr 17 13:16:02 2006 +++ php-src/ext/soap/php_sdl.c Mon Apr 17 16:08:08 2006 @@ -17,7 +17,7 @@ | Dmitry Stogov [EMAIL PROTECTED] | +--+ */ -/* $Id: php_sdl.c,v 1.88.2.9 2006/04/17 13:16:02 dmitry Exp $ */ +/* $Id: php_sdl.c,v 1.88.2.10 2006/04/17 16:08:08 andrei Exp $ */ #include php_soap.h #include ext/libxml/php_libxml.h @@ -2292,7 +2292,7 @@ { sdlTypePtr *tmp; - if (zend_hash_find(ptr_map, (char *)(*type), sizeof(sdlTypePtr), (void**)tmp) == SUCCESS) { + if (zend_hash_find(ptr_map, (char *)type, sizeof(sdlTypePtr), (void**)tmp) == SUCCESS) { *type = *tmp; } else { zend_hash_next_index_insert(bp_types, (void*)type, sizeof(sdlTypePtr*), NULL); @@ -2305,11 +2305,11 @@ encodePtr *tmp; /* do not process defaultEncoding's here */ - if ((*enc)-details.sdl_type == NULL) { + if ((*enc) = defaultEncoding (*enc) defaultEncoding + numDefaultEncodings) { return; } - if (zend_hash_find(ptr_map, (char *)(*enc), sizeof(encodePtr), (void**)tmp) == SUCCESS) { + if (zend_hash_find(ptr_map, (char *)enc, sizeof(encodePtr), (void**)tmp) == SUCCESS) { *enc = *tmp; } else { zend_hash_next_index_insert(bp_encoders, (void*)enc, sizeof(encodePtr*), NULL); @@ -2513,7 +2513,7 @@ } /* we do not want to process defaultEncoding's here */ - if (pattr-encode pattr-encode-details.sdl_type) { + if (pattr-encode) { make_persistent_sdl_encoder_ref(pattr-encode, ptr_map, bp_encoders); } @@ -2625,7 +2625,7 @@ } /* we do not want to process defaultEncoding's here */ - if (ptype-encode ptype-encode-details.sdl_type) { + if (ptype-encode) { make_persistent_sdl_encoder_ref(ptype-encode, ptr_map, bp_encoders); } -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
[PHP-CVS] cvs: php-src(PHP_5_1) /ext/soap php_encoding.c
dmitry Mon Feb 6 13:17:06 2006 UTC Modified files: (Branch: PHP_5_1) /php-src/ext/soap php_encoding.c Log: typo http://cvs.php.net/viewcvs.cgi/php-src/ext/soap/php_encoding.c?r1=1.103.2.15r2=1.103.2.16diff_format=u Index: php-src/ext/soap/php_encoding.c diff -u php-src/ext/soap/php_encoding.c:1.103.2.15 php-src/ext/soap/php_encoding.c:1.103.2.16 --- php-src/ext/soap/php_encoding.c:1.103.2.15 Thu Feb 2 11:41:45 2006 +++ php-src/ext/soap/php_encoding.c Mon Feb 6 13:17:06 2006 @@ -17,7 +17,7 @@ | Dmitry Stogov [EMAIL PROTECTED] | +--+ */ -/* $Id: php_encoding.c,v 1.103.2.15 2006/02/02 11:41:45 dmitry Exp $ */ +/* $Id: php_encoding.c,v 1.103.2.16 2006/02/06 13:17:06 dmitry Exp $ */ #include time.h @@ -327,7 +327,7 @@ /* TODO: namespace isn't stored */ encodePtr enc = get_encoder(SOAP_GLOBAL(sdl), SOAP_GLOBAL(sdl)-target_ns, type_name); if (enc) { - encode = enc-details; + encode = enc; } break; } -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
[PHP-CVS] cvs: php-src(PHP_5_1) /ext/soap php_encoding.c /ext/soap/tests classmap003.phpt classmap003.wsdl
dmitry Wed Feb 1 17:18:24 2006 UTC Added files: (Branch: PHP_5_1) /php-src/ext/soap/tests classmap003.phpt classmap003.wsdl Modified files: /php-src/ext/soap php_encoding.c Log: Fixed encoding of inhereted objects http://cvs.php.net/viewcvs.cgi/php-src/ext/soap/php_encoding.c?r1=1.103.2.13r2=1.103.2.14diff_format=u Index: php-src/ext/soap/php_encoding.c diff -u php-src/ext/soap/php_encoding.c:1.103.2.13 php-src/ext/soap/php_encoding.c:1.103.2.14 --- php-src/ext/soap/php_encoding.c:1.103.2.13 Sun Jan 1 12:50:13 2006 +++ php-src/ext/soap/php_encoding.c Wed Feb 1 17:18:24 2006 @@ -17,7 +17,7 @@ | Dmitry Stogov [EMAIL PROTECTED] | +--+ */ -/* $Id: php_encoding.c,v 1.103.2.13 2006/01/01 12:50:13 sniper Exp $ */ +/* $Id: php_encoding.c,v 1.103.2.14 2006/02/01 17:18:24 dmitry Exp $ */ #include time.h @@ -306,6 +306,34 @@ xmlSetNs(node, nsp); } } else { + if (SOAP_GLOBAL(class_map) data + Z_TYPE_P(data) == IS_OBJECT + !Z_OBJPROP_P(data)-nApplyCount) { + zend_class_entry *ce = Z_OBJCE_P(data); + HashPosition pos; + zval **tmp; + char *type_name = NULL; + uint type_len; + ulong idx; + + for (zend_hash_internal_pointer_reset_ex(SOAP_GLOBAL(class_map), pos); + zend_hash_get_current_data_ex(SOAP_GLOBAL(class_map), (void **) tmp, pos) == SUCCESS; +zend_hash_move_forward_ex(SOAP_GLOBAL(class_map), pos)) { + if (Z_TYPE_PP(tmp) == IS_STRING + ce-name_length == Z_STRLEN_PP(tmp) + zend_binary_strncasecmp(ce-name, ce-name_length, Z_STRVAL_PP(tmp), ce-name_length, ce-name_length) == 0 + zend_hash_get_current_key_ex(SOAP_GLOBAL(class_map), type_name, type_len, idx, 0, pos) == HASH_KEY_IS_STRING) { + + /* TODO: namespace isn't stored */ + encodePtr enc = get_encoder(SOAP_GLOBAL(sdl), SOAP_GLOBAL(sdl)-target_ns, type_name); + if (enc) { + encode = enc-details; + } + break; + } + } + } + if (encode == NULL) { encode = get_conversion(UNKNOWN_TYPE); } @@ -1220,9 +1248,9 @@ ret = master_to_zval_int(sdlType-encode, data); FIND_XML_NULL(data, ret); if (get_zval_property(ret, any TSRMLS_CC) != NULL) { - unset_zval_property(ret, any TSRMLS_CC); + unset_zval_property(ret, any TSRMLS_CC); redo_any = 1; - } + } if (Z_TYPE_P(ret) == IS_OBJECT ce != ZEND_STANDARD_CLASS_DEF_PTR) { zend_object *zobj = zend_objects_get_address(ret TSRMLS_CC); zobj-ce = ce; @@ -1526,7 +1554,7 @@ static xmlNodePtr to_xml_object(encodeTypePtr type, zval *data, int style, xmlNodePtr parent) { xmlNodePtr xmlParam; - HashTable *prop; + HashTable *prop = NULL; int i; sdlTypePtr sdlType = type-sdl_type; TSRMLS_FETCH(); @@ -1534,19 +1562,19 @@ if (!data || Z_TYPE_P(data) == IS_NULL) { xmlParam = xmlNewNode(NULL,BOGUS); xmlAddChild(parent, xmlParam); - if (style == SOAP_ENCODED) { + if (style == SOAP_ENCODED) { xmlSetProp(xmlParam, xsi:nil, true); } return xmlParam; } + if (Z_TYPE_P(data) == IS_OBJECT) { + prop = Z_OBJPROP_P(data); + } else if (Z_TYPE_P(data) == IS_ARRAY) { + prop = Z_ARRVAL_P(data); + } + if (sdlType) { - prop = NULL; - if (Z_TYPE_P(data) == IS_OBJECT) { - prop = Z_OBJPROP_P(data); - } else if (Z_TYPE_P(data) == IS_ARRAY) { - prop = Z_ARRVAL_P(data); - } if (sdlType-kind == XSD_TYPEKIND_RESTRICTION sdlType-encode type != sdlType-encode-details) { encodePtr enc; @@ -1562,7 +1590,7 @@ zval *tmp
[PHP-CVS] cvs: php-src(PHP_5_1) /ext/soap php_encoding.c php_schema.c php_sdl.c soap.c
dmitry Fri Dec 9 10:29:15 2005 EDT Modified files: (Branch: PHP_5_1) /php-src/ext/soap php_encoding.c php_schema.c php_sdl.c soap.c Log: Fixed possible SIGSEGV (Rob Richards) http://cvs.php.net/diff.php/php-src/ext/soap/php_encoding.c?r1=1.103.2.11r2=1.103.2.12ty=u Index: php-src/ext/soap/php_encoding.c diff -u php-src/ext/soap/php_encoding.c:1.103.2.11 php-src/ext/soap/php_encoding.c:1.103.2.12 --- php-src/ext/soap/php_encoding.c:1.103.2.11 Tue Nov 8 03:30:16 2005 +++ php-src/ext/soap/php_encoding.c Fri Dec 9 10:29:14 2005 @@ -17,7 +17,7 @@ | Dmitry Stogov [EMAIL PROTECTED] | +--+ */ -/* $Id: php_encoding.c,v 1.103.2.11 2005/11/08 08:30:16 dmitry Exp $ */ +/* $Id: php_encoding.c,v 1.103.2.12 2005/12/09 15:29:14 dmitry Exp $ */ #include time.h @@ -268,7 +268,7 @@ if (zend_hash_find(ht, enc_ns, sizeof(enc_ns), (void **)zns) == SUCCESS) { enc = get_encoder(SOAP_GLOBAL(sdl), Z_STRVAL_PP(zns), Z_STRVAL_PP(zstype)); } else { - enc = get_encoder(SOAP_GLOBAL(sdl), NULL, Z_STRVAL_PP(zstype)); + enc = get_encoder_ex(SOAP_GLOBAL(sdl), Z_STRVAL_PP(zstype), Z_STRLEN_PP(zstype)); } } } http://cvs.php.net/diff.php/php-src/ext/soap/php_schema.c?r1=1.58.2.2r2=1.58.2.3ty=u Index: php-src/ext/soap/php_schema.c diff -u php-src/ext/soap/php_schema.c:1.58.2.2 php-src/ext/soap/php_schema.c:1.58.2.3 --- php-src/ext/soap/php_schema.c:1.58.2.2 Tue Nov 8 03:30:17 2005 +++ php-src/ext/soap/php_schema.c Fri Dec 9 10:29:14 2005 @@ -17,7 +17,7 @@ | Dmitry Stogov [EMAIL PROTECTED] | +--+ */ -/* $Id: php_schema.c,v 1.58.2.2 2005/11/08 08:30:17 dmitry Exp $ */ +/* $Id: php_schema.c,v 1.58.2.3 2005/12/09 15:29:14 dmitry Exp $ */ #include php_soap.h #include libxml/uri.h @@ -232,7 +232,11 @@ location = get_attribute(trav-properties, schemaLocation); if (ns != NULL tns != NULL strcmp(ns-children-content,tns-children-content) == 0) { - soap_error1(E_ERROR, Parsing Schema: can't import schema from '%s', namespace must not match the enclosing schema 'targetNamespace', location-children-content); + if (location) { + soap_error1(E_ERROR, Parsing Schema: can't import schema from '%s', namespace must not match the enclosing schema 'targetNamespace', location-children-content); + } else { + soap_error0(E_ERROR, Parsing Schema: can't import schema. Namespace must not match the enclosing schema 'targetNamespace'); + } } if (location) { xmlChar *base = xmlNodeGetBase(trav-doc, trav); http://cvs.php.net/diff.php/php-src/ext/soap/php_sdl.c?r1=1.88.2.3r2=1.88.2.4ty=u Index: php-src/ext/soap/php_sdl.c diff -u php-src/ext/soap/php_sdl.c:1.88.2.3 php-src/ext/soap/php_sdl.c:1.88.2.4 --- php-src/ext/soap/php_sdl.c:1.88.2.3 Mon Nov 28 05:08:34 2005 +++ php-src/ext/soap/php_sdl.c Fri Dec 9 10:29:14 2005 @@ -17,7 +17,7 @@ | Dmitry Stogov [EMAIL PROTECTED] | +--+ */ -/* $Id: php_sdl.c,v 1.88.2.3 2005/11/28 10:08:34 dmitry Exp $ */ +/* $Id: php_sdl.c,v 1.88.2.4 2005/12/09 15:29:14 dmitry Exp $ */ #include php_soap.h #include ext/libxml/php_libxml.h @@ -410,10 +410,10 @@ if (!h-ns h-element-namens) { h-ns = estrdup(h-element-namens); } - } - if (h-element-name) { - efree(h-name); - h-name = estrdup(h-element-name); + if (h-element-name) { + efree(h-name); + h-name = estrdup(h-element-name); + } } } } http://cvs.php.net/diff.php/php-src/ext/soap/soap.c?r1=1.156.2.9r2=1.156.2.10ty=u Index: php-src/ext/soap/soap.c diff -u php-src/ext/soap/soap.c:1.156.2.9 php-src/ext/soap/soap.c:1.156.2.10 --- php-src/ext/soap/soap.c:1.156.2.9 Mon Dec 5 21:25:31 2005 +++ php-src/ext/soap/soap.c Fri Dec 9 10:29:15 2005 @@ -17,7 +17,7 @@ | Dmitry Stogov [EMAIL PROTECTED] |
[PHP-CVS] cvs: php-src(PHP_5_1) /ext/soap php_encoding.c /ext/soap/tests any.phpt
dmitry Tue Nov 1 06:11:35 2005 EDT Added files: (Branch: PHP_5_1) /php-src/ext/soap/tests any.phpt Modified files: /php-src/ext/soap php_encoding.c Log: Fixed SIGSEGV http://cvs.php.net/diff.php/php-src/ext/soap/php_encoding.c?r1=1.103.2.9r2=1.103.2.10ty=u Index: php-src/ext/soap/php_encoding.c diff -u php-src/ext/soap/php_encoding.c:1.103.2.9 php-src/ext/soap/php_encoding.c:1.103.2.10 --- php-src/ext/soap/php_encoding.c:1.103.2.9 Tue Oct 11 06:15:40 2005 +++ php-src/ext/soap/php_encoding.c Tue Nov 1 06:11:34 2005 @@ -17,7 +17,7 @@ | Dmitry Stogov [EMAIL PROTECTED] | +--+ */ -/* $Id: php_encoding.c,v 1.103.2.9 2005/10/11 10:15:40 dmitry Exp $ */ +/* $Id: php_encoding.c,v 1.103.2.10 2005/11/01 11:11:34 dmitry Exp $ */ #include time.h @@ -2760,15 +2760,16 @@ if (Z_TYPE_P(data) == IS_STRING) { ret = xmlNewTextLen(Z_STRVAL_P(data), Z_STRLEN_P(data)); + ret-name = xmlStringTextNoenc; } else { zval tmp = *data; zval_copy_ctor(tmp); convert_to_string(tmp); - ret = xmlNewTextLen(Z_STRVAL_P(data), Z_STRLEN_P(data)); + ret = xmlNewTextLen(Z_STRVAL(tmp), Z_STRLEN(tmp)); zval_dtor(tmp); + ret-name = xmlStringTextNoenc; } - ret-name = xmlStringTextNoenc; xmlAddChild(parent, ret); return ret; http://cvs.php.net/co.php/php-src/ext/soap/tests/any.phpt?r=1.1p=1 Index: php-src/ext/soap/tests/any.phpt +++ php-src/ext/soap/tests/any.phpt --TEST-- SOAP handling of any --SKIPIF-- ?php require_once('skipif.inc'); ? --FILE-- ?php class SOAPComplexType { function SOAPComplexType($s, $i, $f) { $this-varString = $s; $this-varInt = $i; $this-varFloat = $f; } } $struct = new SOAPComplexType('arg',34,325.325); function echoAnyElement($x) { global $g; $g = $x; $struct = $x-inputAny-any; if ($struct instanceof SOAPComplexType) { return array(return = array(any = new SoapVar($struct, SOAP_ENC_OBJECT, SOAPComplexType, http://soapinterop.org/xsd;, SOAPComplexType, http://soapinterop.org/;))); } else { return ?; } } class TestSoapClient extends SoapClient { function __construct($wsdl, $options) { parent::__construct($wsdl, $options); $this-server = new SoapServer($wsdl, $options); $this-server-addFunction('echoAnyElement'); } function __doRequest($request, $location, $action, $version) { ob_start(); $this-server-handle($request); $response = ob_get_contents(); ob_end_clean(); return $response; } } $client = new TestSoapClient(dirname(__FILE__)./interop/Round4/GroupI/round4_groupI_xsd.wsdl, array(trace=1,exceptions=0, 'classmap' = array('SOAPComplexType'='SOAPComplexType'))); $ret = $client-echoAnyElement( array( inputAny=array( any=new SoapVar($struct, SOAP_ENC_OBJECT, SOAPComplexType, http://soapinterop.org/xsd;, SOAPComplexType, http://soapinterop.org/;) ))); var_dump($g); var_dump($ret); ? --EXPECT-- object(stdClass)#5 (1) { [inputAny]= object(stdClass)#6 (1) { [any]= object(SOAPComplexType)#7 (3) { [varInt]= int(34) [varString]= string(3) arg [varFloat]= float(325.325) } } } object(stdClass)#8 (1) { [return]= object(stdClass)#9 (1) { [any]= object(SOAPComplexType)#10 (3) { [varInt]= int(34) [varString]= string(3) arg [varFloat]= float(325.325) } } } -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
[PHP-CVS] cvs: php-src(PHP_5_1) /ext/soap php_encoding.c
dmitry Fri Oct 7 04:23:36 2005 EDT Modified files: (Branch: PHP_5_1) /php-src/ext/soap php_encoding.c Log: Reverted last George patches http://cvs.php.net/diff.php/php-src/ext/soap/php_encoding.c?r1=1.103.2.5r2=1.103.2.6ty=u Index: php-src/ext/soap/php_encoding.c diff -u php-src/ext/soap/php_encoding.c:1.103.2.5 php-src/ext/soap/php_encoding.c:1.103.2.6 --- php-src/ext/soap/php_encoding.c:1.103.2.5 Fri Oct 7 01:14:52 2005 +++ php-src/ext/soap/php_encoding.c Fri Oct 7 04:23:35 2005 @@ -17,7 +17,7 @@ | Dmitry Stogov [EMAIL PROTECTED] | +--+ */ -/* $Id: php_encoding.c,v 1.103.2.5 2005/10/07 05:14:52 gschlossnagle Exp $ */ +/* $Id: php_encoding.c,v 1.103.2.6 2005/10/07 08:23:35 dmitry Exp $ */ #include time.h @@ -319,10 +319,6 @@ node = encode-to_xml_after(encode-details, node, style); } } - if(!node) { - node = xmlNewNode(NULL,BOGUS); - xmlAddChild(parent, node); - } return node; } @@ -1185,9 +1181,9 @@ if (sdlType-kind == XSD_TYPEKIND_RESTRICTION sdlType-encode type != sdlType-encode-details) { encodePtr enc; + enc = sdlType-encode; while (enc enc-details.sdl_type - enc-details.sdl_type-kind != XSD_TYPEKIND_COMPLEX enc-details.sdl_type-kind != XSD_TYPEKIND_SIMPLE enc-details.sdl_type-kind != XSD_TYPEKIND_LIST enc-details.sdl_type-kind != XSD_TYPEKIND_UNION) { @@ -1210,7 +1206,6 @@ sdlType-encode type != sdlType-encode-details) { if (sdlType-encode-details.sdl_type - sdlType-encode-details.sdl_type-kind != XSD_TYPEKIND_COMPLEX sdlType-encode-details.sdl_type-kind != XSD_TYPEKIND_SIMPLE sdlType-encode-details.sdl_type-kind != XSD_TYPEKIND_LIST sdlType-encode-details.sdl_type-kind != XSD_TYPEKIND_UNION) { @@ -1517,6 +1512,7 @@ int i; sdlTypePtr sdlType = type-sdl_type; TSRMLS_FETCH(); + if (!data || Z_TYPE_P(data) == IS_NULL) { xmlParam = xmlNewNode(NULL,BOGUS); xmlAddChild(parent, xmlParam); @@ -1539,7 +1535,6 @@ enc = sdlType-encode; while (enc enc-details.sdl_type - enc-details.sdl_type-kind != XSD_TYPEKIND_COMPLEX enc-details.sdl_type-kind != XSD_TYPEKIND_SIMPLE enc-details.sdl_type-kind != XSD_TYPEKIND_LIST enc-details.sdl_type-kind != XSD_TYPEKIND_UNION) { @@ -1549,9 +1544,12 @@ zval *tmp = get_zval_property(data, _ TSRMLS_CC); if (tmp) { xmlParam = master_to_xml(enc, tmp, style, parent); - } else { + } else if (prop == NULL) { xmlParam = master_to_xml(enc, data, style, parent); - } + } else { + xmlParam = xmlNewNode(NULL,BOGUS); + xmlAddChild(parent, xmlParam); + } } else { xmlParam = xmlNewNode(NULL,BOGUS); xmlAddChild(parent, xmlParam); @@ -1559,7 +1557,6 @@ } else if (sdlType-kind == XSD_TYPEKIND_EXTENSION sdlType-encode type != sdlType-encode-details) { if (sdlType-encode-details.sdl_type - sdlType-encode-details.sdl_type-kind != XSD_TYPEKIND_COMPLEX sdlType-encode-details.sdl_type-kind != XSD_TYPEKIND_SIMPLE sdlType-encode-details.sdl_type-kind != XSD_TYPEKIND_LIST sdlType-encode-details.sdl_type-kind != XSD_TYPEKIND_UNION) { @@ -1569,8 +1566,11 @@ if (tmp) { xmlParam = master_to_xml(sdlType-encode, tmp, style, parent); - } else { + } else if (prop == NULL) { xmlParam = master_to_xml(sdlType-encode, data, style, parent); + } else { + xmlParam = xmlNewNode(NULL,BOGUS); +
[PHP-CVS] cvs: php-src(PHP_5_1) /ext/soap php_encoding.c
gschlossnagle Thu Oct 6 18:30:24 2005 EDT Modified files: (Branch: PHP_5_1) /php-src/ext/soap php_encoding.c Log: MFH: support complex types in restrictions and extensions http://cvs.php.net/diff.php/php-src/ext/soap/php_encoding.c?r1=1.103.2.3r2=1.103.2.4ty=u Index: php-src/ext/soap/php_encoding.c diff -u php-src/ext/soap/php_encoding.c:1.103.2.3 php-src/ext/soap/php_encoding.c:1.103.2.4 --- php-src/ext/soap/php_encoding.c:1.103.2.3 Thu Sep 29 06:02:11 2005 +++ php-src/ext/soap/php_encoding.c Thu Oct 6 18:30:24 2005 @@ -17,7 +17,7 @@ | Dmitry Stogov [EMAIL PROTECTED] | +--+ */ -/* $Id: php_encoding.c,v 1.103.2.3 2005/09/29 10:02:11 dmitry Exp $ */ +/* $Id: php_encoding.c,v 1.103.2.4 2005/10/06 22:30:24 gschlossnagle Exp $ */ #include time.h @@ -319,6 +319,10 @@ node = encode-to_xml_after(encode-details, node, style); } } + if(!node) { + node = xmlNewNode(NULL,BOGUS); + xmlAddChild(parent, node); + } return node; } @@ -1512,7 +1516,6 @@ int i; sdlTypePtr sdlType = type-sdl_type; TSRMLS_FETCH(); - if (!data || Z_TYPE_P(data) == IS_NULL) { xmlParam = xmlNewNode(NULL,BOGUS); xmlAddChild(parent, xmlParam); @@ -1535,6 +1538,7 @@ enc = sdlType-encode; while (enc enc-details.sdl_type + enc-details.sdl_type-kind != XSD_TYPEKIND_COMPLEX enc-details.sdl_type-kind != XSD_TYPEKIND_SIMPLE enc-details.sdl_type-kind != XSD_TYPEKIND_LIST enc-details.sdl_type-kind != XSD_TYPEKIND_UNION) { @@ -1544,12 +1548,9 @@ zval *tmp = get_zval_property(data, _ TSRMLS_CC); if (tmp) { xmlParam = master_to_xml(enc, tmp, style, parent); - } else if (prop == NULL) { - xmlParam = master_to_xml(enc, data, style, parent); } else { - xmlParam = xmlNewNode(NULL,BOGUS); - xmlAddChild(parent, xmlParam); - } + xmlParam = master_to_xml(enc, data, style, parent); + } } else { xmlParam = xmlNewNode(NULL,BOGUS); xmlAddChild(parent, xmlParam); @@ -1557,6 +1558,7 @@ } else if (sdlType-kind == XSD_TYPEKIND_EXTENSION sdlType-encode type != sdlType-encode-details) { if (sdlType-encode-details.sdl_type + sdlType-encode-details.sdl_type-kind != XSD_TYPEKIND_COMPLEX sdlType-encode-details.sdl_type-kind != XSD_TYPEKIND_SIMPLE sdlType-encode-details.sdl_type-kind != XSD_TYPEKIND_LIST sdlType-encode-details.sdl_type-kind != XSD_TYPEKIND_UNION) { @@ -1566,11 +1568,8 @@ if (tmp) { xmlParam = master_to_xml(sdlType-encode, tmp, style, parent); - } else if (prop == NULL) { - xmlParam = master_to_xml(sdlType-encode, data, style, parent); } else { - xmlParam = xmlNewNode(NULL,BOGUS); - xmlAddChild(parent, xmlParam); + xmlParam = master_to_xml(sdlType-encode, data, style, parent); } } } else { -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
[PHP-CVS] cvs: php-src(PHP_5_1) /ext/soap php_encoding.c
gschlossnagle Fri Oct 7 01:14:52 2005 EDT Modified files: (Branch: PHP_5_1) /php-src/ext/soap php_encoding.c Log: Permit correct usage of inherited encoders (from restriction/extension base directives) for xml response decoding. http://cvs.php.net/diff.php/php-src/ext/soap/php_encoding.c?r1=1.103.2.4r2=1.103.2.5ty=u Index: php-src/ext/soap/php_encoding.c diff -u php-src/ext/soap/php_encoding.c:1.103.2.4 php-src/ext/soap/php_encoding.c:1.103.2.5 --- php-src/ext/soap/php_encoding.c:1.103.2.4 Thu Oct 6 18:30:24 2005 +++ php-src/ext/soap/php_encoding.c Fri Oct 7 01:14:52 2005 @@ -17,7 +17,7 @@ | Dmitry Stogov [EMAIL PROTECTED] | +--+ */ -/* $Id: php_encoding.c,v 1.103.2.4 2005/10/06 22:30:24 gschlossnagle Exp $ */ +/* $Id: php_encoding.c,v 1.103.2.5 2005/10/07 05:14:52 gschlossnagle Exp $ */ #include time.h @@ -1185,9 +1185,9 @@ if (sdlType-kind == XSD_TYPEKIND_RESTRICTION sdlType-encode type != sdlType-encode-details) { encodePtr enc; - enc = sdlType-encode; while (enc enc-details.sdl_type + enc-details.sdl_type-kind != XSD_TYPEKIND_COMPLEX enc-details.sdl_type-kind != XSD_TYPEKIND_SIMPLE enc-details.sdl_type-kind != XSD_TYPEKIND_LIST enc-details.sdl_type-kind != XSD_TYPEKIND_UNION) { @@ -1210,6 +1210,7 @@ sdlType-encode type != sdlType-encode-details) { if (sdlType-encode-details.sdl_type + sdlType-encode-details.sdl_type-kind != XSD_TYPEKIND_COMPLEX sdlType-encode-details.sdl_type-kind != XSD_TYPEKIND_SIMPLE sdlType-encode-details.sdl_type-kind != XSD_TYPEKIND_LIST sdlType-encode-details.sdl_type-kind != XSD_TYPEKIND_UNION) { -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
[PHP-CVS] cvs: php-src(PHP_5_1) /ext/soap php_encoding.c
dmitry Thu Sep 29 06:02:12 2005 EDT Modified files: (Branch: PHP_5_1) /php-src/ext/soap php_encoding.c Log: Fixed wrong array autodetection http://cvs.php.net/diff.php/php-src/ext/soap/php_encoding.c?r1=1.103.2.2r2=1.103.2.3ty=u Index: php-src/ext/soap/php_encoding.c diff -u php-src/ext/soap/php_encoding.c:1.103.2.2 php-src/ext/soap/php_encoding.c:1.103.2.3 --- php-src/ext/soap/php_encoding.c:1.103.2.2 Fri Sep 16 13:11:00 2005 +++ php-src/ext/soap/php_encoding.c Thu Sep 29 06:02:11 2005 @@ -17,7 +17,7 @@ | Dmitry Stogov [EMAIL PROTECTED] | +--+ */ -/* $Id: php_encoding.c,v 1.103.2.2 2005/09/16 17:11:00 tony2001 Exp $ */ +/* $Id: php_encoding.c,v 1.103.2.3 2005/09/29 10:02:11 dmitry Exp $ */ #include time.h @@ -1321,7 +1321,9 @@ data = get_zval_property(object, model-u.element-name TSRMLS_CC); if (data) { enc = model-u.element-encode; - if ((model-max_occurs == -1 || model-max_occurs 1) Z_TYPE_P(data) == IS_ARRAY) { + if ((model-max_occurs == -1 || model-max_occurs 1) + Z_TYPE_P(data) == IS_ARRAY + !is_map(data)) { HashTable *ht = Z_ARRVAL_P(data); zval **val; @@ -1344,7 +1346,9 @@ } } xmlNodeSetName(property, model-u.element-name); - if (style == SOAP_LITERAL model-u.element-namens) { + if (style == SOAP_LITERAL + model-u.element-namens + model-u.element-form == XSD_FORM_QUALIFIED) { xmlNsPtr nsp = encode_add_ns(property, model-u.element-namens); xmlSetNs(property, nsp); } @@ -1404,7 +1408,9 @@ data = get_zval_property(object, any TSRMLS_CC); if (data) { enc = get_conversion(XSD_ANYXML); - if ((model-max_occurs == -1 || model-max_occurs 1) Z_TYPE_P(data) == IS_ARRAY) { + if ((model-max_occurs == -1 || model-max_occurs 1) + Z_TYPE_P(data) == IS_ARRAY + !is_map(data)) { HashTable *ht = Z_ARRVAL_P(data); zval **val; @@ -1599,7 +1605,9 @@ property = master_to_xml(array_el-encode, *val, style, xmlParam); } xmlNodeSetName(property, array_el-name); - if (style == SOAP_LITERAL array_el-namens) { + if (style == SOAP_LITERAL + array_el-namens + array_el-form == XSD_FORM_QUALIFIED) { xmlNsPtr nsp = encode_add_ns(property, array_el-namens); xmlSetNs(property, nsp); } -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
[PHP-CVS] cvs: php-src(PHP_5_1) /ext/soap php_encoding.c /ext/standard http.c var.c /ext/wddx wddx.c
tony2001Fri Sep 16 13:11:05 2005 EDT Modified files: (Branch: PHP_5_1) /php-src/ext/standard http.c var.c /php-src/ext/soap php_encoding.c /php-src/ext/wddx wddx.c Log: fix #34505 (possible memory corruption when unmangling properties with empty names) 2nd part http://cvs.php.net/diff.php/php-src/ext/standard/http.c?r1=1.14r2=1.14.2.1ty=u Index: php-src/ext/standard/http.c diff -u php-src/ext/standard/http.c:1.14 php-src/ext/standard/http.c:1.14.2.1 --- php-src/ext/standard/http.c:1.14Wed Aug 3 10:08:04 2005 +++ php-src/ext/standard/http.c Fri Sep 16 13:10:58 2005 @@ -16,7 +16,7 @@ +--+ */ -/* $Id: http.c,v 1.14 2005/08/03 14:08:04 sniper Exp $ */ +/* $Id: http.c,v 1.14.2.1 2005/09/16 17:10:58 tony2001 Exp $ */ #include php_http.h #include php_ini.h @@ -69,7 +69,7 @@ /* private or protected property access outside of the class */ continue; } - zend_unmangle_property_name(key, tmp, key); + zend_unmangle_property_name_ex(key, key_len, tmp, key); key_len = strlen(key); } http://cvs.php.net/diff.php/php-src/ext/standard/var.c?r1=1.203.2.2r2=1.203.2.3ty=u Index: php-src/ext/standard/var.c diff -u php-src/ext/standard/var.c:1.203.2.2 php-src/ext/standard/var.c:1.203.2.3 --- php-src/ext/standard/var.c:1.203.2.2Mon Sep 12 03:13:54 2005 +++ php-src/ext/standard/var.c Fri Sep 16 13:10:58 2005 @@ -18,7 +18,7 @@ +--+ */ -/* $Id: var.c,v 1.203.2.2 2005/09/12 07:13:54 dmitry Exp $ */ +/* $Id: var.c,v 1.203.2.3 2005/09/16 17:10:58 tony2001 Exp $ */ @@ -76,7 +76,7 @@ if (hash_key-nKeyLength ==0 ) { /* numeric key */ php_printf(%*c[%ld]=\n, level + 1, ' ', hash_key-h); } else { /* string key */ - zend_unmangle_property_name(hash_key-arKey, class_name, prop_name); + zend_unmangle_property_name_ex(hash_key-arKey, hash_key-nKeyLength, class_name, prop_name); if (class_name) { php_printf(%*c[\%s, level + 1, ' ', prop_name); if (class_name[0]=='*') { @@ -351,7 +351,7 @@ if (hash_key-nKeyLength != 0) { php_printf(%*c, level + 1, ' '); - zend_unmangle_property_name(hash_key-arKey, class_name, prop_name); + zend_unmangle_property_name_ex(hash_key-arKey, hash_key-nKeyLength, class_name, prop_name); if (class_name) { if (class_name[0] == '*') { php_printf(protected); http://cvs.php.net/diff.php/php-src/ext/soap/php_encoding.c?r1=1.103.2.1r2=1.103.2.2ty=u Index: php-src/ext/soap/php_encoding.c diff -u php-src/ext/soap/php_encoding.c:1.103.2.1 php-src/ext/soap/php_encoding.c:1.103.2.2 --- php-src/ext/soap/php_encoding.c:1.103.2.1 Wed Aug 24 07:46:11 2005 +++ php-src/ext/soap/php_encoding.c Fri Sep 16 13:11:00 2005 @@ -17,7 +17,7 @@ | Dmitry Stogov [EMAIL PROTECTED] | +--+ */ -/* $Id: php_encoding.c,v 1.103.2.1 2005/08/24 11:46:11 dmitry Exp $ */ +/* $Id: php_encoding.c,v 1.103.2.2 2005/09/16 17:11:00 tony2001 Exp $ */ #include time.h @@ -1669,9 +1669,9 @@ zval **zprop; char *str_key; ulong index; - int key_type; + int key_type, str_key_len; - key_type = zend_hash_get_current_key(prop, str_key, index, FALSE); + key_type = zend_hash_get_current_key_ex(prop, str_key, str_key_len, index, FALSE, NULL); zend_hash_get_current_data(prop, (void **)zprop); property = master_to_xml(get_conversion((*zprop)-type), (*zprop), style, xmlParam); @@ -1682,7 +1682,7 @@ if (Z_TYPE_P(data) == IS_OBJECT) { char *class_name; - zend_unmangle_property_name(str_key, class_name, prop_name); + zend_unmangle_property_name_ex(str_key, str_key_len, class_name, prop_name); } else { prop_name = str_key; } http://cvs.php.net/diff.php/php-src/ext/wddx/wddx.c?r1=1.119.2.2r2=1.119.2.3ty=u Index: php-src/ext/wddx/wddx.c diff -u php-src/ext/wddx/wddx.c:1.119.2.2