[PHP-CVS] cvs: php-src(PHP_5_1) /ext/soap php_encoding.c php_encoding.h php_sdl.c

2006-04-17 Thread Andrei Zmievski
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

2006-02-06 Thread Dmitry Stogov
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

2006-02-01 Thread Dmitry Stogov
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

2005-12-09 Thread Dmitry Stogov
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

2005-11-01 Thread Dmitry Stogov
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

2005-10-07 Thread Dmitry Stogov
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

2005-10-06 Thread George Schlossnagle
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

2005-10-06 Thread George Schlossnagle
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

2005-09-29 Thread Dmitry Stogov
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

2005-09-16 Thread Antony Dovgal
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