#endif
PHP_INI_END()
-static void php_soap_init_globals(zend_soap_globals *soap_globals)
+static HashTable defEnc, defEncIndex, defEncNs;
+
+static void php_soap_prepare_globals()
{
int i;
encodePtr enc;
- zend_hash_init(&soap_globals->defEnc, 0, NULL, NULL, 1);
- zend_hash_init(&soap_globals->defEncIndex, 0, NULL, NULL, 1);
- zend_hash_init(&soap_globals->defEncNs, 0, NULL, NULL, 1);
+ zend_hash_init(&defEnc, 0, NULL, NULL, 1);
+ zend_hash_init(&defEncIndex, 0, NULL, NULL, 1);
+ zend_hash_init(&defEncNs, 0, NULL, NULL, 1);
i = 0;
do {
char *ns_type;
ns_type = emalloc(strlen(defaultEncoding[i].details.ns) + strlen(defaultEncoding[i].details.type_str) + 2);
sprintf(ns_type, "%s:%s", defaultEncoding[i].details.ns, defaultEncoding[i].details.type_str);
- zend_hash_add(&soap_globals->defEnc, ns_type, strlen(ns_type) + 1, &enc, sizeof(encodePtr), NULL);
+ zend_hash_add(&defEnc, ns_type, strlen(ns_type) + 1, &enc, sizeof(encodePtr), NULL);
efree(ns_type);
} else {
- zend_hash_add(&soap_globals->defEnc, defaultEncoding[i].details.type_str, strlen(defaultEncoding[i].details.type_str) + 1, &enc, sizeof(encodePtr), NULL);
+ zend_hash_add(&defEnc, defaultEncoding[i].details.type_str, strlen(defaultEncoding[i].details.type_str) + 1, &enc, sizeof(encodePtr), NULL);
}
}
/* Index everything by number */
- if (!zend_hash_index_exists(&soap_globals->defEncIndex, defaultEncoding[i].details.type)) {
- zend_hash_index_update(&soap_globals->defEncIndex, defaultEncoding[i].details.type, &enc, sizeof(encodePtr), NULL);
+ if (!zend_hash_index_exists(&defEncIndex, defaultEncoding[i].details.type)) {
+ zend_hash_index_update(&defEncIndex, defaultEncoding[i].details.type, &enc, sizeof(encodePtr), NULL);
}
i++;
} while (defaultEncoding[i].details.type != END_KNOWN_TYPES);
/* hash by namespace */
- zend_hash_add(&soap_globals->defEncNs, XSD_1999_NAMESPACE, sizeof(XSD_1999_NAMESPACE), XSD_NS_PREFIX, sizeof(XSD_NS_PREFIX), NULL);
- zend_hash_add(&soap_globals->defEncNs, XSD_NAMESPACE, sizeof(XSD_NAMESPACE), XSD_NS_PREFIX, sizeof(XSD_NS_PREFIX), NULL);
- zend_hash_add(&soap_globals->defEncNs, XSI_NAMESPACE, sizeof(XSI_NAMESPACE), XSI_NS_PREFIX, sizeof(XSI_NS_PREFIX), NULL);
- zend_hash_add(&soap_globals->defEncNs, XML_NAMESPACE, sizeof(XML_NAMESPACE), XML_NS_PREFIX, sizeof(XML_NS_PREFIX), NULL);
- zend_hash_add(&soap_globals->defEncNs, SOAP_1_1_ENC_NAMESPACE, sizeof(SOAP_1_1_ENC_NAMESPACE), SOAP_1_1_ENC_NS_PREFIX, sizeof(SOAP_1_1_ENC_NS_PREFIX), NULL);
- zend_hash_add(&soap_globals->defEncNs, SOAP_1_2_ENC_NAMESPACE, sizeof(SOAP_1_2_ENC_NAMESPACE), SOAP_1_2_ENC_NS_PREFIX, sizeof(SOAP_1_2_ENC_NS_PREFIX), NULL);
+ zend_hash_add(&defEncNs, XSD_1999_NAMESPACE, sizeof(XSD_1999_NAMESPACE), XSD_NS_PREFIX, sizeof(XSD_NS_PREFIX), NULL);
+ zend_hash_add(&defEncNs, XSD_NAMESPACE, sizeof(XSD_NAMESPACE), XSD_NS_PREFIX, sizeof(XSD_NS_PREFIX), NULL);
+ zend_hash_add(&defEncNs, XSI_NAMESPACE, sizeof(XSI_NAMESPACE), XSI_NS_PREFIX, sizeof(XSI_NS_PREFIX), NULL);
+ zend_hash_add(&defEncNs, XML_NAMESPACE, sizeof(XML_NAMESPACE), XML_NS_PREFIX, sizeof(XML_NS_PREFIX), NULL);
+ zend_hash_add(&defEncNs, SOAP_1_1_ENC_NAMESPACE, sizeof(SOAP_1_1_ENC_NAMESPACE), SOAP_1_1_ENC_NS_PREFIX, sizeof(SOAP_1_1_ENC_NS_PREFIX), NULL);
+ zend_hash_add(&defEncNs, SOAP_1_2_ENC_NAMESPACE, sizeof(SOAP_1_2_ENC_NAMESPACE), SOAP_1_2_ENC_NS_PREFIX, sizeof(SOAP_1_2_ENC_NS_PREFIX), NULL);
+}
+static void php_soap_init_globals(zend_soap_globals *soap_globals TSRMLS_DC)
+{
+ soap_globals->defEnc = defEnc;
+ soap_globals->defEncIndex = defEncIndex;
+ soap_globals->defEncNs = defEncNs;
soap_globals->overrides = NULL;
soap_globals->use_soap_error_handler = 0;
soap_globals->error_code = NULL;
zend_class_entry ce;
/* TODO: add ini entry for always use soap errors */
+ php_soap_prepare_globals();
ZEND_INIT_MODULE_GLOBALS(soap, php_soap_init_globals, NULL);
REGISTER_INI_ENTRIES();
INIT_ZVAL(outbuflen);
#ifdef va_copy
va_copy(argcopy, args);
- buffer_len = zend_vspprintf(&buffer, 0, format, argcopy);
+ buffer_len = vspprintf(&buffer, 0, format, argcopy);
va_end(argcopy);
#else
- buffer_len = zend_vspprintf(&buffer, 0, format, args);
+ buffer_len = vspprintf(&buffer, 0, format, args);
#endif
if (code == NULL) {
#ifdef va_copy
va_copy(argcopy, args);
- buffer_len = zend_vspprintf(&buffer, 0, format, argcopy);
+ buffer_len = vspprintf(&buffer, 0, format, argcopy);
va_end(argcopy);
#else
- buffer_len = zend_vspprintf(&buffer, 0, format, args);
+ buffer_len = vspprintf(&buffer, 0, format, args);
#endif
if (code == NULL) {