dmitry          Fri Feb 13 10:19:11 2004 EDT

  Modified files:              
    /php-src/ext/soap   TODO php_encoding.c php_encoding.h php_schema.c 
                        php_sdl.c php_sdl.h php_xml.c soap.c 
  Log:
  Source cleanup
  
  
http://cvs.php.net/diff.php/php-src/ext/soap/TODO?r1=1.43&r2=1.44&ty=u
Index: php-src/ext/soap/TODO
diff -u php-src/ext/soap/TODO:1.43 php-src/ext/soap/TODO:1.44
--- php-src/ext/soap/TODO:1.43  Fri Feb 13 06:03:58 2004
+++ php-src/ext/soap/TODO       Fri Feb 13 10:19:09 2004
@@ -7,11 +7,8 @@
 
 SOAP
 ----
-+ support for SOAP headers
-  ? actor attribute
-  + mustUnderstend attribute
 - SOAP routing
-- root attribute
+- root attribute (it is defined by SOAP 1.1, but not SOAP 1.2)
 - make sure soap 1.1 and 1.2 are supported fully
 
 Encoding
@@ -92,7 +89,7 @@
 
 Interop Testing
 ---------------
-- more introp rounds/groups
+- more interop rounds/groups
 
 UDDI
 ----
http://cvs.php.net/diff.php/php-src/ext/soap/php_encoding.c?r1=1.55&r2=1.56&ty=u
Index: php-src/ext/soap/php_encoding.c
diff -u php-src/ext/soap/php_encoding.c:1.55 php-src/ext/soap/php_encoding.c:1.56
--- php-src/ext/soap/php_encoding.c:1.55        Fri Feb 13 06:03:58 2004
+++ php-src/ext/soap/php_encoding.c     Fri Feb 13 10:19:09 2004
@@ -17,7 +17,7 @@
   |          Dmitry Stogov <[EMAIL PROTECTED]>                             |
   +----------------------------------------------------------------------+
 */
-/* $Id: php_encoding.c,v 1.55 2004/02/13 11:03:58 dmitry Exp $ */
+/* $Id: php_encoding.c,v 1.56 2004/02/13 15:19:09 dmitry Exp $ */
 
 #include <time.h>
 
@@ -80,6 +80,8 @@
 
 static xmlNodePtr check_and_resolve_href(xmlNodePtr data);
 
+static encodePtr get_conversion(int encode);
+
 static void get_type_str(xmlNodePtr node, const char* ns, const char* type, 
smart_str* ret);
 static void set_ns_and_type_ex(xmlNodePtr node, char *ns, char *type);
 
