From b1c77fcce38f2ebebc2de93854aacc24e47f7fb8 Mon Sep 17 00:00:00 2001 From: Marcus Boerger Date: Mon, 2 Feb 2004 21:27:13 +0000 Subject: [PATCH] TSRM fixes --- ext/soap/php_encoding.c | 3 ++- ext/soap/php_http.c | 2 ++ ext/soap/soap.c | 23 +++++++++++------------ 3 files changed, 15 insertions(+), 13 deletions(-) diff --git a/ext/soap/php_encoding.c b/ext/soap/php_encoding.c index 12d0ca0395..ca21504ed2 100644 --- a/ext/soap/php_encoding.c +++ b/ext/soap/php_encoding.c @@ -2329,13 +2329,14 @@ static xmlNodePtr check_and_resolve_href(xmlNodePtr data) href = get_attribute_ex(data->properties, "ref", SOAP_1_2_ENC_NAMESPACE); if (href) { char* id; + xmlNodePtr ret; if (href->children->content[0] == '#') { id = href->children->content+1; } else { id = href->children->content; } - xmlNodePtr ret = get_node_with_attribute_recursive_ex(data->doc->children, NULL, NULL, "id", id, SOAP_1_2_ENC_NAMESPACE); + ret = get_node_with_attribute_recursive_ex(data->doc->children, NULL, NULL, "id", id, SOAP_1_2_ENC_NAMESPACE); if (!ret) { php_error(E_ERROR,"SOAP-ERROR: Encoding: Unresolved reference '%s'",href->children->content); } else if (ret == data) { diff --git a/ext/soap/php_http.c b/ext/soap/php_http.c index 3073ea73b8..fc82fabe67 100644 --- a/ext/soap/php_http.c +++ b/ext/soap/php_http.c @@ -59,6 +59,8 @@ static int stream_alive(php_stream *stream TSRMLS_DC) static void proxy_authentication(zval* this_ptr, smart_str* soap_headers) { zval **login, **password; + TSRMLS_FETCH(); + if (zend_hash_find(Z_OBJPROP_P(this_ptr), "_proxy_login", sizeof("_proxy_login"), (void **)&login) == SUCCESS) { char* buf; int len; diff --git a/ext/soap/soap.c b/ext/soap/soap.c index 64d01f8fcf..c44353df74 100644 --- a/ext/soap/soap.c +++ b/ext/soap/soap.c @@ -45,7 +45,7 @@ static void type_to_string(sdlTypePtr type, smart_str *buf, int level); static void clear_soap_fault(zval *obj TSRMLS_DC); static void set_soap_fault(zval *obj, char *fault_code, char *fault_string, char *fault_actor, zval *fault_detail TSRMLS_DC); -static void soap_server_fault(char* code, char* string, char *actor, zval* details); +static void soap_server_fault(char* code, char* string, char *actor, zval* details TSRMLS_DC); static sdlParamPtr get_param(sdlFunctionPtr function, char *param_name, int index, int); static sdlFunctionPtr get_function(sdlPtr sdl, const char *function_name); @@ -1150,7 +1150,7 @@ PHP_METHOD(soapserver, handle) header = header->next; if (service->sdl && !h->function && h->mustUnderstand) { - soap_server_fault("MustUnderstand","Header not understood", NULL, NULL); + soap_server_fault("MustUnderstand","Header not understood", NULL, NULL TSRMLS_CC); } fn_name = estrndup(Z_STRVAL(h->function_name),Z_STRLEN(h->function_name)); @@ -1164,7 +1164,7 @@ PHP_METHOD(soapserver, handle) php_error(E_ERROR, "Function '%s' call failed", Z_STRVAL(function_name)); } } else if (h->mustUnderstand) { - soap_server_fault("MustUnderstand","Header not understood", NULL, NULL); + soap_server_fault("MustUnderstand","Header not understood", NULL, NULL TSRMLS_CC); } efree(fn_name); } @@ -1266,14 +1266,13 @@ PHP_METHOD(soapserver, handle) SOAP_SERVER_END_CODE(); } -static void soap_server_fault(char* code, char* string, char *actor, zval* details) +static void soap_server_fault(char* code, char* string, char *actor, zval* details TSRMLS_DC) { int soap_version; xmlChar *buf, cont_len[30]; int size; zval ret; xmlDocPtr doc_return; - TSRMLS_FETCH(); soap_version = SOAP_GLOBAL(soap_version); @@ -1956,7 +1955,7 @@ static sdlFunctionPtr deseralize_function_call(sdlPtr sdl, xmlDocPtr request, ch envelope_ns = SOAP_1_2_ENV_NAMESPACE; SOAP_GLOBAL(soap_version) = SOAP_1_2; } else { - soap_server_fault("VersionMismatch","Wrong Version", NULL, NULL); + soap_server_fault("VersionMismatch","Wrong Version", NULL, NULL TSRMLS_CC); } } trav = trav->next; @@ -2048,18 +2047,18 @@ static sdlFunctionPtr deseralize_function_call(sdlPtr sdl, xmlDocPtr request, ch if (*version == SOAP_1_1) { attr = get_attribute_ex(func->properties,"encodingStyle",SOAP_1_1_ENV_NAMESPACE); if (attr && strcmp(attr->children->content,SOAP_1_1_ENC_NAMESPACE) != 0) { - soap_server_fault("Client","Unknown Data Encoding Style", NULL, NULL); + soap_server_fault("Client","Unknown Data Encoding Style", NULL, NULL TSRMLS_CC); } } else { attr = get_attribute_ex(func->properties,"encodingStyle",SOAP_1_2_ENV_NAMESPACE); if (attr && strcmp(attr->children->content,SOAP_1_2_ENC_NAMESPACE) != 0) { - soap_server_fault("DataEncodingUnknown","Unknown Data Encoding Style", NULL, NULL); + soap_server_fault("DataEncodingUnknown","Unknown Data Encoding Style", NULL, NULL TSRMLS_CC); } } function = find_function(sdl, func, function_name); if (sdl != NULL && function == NULL) { if (*version == SOAP_1_2) { - soap_server_fault("rpc:ProcedureNotPresent","Procedure not present", NULL, NULL); + soap_server_fault("rpc:ProcedureNotPresent","Procedure not present", NULL, NULL TSRMLS_CC); } else { php_error(E_ERROR, "Procedure '%s' not present", func->name); } @@ -2093,7 +2092,7 @@ static sdlFunctionPtr deseralize_function_call(sdlPtr sdl, xmlDocPtr request, ch if (*version == SOAP_1_1) { attr = get_attribute_ex(func->properties,"encodingStyle",SOAP_1_1_ENV_NAMESPACE); if (attr && strcmp(attr->children->content,SOAP_1_1_ENC_NAMESPACE) != 0) { - soap_server_fault("Client","Unknown Data Encoding Style", NULL, NULL); + soap_server_fault("Client","Unknown Data Encoding Style", NULL, NULL TSRMLS_CC); } attr = get_attribute_ex(func->properties,"actor",envelope_ns); if (attr != NULL) { @@ -2105,7 +2104,7 @@ static sdlFunctionPtr deseralize_function_call(sdlPtr sdl, xmlDocPtr request, ch } else if (*version == SOAP_1_2) { attr = get_attribute_ex(func->properties,"encodingStyle",SOAP_1_2_ENV_NAMESPACE); if (attr && strcmp(attr->children->content,SOAP_1_2_ENC_NAMESPACE) != 0) { - soap_server_fault("DataEncodingUnknown","Unknown Data Encoding Style", NULL, NULL); + soap_server_fault("DataEncodingUnknown","Unknown Data Encoding Style", NULL, NULL TSRMLS_CC); } attr = get_attribute_ex(func->properties,"role",envelope_ns); if (attr != NULL) { @@ -2125,7 +2124,7 @@ static sdlFunctionPtr deseralize_function_call(sdlPtr sdl, xmlDocPtr request, ch strcmp(attr->children->content,"false") == 0) { mustUnderstand = 0; } else { - soap_server_fault("Client","mustUnderstand value is not boolean", NULL, NULL); + soap_server_fault("Client","mustUnderstand value is not boolean", NULL, NULL TSRMLS_CC); } } h = emalloc(sizeof(soapHeader)); -- 2.50.1