diff options
Diffstat (limited to 'ext/soap/soap.c')
-rw-r--r-- | ext/soap/soap.c | 87 |
1 files changed, 11 insertions, 76 deletions
diff --git a/ext/soap/soap.c b/ext/soap/soap.c index 20d482ad9a..3e73031b47 100644 --- a/ext/soap/soap.c +++ b/ext/soap/soap.c @@ -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); |