mirror of
https://github.com/bdnugget/php-src.git
synced 2026-11-10 02:30:50 +00:00
Compare commits
1
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
3e44943db6 |
No files matched your search
+8
-27
@@ -211,9 +211,6 @@ encode defaultEncoding[] = {
|
||||
{{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') {
|
||||
@@ -1131,13 +1128,11 @@ static void model_to_zval_object(zval *ret, sdlContentModelPtr model, xmlNodePtr
|
||||
{
|
||||
switch (model->kind) {
|
||||
case XSD_CONTENT_ELEMENT:
|
||||
if (model->u.element->name) {
|
||||
xmlNodePtr node = get_node(data->children, model->u.element->name);
|
||||
if (model->u.element->name) {
|
||||
xmlNodePtr node = get_node(data->children, model->u.element->name);
|
||||
if (node) {
|
||||
zval *val;
|
||||
|
||||
if (node) {
|
||||
zval *val;
|
||||
|
||||
node = check_and_resolve_href(node);
|
||||
if (node && node->children && node->children->content) {
|
||||
if (model->u.element->fixed && strcmp(model->u.element->fixed,node->children->content) != 0) {
|
||||
soap_error3(E_ERROR, "Encoding: Element '%s' has fixed value '%s' (value '%s' is not allowed)", model->u.element->name, model->u.element->fixed, node->children->content);
|
||||
@@ -2883,11 +2878,11 @@ zval *sdl_guess_convert_zval(encodeTypePtr enc, xmlNodePtr data)
|
||||
}
|
||||
if (type->restrictions->minLength &&
|
||||
strlen(data->children->content) < type->restrictions->minLength->value) {
|
||||
soap_error0(E_WARNING, "Encoding: Restriction: length less than 'minLength'");
|
||||
soap_error0(E_WARNING, "Encoding: Restriction: length less then 'minLength'");
|
||||
}
|
||||
if (type->restrictions->maxLength &&
|
||||
strlen(data->children->content) > type->restrictions->maxLength->value) {
|
||||
soap_error0(E_WARNING, "Encoding: Restriction: length greater than 'maxLength'");
|
||||
soap_error0(E_WARNING, "Encoding: Restriction: length greater then 'maxLength'");
|
||||
}
|
||||
if (type->restrictions->length &&
|
||||
strlen(data->children->content) != type->restrictions->length->value) {
|
||||
@@ -2946,11 +2941,11 @@ xmlNodePtr sdl_guess_convert_xml(encodeTypePtr enc, zval *data, int style, xmlNo
|
||||
}
|
||||
if (type->restrictions->minLength &&
|
||||
Z_STRLEN_P(data) < type->restrictions->minLength->value) {
|
||||
soap_error0(E_WARNING, "Encoding: Restriction: length less than 'minLength'");
|
||||
soap_error0(E_WARNING, "Encoding: Restriction: length less then 'minLength'");
|
||||
}
|
||||
if (type->restrictions->maxLength &&
|
||||
Z_STRLEN_P(data) > type->restrictions->maxLength->value) {
|
||||
soap_error0(E_WARNING, "Encoding: Restriction: length greater than 'maxLength'");
|
||||
soap_error0(E_WARNING, "Encoding: Restriction: length greater then 'maxLength'");
|
||||
}
|
||||
if (type->restrictions->length &&
|
||||
Z_STRLEN_P(data) != type->restrictions->length->value) {
|
||||
@@ -3305,17 +3300,3 @@ void delete_encoder(void *encode)
|
||||
}
|
||||
efree(t);
|
||||
}
|
||||
|
||||
void delete_encoder_persistent(void *encode)
|
||||
{
|
||||
encodePtr t = *((encodePtr*)encode);
|
||||
if (t->details.ns) {
|
||||
free(t->details.ns);
|
||||
}
|
||||
if (t->details.type_str) {
|
||||
free(t->details.type_str);
|
||||
}
|
||||
/* we should never have mapping in persistent encoder */
|
||||
assert(t->details.map == NULL);
|
||||
free(t);
|
||||
}
|
||||
@@ -219,9 +219,7 @@ xmlNsPtr encode_add_ns(xmlNodePtr node, const char* ns);
|
||||
encodePtr get_conversion(int encode);
|
||||
|
||||
void delete_encoder(void *handle);
|
||||
void delete_encoder_persistent(void *handle);
|
||||
|
||||
extern encode defaultEncoding[];
|
||||
extern int numDefaultEncodings;
|
||||
|
||||
#endif
|
||||
+3
-12
@@ -416,22 +416,13 @@ try_again:
|
||||
smart_str_appendc(&soap_headers, ':');
|
||||
smart_str_append_unsigned(&soap_headers, phpurl->port);
|
||||
}
|
||||
smart_str_append_const(&soap_headers, "\r\n"
|
||||
"Connection: Keep-Alive\r\n");
|
||||
smart_str_append_const(&soap_headers, "\r\n"
|
||||
"Connection: Keep-Alive\r\n"
|
||||
/*
|
||||
"Connection: close\r\n"
|
||||
"Accept: text/html; text/xml; text/plain\r\n"
|
||||
*/
|
||||
if (zend_hash_find(Z_OBJPROP_P(this_ptr), "_user_agent", sizeof("_user_agent"), (void **)&tmp) == SUCCESS &&
|
||||
Z_TYPE_PP(tmp) == IS_STRING) {
|
||||
if (Z_STRLEN_PP(tmp) > 0) {
|
||||
smart_str_append_const(&soap_headers, "User-Agent: ");
|
||||
smart_str_appendl(&soap_headers, Z_STRVAL_PP(tmp), Z_STRLEN_PP(tmp));
|
||||
smart_str_append_const(&soap_headers, "\r\n");
|
||||
}
|
||||
} else{
|
||||
smart_str_append_const(&soap_headers, "User-Agent: PHP-SOAP/"PHP_VERSION"\r\n");
|
||||
}
|
||||
"User-Agent: PHP SOAP 0.1\r\n");
|
||||
|
||||
smart_str_append(&soap_headers, &soap_headers_z);
|
||||
smart_str_free(&soap_headers_z);
|
||||
|
||||
@@ -2358,28 +2358,6 @@ void delete_model(void *handle)
|
||||
efree(tmp);
|
||||
}
|
||||
|
||||
void delete_model_persistent(void *handle)
|
||||
{
|
||||
sdlContentModelPtr tmp = *((sdlContentModelPtr*)handle);
|
||||
switch (tmp->kind) {
|
||||
case XSD_CONTENT_ELEMENT:
|
||||
case XSD_CONTENT_GROUP:
|
||||
break;
|
||||
case XSD_CONTENT_SEQUENCE:
|
||||
case XSD_CONTENT_ALL:
|
||||
case XSD_CONTENT_CHOICE:
|
||||
zend_hash_destroy(tmp->u.content);
|
||||
free(tmp->u.content);
|
||||
break;
|
||||
case XSD_CONTENT_GROUP_REF:
|
||||
free(tmp->u.group_ref);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
free(tmp);
|
||||
}
|
||||
|
||||
void delete_type(void *data)
|
||||
{
|
||||
sdlTypePtr type = *((sdlTypePtr*)data);
|
||||
@@ -2427,53 +2405,6 @@ void delete_type(void *data)
|
||||
efree(type);
|
||||
}
|
||||
|
||||
void delete_type_persistent(void *data)
|
||||
{
|
||||
sdlTypePtr type = *((sdlTypePtr*)data);
|
||||
if (type->name) {
|
||||
free(type->name);
|
||||
}
|
||||
if (type->namens) {
|
||||
free(type->namens);
|
||||
}
|
||||
if (type->def) {
|
||||
free(type->def);
|
||||
}
|
||||
if (type->fixed) {
|
||||
free(type->fixed);
|
||||
}
|
||||
if (type->elements) {
|
||||
zend_hash_destroy(type->elements);
|
||||
free(type->elements);
|
||||
}
|
||||
if (type->attributes) {
|
||||
zend_hash_destroy(type->attributes);
|
||||
free(type->attributes);
|
||||
}
|
||||
if (type->model) {
|
||||
delete_model_persistent((void**)&type->model);
|
||||
}
|
||||
if (type->restrictions) {
|
||||
delete_restriction_var_int_persistent(&type->restrictions->minExclusive);
|
||||
delete_restriction_var_int_persistent(&type->restrictions->minInclusive);
|
||||
delete_restriction_var_int_persistent(&type->restrictions->maxExclusive);
|
||||
delete_restriction_var_int_persistent(&type->restrictions->maxInclusive);
|
||||
delete_restriction_var_int_persistent(&type->restrictions->totalDigits);
|
||||
delete_restriction_var_int_persistent(&type->restrictions->fractionDigits);
|
||||
delete_restriction_var_int_persistent(&type->restrictions->length);
|
||||
delete_restriction_var_int_persistent(&type->restrictions->minLength);
|
||||
delete_restriction_var_int_persistent(&type->restrictions->maxLength);
|
||||
delete_restriction_var_char_persistent(&type->restrictions->whiteSpace);
|
||||
delete_restriction_var_char_persistent(&type->restrictions->pattern);
|
||||
if (type->restrictions->enumeration) {
|
||||
zend_hash_destroy(type->restrictions->enumeration);
|
||||
free(type->restrictions->enumeration);
|
||||
}
|
||||
free(type->restrictions);
|
||||
}
|
||||
free(type);
|
||||
}
|
||||
|
||||
void delete_extra_attribute(void *attribute)
|
||||
{
|
||||
sdlExtraAttributePtr attr = *((sdlExtraAttributePtr*)attribute);
|
||||
@@ -2487,19 +2418,6 @@ void delete_extra_attribute(void *attribute)
|
||||
efree(attr);
|
||||
}
|
||||
|
||||
void delete_extra_attribute_persistent(void *attribute)
|
||||
{
|
||||
sdlExtraAttributePtr attr = *((sdlExtraAttributePtr*)attribute);
|
||||
|
||||
if (attr->ns) {
|
||||
free(attr->ns);
|
||||
}
|
||||
if (attr->val) {
|
||||
free(attr->val);
|
||||
}
|
||||
free(attr);
|
||||
}
|
||||
|
||||
void delete_attribute(void *attribute)
|
||||
{
|
||||
sdlAttributePtr attr = *((sdlAttributePtr*)attribute);
|
||||
@@ -2526,32 +2444,6 @@ void delete_attribute(void *attribute)
|
||||
efree(attr);
|
||||
}
|
||||
|
||||
void delete_attribute_persistent(void *attribute)
|
||||
{
|
||||
sdlAttributePtr attr = *((sdlAttributePtr*)attribute);
|
||||
|
||||
if (attr->def) {
|
||||
free(attr->def);
|
||||
}
|
||||
if (attr->fixed) {
|
||||
free(attr->fixed);
|
||||
}
|
||||
if (attr->name) {
|
||||
free(attr->name);
|
||||
}
|
||||
if (attr->namens) {
|
||||
free(attr->namens);
|
||||
}
|
||||
if (attr->ref) {
|
||||
free(attr->ref);
|
||||
}
|
||||
if (attr->extraAttributes) {
|
||||
zend_hash_destroy(attr->extraAttributes);
|
||||
free(attr->extraAttributes);
|
||||
}
|
||||
free(attr);
|
||||
}
|
||||
|
||||
void delete_restriction_var_int(void *rvi)
|
||||
{
|
||||
sdlRestrictionIntPtr ptr = *((sdlRestrictionIntPtr*)rvi);
|
||||
@@ -2560,14 +2452,6 @@ void delete_restriction_var_int(void *rvi)
|
||||
}
|
||||
}
|
||||
|
||||
void delete_restriction_var_int_persistent(void *rvi)
|
||||
{
|
||||
sdlRestrictionIntPtr ptr = *((sdlRestrictionIntPtr*)rvi);
|
||||
if (ptr) {
|
||||
free(ptr);
|
||||
}
|
||||
}
|
||||
|
||||
void delete_restriction_var_char(void *srvc)
|
||||
{
|
||||
sdlRestrictionCharPtr ptr = *((sdlRestrictionCharPtr*)srvc);
|
||||
@@ -2578,14 +2462,3 @@ void delete_restriction_var_char(void *srvc)
|
||||
efree(ptr);
|
||||
}
|
||||
}
|
||||
|
||||
void delete_restriction_var_char_persistent(void *srvc)
|
||||
{
|
||||
sdlRestrictionCharPtr ptr = *((sdlRestrictionCharPtr*)srvc);
|
||||
if (ptr) {
|
||||
if (ptr->value) {
|
||||
free(ptr->value);
|
||||
}
|
||||
free(ptr);
|
||||
}
|
||||
}
|
||||
@@ -26,15 +26,9 @@ int load_schema(sdlCtx *ctx, xmlNodePtr schema TSRMLS_DC);
|
||||
void schema_pass2(sdlCtx *ctx);
|
||||
|
||||
void delete_model(void *handle);
|
||||
void delete_model_persistent(void *handle);
|
||||
void delete_type(void *data);
|
||||
void delete_type_persistent(void *data);
|
||||
void delete_extra_attribute(void *attribute);
|
||||
void delete_extra_attribute_persistent(void *attribute);
|
||||
void delete_attribute(void *attribute);
|
||||
void delete_attribute_persistent(void *attribute);
|
||||
void delete_restriction_var_int(void *rvi);
|
||||
void delete_restriction_var_int_persistent(void *rvi);
|
||||
void delete_restriction_var_char(void *srvc);
|
||||
void delete_restriction_var_char_persistent(void *srvc);
|
||||
#endif
|
||||
+46
-1064
File diff suppressed because it is too large.
Load diff
+1
-4
@@ -61,7 +61,6 @@ struct _sdl {
|
||||
HashTable *groups; /* array of sdlTypesPtr */
|
||||
char *target_ns;
|
||||
char *source;
|
||||
zend_bool is_persistent;
|
||||
};
|
||||
|
||||
typedef struct sdlCtx {
|
||||
@@ -251,8 +250,7 @@ struct _sdlAttribute {
|
||||
encodePtr encode;
|
||||
};
|
||||
|
||||
|
||||
sdlPtr get_sdl(zval *this_ptr, char *uri, long cache_wsdl TSRMLS_DC);
|
||||
sdlPtr get_sdl(zval *this_ptr, char *uri TSRMLS_DC);
|
||||
|
||||
encodePtr get_encoder_from_prefix(sdlPtr sdl, xmlNodePtr data, const char *type);
|
||||
encodePtr get_encoder(sdlPtr sdl, const char *ns, const char *type);
|
||||
@@ -262,6 +260,5 @@ 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_impl(void *handle);
|
||||
|
||||
#endif
|
||||
+1
-9
@@ -158,11 +158,6 @@ struct _soapService {
|
||||
#define SOAP_SINGLE_ELEMENT_ARRAYS (1<<0)
|
||||
#define SOAP_WAIT_ONE_WAY_CALLS (2<<0)
|
||||
|
||||
#define WSDL_CACHE_NONE 0x0
|
||||
#define WSDL_CACHE_DISK 0x1
|
||||
#define WSDL_CACHE_MEMORY 0x2
|
||||
#define WSDL_CACHE_BOTH 0x3
|
||||
|
||||
ZEND_BEGIN_MODULE_GLOBALS(soap)
|
||||
HashTable defEncNs; /* mapping of default namespaces to prefixes */
|
||||
HashTable defEnc;
|
||||
@@ -174,15 +169,12 @@ ZEND_BEGIN_MODULE_GLOBALS(soap)
|
||||
zend_bool use_soap_error_handler;
|
||||
char* error_code;
|
||||
zval* error_object;
|
||||
long cache;
|
||||
zend_bool cache_enabled;
|
||||
char* cache_dir;
|
||||
long cache_ttl;
|
||||
long cache_limit;
|
||||
HashTable *mem_cache;
|
||||
xmlCharEncodingHandlerPtr encoding;
|
||||
HashTable *class_map;
|
||||
int features;
|
||||
HashTable wsdl_cache;
|
||||
ZEND_END_MODULE_GLOBALS(soap)
|
||||
|
||||
#ifdef PHP_WIN32
|
||||
|
||||
+11
-76
@@ -391,49 +391,18 @@ zend_module_entry soap_module_entry = {
|
||||
ZEND_GET_MODULE(soap)
|
||||
#endif
|
||||
|
||||
#ifndef ZEND_ENGINE_2
|
||||
# define OnUpdateLong OnUpdateInt
|
||||
#endif
|
||||
|
||||
ZEND_INI_MH(OnUpdateCacheEnabled)
|
||||
{
|
||||
long *p;
|
||||
#ifndef ZTS
|
||||
char *base = (char *) mh_arg2;
|
||||
#else
|
||||
char *base;
|
||||
|
||||
base = (char *) ts_resource(*((int *) mh_arg2));
|
||||
#endif
|
||||
|
||||
p = (long*) (base+(size_t) mh_arg1);
|
||||
|
||||
if (new_value_length==2 && strcasecmp("on", new_value)==0) {
|
||||
*p = 1;
|
||||
}
|
||||
else if (new_value_length==3 && strcasecmp("yes", new_value)==0) {
|
||||
*p = 1;
|
||||
}
|
||||
else if (new_value_length==4 && strcasecmp("true", new_value)==0) {
|
||||
*p = 1;
|
||||
}
|
||||
else {
|
||||
*p = (long) (atoi(new_value) != 0);
|
||||
}
|
||||
return SUCCESS;
|
||||
}
|
||||
|
||||
PHP_INI_BEGIN()
|
||||
STD_PHP_INI_ENTRY("soap.wsdl_cache_enabled", "1", PHP_INI_ALL, OnUpdateCacheEnabled,
|
||||
cache, zend_soap_globals, soap_globals)
|
||||
STD_PHP_INI_ENTRY("soap.wsdl_cache_enabled", "1", PHP_INI_ALL, OnUpdateBool,
|
||||
cache_enabled, zend_soap_globals, soap_globals)
|
||||
STD_PHP_INI_ENTRY("soap.wsdl_cache_dir", "/tmp", PHP_INI_ALL, OnUpdateString,
|
||||
cache_dir, zend_soap_globals, soap_globals)
|
||||
#ifdef ZEND_ENGINE_2
|
||||
STD_PHP_INI_ENTRY("soap.wsdl_cache_ttl", "86400", PHP_INI_ALL, OnUpdateLong,
|
||||
cache_ttl, zend_soap_globals, soap_globals)
|
||||
STD_PHP_INI_ENTRY("soap.wsdl_cache", "1", PHP_INI_ALL, OnUpdateLong,
|
||||
cache, zend_soap_globals, soap_globals)
|
||||
STD_PHP_INI_ENTRY("soap.wsdl_cache_limit", "5", PHP_INI_ALL, OnUpdateLong,
|
||||
cache_limit, zend_soap_globals, soap_globals)
|
||||
#else
|
||||
STD_PHP_INI_ENTRY("soap.wsdl_cache_ttl", "86400", PHP_INI_ALL, OnUpdateInt,
|
||||
cache_ttl, zend_soap_globals, soap_globals)
|
||||
#endif
|
||||
PHP_INI_END()
|
||||
|
||||
static HashTable defEnc, defEncIndex, defEncNs;
|
||||
@@ -490,7 +459,6 @@ static void php_soap_init_globals(zend_soap_globals *soap_globals TSRMLS_DC)
|
||||
soap_globals->error_object = NULL;
|
||||
soap_globals->sdl = NULL;
|
||||
soap_globals->soap_version = SOAP_1_1;
|
||||
soap_globals->mem_cache = NULL;
|
||||
}
|
||||
|
||||
PHP_MSHUTDOWN_FUNCTION(soap)
|
||||
@@ -499,10 +467,6 @@ PHP_MSHUTDOWN_FUNCTION(soap)
|
||||
zend_hash_destroy(&SOAP_GLOBAL(defEnc));
|
||||
zend_hash_destroy(&SOAP_GLOBAL(defEncIndex));
|
||||
zend_hash_destroy(&SOAP_GLOBAL(defEncNs));
|
||||
if (SOAP_GLOBAL(mem_cache)) {
|
||||
zend_hash_destroy(SOAP_GLOBAL(mem_cache));
|
||||
free(SOAP_GLOBAL(mem_cache));
|
||||
}
|
||||
UNREGISTER_INI_ENTRIES();
|
||||
return SUCCESS;
|
||||
}
|
||||
@@ -528,7 +492,7 @@ PHP_MINIT_FUNCTION(soap)
|
||||
/* 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();
|
||||
REGISTER_INI_ENTRIES();
|
||||
|
||||
#ifndef ZEND_ENGINE_2
|
||||
/* Enable php stream/wrapper support for libxml */
|
||||
@@ -675,11 +639,6 @@ PHP_MINIT_FUNCTION(soap)
|
||||
REGISTER_LONG_CONSTANT("SOAP_SINGLE_ELEMENT_ARRAYS", SOAP_SINGLE_ELEMENT_ARRAYS, CONST_CS | CONST_PERSISTENT);
|
||||
REGISTER_LONG_CONSTANT("SOAP_WAIT_ONE_WAY_CALLS", SOAP_WAIT_ONE_WAY_CALLS, CONST_CS | CONST_PERSISTENT);
|
||||
|
||||
REGISTER_LONG_CONSTANT("WSDL_CACHE_NONE", WSDL_CACHE_NONE, CONST_CS | CONST_PERSISTENT);
|
||||
REGISTER_LONG_CONSTANT("WSDL_CACHE_DISK", WSDL_CACHE_DISK, CONST_CS | CONST_PERSISTENT);
|
||||
REGISTER_LONG_CONSTANT("WSDL_CACHE_MEMORY", WSDL_CACHE_MEMORY, CONST_CS | CONST_PERSISTENT);
|
||||
REGISTER_LONG_CONSTANT("WSDL_CACHE_BOTH", WSDL_CACHE_BOTH, CONST_CS | CONST_PERSISTENT);
|
||||
|
||||
old_error_handler = zend_error_cb;
|
||||
zend_error_cb = soap_error_handler;
|
||||
|
||||
@@ -946,7 +905,6 @@ PHP_METHOD(SoapServer, SoapServer)
|
||||
zval *wsdl, *options = NULL;
|
||||
int ret;
|
||||
int version = SOAP_1_1;
|
||||
long cache_wsdl;
|
||||
|
||||
SOAP_SERVER_BEGIN_CODE();
|
||||
|
||||
@@ -964,8 +922,6 @@ PHP_METHOD(SoapServer, SoapServer)
|
||||
service = emalloc(sizeof(soapService));
|
||||
memset(service, 0, sizeof(soapService));
|
||||
|
||||
cache_wsdl = SOAP_GLOBAL(cache);
|
||||
|
||||
if (options != NULL) {
|
||||
HashTable *ht = Z_ARRVAL_P(options);
|
||||
zval **tmp;
|
||||
@@ -1016,11 +972,6 @@ PHP_METHOD(SoapServer, SoapServer)
|
||||
service->features = Z_LVAL_PP(tmp);
|
||||
}
|
||||
|
||||
if (zend_hash_find(ht, "cache_wsdl", sizeof("cache_wsdl"), (void**)&tmp) == SUCCESS &&
|
||||
Z_TYPE_PP(tmp) == IS_LONG) {
|
||||
cache_wsdl = Z_LVAL_PP(tmp);
|
||||
}
|
||||
|
||||
} else if (wsdl == NULL) {
|
||||
php_error_docref(NULL TSRMLS_CC, E_ERROR, "Invalid arguments. 'uri' option is required in nonWSDL mode.");
|
||||
}
|
||||
@@ -1032,7 +983,7 @@ PHP_METHOD(SoapServer, SoapServer)
|
||||
zend_hash_init(service->soap_functions.ft, 0, NULL, ZVAL_PTR_DTOR, 0);
|
||||
|
||||
if (wsdl) {
|
||||
service->sdl = get_sdl(this_ptr, Z_STRVAL_P(wsdl), cache_wsdl TSRMLS_CC);
|
||||
service->sdl = get_sdl(this_ptr, Z_STRVAL_P(wsdl) TSRMLS_CC);
|
||||
if (service->uri == NULL) {
|
||||
if (service->sdl->target_ns) {
|
||||
service->uri = estrdup(service->sdl->target_ns);
|
||||
@@ -1702,9 +1653,7 @@ PHP_METHOD(SoapServer, handle)
|
||||
}
|
||||
|
||||
fn_name = estrndup(Z_STRVAL(h->function_name),Z_STRLEN(h->function_name));
|
||||
if (zend_hash_exists(function_table, php_strtolower(fn_name, Z_STRLEN(h->function_name)), Z_STRLEN(h->function_name) + 1) ||
|
||||
(service->type == SOAP_CLASS &&
|
||||
zend_hash_exists(function_table, ZEND_CALL_FUNC_NAME, sizeof(ZEND_CALL_FUNC_NAME)))) {
|
||||
if (zend_hash_exists(function_table, php_strtolower(fn_name, Z_STRLEN(h->function_name)), Z_STRLEN(h->function_name) + 1)) {
|
||||
if (service->type == SOAP_CLASS) {
|
||||
call_status = call_user_function(NULL, &soap_obj, &h->function_name, &h->retval, h->num_params, h->parameters TSRMLS_CC);
|
||||
} else {
|
||||
@@ -2151,7 +2100,6 @@ PHP_METHOD(SoapClient, SoapClient)
|
||||
zval *options = NULL;
|
||||
int soap_version = SOAP_1_1;
|
||||
php_stream_context *context = NULL;
|
||||
long cache_wsdl;
|
||||
|
||||
SOAP_CLIENT_BEGIN_CODE();
|
||||
|
||||
@@ -2167,9 +2115,6 @@ PHP_METHOD(SoapClient, SoapClient)
|
||||
} else {
|
||||
wsdl = NULL;
|
||||
}
|
||||
|
||||
cache_wsdl = SOAP_GLOBAL(cache);
|
||||
|
||||
if (options != NULL) {
|
||||
HashTable *ht = Z_ARRVAL_P(options);
|
||||
zval **tmp;
|
||||
@@ -2317,16 +2262,6 @@ PHP_METHOD(SoapClient, SoapClient)
|
||||
add_property_resource(this_ptr, "_stream_context", context->rsrc_id);
|
||||
}
|
||||
|
||||
if (zend_hash_find(ht, "cache_wsdl", sizeof("cache_wsdl"), (void**)&tmp) == SUCCESS &&
|
||||
Z_TYPE_PP(tmp) == IS_LONG) {
|
||||
cache_wsdl = Z_LVAL_PP(tmp);
|
||||
}
|
||||
|
||||
if (zend_hash_find(ht, "user_agent", sizeof("user_agent"), (void**)&tmp) == SUCCESS &&
|
||||
Z_TYPE_PP(tmp) == IS_STRING) {
|
||||
add_property_stringl(this_ptr, "_user_agent", Z_STRVAL_PP(tmp), Z_STRLEN_PP(tmp), 1);
|
||||
}
|
||||
|
||||
} else if (wsdl == NULL) {
|
||||
php_error_docref(NULL TSRMLS_CC, E_ERROR, "'location' and 'uri' options are requred in nonWSDL mode");
|
||||
return;
|
||||
@@ -2341,7 +2276,7 @@ PHP_METHOD(SoapClient, SoapClient)
|
||||
old_soap_version = SOAP_GLOBAL(soap_version);
|
||||
SOAP_GLOBAL(soap_version) = soap_version;
|
||||
|
||||
sdl = get_sdl(this_ptr, Z_STRVAL_P(wsdl), cache_wsdl TSRMLS_CC);
|
||||
sdl = get_sdl(this_ptr, Z_STRVAL_P(wsdl) TSRMLS_CC);
|
||||
ret = zend_list_insert(sdl, le_sdl);
|
||||
|
||||
add_property_resource(this_ptr, "sdl", ret);
|
||||
|
||||
@@ -42,7 +42,7 @@ function test($type, $num) {
|
||||
try {
|
||||
printf(" %0.0f\n ", $num);
|
||||
$ret = $soap->foo($type, new SoapVar($num, $type));
|
||||
printf(" %0.0f\n", $ret);
|
||||
printf(" %0.0f\n", $num, $ret);
|
||||
} catch (SoapFault $ex) {
|
||||
var_dump($ex);
|
||||
}
|
||||
|
||||
@@ -1,46 +0,0 @@
|
||||
--TEST--
|
||||
Bug #36908 (wsdl default value overrides value in soap request)
|
||||
--SKIPIF--
|
||||
<?php
|
||||
if (!extension_loaded('soap')) die('skip soap extension not available');
|
||||
?>
|
||||
--INI--
|
||||
soap.wsdl_cache_enabled=0
|
||||
--FILE--
|
||||
<?php
|
||||
class PublisherService {
|
||||
function add($publisher) {
|
||||
return $publisher->region_id;
|
||||
}
|
||||
}
|
||||
$input =
|
||||
'<?xml version="1.0" encoding="UTF-8"?>
|
||||
<soapenv:Envelope
|
||||
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
|
||||
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||
<soapenv:Body>
|
||||
<ns1:add xmlns:ns1="urn:PublisherService" soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
|
||||
<publisher href="#id0"/>
|
||||
</ns1:add>
|
||||
<multiRef xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
|
||||
xmlns:ns3="http://soap.dev/soap/types" id="id0" soapenc:root="0"
|
||||
soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
|
||||
xsi:type="ns3:publisher">
|
||||
<region_id href="#id5"/>
|
||||
</multiRef>
|
||||
<multiRef xmlns:ns5="http://soap.dev/soap/types"
|
||||
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" id="id5"
|
||||
soapenc:root="0"
|
||||
soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
|
||||
xsi:type="xsd:long">9</multiRef>
|
||||
</soapenv:Body>
|
||||
</soapenv:Envelope>';
|
||||
ini_set('soap.wsdl_cache_enabled', false);
|
||||
$server = new SoapServer(dirname(__FILE__)."/bug36908.wsdl");
|
||||
$server->setClass("PublisherService");
|
||||
$server->handle($input);
|
||||
?>
|
||||
--EXPECT--
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="urn:PublisherService" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:addResponse><out xsi:type="xsd:string">9</out></ns1:addResponse></SOAP-ENV:Body></SOAP-ENV:Envelope>
|
||||
@@ -1,51 +0,0 @@
|
||||
<?xml version="1.0"?>
|
||||
<wsdl:definitions xmlns:xsd="http://www.w3.org/2001/XMLSchema"
|
||||
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
|
||||
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
|
||||
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
|
||||
xmlns:api="http://soap.dev/soap/PublisherService"
|
||||
xmlns:types="http://soap.dev/soap/types"
|
||||
targetNamespace="http://soap.dev/soap/PublisherService">
|
||||
<wsdl:types>
|
||||
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
|
||||
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
|
||||
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
|
||||
xmlns:types="http://soap.dev/soap/types"
|
||||
targetNamespace="http://soap.dev/soap/types">
|
||||
<xsd:complexType name="publisher">
|
||||
<xsd:all>
|
||||
<xsd:element name="region_id" type="xsd:long" default="52"/>
|
||||
</xsd:all>
|
||||
</xsd:complexType>
|
||||
</xsd:schema>
|
||||
</wsdl:types>
|
||||
<wsdl:message name="addInput">
|
||||
<wsdl:part name="publisher" type="types:publisher"/>
|
||||
</wsdl:message>
|
||||
<wsdl:message name="addOutput">
|
||||
<wsdl:part name="out" type="xsd:string"/>
|
||||
</wsdl:message>
|
||||
<wsdl:portType name="PublisherServicePortType">
|
||||
<wsdl:operation name="add">
|
||||
<wsdl:input message="api:addInput"/>
|
||||
<wsdl:output message="api:addOutput"/>
|
||||
</wsdl:operation>
|
||||
</wsdl:portType>
|
||||
<wsdl:binding name="PublisherServiceBinding" type="api:PublisherServicePortType">
|
||||
<soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/>
|
||||
<wsdl:operation name="add">
|
||||
<soap:operation soapAction="urn:PublisherService#add" style="rpc"/>
|
||||
<wsdl:input>
|
||||
<soap:body use="encoded" namespace="urn:PublisherService" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
|
||||
</wsdl:input>
|
||||
<wsdl:output>
|
||||
<soap:body use="encoded" namespace="urn:PublisherService" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
|
||||
</wsdl:output>
|
||||
</wsdl:operation>
|
||||
</wsdl:binding>
|
||||
<wsdl:service name="PublisherService">
|
||||
<wsdl:port name="PublisherServicePort" binding="api:PublisherServiceBinding">
|
||||
<soap:address location="http://soap.dev/soap//publisher_test.php"/>
|
||||
</wsdl:port>
|
||||
</wsdl:service>
|
||||
</wsdl:definitions>
|
||||
@@ -1,58 +0,0 @@
|
||||
--TEST--
|
||||
Bug #37083 (Frequent crashs in SOAP extension with new WSDL caching code in multithread WS)
|
||||
--SKIPIF--
|
||||
<?php require_once('skipif.inc'); ?>
|
||||
--INI--
|
||||
soap.wsdl_cache_enabled=3
|
||||
--FILE--
|
||||
<?php
|
||||
class TestSoapClient extends SoapClient {
|
||||
function __doRequest($request, $location, $action, $version) {
|
||||
return <<<EOF
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||
<soapenv:Body>
|
||||
<ns1:searchResponse soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:ns1="urn:java:de.pangaea.metadataportal.search.SearchService">
|
||||
<searchReturn href="#id0"/>
|
||||
</ns1:searchResponse>
|
||||
<multiRef id="id0" soapenc:root="0" soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xsi:type="ns2:SearchResponse" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:ns2="urn:java:de.pangaea.metadataportal.search.SearchService"><offset xsi:type="xsd:int">0</offset><queryTime xsi:type="xsd:long">34</queryTime><results soapenc:arrayType="ns2:SearchResponseItem[10]" xsi:type="soapenc:Array"><results href="#id1"/><results href="#id2"/><results href="#id3"/><results href="#id4"/><results href="#id5"/><results href="#id6"/><results href="#id7"/><results href="#id8"/><results href="#id9"/><results href="#id10"/></results><totalCount xsi:type="xsd:int">3501</totalCount></multiRef>
|
||||
<multiRef id="id9" soapenc:root="0" soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xsi:type="ns3:SearchResponseItem" xmlns:ns3="urn:java:de.pangaea.metadataportal.search.SearchService" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"><fields href="#id11"/><identifier xsi:type="xsd:string">oai:dlmd.ifremer.fr:5900168</identifier><score xsi:type="xsd:float">0.13684115</score><xml xsi:type="xsd:string">xml1</xml></multiRef>
|
||||
<multiRef id="id7" soapenc:root="0" soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xsi:type="ns4:SearchResponseItem" xmlns:ns4="urn:java:de.pangaea.metadataportal.search.SearchService" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"><fields href="#id12"/><identifier xsi:type="xsd:string">oai:dlmd.ifremer.fr:5900039</identifier><score xsi:type="xsd:float">0.13684115</score><xml xsi:type="xsd:string">xml2</xml></multiRef>
|
||||
<multiRef id="id6" soapenc:root="0" soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xsi:type="ns5:SearchResponseItem" xmlns:ns5="urn:java:de.pangaea.metadataportal.search.SearchService" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"><fields href="#id13"/><identifier xsi:type="xsd:string">oai:dlmd.ifremer.fr:5900040</identifier><score xsi:type="xsd:float">0.13684115</score><xml xsi:type="xsd:string">xml3</xml></multiRef>
|
||||
<multiRef id="id10" soapenc:root="0" soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xsi:type="ns6:SearchResponseItem" xmlns:ns6="urn:java:de.pangaea.metadataportal.search.SearchService" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"><fields href="#id14"/><identifier xsi:type="xsd:string">oai:dlmd.ifremer.fr:41534</identifier><score xsi:type="xsd:float">0.13684115</score><xml xsi:type="xsd:string">xml4</xml></multiRef>
|
||||
<multiRef id="id8" soapenc:root="0" soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xsi:type="ns7:SearchResponseItem" xmlns:ns7="urn:java:de.pangaea.metadataportal.search.SearchService" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"><fields href="#id15"/><identifier xsi:type="xsd:string">oai:dlmd.ifremer.fr:5900038</identifier><score xsi:type="xsd:float">0.13684115</score><xml xsi:type="xsd:string">xml5</xml></multiRef>
|
||||
<multiRef id="id4" soapenc:root="0" soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xsi:type="ns8:SearchResponseItem" xmlns:ns8="urn:java:de.pangaea.metadataportal.search.SearchService" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"><fields href="#id16"/><identifier xsi:type="xsd:string">oai:dlmd.ifremer.fr:2900229</identifier><score xsi:type="xsd:float">0.13684115</score><xml xsi:type="xsd:string">xml6</xml></multiRef>
|
||||
<multiRef id="id5" soapenc:root="0" soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xsi:type="ns9:SearchResponseItem" xmlns:ns9="urn:java:de.pangaea.metadataportal.search.SearchService" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"><fields href="#id17"/><identifier xsi:type="xsd:string">oai:dlmd.ifremer.fr:2900228</identifier><score xsi:type="xsd:float">0.13684115</score><xml xsi:type="xsd:string">xml7</xml></multiRef>
|
||||
<multiRef id="id3" soapenc:root="0" soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xsi:type="ns10:SearchResponseItem" xmlns:ns10="urn:java:de.pangaea.metadataportal.search.SearchService" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"><fields href="#id18"/><identifier xsi:type="xsd:string">oai:dlmd.ifremer.fr:2900230</identifier><score xsi:type="xsd:float">0.13684115</score><xml xsi:type="xsd:string">xml8</xml></multiRef>
|
||||
<multiRef id="id2" soapenc:root="0" soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xsi:type="ns11:SearchResponseItem" xmlns:ns11="urn:java:de.pangaea.metadataportal.search.SearchService" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"><fields href="#id19"/><identifier xsi:type="xsd:string">oai:dlmd.ifremer.fr:2900235</identifier><score xsi:type="xsd:float">0.13684115</score><xml xsi:type="xsd:string">xml9</xml></multiRef>
|
||||
<multiRef id="id1" soapenc:root="0" soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xsi:type="ns12:SearchResponseItem" xmlns:ns12="urn:java:de.pangaea.metadataportal.search.SearchService" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"><fields href="#id20"/><identifier xsi:type="xsd:string">oai:dlmd.ifremer.fr:5900196</identifier><score xsi:type="xsd:float">0.13684115</score><xml xsi:type="xsd:string">xml10</xml></multiRef>
|
||||
<multiRef id="id15" soapenc:root="0" soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xsi:type="ns13:Map" xmlns:ns13="http://xml.apache.org/xml-soap" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"><item><key xsi:type="soapenc:string">maxDateTime</key><value soapenc:arrayType="xsd:anyType[1]" xsi:type="soapenc:Array"><value xsi:type="xsd:dateTime">2038-12-31T22:59:59.000Z</value></value></item><item><key xsi:type="soapenc:string">minDateTime</key><value soapenc:arrayType="xsd:anyType[1]" xsi:type="soapenc:Array"><value xsi:type="xsd:dateTime">2004-12-01T04:58:00.000Z</value></value></item><item><key xsi:type="soapenc:string">minLongitude</key><value soapenc:arrayType="xsd:anyType[1]" xsi:type="soapenc:Array"><value xsi:type="soapenc:double">105.539</value></value></item><item><key xsi:type="soapenc:string">maxLongitude</key><value soapenc:arrayType="xsd:anyType[1]" xsi:type="soapenc:Array"><value xsi:type="soapenc:double">112.283</value></value></item><item><key xsi:type="soapenc:string">maxLatitude</key><value soapenc:arrayType="xsd:anyType[1]" xsi:type="soapenc:Array"><value xsi:type="soapenc:double">-30.024</value></value></item><item><key xsi:type="soapenc:string">minLatitude</key><value soapenc:arrayType="xsd:anyType[1]" xsi:type="soapenc:Array"><value xsi:type="soapenc:double">-34.788</value></value></item></multiRef>
|
||||
<multiRef id="id20" soapenc:root="0" soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xsi:type="ns14:Map" xmlns:ns14="http://xml.apache.org/xml-soap" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"><item><key xsi:type="soapenc:string">maxDateTime</key><value soapenc:arrayType="xsd:anyType[1]" xsi:type="soapenc:Array"><value xsi:type="xsd:dateTime">2038-12-31T22:59:59.000Z</value></value></item><item><key xsi:type="soapenc:string">minDateTime</key><value soapenc:arrayType="xsd:anyType[1]" xsi:type="soapenc:Array"><value xsi:type="xsd:dateTime">2004-06-07T17:41:44.000Z</value></value></item><item><key xsi:type="soapenc:string">minLongitude</key><value soapenc:arrayType="xsd:anyType[1]" xsi:type="soapenc:Array"><value xsi:type="soapenc:double">129.882</value></value></item><item><key xsi:type="soapenc:string">maxLongitude</key><value soapenc:arrayType="xsd:anyType[1]" xsi:type="soapenc:Array"><value xsi:type="soapenc:double">133.635</value></value></item><item><key xsi:type="soapenc:string">maxLatitude</key><value soapenc:arrayType="xsd:anyType[1]" xsi:type="soapenc:Array"><value xsi:type="soapenc:double">39.529</value></value></item><item><key xsi:type="soapenc:string">minLatitude</key><value soapenc:arrayType="xsd:anyType[1]" xsi:type="soapenc:Array"><value xsi:type="soapenc:double">36.419</value></value></item></multiRef>
|
||||
<multiRef id="id18" soapenc:root="0" soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xsi:type="ns15:Map" xmlns:ns15="http://xml.apache.org/xml-soap" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"><item><key xsi:type="soapenc:string">maxDateTime</key><value soapenc:arrayType="xsd:anyType[1]" xsi:type="soapenc:Array"><value xsi:type="xsd:dateTime">2038-12-31T22:59:59.000Z</value></value></item><item><key xsi:type="soapenc:string">minDateTime</key><value soapenc:arrayType="xsd:anyType[1]" xsi:type="soapenc:Array"><value xsi:type="xsd:dateTime">2004-03-10T01:40:00.000Z</value></value></item><item><key xsi:type="soapenc:string">minLongitude</key><value soapenc:arrayType="xsd:anyType[1]" xsi:type="soapenc:Array"><value xsi:type="soapenc:double">63.121</value></value></item><item><key xsi:type="soapenc:string">maxLongitude</key><value soapenc:arrayType="xsd:anyType[1]" xsi:type="soapenc:Array"><value xsi:type="soapenc:double">80.92</value></value></item><item><key xsi:type="soapenc:string">maxLatitude</key><value soapenc:arrayType="xsd:anyType[1]" xsi:type="soapenc:Array"><value xsi:type="soapenc:double">0.158</value></value></item><item><key xsi:type="soapenc:string">minLatitude</key><value soapenc:arrayType="xsd:anyType[1]" xsi:type="soapenc:Array"><value xsi:type="soapenc:double">-3.675</value></value></item></multiRef>
|
||||
<multiRef id="id14" soapenc:root="0" soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xsi:type="ns16:Map" xmlns:ns16="http://xml.apache.org/xml-soap" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"><item><key xsi:type="soapenc:string">maxDateTime</key><value soapenc:arrayType="xsd:anyType[1]" xsi:type="soapenc:Array"><value xsi:type="xsd:dateTime">2038-12-31T22:59:59.000Z</value></value></item><item><key xsi:type="soapenc:string">minDateTime</key><value soapenc:arrayType="xsd:anyType[1]" xsi:type="soapenc:Array"><value xsi:type="xsd:dateTime">2003-01-12T05:15:00.000Z</value></value></item><item><key xsi:type="soapenc:string">minLongitude</key><value soapenc:arrayType="xsd:anyType[1]" xsi:type="soapenc:Array"><value xsi:type="soapenc:double">-42.88</value></value></item><item><key xsi:type="soapenc:string">maxLongitude</key><value soapenc:arrayType="xsd:anyType[1]" xsi:type="soapenc:Array"><value xsi:type="soapenc:double">-20.85</value></value></item><item><key xsi:type="soapenc:string">maxLatitude</key><value soapenc:arrayType="xsd:anyType[1]" xsi:type="soapenc:Array"><value xsi:type="soapenc:double">61.41</value></value></item><item><key xsi:type="soapenc:string">minLatitude</key><value soapenc:arrayType="xsd:anyType[1]" xsi:type="soapenc:Array"><value xsi:type="soapenc:double">43.2</value></value></item></multiRef>
|
||||
<multiRef id="id13" soapenc:root="0" soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xsi:type="ns17:Map" xmlns:ns17="http://xml.apache.org/xml-soap" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"><item><key xsi:type="soapenc:string">maxDateTime</key><value soapenc:arrayType="xsd:anyType[1]" xsi:type="soapenc:Array"><value xsi:type="xsd:dateTime">2038-12-31T22:59:59.000Z</value></value></item><item><key xsi:type="soapenc:string">minDateTime</key><value soapenc:arrayType="xsd:anyType[1]" xsi:type="soapenc:Array"><value xsi:type="xsd:dateTime">2004-12-01T16:50:00.000Z</value></value></item><item><key xsi:type="soapenc:string">minLongitude</key><value soapenc:arrayType="xsd:anyType[1]" xsi:type="soapenc:Array"><value xsi:type="soapenc:double">108.962</value></value></item><item><key xsi:type="soapenc:string">maxLongitude</key><value soapenc:arrayType="xsd:anyType[1]" xsi:type="soapenc:Array"><value xsi:type="soapenc:double">114.713</value></value></item><item><key xsi:type="soapenc:string">maxLatitude</key><value soapenc:arrayType="xsd:anyType[1]" xsi:type="soapenc:Array"><value xsi:type="soapenc:double">-35.262</value></value></item><item><key xsi:type="soapenc:string">minLatitude</key><value soapenc:arrayType="xsd:anyType[1]" xsi:type="soapenc:Array"><value xsi:type="soapenc:double">-42.756</value></value></item></multiRef>
|
||||
<multiRef id="id17" soapenc:root="0" soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xsi:type="ns18:Map" xmlns:ns18="http://xml.apache.org/xml-soap" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"><item><key xsi:type="soapenc:string">maxDateTime</key><value soapenc:arrayType="xsd:anyType[1]" xsi:type="soapenc:Array"><value xsi:type="xsd:dateTime">2038-12-31T22:59:59.000Z</value></value></item><item><key xsi:type="soapenc:string">minDateTime</key><value soapenc:arrayType="xsd:anyType[1]" xsi:type="soapenc:Array"><value xsi:type="xsd:dateTime">2003-10-10T11:52:00.000Z</value></value></item><item><key xsi:type="soapenc:string">minLongitude</key><value soapenc:arrayType="xsd:anyType[1]" xsi:type="soapenc:Array"><value xsi:type="soapenc:double">68.14</value></value></item><item><key xsi:type="soapenc:string">maxLongitude</key><value soapenc:arrayType="xsd:anyType[1]" xsi:type="soapenc:Array"><value xsi:type="soapenc:double">95.987</value></value></item><item><key xsi:type="soapenc:string">maxLatitude</key><value soapenc:arrayType="xsd:anyType[1]" xsi:type="soapenc:Array"><value xsi:type="soapenc:double">3.97</value></value></item><item><key xsi:type="soapenc:string">minLatitude</key><value soapenc:arrayType="xsd:anyType[1]" xsi:type="soapenc:Array"><value xsi:type="soapenc:double">-1.242</value></value></item></multiRef>
|
||||
<multiRef id="id16" soapenc:root="0" soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xsi:type="ns19:Map" xmlns:ns19="http://xml.apache.org/xml-soap" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"><item><key xsi:type="soapenc:string">maxDateTime</key><value soapenc:arrayType="xsd:anyType[1]" xsi:type="soapenc:Array"><value xsi:type="xsd:dateTime">2038-12-31T22:59:59.000Z</value></value></item><item><key xsi:type="soapenc:string">minDateTime</key><value soapenc:arrayType="xsd:anyType[1]" xsi:type="soapenc:Array"><value xsi:type="xsd:dateTime">2004-01-10T10:35:00.000Z</value></value></item><item><key xsi:type="soapenc:string">minLongitude</key><value soapenc:arrayType="xsd:anyType[1]" xsi:type="soapenc:Array"><value xsi:type="soapenc:double">67.71</value></value></item><item><key xsi:type="soapenc:string">maxLongitude</key><value soapenc:arrayType="xsd:anyType[1]" xsi:type="soapenc:Array"><value xsi:type="soapenc:double">77.743</value></value></item><item><key xsi:type="soapenc:string">maxLatitude</key><value soapenc:arrayType="xsd:anyType[1]" xsi:type="soapenc:Array"><value xsi:type="soapenc:double">3.546</value></value></item><item><key xsi:type="soapenc:string">minLatitude</key><value soapenc:arrayType="xsd:anyType[1]" xsi:type="soapenc:Array"><value xsi:type="soapenc:double">-1.965</value></value></item></multiRef>
|
||||
<multiRef id="id19" soapenc:root="0" soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xsi:type="ns20:Map" xmlns:ns20="http://xml.apache.org/xml-soap" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"><item><key xsi:type="soapenc:string">maxDateTime</key><value soapenc:arrayType="xsd:anyType[1]" xsi:type="soapenc:Array"><value xsi:type="xsd:dateTime">2038-12-31T22:59:59.000Z</value></value></item><item><key xsi:type="soapenc:string">minDateTime</key><value soapenc:arrayType="xsd:anyType[1]" xsi:type="soapenc:Array"><value xsi:type="xsd:dateTime">2004-04-09T23:00:00.000Z</value></value></item><item><key xsi:type="soapenc:string">minLongitude</key><value soapenc:arrayType="xsd:anyType[1]" xsi:type="soapenc:Array"><value xsi:type="soapenc:double">59.116</value></value></item><item><key xsi:type="soapenc:string">maxLongitude</key><value soapenc:arrayType="xsd:anyType[1]" xsi:type="soapenc:Array"><value xsi:type="soapenc:double">69.206</value></value></item><item><key xsi:type="soapenc:string">maxLatitude</key><value soapenc:arrayType="xsd:anyType[1]" xsi:type="soapenc:Array"><value xsi:type="soapenc:double">-2.274</value></value></item><item><key xsi:type="soapenc:string">minLatitude</key><value soapenc:arrayType="xsd:anyType[1]" xsi:type="soapenc:Array"><value xsi:type="soapenc:double">-4.093</value></value></item></multiRef>
|
||||
<multiRef id="id11" soapenc:root="0" soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xsi:type="ns21:Map" xmlns:ns21="http://xml.apache.org/xml-soap" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"><item><key xsi:type="soapenc:string">maxDateTime</key><value soapenc:arrayType="xsd:anyType[1]" xsi:type="soapenc:Array"><value xsi:type="xsd:dateTime">2038-12-31T22:59:59.000Z</value></value></item><item><key xsi:type="soapenc:string">minDateTime</key><value soapenc:arrayType="xsd:anyType[1]" xsi:type="soapenc:Array"><value xsi:type="xsd:dateTime">2002-11-09T23:10:00.000Z</value></value></item><item><key xsi:type="soapenc:string">minLongitude</key><value soapenc:arrayType="xsd:anyType[1]" xsi:type="soapenc:Array"><value xsi:type="soapenc:double">156.013</value></value></item><item><key xsi:type="soapenc:string">maxLongitude</key><value soapenc:arrayType="xsd:anyType[1]" xsi:type="soapenc:Array"><value xsi:type="soapenc:double">160.042</value></value></item><item><key xsi:type="soapenc:string">maxLatitude</key><value soapenc:arrayType="xsd:anyType[1]" xsi:type="soapenc:Array"><value xsi:type="soapenc:double">5.648</value></value></item><item><key xsi:type="soapenc:string">minLatitude</key><value soapenc:arrayType="xsd:anyType[1]" xsi:type="soapenc:Array"><value xsi:type="soapenc:double">4.773</value></value></item></multiRef>
|
||||
<multiRef id="id12" soapenc:root="0" soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xsi:type="ns22:Map" xmlns:ns22="http://xml.apache.org/xml-soap" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"><item><key xsi:type="soapenc:string">maxDateTime</key><value soapenc:arrayType="xsd:anyType[1]" xsi:type="soapenc:Array"><value xsi:type="xsd:dateTime">2038-12-31T22:59:59.000Z</value></value></item><item><key xsi:type="soapenc:string">minDateTime</key><value soapenc:arrayType="xsd:anyType[1]" xsi:type="soapenc:Array"><value xsi:type="xsd:dateTime">2004-11-01T16:58:00.000Z</value></value></item><item><key xsi:type="soapenc:string">minLongitude</key><value soapenc:arrayType="xsd:anyType[1]" xsi:type="soapenc:Array"><value xsi:type="soapenc:double">108.11</value></value></item><item><key xsi:type="soapenc:string">maxLongitude</key><value soapenc:arrayType="xsd:anyType[1]" xsi:type="soapenc:Array"><value xsi:type="soapenc:double">113.383</value></value></item><item><key xsi:type="soapenc:string">maxLatitude</key><value soapenc:arrayType="xsd:anyType[1]" xsi:type="soapenc:Array"><value xsi:type="soapenc:double">-31.666</value></value></item><item><key xsi:type="soapenc:string">minLatitude</key><value soapenc:arrayType="xsd:anyType[1]" xsi:type="soapenc:Array"><value xsi:type="soapenc:double">-35.075</value></value></item></multiRef>
|
||||
</soapenv:Body></soapenv:Envelope>
|
||||
EOF;
|
||||
}
|
||||
}
|
||||
for ($i = 0; $i < 10; $i++) {
|
||||
$ws=new TestSoapClient(dirname(__FILE__).'/bug37083.wsdl',
|
||||
array('encoding'=>'ISO-8859-1',
|
||||
'cache_wsdl'=>WSDL_CACHE_BOTH));
|
||||
$search=new stdClass();
|
||||
$search->queryString='argo';
|
||||
$search->ranges[]=$r=new stdClass();
|
||||
$r->field='maxDateTime';
|
||||
$r->min='2003-04-01';
|
||||
$search->index='all';
|
||||
$res=$ws->search($search,0,10);
|
||||
}
|
||||
echo "ok\n";
|
||||
?>
|
||||
--EXPECT--
|
||||
ok
|
||||
@@ -1,99 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<wsdl:definitions targetNamespace="urn:java:de.pangaea.metadataportal.search.SearchService" xmlns:apachesoap="http://xml.apache.org/xml-soap" xmlns:impl="urn:java:de.pangaea.metadataportal.search.SearchService" xmlns:intf="urn:java:de.pangaea.metadataportal.search.SearchService" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
|
||||
<wsdl:types>
|
||||
<schema targetNamespace="urn:java:de.pangaea.metadataportal.search.SearchService" xmlns="http://www.w3.org/2001/XMLSchema">
|
||||
<import namespace="http://xml.apache.org/xml-soap"/>
|
||||
<import namespace="http://schemas.xmlsoap.org/soap/encoding/"/>
|
||||
<complexType name="SearchRequestRange">
|
||||
<sequence>
|
||||
<element name="field" nillable="true" type="xsd:string"/>
|
||||
<element name="max" nillable="true" type="xsd:anyType"/>
|
||||
<element name="min" nillable="true" type="xsd:anyType"/>
|
||||
</sequence>
|
||||
</complexType>
|
||||
<complexType name="ArrayOfSearchRequestRange">
|
||||
<complexContent>
|
||||
<restriction base="soapenc:Array">
|
||||
<attribute ref="soapenc:arrayType" wsdl:arrayType="impl:SearchRequestRange[]"/>
|
||||
</restriction>
|
||||
</complexContent>
|
||||
</complexType>
|
||||
<complexType name="SearchRequest">
|
||||
<sequence>
|
||||
<element name="index" nillable="true" type="xsd:string"/>
|
||||
<element name="queryString" nillable="true" type="xsd:string"/>
|
||||
<element name="ranges" nillable="true" type="impl:ArrayOfSearchRequestRange"/>
|
||||
</sequence>
|
||||
</complexType>
|
||||
<complexType name="SearchResponseItem">
|
||||
<sequence>
|
||||
<element name="fields" nillable="true" type="apachesoap:Map"/>
|
||||
<element name="identifier" nillable="true" type="xsd:string"/>
|
||||
<element name="score" type="xsd:float"/>
|
||||
<element name="xml" nillable="true" type="xsd:string"/>
|
||||
</sequence>
|
||||
</complexType>
|
||||
<complexType name="ArrayOfSearchResponseItem">
|
||||
<complexContent>
|
||||
<restriction base="soapenc:Array">
|
||||
<attribute ref="soapenc:arrayType" wsdl:arrayType="impl:SearchResponseItem[]"/>
|
||||
</restriction>
|
||||
</complexContent>
|
||||
</complexType>
|
||||
<complexType name="SearchResponse">
|
||||
<sequence>
|
||||
<element name="offset" type="xsd:int"/>
|
||||
<element name="queryTime" type="xsd:long"/>
|
||||
<element name="results" nillable="true" type="impl:ArrayOfSearchResponseItem"/>
|
||||
<element name="totalCount" type="xsd:int"/>
|
||||
</sequence>
|
||||
</complexType>
|
||||
</schema>
|
||||
<schema targetNamespace="http://xml.apache.org/xml-soap" xmlns="http://www.w3.org/2001/XMLSchema">
|
||||
<import namespace="urn:java:de.pangaea.metadataportal.search.SearchService"/>
|
||||
<import namespace="http://schemas.xmlsoap.org/soap/encoding/"/>
|
||||
<complexType name="mapItem">
|
||||
<sequence>
|
||||
<element name="key" nillable="true" type="xsd:anyType"/>
|
||||
<element name="value" nillable="true" type="xsd:anyType"/>
|
||||
</sequence>
|
||||
</complexType>
|
||||
<complexType name="Map">
|
||||
<sequence>
|
||||
<element maxOccurs="unbounded" minOccurs="0" name="item" type="apachesoap:mapItem"/>
|
||||
</sequence>
|
||||
</complexType>
|
||||
</schema>
|
||||
</wsdl:types>
|
||||
<wsdl:message name="searchRequest">
|
||||
<wsdl:part name="in0" type="impl:SearchRequest"/>
|
||||
<wsdl:part name="in1" type="xsd:int"/>
|
||||
<wsdl:part name="in2" type="xsd:int"/>
|
||||
</wsdl:message>
|
||||
<wsdl:message name="searchResponse">
|
||||
<wsdl:part name="searchReturn" type="impl:SearchResponse"/>
|
||||
</wsdl:message>
|
||||
<wsdl:portType name="SearchServiceAxisImpl">
|
||||
<wsdl:operation name="search" parameterOrder="in0 in1 in2">
|
||||
<wsdl:input message="impl:searchRequest" name="searchRequest"/>
|
||||
<wsdl:output message="impl:searchResponse" name="searchResponse"/>
|
||||
</wsdl:operation>
|
||||
</wsdl:portType>
|
||||
<wsdl:binding name="SearchSoapBinding" type="impl:SearchServiceAxisImpl">
|
||||
<wsdlsoap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/>
|
||||
<wsdl:operation name="search">
|
||||
<wsdlsoap:operation soapAction=""/>
|
||||
<wsdl:input name="searchRequest">
|
||||
<wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="urn:java:de.pangaea.metadataportal.search.SearchService" use="encoded"/>
|
||||
</wsdl:input>
|
||||
<wsdl:output name="searchResponse">
|
||||
<wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="urn:java:de.pangaea.metadataportal.search.SearchService" use="encoded"/>
|
||||
</wsdl:output>
|
||||
</wsdl:operation>
|
||||
</wsdl:binding>
|
||||
<wsdl:service name="SearchServiceAxisImplService">
|
||||
<wsdl:port binding="impl:SearchSoapBinding" name="Search">
|
||||
<wsdlsoap:address location="test://"/>
|
||||
</wsdl:port>
|
||||
</wsdl:service>
|
||||
</wsdl:definitions>
|
||||
Reference in new issue
Block a user