@@ -212,16 +214,15 @@
 
 void whiteSpace_collapse(char* str)
 {
-       char *orig = str;
-       char *tmp = do_alloca(strlen(str)+1);
        char *pos;
        char old;
 
+       pos = str;
        whiteSpace_replace(str);
        while (*str == ' ') {
                str++;
        }
-       pos = tmp; old = '\0';
+       old = '\0';
        while (*str != '\0') {
                if (*str != ' ' || old != ' ') {
                        *pos = *str;
@@ -234,8 +235,6 @@
                --pos;
        }
        *pos = '\0';
-       memcpy(orig,tmp,(pos-tmp)+1);
-       free_alloca(tmp);
 }
 
 xmlNodePtr master_to_xml(encodePtr encode, zval *data, int style, xmlNodePtr parent)
@@ -795,7 +794,7 @@
                                                add_next_index_zval(array, val);
                                                do {
                                                        typeAttr = 
get_attribute(node->properties,"type");
-                                   enc = NULL;
+                                                       enc = NULL;
                                                        if (typeAttr != NULL && 
typeAttr->children && typeAttr->children->content) {
                                                                enc = 
get_encoder_from_prefix(sdl, node, typeAttr->children->content);
                                                        }
@@ -847,16 +846,16 @@
        if (sdlType) {
                if (sdlType->kind == XSD_TYPEKIND_RESTRICTION &&
                    sdlType->encode && type != &sdlType->encode->details) {
-                 encodePtr enc;
+                       encodePtr enc;
 
                        enc = sdlType->encode;
                        while (enc && enc->details.sdl_type &&
-                        enc->details.sdl_type->kind != XSD_TYPEKIND_SIMPLE &&
-                        enc->details.sdl_type->kind != XSD_TYPEKIND_LIST &&
-                        enc->details.sdl_type->kind != XSD_TYPEKIND_UNION) {
-                   enc = enc->details.sdl_type->encode;
-                 }
-                 if (enc) {
+                              enc->details.sdl_type->kind != XSD_TYPEKIND_SIMPLE &&
+                              enc->details.sdl_type->kind != XSD_TYPEKIND_LIST &&
+                              enc->details.sdl_type->kind != XSD_TYPEKIND_UNION) {
+                               enc = enc->details.sdl_type->encode;
+                       }
+                       if (enc) {
                                zval *base;
 
                                MAKE_STD_ZVAL(ret);
@@ -875,11 +874,11 @@
                } 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_SIMPLE &&
-                     sdlType->encode->details.sdl_type->kind != XSD_TYPEKIND_LIST &&
-                     sdlType->encode->details.sdl_type->kind != XSD_TYPEKIND_UNION) {
-                         ret = master_to_zval(sdlType->encode, data);
+                       if (sdlType->encode->details.sdl_type &&
+                           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) {
+                               ret = master_to_zval(sdlType->encode, data);
                                FIND_XML_NULL(data, ret);
                        } else {
                                zval *base;
@@ -1050,16 +1049,16 @@
                }
                if (sdlType->kind == XSD_TYPEKIND_RESTRICTION &&
                    sdlType->encode && type != &sdlType->encode->details) {
-                 encodePtr enc;
+                       encodePtr enc;
 
                        enc = sdlType->encode;
                        while (enc && enc->details.sdl_type &&
-                        enc->details.sdl_type->kind != XSD_TYPEKIND_SIMPLE &&
-                        enc->details.sdl_type->kind != XSD_TYPEKIND_LIST &&
-                        enc->details.sdl_type->kind != XSD_TYPEKIND_UNION) {
-                   enc = enc->details.sdl_type->encode;
-                 }
-                 if (enc) {
+                              enc->details.sdl_type->kind != XSD_TYPEKIND_SIMPLE &&
+                              enc->details.sdl_type->kind != XSD_TYPEKIND_LIST &&
+                              enc->details.sdl_type->kind != XSD_TYPEKIND_UNION) {
+                               enc = enc->details.sdl_type->encode;
+                       }
+                       if (enc) {
                                zval **tmp;
                                if (prop && zend_hash_find(prop, "_", sizeof("_"), 
(void**)&tmp) == SUCCESS) {
                                        xmlParam = master_to_xml(enc, *tmp, style, 
parent);
@@ -1075,10 +1074,10 @@
                        }
                } 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_SIMPLE &&
-                     sdlType->encode->details.sdl_type->kind != XSD_TYPEKIND_LIST &&
-                     sdlType->encode->details.sdl_type->kind != XSD_TYPEKIND_UNION) {
+                       if (sdlType->encode->details.sdl_type &&
+                           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) {
                                xmlParam = master_to_xml(sdlType->encode, data, style, 
parent);
                        } else {
                                zval **tmp;
@@ -1205,7 +1204,7 @@
          } else if (*str == '*') {
                        php_error(E_ERROR,"SOAP-ERROR: Encoding: '*' may only be first 
arraySize value in list");
                } else {
-                 flag = 0;
+                       flag = 0;
                }
                str++;
        }
@@ -1229,11 +1228,11 @@
        while (*str != '\0') {
                if (*str >= '0' && *str <= '9') {
                        if (flag == 0) {
-                       i++;
-                       flag = 1;
-               }
-               pos[i] = (pos[i]*10)+(*str-'0');
-         } else if (*str == '*') {
+                               i++;
+                               flag = 1;
+                       }
+                       pos[i] = (pos[i]*10)+(*str-'0');
+               } else if (*str == '*') {
                        php_error(E_ERROR,"SOAP-ERROR: Encoding: '*' may only be first 
arraySize value in list");
                } else {
                  flag = 0;
@@ -1421,7 +1420,7 @@
                                        if (Z_TYPE_PP(el) == IS_ARRAY) {
                                                dims[i] = 
zend_hash_num_elements(Z_ARRVAL_PP(el));
                                        } else {
-                                         dims[i] = 0;
+                                               dims[i] = 0;
                                        }
                                }
                        }
@@ -1484,19 +1483,19 @@
                            zend_hash_num_elements(sdl_type->elements) == 1 &&
                            (elementType = 
*(sdlTypePtr*)sdl_type->elements->pListHead->pData) != NULL &&
                             elementType->encode && 
elementType->encode->details.type_str) {
-                         element_type = elementType;
+                               element_type = elementType;
                                enc = elementType->encode;
                                get_type_str(xmlParam, 
elementType->encode->details.ns, elementType->encode->details.type_str, &array_type);
                        } else {
                                get_array_type(xmlParam, data, &array_type TSRMLS_CC);
-                               enc = get_encoder_ex(SOAP_GLOBAL(sdl), array_type.c);
+                               enc = get_encoder_ex(SOAP_GLOBAL(sdl), array_type.c, 
array_type.len);
                        }
                } else if (sdl_type && sdl_type->elements &&
                           zend_hash_num_elements(sdl_type->elements) == 1 &&
                           (elementType = 
*(sdlTypePtr*)sdl_type->elements->pListHead->pData) != NULL &&
                           elementType->encode && 
elementType->encode->details.type_str) {
 
-                 element_type = elementType;
+                       element_type = elementType;
                        enc = elementType->encode;
                        get_type_str(xmlParam, elementType->encode->details.ns, 
elementType->encode->details.type_str, &array_type);
 
@@ -1507,7 +1506,7 @@
                } else {
 
                        get_array_type(xmlParam, data, &array_type TSRMLS_CC);
-                       enc = get_encoder_ex(SOAP_GLOBAL(sdl), array_type.c);
+                       enc = get_encoder_ex(SOAP_GLOBAL(sdl), array_type.c, 
array_type.len);
                        smart_str_append_long(&array_size, i);
                        dims = emalloc(sizeof(int)*dimension);
                        dims[0] = i;
@@ -1898,10 +1897,9 @@
        } else {
                tmpattr = get_attribute(data->properties,"type");
                if (tmpattr != NULL) {
-                 if (tmpattr->children) {
-                               enc = get_conversion_from_type(data, 
tmpattr->children->content);
-                       } else {
-                               enc = get_conversion_from_type(data, "");
+                       enc = get_encoder_from_prefix(SOAP_GLOBAL(sdl), data, 
tmpattr->children->content);
+                       if (enc != NULL && enc->details.sdl_type != NULL) {
+                               enc = NULL;
                        }
                }
 
@@ -2276,8 +2274,8 @@
                href = data->properties;
                while (1) {
                        href = get_attribute(href, "href");
-                 if (href == NULL || href->ns == NULL) {break;}
-                 href = href->next;
+                       if (href == NULL || href->ns == NULL) {break;}
+                       href = href->next;
                }
                if (href) {
                        /*  Internal href try and find node */
@@ -2363,12 +2361,12 @@
        SOAP_GLOBAL(cur_uniq_ns) = 0;
 }
 
-encodePtr get_conversion_ex(HashTable *encoding, int encode)
+static encodePtr get_conversion(int encode)
 {
        encodePtr *enc = NULL;
        TSRMLS_FETCH();
 
-       if (zend_hash_index_find(encoding, encode, (void **)&enc) == FAILURE) {
+       if (zend_hash_index_find(&SOAP_GLOBAL(defEncIndex), encode, (void **)&enc) == 
FAILURE) {
                if (SOAP_GLOBAL(overrides)) {
                        smart_str nscat = {0};
 
@@ -2394,61 +2392,6 @@
        }
 }
 
-encodePtr get_conversion_from_href_type_ex(HashTable *encoding, const char *type, int 
len)
-{
-       encodePtr *enc = NULL;
-
-       if (encoding == NULL) {
-               return NULL;
-       }
-
-       if (zend_hash_find(encoding, (char*)type, len + 1, (void **)&enc) == FAILURE) {
-               return NULL;
-       }
-
-       return (*enc);
-}
-
-encodePtr get_conversion_from_type_ex(HashTable *encoding, xmlNodePtr node, const 
char *type)
-{
-       encodePtr *enc = NULL;
-       xmlNsPtr nsptr;
-       char *ns, *cptype;
-       smart_str nscat = {0};
-
-       if (encoding == NULL) {
-               return NULL;
-       }
-
-       parse_namespace(type, &cptype, &ns);
-       nsptr = xmlSearchNs(node->doc, node, ns);
-       if (nsptr != NULL) {
-               smart_str_appends(&nscat, nsptr->href);
-               smart_str_appendc(&nscat, ':');
-               smart_str_appends(&nscat, cptype);
-               smart_str_0(&nscat);
-
-               if (zend_hash_find(encoding, nscat.c, nscat.len + 1, (void **)&enc) == 
FAILURE) {
-                       if (zend_hash_find(encoding, (char*)type, strlen(type) + 1, 
(void **)&enc) == FAILURE) {
-                               enc = NULL;
-                       }
-               }
-               smart_str_free(&nscat);
-       } else {
-               if (zend_hash_find(encoding, (char*)type, strlen(type) + 1, (void 
**)&enc) == FAILURE) {
-                       enc = NULL;
-               }
-       }
-
-       if (cptype) {efree(cptype);}
-       if (ns) {efree(ns);}
-       if (enc == NULL) {
-               return NULL;
-       } else {
-               return (*enc);
-       }
-}
-
 static int is_map(zval *array)
 {
        int i, count = zend_hash_num_elements(Z_ARRVAL_P(array));
@@ -2492,33 +2435,33 @@
                        cur_type = Z_LVAL_PP(ztype);
 
                        if (zend_hash_find(Z_OBJPROP_PP(tmp), "enc_stype", 
sizeof("enc_stype"), (void **)&ztype) == SUCCESS) {
-                         cur_stype = Z_STRVAL_PP(ztype);
+                               cur_stype = Z_STRVAL_PP(ztype);
                        } else {
-                         cur_stype = NULL;
+                               cur_stype = NULL;
                        }
 
                        if (zend_hash_find(Z_OBJPROP_PP(tmp), "enc_ns", 
sizeof("enc_ns"), (void **)&ztype) == SUCCESS) {
-                         cur_ns = Z_STRVAL_PP(ztype);
+                               cur_ns = Z_STRVAL_PP(ztype);
                        } else {
-                         cur_ns = NULL;
+                               cur_ns = NULL;
                        }
 
                } else if (Z_TYPE_PP(tmp) == IS_ARRAY && is_map(*tmp)) {
                        cur_type = APACHE_MAP;
-                 cur_stype = NULL;
-                 cur_ns = NULL;
+                       cur_stype = NULL;
+                       cur_ns = NULL;
                } else {
                        cur_type = Z_TYPE_PP(tmp);
-                 cur_stype = NULL;
-                 cur_ns = NULL;
+                       cur_stype = NULL;
+                       cur_ns = NULL;
                }
 
                if (i > 0) {
                        if ((cur_type != prev_type) ||
-          (cur_stype != NULL && prev_stype != NULL && strcmp(cur_stype,prev_stype) != 
0) ||
-          (cur_stype == NULL && cur_stype != prev_stype) ||
-          (cur_ns != NULL && prev_ns != NULL && strcmp(cur_ns,prev_ns) != 0) ||
-          (cur_ns == NULL && cur_ns != prev_ns)) {
+                           (cur_stype != NULL && prev_stype != NULL && 
strcmp(cur_stype,prev_stype) != 0) ||
+                           (cur_stype == NULL && cur_stype != prev_stype) ||
+                           (cur_ns != NULL && prev_ns != NULL && 
strcmp(cur_ns,prev_ns) != 0) ||
+                           (cur_ns == NULL && cur_ns != prev_ns)) {
                                different = TRUE;
                                break;
                        }
http://cvs.php.net/diff.php/php-src/ext/soap/php_encoding.h?r1=1.33&r2=1.34&ty=u
Index: php-src/ext/soap/php_encoding.h
diff -u php-src/ext/soap/php_encoding.h:1.33 php-src/ext/soap/php_encoding.h:1.34
--- php-src/ext/soap/php_encoding.h:1.33        Fri Feb 13 06:03:58 2004
+++ php-src/ext/soap/php_encoding.h     Fri Feb 13 10:19:09 2004
@@ -17,7 +17,7 @@
   |          Dmitry Stogov <[EMAIL PROTECTED]>                             |
   +----------------------------------------------------------------------+
 */
-/* $Id: php_encoding.h,v 1.33 2004/02/13 11:03:58 dmitry Exp $ */
+/* $Id: php_encoding.h,v 1.34 2004/02/13 15:19:09 dmitry Exp $ */
 
 #ifndef PHP_ENCODING_H
 #define PHP_ENCODING_H
@@ -203,17 +203,9 @@
 xmlNodePtr sdl_guess_convert_xml(encodeTypePtr enc, zval* data, int style, xmlNodePtr 
parent);
 zval *sdl_guess_convert_zval(encodeTypePtr enc, xmlNodePtr data);
 
-#define get_conversion(e) get_conversion_ex(&SOAP_GLOBAL(defEncIndex), e)
-#define get_conversion_from_type(n, t) 
get_conversion_from_type_ex(&SOAP_GLOBAL(defEnc), n, t)
-#define get_conversion_from_href_type(t) 
get_conversion_from_href_type_ex(&SOAP_GLOBAL(defEnc), t, strlen(t))
-
 void encode_reset_ns();
 xmlNsPtr encode_add_ns(xmlNodePtr node, const char* ns);
 
-encodePtr get_conversion_ex(HashTable *encoding, int encode);
-encodePtr get_conversion_from_type_ex(HashTable *encoding, xmlNodePtr node, const 
char *type);
-encodePtr get_conversion_from_href_type_ex(HashTable *encoding, const char *type, int 
len);
-
 void delete_encoder(void *handle);
 
 extern encode defaultEncoding[];
http://cvs.php.net/diff.php/php-src/ext/soap/php_schema.c?r1=1.42&r2=1.43&ty=u
Index: php-src/ext/soap/php_schema.c
diff -u php-src/ext/soap/php_schema.c:1.42 php-src/ext/soap/php_schema.c:1.43
--- php-src/ext/soap/php_schema.c:1.42  Fri Feb 13 06:03:58 2004
+++ php-src/ext/soap/php_schema.c       Fri Feb 13 10:19:09 2004
@@ -17,7 +17,7 @@
   |          Dmitry Stogov <[EMAIL PROTECTED]>                             |
   +----------------------------------------------------------------------+
 */
-/* $Id: php_schema.c,v 1.42 2004/02/13 11:03:58 dmitry Exp $ */
+/* $Id: php_schema.c,v 1.43 2004/02/13 15:19:09 dmitry Exp $ */
 
 #include "php_soap.h"
 #include "libxml/uri.h"
@@ -90,17 +90,13 @@
 {
        encodePtr enc = NULL;
        smart_str nscat = {0};
-       TSRMLS_FETCH();
 
        smart_str_appends(&nscat, ns);
        smart_str_appendc(&nscat, ':');
        smart_str_appends(&nscat, type);
        smart_str_0(&nscat);
 
-       enc = get_conversion_from_href_type(nscat.c);
-       if (enc == NULL) {
-               enc = get_conversion_from_href_type_ex(sdl->encoders, nscat.c, 
nscat.len);
-       }
+       enc = get_encoder_ex(sdl, nscat.c, nscat.len);
        if (enc == NULL) {
                enc = create_encoder(sdl, cur_type, ns, type);
        }
@@ -201,7 +197,7 @@
                        if (location == NULL) {
                                php_error(E_ERROR, "SOAP-ERROR: Parsing Schema: 
include has no 'schemaLocation' attribute");
                        } else {
-                         xmlChar *uri;
+                               xmlChar *uri;
                                xmlChar *base = xmlNodeGetBase(trav->doc, trav);
 
                                if (base == NULL) {
@@ -211,7 +207,7 @@
                            xmlFree(base);
                                }
                                schema_load_file(ctx,NULL,uri,tns,0);
-                   xmlFree(uri);
+                               xmlFree(uri);
                        }
 
                } else if (node_is_equal(trav,"redefine")) {
@@ -231,13 +227,13 @@
                            xmlFree(base);
                                }
                                schema_load_file(ctx,NULL,uri,tns,0);
-                   xmlFree(uri);
+                               xmlFree(uri);
                                /* TODO: <redefine> support */
                        }
 
                } else if (node_is_equal(trav,"import")) {
                        xmlAttrPtr ns, location;
-                 xmlChar *uri = NULL;
+                       xmlChar *uri = NULL;
 
                        ns = get_attribute(trav->properties, "namespace");
                        location = get_attribute(trav->properties, "schemaLocation");
@@ -256,7 +252,7 @@
                                }
                        }
                        schema_load_file(ctx,ns,uri,tns,1);
-                 if (uri != NULL) {xmlFree(uri);}
+                       if (uri != NULL) {xmlFree(uri);}
                } else if (node_is_equal(trav,"annotation")) {
                        /* TODO: <annotation> support */
 /* annotation cleanup
@@ -267,7 +263,7 @@
                        continue;
 */
                } else {
-                 break;
+                       break;
                }
                trav = trav->next;
        }
@@ -470,7 +466,7 @@
                zend_hash_next_index_insert(cur_type->elements, &newType, 
sizeof(sdlTypePtr), (void **)&tmp);
 
                schema_simpleType(sdl, tsn, trav, newType);
-         trav = trav->next;
+               trav = trav->next;
        }
        if (trav != NULL) {
                php_error(E_ERROR, "SOAP-ERROR: Parsing Schema: unexpected <%s> in 
list",trav->name);
@@ -503,10 +499,10 @@
                while (start != NULL && *start != '\0') {
                        end = strchr(start,' ');
                        if (end == NULL) {
-                         next = NULL;
+                               next = NULL;
                        } else {
-                         *end = '\0';
-                         next = end+1;
+                               *end = '\0';
+                               next = end+1;
                        }
 
                        parse_namespace(start, &type, &ns);
@@ -696,7 +692,7 @@
                } else {
                        break;
                }
-         trav = trav->next;
+               trav = trav->next;
        }
        if (!simpleType) {
                while (trav != NULL) {
http://cvs.php.net/diff.php/php-src/ext/soap/php_sdl.c?r1=1.58&r2=1.59&ty=u
Index: php-src/ext/soap/php_sdl.c
diff -u php-src/ext/soap/php_sdl.c:1.58 php-src/ext/soap/php_sdl.c:1.59
--- php-src/ext/soap/php_sdl.c:1.58     Fri Feb 13 06:03:58 2004
+++ php-src/ext/soap/php_sdl.c  Fri Feb 13 10:19:09 2004
@@ -17,7 +17,7 @@
   |          Dmitry Stogov <[EMAIL PROTECTED]>                             |
   +----------------------------------------------------------------------+
 */
-/* $Id: php_sdl.c,v 1.58 2004/02/13 11:03:58 dmitry Exp $ */
+/* $Id: php_sdl.c,v 1.59 2004/02/13 15:19:09 dmitry Exp $ */
 
 #include "php_soap.h"
 #include "libxml/uri.h"
@@ -39,15 +39,35 @@
 static void delete_header(void *header);
 static void delete_document(void *doc_ptr);
 
-encodePtr get_encoder_from_prefix(sdlPtr sdl, xmlNodePtr data, const char *type)
+encodePtr get_encoder_from_prefix(sdlPtr sdl, xmlNodePtr node, const char *type)
 {
        encodePtr enc = NULL;
-       TSRMLS_FETCH();
+       xmlNsPtr nsptr;
+       char *ns, *cptype;
 
-       enc = get_conversion_from_type(data, type);
-       if (enc == NULL && sdl) {
-               enc = get_conversion_from_type_ex(sdl->encoders, data, type);
+       parse_namespace(type, &cptype, &ns);
+       nsptr = xmlSearchNs(node->doc, node, ns);
+       if (nsptr != NULL) {
+               int ns_len = strlen(nsptr->href);
+               int type_len = strlen(cptype);
+               int len = ns_len + type_len + 1;
+               char *nscat = do_alloca(len + 1);
+
+               memcpy(nscat, nsptr->href, ns_len);
+               nscat[ns_len] = ':';
+               memcpy(nscat+ns_len+1, cptype, type_len);
+               nscat[len] = '\0';
+
+               enc = get_encoder_ex(sdl, nscat, len);
+               if (enc == NULL) {
+                       enc = get_encoder_ex(sdl, type, type_len);
+               }
+               free_alloca(nscat);
+       } else {
+               enc = get_encoder_ex(sdl, type, strlen(type));
        }
+       efree(cptype);
+       if (ns) {efree(ns);}
        return enc;
 }
 
@@ -64,19 +84,22 @@
                parse_namespace(type, &cptype, &ns);
                nsptr = xmlSearchNs(node->doc, node, ns);
                if (nsptr != NULL) {
-                       smart_str nscat = {0};
+                       int ns_len = strlen(nsptr->href);
+                       int type_len = strlen(cptype);
+                       int len = ns_len + type_len + 1;
+                       char *nscat = do_alloca(len + 1);
+
+                       memcpy(nscat, nsptr->href, ns_len);
+                       nscat[ns_len] = ':';
+                       memcpy(nscat+ns_len+1, cptype, type_len);
+                       nscat[len] = '\0';
 
-                       smart_str_appends(&nscat, nsptr->href);
-                       smart_str_appendc(&nscat, ':');
-                       smart_str_appends(&nscat, cptype);
-                       smart_str_0(&nscat);
-
-                       if (zend_hash_find(sdl->elements, nscat.c, nscat.len + 1, 
(void **)&sdl_type) == SUCCESS) {
+                       if (zend_hash_find(sdl->elements, nscat, len + 1, (void 
**)&sdl_type) == SUCCESS) {
                                ret = *sdl_type;
-                       } else if (zend_hash_find(sdl->elements, (char*)type, 
strlen(type) + 1, (void **)&sdl_type) == SUCCESS) {
+                       } else if (zend_hash_find(sdl->elements, (char*)type, type_len 
+ 1, (void **)&sdl_type) == SUCCESS) {
                                ret = *sdl_type;
                        }
-                       smart_str_free(&nscat);
+                       free_alloca(nscat);
                } else {
                        if (zend_hash_find(sdl->elements, (char*)type, strlen(type) + 
1, (void **)&sdl_type) == SUCCESS) {
                                ret = *sdl_type;
@@ -93,26 +116,33 @@
 {
        encodePtr enc = NULL;
        char *nscat;
+       int ns_len = strlen(ns);
+       int type_len = strlen(type);
+       int len = ns_len + type_len + 1;
+
+       nscat = do_alloca(len + 1);
+       memcpy(nscat, ns, ns_len);
+       nscat[ns_len] = ':';
+       memcpy(nscat+ns_len+1, type, type_len);
+       nscat[len] = '\0';
 
-       nscat = emalloc(strlen(ns) + strlen(type) + 2);
-       sprintf(nscat, "%s:%s", ns, type);
-
-       enc = get_encoder_ex(sdl, nscat);
+       enc = get_encoder_ex(sdl, nscat, len);
 
-       efree(nscat);
+       free_alloca(nscat);
        return enc;
 }
 
-encodePtr get_encoder_ex(sdlPtr sdl, const char *nscat)
+encodePtr get_encoder_ex(sdlPtr sdl, const char *nscat, int len)
 {
-       encodePtr enc = NULL;
+       encodePtr *enc;
        TSRMLS_FETCH();
 
-       enc = get_conversion_from_href_type(nscat);
-       if (enc == NULL && sdl) {
-               enc = get_conversion_from_href_type_ex(sdl->encoders, nscat, 
strlen(nscat));
+       if (zend_hash_find(&SOAP_GLOBAL(defEnc), (char*)nscat, len + 1, (void **)&enc) 
== SUCCESS) {
+               return (*enc);
+       } else if (sdl && sdl->encoders && zend_hash_find(sdl->encoders, (char*)nscat, 
len + 1, (void **)&enc) == SUCCESS) {
+               return (*enc);
        }
-       return enc;
+       return NULL;
 }
 
 sdlBindingPtr get_binding_from_type(sdlPtr sdl, int type)
@@ -172,7 +202,7 @@
        xmlAttrPtr targetNamespace;
 
        if (zend_hash_exists(&ctx->docs, struri, strlen(struri)+1)) {
-         return;
+               return;
        }
 
        wsdl = soap_xmlParseFile(struri);
@@ -225,17 +255,17 @@
                        /* TODO: namespace ??? */
                        xmlAttrPtr tmp = get_attribute(trav->properties, "location");
                        if (tmp) {
-                         xmlChar *uri;
+                               xmlChar *uri;
                                xmlChar *base = xmlNodeGetBase(trav->doc, trav);
 
                                if (base == NULL) {
-                           uri = xmlBuildURI(tmp->children->content, trav->doc->URL);
+                                       uri = xmlBuildURI(tmp->children->content, 
trav->doc->URL);
                                } else {
-                       uri = xmlBuildURI(tmp->children->content, base);
-                           xmlFree(base);
+                                       uri = xmlBuildURI(tmp->children->content, 
base);
+                                       xmlFree(base);
                                }
                                load_wsdl_ex(uri, ctx, 1);
-                   xmlFree(uri);
+                               xmlFree(uri);
                        }
 
                } else if (node_is_equal(trav,"message")) {
@@ -341,7 +371,7 @@
                        if (ctype == NULL) {
                                ctype = tmp->children->content;
                        } else {
-                         ++ctype;
+                               ++ctype;
                        }
                        if (zend_hash_find(&ctx->messages, ctype, strlen(ctype)+1, 
(void**)&message) != SUCCESS) {
                                php_error(E_ERROR, "SOAP-ERROR: Parsing WSDL: Missing 
<message> with name '%s'", tmp->children->content);
@@ -430,7 +460,7 @@
        if (ctype == NULL) {
                ctype = message_name;
        } else {
-         ++ctype;
+               ++ctype;
        }
        if (zend_hash_find(&ctx->messages, ctype, strlen(ctype)+1, (void**)&tmp) != 
SUCCESS) {
                php_error(E_ERROR, "SOAP-ERROR: Parsing WSDL: Missing <message> with 
name '%s'", message->children->content);
@@ -589,7 +619,7 @@
                                if (ctype == NULL) {
                                        ctype = bindingAttr->children->content;
                                } else {
-                                 ++ctype;
+                                       ++ctype;
                                }
                                if (zend_hash_find(&ctx.bindings, ctype, 
strlen(ctype)+1, (void*)&tmp) != SUCCESS) {
                                        php_error(E_ERROR, "SOAP-ERROR: Parsing WSDL: 
No <binding> element with name '%s'", ctype);
@@ -638,7 +668,7 @@
                                if (ctype == NULL) {
                                        ctype = type->children->content;
                                } else {
-                                 ++ctype;
+                                       ++ctype;
                                }
                                if (zend_hash_find(&ctx.portTypes, ctype, 
strlen(ctype)+1, (void**)&tmp) != SUCCESS) {
                                        php_error(E_ERROR, "SOAP-ERROR: Parsing WSDL: 
Missing <portType> with name '%s'", name->children->content);
@@ -1907,28 +1937,28 @@
        if (SOAP_GLOBAL(cache_enabled)) {
                char  fn[MAXPATHLEN];
 
-         if (strchr(uri,':') != NULL || IS_ABSOLUTE_PATH(uri,strlen(uri))) {
-                 strcpy(fn, uri);
+               if (strchr(uri,':') != NULL || IS_ABSOLUTE_PATH(uri,strlen(uri))) {
+                       strcpy(fn, uri);
                } else if (VCWD_REALPATH(uri, fn) == NULL) {
                        sdl = load_wsdl(uri);
                }
                if (sdl == NULL) {
                        char* key;
                        time_t t = time(0);
-                 char md5str[33];
-               PHP_MD5_CTX context;
-                 unsigned char digest[16];
-                 int len = strlen(SOAP_GLOBAL(cache_dir));
-
-                 md5str[0] = '\0';
-                 PHP_MD5Init(&context);
-                 PHP_MD5Update(&context, fn, strlen(fn));
-                 PHP_MD5Final(digest, &context);
-                 make_digest(md5str, digest);
-                 key = do_alloca(len+sizeof("/wsdl-")-1+sizeof(md5str));
-                 memcpy(key,SOAP_GLOBAL(cache_dir),len);
-                 memcpy(key+len,"/wsdl-",sizeof("/wsdl-")-1);
-                 memcpy(key+len+sizeof("/wsdl-")-1,md5str,sizeof(md5str));
+                       char md5str[33];
+                       PHP_MD5_CTX context;
+                       unsigned char digest[16];
+                       int len = strlen(SOAP_GLOBAL(cache_dir));
+
+                       md5str[0] = '\0';
+                       PHP_MD5Init(&context);
+                       PHP_MD5Update(&context, fn, strlen(fn));
+                       PHP_MD5Final(digest, &context);
+                       make_digest(md5str, digest);
+                       key = do_alloca(len+sizeof("/wsdl-")-1+sizeof(md5str));
+                       memcpy(key,SOAP_GLOBAL(cache_dir),len);
+                       memcpy(key+len,"/wsdl-",sizeof("/wsdl-")-1);
+                       memcpy(key+len+sizeof("/wsdl-")-1,md5str,sizeof(md5str));
 
                        if ((sdl = get_sdl_from_cache(key, fn, 
t-SOAP_GLOBAL(cache_ttl))) == NULL) {
                                sdl = load_wsdl(fn);
@@ -1984,11 +2014,6 @@
        efree(tmp);
 }
 
-void delete_sdl_ptr(void *handle)
-{
-       delete_sdl((sdlPtr*)handle);
-}
-
 static void delete_binding(void *data)
 {
        sdlBindingPtr binding = *((sdlBindingPtr*)data);
http://cvs.php.net/diff.php/php-src/ext/soap/php_sdl.h?r1=1.28&r2=1.29&ty=u
Index: php-src/ext/soap/php_sdl.h
diff -u php-src/ext/soap/php_sdl.h:1.28 php-src/ext/soap/php_sdl.h:1.29
--- php-src/ext/soap/php_sdl.h:1.28     Fri Feb 13 06:03:58 2004
+++ php-src/ext/soap/php_sdl.h  Fri Feb 13 10:19:09 2004
@@ -17,7 +17,7 @@
   |          Dmitry Stogov <[EMAIL PROTECTED]>                             |
   +----------------------------------------------------------------------+
 */
-/* $Id: php_sdl.h,v 1.28 2004/02/13 11:03:58 dmitry Exp $ */
+/* $Id: php_sdl.h,v 1.29 2004/02/13 15:19:09 dmitry Exp $ */
 
 #ifndef PHP_SDL_H
 #define PHP_SDL_H
@@ -228,12 +228,11 @@
 
 encodePtr get_encoder_from_prefix(sdlPtr sdl, xmlNodePtr data, const char *type);
 encodePtr get_encoder(sdlPtr sdl, const char *ns, const char *type);
-encodePtr get_encoder_ex(sdlPtr sdl, const char *nscat);
+encodePtr get_encoder_ex(sdlPtr sdl, const char *nscat, int len);
 
 sdlBindingPtr get_binding_from_type(sdlPtr sdl, int type);
 sdlBindingPtr get_binding_from_name(sdlPtr sdl, char *name, char *ns);
 
 void delete_sdl(void *handle);
-void delete_sdl_ptr(void *handle);
 
 #endif
http://cvs.php.net/diff.php/php-src/ext/soap/php_xml.c?r1=1.21&r2=1.22&ty=u
Index: php-src/ext/soap/php_xml.c
diff -u php-src/ext/soap/php_xml.c:1.21 php-src/ext/soap/php_xml.c:1.22
--- php-src/ext/soap/php_xml.c:1.21     Fri Feb  6 11:52:14 2004
+++ php-src/ext/soap/php_xml.c  Fri Feb 13 10:19:09 2004
@@ -17,7 +17,7 @@
   |          Dmitry Stogov <[EMAIL PROTECTED]>                             |
   +----------------------------------------------------------------------+
 */
-/* $Id: php_xml.c,v 1.21 2004/02/06 16:52:14 dmitry Exp $ */
+/* $Id: php_xml.c,v 1.22 2004/02/13 15:19:09 dmitry Exp $ */
 
 #include "php_soap.h"
 #include "libxml/parser.h"
@@ -78,7 +78,7 @@
 
 xmlDocPtr soap_xmlParseFile(const char *filename)
 {
-  xmlParserCtxtPtr ctxt = NULL;
+       xmlParserCtxtPtr ctxt = NULL;
        xmlDocPtr ret;
 
 /*
@@ -105,7 +105,7 @@
                }
                xmlFreeParserCtxt(ctxt);
        } else {
-         ret = NULL;
+               ret = NULL;
        }
 
 /*
@@ -120,7 +120,7 @@
 
 xmlDocPtr soap_xmlParseMemory(const void *buf, size_t buf_size)
 {
-  xmlParserCtxtPtr ctxt = NULL;
+       xmlParserCtxtPtr ctxt = NULL;
        xmlDocPtr ret;
 
 /*
@@ -146,7 +146,7 @@
                }
                xmlFreeParserCtxt(ctxt);
        } else {
-         ret = NULL;
+               ret = NULL;
        }
 
 /*
http://cvs.php.net/diff.php/php-src/ext/soap/soap.c?r1=1.83&r2=1.84&ty=u
Index: php-src/ext/soap/soap.c
diff -u php-src/ext/soap/soap.c:1.83 php-src/ext/soap/soap.c:1.84
--- php-src/ext/soap/soap.c:1.83        Fri Feb 13 06:03:58 2004
+++ php-src/ext/soap/soap.c     Fri Feb 13 10:19:09 2004
@@ -17,7 +17,7 @@
   |          Dmitry Stogov <[EMAIL PROTECTED]>                             |
   +----------------------------------------------------------------------+
 */
-/* $Id: soap.c,v 1.83 2004/02/13 11:03:58 dmitry Exp $ */
+/* $Id: soap.c,v 1.84 2004/02/13 15:19:09 dmitry Exp $ */
 
 #ifdef HAVE_CONFIG_H
 #include "config.h"
@@ -56,11 +56,11 @@
 static sdlFunctionPtr get_function(sdlPtr sdl, const char *function_name);
 static sdlFunctionPtr get_doc_function(sdlPtr sdl, xmlNodePtr node);
 
-static sdlFunctionPtr deseralize_function_call(sdlPtr sdl, xmlDocPtr request, char* 
actor, zval *function_name, int *num_params, zval **parameters[], int *version, 
soapHeader **headers TSRMLS_DC);
-static xmlDocPtr seralize_response_call(sdlFunctionPtr function, char 
*function_name,char *uri,zval *ret, soapHeader *headers, int version TSRMLS_DC);
-static xmlDocPtr seralize_function_call(zval *this_ptr, sdlFunctionPtr function, char 
*function_name, char *uri, zval **arguments, int arg_count, int version, HashTable 
*soap_headers TSRMLS_DC);
-static xmlNodePtr seralize_parameter(sdlParamPtr param,zval *param_val,int index,char 
*name, int style, xmlNodePtr parent TSRMLS_DC);
-static xmlNodePtr seralize_zval(zval *val, sdlParamPtr param, char *paramName, int 
style, xmlNodePtr parent TSRMLS_DC);
+static sdlFunctionPtr deserialize_function_call(sdlPtr sdl, xmlDocPtr request, char* 
actor, zval *function_name, int *num_params, zval **parameters[], int *version, 
soapHeader **headers TSRMLS_DC);
+static xmlDocPtr serialize_response_call(sdlFunctionPtr function, char 
*function_name,char *uri,zval *ret, soapHeader *headers, int version TSRMLS_DC);
+static xmlDocPtr serialize_function_call(zval *this_ptr, sdlFunctionPtr function, 
char *function_name, char *uri, zval **arguments, int arg_count, int version, 
HashTable *soap_headers TSRMLS_DC);
+static xmlNodePtr serialize_parameter(sdlParamPtr param,zval *param_val,int 
index,char *name, int style, xmlNodePtr parent TSRMLS_DC);
+static xmlNodePtr serialize_zval(zval *val, sdlParamPtr param, char *paramName, int 
style, xmlNodePtr parent TSRMLS_DC);
 
 static void delete_service(void *service);
 static void delete_url(void *handle);
@@ -482,7 +482,7 @@
 
        INIT_CLASS_ENTRY(ce, PHP_SOAP_HEADER_CLASSNAME, soap_header_functions);
        soap_header_class_entry = zend_register_internal_class(&ce TSRMLS_CC);
-       
+
        le_sdl = register_list_destructors(delete_sdl, NULL);
        le_url = register_list_destructors(delete_url, NULL);
        le_service = register_list_destructors(delete_service, NULL);
@@ -588,7 +588,7 @@
        }
 
        enc = get_conversion(Z_TYPE_P(pzval));
-       ret = php_domobject_new(seralize_zval(pzval, NULL, name, SOAP_ENCODED), 
&found, NULL TSRMLS_CC);
+       ret = php_domobject_new(serialize_zval(pzval, NULL, name, SOAP_ENCODED), 
&found, NULL TSRMLS_CC);
        *return_value = *ret;
        zval_copy_ctor(return_value);
        zval_ptr_dtor(&ret);
@@ -1277,7 +1277,7 @@
        old_sdl = SOAP_GLOBAL(sdl);
        SOAP_GLOBAL(sdl) = service->sdl;
        old_soap_version = SOAP_GLOBAL(soap_version);
-       function = deseralize_function_call(service->sdl, doc_request, service->actor, 
&function_name, &num_params, &params, &soap_version, &soap_headers TSRMLS_CC);
+       function = deserialize_function_call(service->sdl, doc_request, 
service->actor, &function_name, &num_params, &params, &soap_version, &soap_headers 
TSRMLS_CC);
        xmlFreeDoc(doc_request);
 
        if (service->type == SOAP_CLASS) {
@@ -1425,7 +1425,7 @@
                        
memcpy(response_name+Z_STRLEN(function_name),"Response",sizeof("Response"));
                }
                SOAP_GLOBAL(overrides) = service->mapping;
-               doc_return = seralize_response_call(function, response_name, 
service->uri, &retval, soap_headers, soap_version TSRMLS_CC);
+               doc_return = serialize_response_call(function, response_name, 
service->uri, &retval, soap_headers, soap_version TSRMLS_CC);
                SOAP_GLOBAL(overrides) = NULL;
                efree(response_name);
        } else {
@@ -1513,7 +1513,7 @@
 
        soap_version = SOAP_GLOBAL(soap_version);
 
-       doc_return = seralize_response_call(NULL, NULL, NULL, fault, NULL, 
soap_version TSRMLS_CC);
+       doc_return = serialize_response_call(NULL, NULL, NULL, fault, NULL, 
soap_version TSRMLS_CC);
 
        xmlDocDumpMemory(doc_return, &buf, &size);
 
@@ -1818,10 +1818,10 @@
                        sdlBindingPtr binding = fn->binding;
                        if (binding->bindingType == BINDING_SOAP) {
                                sdlSoapBindingFunctionPtr fnb = 
(sdlSoapBindingFunctionPtr)fn->bindingAttributes;
-                               request = seralize_function_call(this_ptr, fn, NULL, 
fnb->input.ns, real_args, arg_count, soap_version, soap_headers TSRMLS_CC);
+                               request = serialize_function_call(this_ptr, fn, NULL, 
fnb->input.ns, real_args, arg_count, soap_version, soap_headers TSRMLS_CC);
                                ret = send_http_soap_request(this_ptr, request, 
binding->location, fnb->soapAction, soap_version TSRMLS_CC);
                        }       else {
-                               request = seralize_function_call(this_ptr, fn, NULL, 
sdl->target_ns, real_args, arg_count, soap_version, soap_headers TSRMLS_CC);
+                               request = serialize_function_call(this_ptr, fn, NULL, 
sdl->target_ns, real_args, arg_count, soap_version, soap_headers TSRMLS_CC);
                                ret = send_http_soap_request(this_ptr, request, 
binding->location, NULL, soap_version TSRMLS_CC);
                        }
 
@@ -1855,7 +1855,7 @@
                        if (call_uri == NULL) {
                                call_uri = Z_STRVAL_PP(uri);
                        }
-                       request = seralize_function_call(this_ptr, NULL, function, 
call_uri, real_args, arg_count, soap_version, soap_headers TSRMLS_CC);
+                       request = serialize_function_call(this_ptr, NULL, function, 
call_uri, real_args, arg_count, soap_version, soap_headers TSRMLS_CC);
 
                        if (soap_action == NULL) {
                                smart_str_appends(&action, call_uri);
@@ -2160,7 +2160,7 @@
        }
 }
 
-static void deseralize_parameters(xmlNodePtr params, sdlFunctionPtr function, int 
*num_params, zval ***parameters)
+static void deserialize_parameters(xmlNodePtr params, sdlFunctionPtr function, int 
*num_params, zval ***parameters)
 {
        int cur_param = 0,num_of_params = 0;
        zval **tmp_parameters = NULL;
@@ -2263,14 +2263,14 @@
        INIT_ZVAL(*function_name);
        if (function != NULL) {
                ZVAL_STRING(function_name, (char *)function->functionName, 1);
-       } else{
+       } else {
                ZVAL_STRING(function_name, (char *)func->name, 1);
        }
 
        return function;
 }
 
-static sdlFunctionPtr deseralize_function_call(sdlPtr sdl, xmlDocPtr request, char* 
actor, zval *function_name, int *num_params, zval ***parameters, int *version, 
soapHeader **headers TSRMLS_DC)
+static sdlFunctionPtr deserialize_function_call(sdlPtr sdl, xmlDocPtr request, char* 
actor, zval *function_name, int *num_params, zval ***parameters, int *version, 
soapHeader **headers TSRMLS_DC)
 {
        char* envelope_ns = NULL;
        xmlNodePtr trav,env,head,body,func;
@@ -2474,20 +2474,20 @@
                                if (!h->function && sdl && function && 
function->binding && function->binding->bindingType == BINDING_SOAP) {
                                        sdlSoapBindingFunctionHeaderPtr *hdr;
                                        sdlSoapBindingFunctionPtr fnb = 
(sdlSoapBindingFunctionPtr)function->bindingAttributes;
-                                 if (fnb->input.headers) {
-                                       smart_str key = {0};
+                                       if (fnb->input.headers) {
+                                               smart_str key = {0};
 
-                                       if (hdr_func->ns) {
-                                               smart_str_appends(&key, 
hdr_func->ns->href);
-                                               smart_str_appendc(&key, ':');
-                                       }
-                                       smart_str_appendl(&key, 
Z_STRVAL(h->function_name), Z_STRLEN(h->function_name));
-                                       smart_str_0(&key);
-                                   if (zend_hash_find(fnb->input.headers, key.c, 
key.len+1, (void**)&hdr) == SUCCESS) {
-                                           h->hdr = *hdr;
-                                         }
-                                       smart_str_free(&key);
-                                 }
+                                               if (hdr_func->ns) {
+                                                       smart_str_appends(&key, 
hdr_func->ns->href);
+                                                       smart_str_appendc(&key, ':');
+                                               }
+                                               smart_str_appendl(&key, 
Z_STRVAL(h->function_name), Z_STRLEN(h->function_name));
+                                               smart_str_0(&key);
+                                               if (zend_hash_find(fnb->input.headers, 
key.c, key.len+1, (void**)&hdr) == SUCCESS) {
+                                                       h->hdr = *hdr;
+                                               }
+                                               smart_str_free(&key);
+                                       }
                                }
                                if (h->hdr) {
                                        h->num_params = 1;
@@ -2500,7 +2500,7 @@
                                                        hdr_func = hdr_func->children;
                                                }
                                        }
-                                       deseralize_parameters(hdr_func, h->function, 
&h->num_params, &h->parameters);
+                                       deserialize_parameters(hdr_func, h->function, 
&h->num_params, &h->parameters);
                                }
                                INIT_ZVAL(h->retval);
                                if (last == NULL) {
@@ -2523,11 +2523,11 @@
        } else {
                func = func->children;
        }
-       deseralize_parameters(func, function, num_params, parameters);
+       deserialize_parameters(func, function, num_params, parameters);
        return function;
 }
 
-static int seralize_response_call2(xmlNodePtr body, sdlFunctionPtr function, char 
*function_name, char *uri, zval *ret, int version, int main TSRMLS_DC)
+static int serialize_response_call2(xmlNodePtr body, sdlFunctionPtr function, char 
*function_name, char *uri, zval *ret, int version, int main TSRMLS_DC)
 {
        xmlNodePtr method = NULL, param;
        sdlParamPtr parameter = NULL;
@@ -2575,13 +2575,13 @@
                        if (main && version == SOAP_1_2) {
                                xmlNs *rpc_ns = xmlNewNs(body, RPC_SOAP12_NAMESPACE, 
RPC_SOAP12_NS_PREFIX);
                                rpc_result = xmlNewChild(method, rpc_ns, "result", 
NULL);
-                               param = seralize_parameter(parameter, ret, 0, 
"return", use, method TSRMLS_CC);
+                               param = serialize_parameter(parameter, ret, 0, 
"return", use, method TSRMLS_CC);
                                xmlNodeSetContent(rpc_result,param->name);
                        } else {
-                               param = seralize_parameter(parameter, ret, 0, 
"return", use, method TSRMLS_CC);
+                               param = serialize_parameter(parameter, ret, 0, 
"return", use, method TSRMLS_CC);
                        }
                } else {
-                       param = seralize_parameter(parameter, ret, 0, "return", use, 
body TSRMLS_CC);
+                       param = serialize_parameter(parameter, ret, 0, "return", use, 
body TSRMLS_CC);
                        if (function && function->binding->bindingType == 
BINDING_SOAP) {
                                sdlParamPtr *sparam;
 
@@ -2611,9 +2611,9 @@
                        parameter = get_param(function, param_name, param_index, TRUE);
 
                        if (style == SOAP_RPC) {
-                               param = seralize_parameter(parameter, *data, i, 
param_name, use, method TSRMLS_CC);
+                               param = serialize_parameter(parameter, *data, i, 
param_name, use, method TSRMLS_CC);
                        } else {
-                               param = seralize_parameter(parameter, *data, i, 
param_name, use, body TSRMLS_CC);
+                               param = serialize_parameter(parameter, *data, i, 
param_name, use, body TSRMLS_CC);
                                if (function && function->binding->bindingType == 
BINDING_SOAP) {
                                        sdlParamPtr *sparam;
 
@@ -2635,7 +2635,7 @@
        return use;
 }
 
-static xmlDocPtr seralize_response_call(sdlFunctionPtr function, char *function_name, 
char *uri, zval *ret, soapHeader* headers, int version TSRMLS_DC)
+static xmlDocPtr serialize_response_call(sdlFunctionPtr function, char 
*function_name, char *uri, zval *ret, soapHeader* headers, int version TSRMLS_DC)
 {
        xmlDocPtr doc;
        xmlNodePtr envelope = NULL, body, param;
@@ -2657,7 +2657,7 @@
                ns = xmlNewNs(envelope, SOAP_1_2_ENV_NAMESPACE, 
SOAP_1_2_ENV_NS_PREFIX);
                xmlSetNs(envelope,ns);
        } else {
-         php_error(E_ERROR, "Unknown SOAP version");
+               php_error(E_ERROR, "Unknown SOAP version");
        }
        xmlDocSetRootElement(doc, envelope);
 
@@ -2697,8 +2697,8 @@
                        }
                        if (zend_hash_find(prop, "detail", sizeof("detail"), 
(void**)&tmp) == SUCCESS &&
                            Z_TYPE_PP(tmp) != IS_NULL) {
-                       /*FIXME: use = SOAP_ENCODED;*/
-                               seralize_zval(*tmp, NULL, "detail", use, param 
TSRMLS_CC);
+                               /*FIXME: use = SOAP_ENCODED;*/
+                               serialize_zval(*tmp, NULL, "detail", use, param 
TSRMLS_CC);
                        }
                } else {
                        HashTable* prop;
@@ -2724,7 +2724,7 @@
                        }
                        if (zend_hash_find(prop, "detail", sizeof("detail"), 
(void**)&tmp) == SUCCESS &&
                            Z_TYPE_PP(tmp) != IS_NULL) {
-                               seralize_zval(*tmp, NULL, 
SOAP_1_2_ENV_NS_PREFIX":Detail", use, param TSRMLS_CC);
+                               serialize_zval(*tmp, NULL, 
SOAP_1_2_ENV_NS_PREFIX":Detail", use, param TSRMLS_CC);
                        }
                }
        } else {
@@ -2783,7 +2783,7 @@
                                        }
 
                                        if (h->function) {
-                                               if (seralize_response_call2(head, 
h->function, Z_STRVAL(h->function_name), uri, hdr_ret, version, 0 TSRMLS_CC) == 
SOAP_ENCODED) {
+                                               if (serialize_response_call2(head, 
h->function, Z_STRVAL(h->function_name), uri, hdr_ret, version, 0 TSRMLS_CC) == 
SOAP_ENCODED) {
                                                        use = SOAP_ENCODED;
                                                }
                                        } else {
@@ -2808,7 +2808,7 @@
 
                body = xmlNewChild(envelope, ns, "Body", NULL);
 
-               if (seralize_response_call2(body, function, function_name, uri, ret, 
version, 1 TSRMLS_CC) == SOAP_ENCODED) {
+               if (serialize_response_call2(body, function, function_name, uri, ret, 
version, 1 TSRMLS_CC) == SOAP_ENCODED) {
                        use = SOAP_ENCODED;
                }
 
@@ -2828,7 +2828,7 @@
        return doc;
 }
 
-static xmlDocPtr seralize_function_call(zval *this_ptr, sdlFunctionPtr function, char 
*function_name, char *uri, zval **arguments, int arg_count, int version, HashTable 
*soap_headers TSRMLS_DC)
+static xmlDocPtr serialize_function_call(zval *this_ptr, sdlFunctionPtr function, 
char *function_name, char *uri, zval **arguments, int arg_count, int version, 
HashTable *soap_headers TSRMLS_DC)
 {
        xmlDoc *doc;
        xmlNodePtr envelope = NULL, body, method = NULL, head = NULL;
@@ -2903,9 +2903,9 @@
                sdlParamPtr parameter = get_param(function, NULL, i, FALSE);
 
                if (style == SOAP_RPC) {
-                       param = seralize_parameter(parameter, arguments[i], i, NULL, 
use, method TSRMLS_CC);
+                       param = serialize_parameter(parameter, arguments[i], i, NULL, 
use, method TSRMLS_CC);
                } else if (style == SOAP_DOCUMENT) {
-                       param = seralize_parameter(parameter, arguments[i], i, NULL, 
use, body TSRMLS_CC);
+                       param = serialize_parameter(parameter, arguments[i], i, NULL, 
use, body TSRMLS_CC);
                        if (function && function->binding->bindingType == 
BINDING_SOAP) {
                                sdlParamPtr *sparam;
 
@@ -2923,78 +2923,78 @@
 
                zend_hash_internal_pointer_reset(soap_headers);
                while (zend_hash_get_current_data(soap_headers,(void**)&header) == 
SUCCESS) {
-                 HashTable *ht = Z_OBJPROP_PP(header);
-                 zval **name, **ns, **tmp;
+                       HashTable *ht = Z_OBJPROP_PP(header);
+                       zval **name, **ns, **tmp;
+
+                       if (zend_hash_find(ht, "name", sizeof("name"), (void**)&name) 
== SUCCESS &&
+                           Z_TYPE_PP(name) == IS_STRING &&
+                           zend_hash_find(ht, "namespace", sizeof("namespace"), 
(void**)&ns) == SUCCESS &&
+                           Z_TYPE_PP(ns) == IS_STRING) {
+                               xmlNodePtr h;
+                               xmlNsPtr nsptr;
+                               int hdr_use = SOAP_LITERAL;
+                               encodePtr enc = NULL;
+
+                               if (hdrs) {
+                                       smart_str key = {0};
+                                       sdlSoapBindingFunctionHeaderPtr *hdr;
 
-                 if (zend_hash_find(ht, "name", sizeof("name"), (void**)&name) == 
SUCCESS &&
-                     Z_TYPE_PP(name) == IS_STRING &&
-                                       zend_hash_find(ht, "namespace", 
sizeof("namespace"), (void**)&ns) == SUCCESS &&
-                     Z_TYPE_PP(ns) == IS_STRING) {
-                       xmlNodePtr h;
-                       xmlNsPtr nsptr;
-                   int hdr_use = SOAP_LITERAL;
-                   encodePtr enc = NULL;
-
-                   if (hdrs) {
-                       smart_str key = {0};
-                       sdlSoapBindingFunctionHeaderPtr *hdr;
-
-                       smart_str_appendl(&key, Z_STRVAL_PP(ns), Z_STRLEN_PP(ns));
-                       smart_str_appendc(&key, ':');
-                       smart_str_appendl(&key, Z_STRVAL_PP(name), Z_STRLEN_PP(name));
-                       smart_str_0(&key);
-                       if (zend_hash_find(hdrs, key.c, key.len+1,(void**)&hdr) == 
SUCCESS) {
-                               hdr_use = (*hdr)->use;
-                               enc = (*hdr)->encode;
-                               if (hdr_use == SOAP_ENCODED) {
-                                       use = SOAP_ENCODED;
-                               }
-                       }
-                       smart_str_free(&key);
-                   }
-
-                         if (zend_hash_find(ht, "data", sizeof("data"), (void**)&tmp) 
== SUCCESS) {
-                               h = master_to_xml(enc, *tmp, hdr_use, head);
-                               xmlNodeSetName(h, Z_STRVAL_PP(name));
-                         } else {
-                               h = xmlNewNode(NULL, Z_STRVAL_PP(name));
-                               xmlAddChild(head,h);
-                         }
-                       nsptr = encode_add_ns(h,Z_STRVAL_PP(ns));
+                                       smart_str_appendl(&key, Z_STRVAL_PP(ns), 
Z_STRLEN_PP(ns));
+                                       smart_str_appendc(&key, ':');
+                                       smart_str_appendl(&key, Z_STRVAL_PP(name), 
Z_STRLEN_PP(name));
+                                       smart_str_0(&key);
+                                       if (zend_hash_find(hdrs, key.c, 
key.len+1,(void**)&hdr) == SUCCESS) {
+                                               hdr_use = (*hdr)->use;
+                                               enc = (*hdr)->encode;
+                                               if (hdr_use == SOAP_ENCODED) {
+                                                       use = SOAP_ENCODED;
+                                               }
+                                       }
+                                       smart_str_free(&key);
+                               }
+
+                               if (zend_hash_find(ht, "data", sizeof("data"), 
(void**)&tmp) == SUCCESS) {
+                                       h = master_to_xml(enc, *tmp, hdr_use, head);
+                                       xmlNodeSetName(h, Z_STRVAL_PP(name));
+                               } else {
+                                       h = xmlNewNode(NULL, Z_STRVAL_PP(name));
+                                       xmlAddChild(head,h);
+                               }
+                               nsptr = encode_add_ns(h,Z_STRVAL_PP(ns));
                                xmlSetNs(h, nsptr);
 
-                         if (zend_hash_find(ht, "mustUnderstand", 
sizeof("mustUnderstand"), (void**)&tmp) == SUCCESS &&
-                             Z_TYPE_PP(tmp) == IS_BOOL && Z_LVAL_PP(tmp)) {
-                               if (version == SOAP_1_1) {
-                                       xmlSetProp(h, 
SOAP_1_1_ENV_NS_PREFIX":mustUnderstand","1");
-                               } else {
-                                       xmlSetProp(h, 
SOAP_1_2_ENV_NS_PREFIX":mustUnderstand","true");
-                               }
-                         }
-                         if (zend_hash_find(ht, "actor", sizeof("actor"), 
(void**)&tmp) == SUCCESS) {
-                               if (Z_TYPE_PP(tmp) == IS_STRING) {
-                                       if (version == SOAP_1_1) {
-                                               xmlSetProp(h, 
SOAP_1_1_ENV_NS_PREFIX":actor",Z_STRVAL_PP(tmp));
-                                       } else {
-                                               xmlSetProp(h, 
SOAP_1_2_ENV_NS_PREFIX":role",Z_STRVAL_PP(tmp));
-                                       }
-                               } else if (Z_TYPE_PP(tmp) == IS_LONG) {
-                                       if (version == SOAP_1_1) {
-                                               if (Z_LVAL_PP(tmp) == SOAP_ACTOR_NEXT) 
{
-                                                       xmlSetProp(h, 
SOAP_1_1_ENV_NS_PREFIX":actor",SOAP_1_1_ACTOR_NEXT);
-                                               }
-                                       } else {
-                                               if (Z_LVAL_PP(tmp) == SOAP_ACTOR_NEXT) 
{
-                                                       xmlSetProp(h, 
SOAP_1_2_ENV_NS_PREFIX":role",SOAP_1_2_ACTOR_NEXT);
-                                               } else if (Z_LVAL_PP(tmp) == 
SOAP_ACTOR_NONE) {
-                                                       xmlSetProp(h, 
SOAP_1_2_ENV_NS_PREFIX":role",SOAP_1_2_ACTOR_NONE);
-                                               } else if (Z_LVAL_PP(tmp) == 
SOAP_ACTOR_UNLIMATERECEIVER) {
-                                                       xmlSetProp(h, 
SOAP_1_2_ENV_NS_PREFIX":role",SOAP_1_2_ACTOR_UNLIMATERECEIVER);
-                                               }
-                                       }
-                               }
-                         }
-                 }
+                               if (zend_hash_find(ht, "mustUnderstand", 
sizeof("mustUnderstand"), (void**)&tmp) == SUCCESS &&
+                                   Z_TYPE_PP(tmp) == IS_BOOL && Z_LVAL_PP(tmp)) {
+                                       if (version == SOAP_1_1) {
+                                               xmlSetProp(h, 
SOAP_1_1_ENV_NS_PREFIX":mustUnderstand","1");
+                                       } else {
+                                               xmlSetProp(h, 
SOAP_1_2_ENV_NS_PREFIX":mustUnderstand","true");
+                                       }
+                               }
+                               if (zend_hash_find(ht, "actor", sizeof("actor"), 
(void**)&tmp) == SUCCESS) {
+                                       if (Z_TYPE_PP(tmp) == IS_STRING) {
+                                               if (version == SOAP_1_1) {
+                                                       xmlSetProp(h, 
SOAP_1_1_ENV_NS_PREFIX":actor",Z_STRVAL_PP(tmp));
+                                               } else {
+                                                       xmlSetProp(h, 
SOAP_1_2_ENV_NS_PREFIX":role",Z_STRVAL_PP(tmp));
+                                               }
+                                       } else if (Z_TYPE_PP(tmp) == IS_LONG) {
+                                               if (version == SOAP_1_1) {
+                                                       if (Z_LVAL_PP(tmp) == 
SOAP_ACTOR_NEXT) {
+                                                               xmlSetProp(h, 
SOAP_1_1_ENV_NS_PREFIX":actor",SOAP_1_1_ACTOR_NEXT);
+                                                       }
+                                               } else {
+                                                       if (Z_LVAL_PP(tmp) == 
SOAP_ACTOR_NEXT) {
+                                                               xmlSetProp(h, 
SOAP_1_2_ENV_NS_PREFIX":role",SOAP_1_2_ACTOR_NEXT);
+                                                       } else if (Z_LVAL_PP(tmp) == 
SOAP_ACTOR_NONE) {
+                                                               xmlSetProp(h, 
SOAP_1_2_ENV_NS_PREFIX":role",SOAP_1_2_ACTOR_NONE);
+                                                       } else if (Z_LVAL_PP(tmp) == 
SOAP_ACTOR_UNLIMATERECEIVER) {
+                                                               xmlSetProp(h, 
SOAP_1_2_ENV_NS_PREFIX":role",SOAP_1_2_ACTOR_UNLIMATERECEIVER);
+                                                       }
+                                               }
+                                       }
+                               }
+                       }
                        zend_hash_move_forward(soap_headers);
                }
        }
@@ -3016,7 +3016,7 @@
        return doc;
 }
 
-static xmlNodePtr seralize_parameter(sdlParamPtr param, zval *param_val, int index, 
char *name, int style, xmlNodePtr parent TSRMLS_DC)
+static xmlNodePtr serialize_parameter(sdlParamPtr param, zval *param_val, int index, 
char *name, int style, xmlNodePtr parent TSRMLS_DC)
 {
        char *paramName;
        xmlNodePtr xmlParam;
@@ -3028,9 +3028,9 @@
                zval **param_data;
 
                if (zend_hash_find(Z_OBJPROP_P(param_val), "param_name", 
sizeof("param_name"), (void **)&param_name) == SUCCESS &&
-                  zend_hash_find(Z_OBJPROP_P(param_val), "param_data", 
sizeof("param_data"), (void **)&param_data) == SUCCESS) {
-                 param_val = *param_data;
-                 name = Z_STRVAL_PP(param_name);
+                   zend_hash_find(Z_OBJPROP_P(param_val), "param_data", 
sizeof("param_data"), (void **)&param_data) == SUCCESS) {
+                       param_val = *param_data;
+                       name = Z_STRVAL_PP(param_name);
                }
        }
 
@@ -3045,12 +3045,12 @@
                }
        }
 
-       xmlParam = seralize_zval(param_val, param, paramName, style, parent TSRMLS_CC);
+       xmlParam = serialize_zval(param_val, param, paramName, style, parent 
TSRMLS_CC);
 
        return xmlParam;
 }
 
-static xmlNodePtr seralize_zval(zval *val, sdlParamPtr param, char *paramName, int 
style, xmlNodePtr parent TSRMLS_DC)
+static xmlNodePtr serialize_zval(zval *val, sdlParamPtr param, char *paramName, int 
style, xmlNodePtr parent TSRMLS_DC)
 {
        xmlNodePtr xmlParam;
        encodePtr enc;
@@ -3137,30 +3137,25 @@
 
                                                
zend_hash_internal_pointer_reset((*tmp)->requestParameters);
                                                while 
(zend_hash_get_current_data((*tmp)->requestParameters, (void**)&param) == SUCCESS) {
-                                                 if ((*param)->element) {
-                                                       if 
(strcmp((*param)->element->name,node->name) != 0) {
-                                                               ok = 0;
-                                                               break;
-                                                       }
-                                                       if ((*param)->element->namens 
!= NULL && node->ns != NULL) {
-                                                               if 
(strcmp((*param)->element->namens,node->ns->href) != 0) {
-                                                                       ok = 0;
-                                                                       break;
-                                                               }
-                                                       } else if 
((void*)(*param)->element->namens != (void*)node->ns) {
-                                                               ok = 0;
-                                                               break;
-                                                       }
-                                                 } else if 
(strcmp((*param)->paramName,node->name) != 0) {
-                                                       ok = 0;
-                                                       break;
-                                                 }
+                                                       if ((*param)->element) {
+                                                               if 
(strcmp((*param)->element->name,node->name) != 0) {
+                                                                       ok = 0;
+                                                                       break;
+                                                               }
+                                                               if 
((*param)->element->namens != NULL && node->ns != NULL) {
+                                                                       if 
(strcmp((*param)->element->namens,node->ns->href) != 0) {
+                                                                               ok = 0;
+                                                                               break;
+                                                                       }
+                                                               } else if 
((void*)(*param)->element->namens != (void*)node->ns) {
+                                                                       ok = 0;
+                                                                       break;
+                                                               }
+                                                       } else if 
(strcmp((*param)->paramName,node->name) != 0) {
+                                                               ok = 0;
+                                                               break;
+                                                       }
                                                        
zend_hash_move_forward((*tmp)->requestParameters);
-/*
-                                                       do {
-                                                               node = node->next;
-                                                       } while (node != NULL && 
node->type != XML_ELEMENT_NODE);
-*/
                                                }
                                                if (ok /*&& node == NULL*/) {
                                                        return (*tmp);
@@ -3180,7 +3175,7 @@
        HashPosition pos;
        sdlParamPtr *param;
 
-       if (function->responseParameters && 
+       if (function->responseParameters &&
            zend_hash_num_elements(function->responseParameters) > 0) {
                if (zend_hash_num_elements(function->responseParameters) == 1) {
                        param = function->responseParameters->pListHead->pData;
@@ -3244,7 +3239,7 @@
        switch (model->kind) {
                case XSD_CONTENT_ELEMENT:
                        type_to_string(model->u.element, buf, level);
-                       smart_str_appendl(buf, ";\n", 2);                 
+                       smart_str_appendl(buf, ";\n", 2);
                        break;
                case XSD_CONTENT_SEQUENCE:
                case XSD_CONTENT_ALL:
@@ -3298,23 +3293,23 @@
                                      sizeof(SOAP_1_1_ENC_NAMESPACE":arrayType"),
                                      (void **)&attr) == SUCCESS &&
                                      zend_hash_find((*attr)->extraAttributes, 
WSDL_NAMESPACE":arrayType", sizeof(WSDL_NAMESPACE":arrayType"), (void **)&ext) == 
SUCCESS) {
-                                 char *end = strchr((*ext)->val, '[');
-                                 int len;
-                                 if (end == NULL) {
-                                       len = strlen((*ext)->val);
-                                 } else {
-                                       len = end-(*ext)->val;
-                                 }
-                                 if (len == 0) {
+                                       char *end = strchr((*ext)->val, '[');
+                                       int len;
+                                       if (end == NULL) {
+                                               len = strlen((*ext)->val);
+                                       } else {
+                                               len = end-(*ext)->val;
+                                       }
+                                       if (len == 0) {
                                                smart_str_appendl(buf, "anyType", 7);
                                        } else {
                                                smart_str_appendl(buf, (*ext)->val, 
len);
                                        }
                                        smart_str_appendc(buf, ' ');
                                        smart_str_appendl(buf, type->name, 
strlen(type->name));
-                                 if (end != NULL) {
+                                       if (end != NULL) {
                                                smart_str_appends(buf, end);
-                                       }                                       
+                                       }
                                } else {
                                        sdlTypePtr elementType;
                                        if (type->attributes &&
@@ -3360,15 +3355,15 @@
                                               enc->details.sdl_type->kind != 
XSD_TYPEKIND_UNION) {
                                                enc = enc->details.sdl_type->encode;
                                        }
-                                 if (enc) {
+                                       if (enc) {
                                                smart_str_appendl(buf, spaces.c, 
spaces.len);
                                                smart_str_appendc(buf, ' ');
                                                smart_str_appendl(buf, 
type->encode->details.type_str, strlen(type->encode->details.type_str));
-                                               smart_str_appendl(buf, " _;\n", 4);    
           
+                                               smart_str_appendl(buf, " _;\n", 4);
                                        }
                                }
                                if (type->model) {
-                                       model_to_string(type->model, buf, level+1);    
                                 
+                                       model_to_string(type->model, buf, level+1);
                                }
                                if (type->attributes) {
                                        sdlAttributePtr *attr;
@@ -3383,8 +3378,8 @@
                                                } else {
                                                        smart_str_appendl(buf, 
"UNKNOWN ", 8);
                                                }
-                                               smart_str_appends(buf, (*attr)->name); 
           
-                                               smart_str_appendl(buf, ";\n", 2);      
           
+                                               smart_str_appends(buf, (*attr)->name);
+                                               smart_str_appendl(buf, ";\n", 2);
                                                
zend_hash_move_forward_ex(type->attributes, &pos);
                                        }
                                }

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

Reply via email to