mirror of
https://github.com/php/php-src.git
synced 2026-03-24 08:12:21 +01:00
Move derefs into accessor macros
These derefs are mostly there to be defensive, but clutter the code somewhat. Move them directly into the access macros.
This commit is contained in:
@@ -383,16 +383,13 @@ static xmlNodePtr master_to_xml_int(encodePtr encode, zval *data, int style, xml
|
||||
encodePtr enc = NULL;
|
||||
|
||||
zval *ztype = Z_VAR_ENC_TYPE_P(data);
|
||||
ZVAL_DEREF(ztype);
|
||||
if (Z_TYPE_P(ztype) != IS_LONG) {
|
||||
soap_error0(E_ERROR, "Encoding: SoapVar has no 'enc_type' property");
|
||||
}
|
||||
|
||||
zval *zstype = Z_VAR_ENC_STYPE_P(data);
|
||||
ZVAL_DEREF(zstype);
|
||||
if (Z_TYPE_P(zstype) == IS_STRING) {
|
||||
zval *zns = Z_VAR_ENC_NS_P(data);
|
||||
ZVAL_DEREF(zns);
|
||||
if (Z_TYPE_P(zns) == IS_STRING) {
|
||||
enc = get_encoder(SOAP_GLOBAL(sdl), Z_STRVAL_P(zns), Z_STRVAL_P(zstype));
|
||||
} else {
|
||||
@@ -419,16 +416,12 @@ static xmlNodePtr master_to_xml_int(encodePtr encode, zval *data, int style, xml
|
||||
enc = encode;
|
||||
}
|
||||
|
||||
zval *zdata = Z_VAR_ENC_VALUE_P(data);
|
||||
ZVAL_DEREF(zdata);
|
||||
node = master_to_xml(enc, zdata, style, parent);
|
||||
node = master_to_xml(enc, Z_VAR_ENC_VALUE_P(data), style, parent);
|
||||
|
||||
if (style == SOAP_ENCODED || (SOAP_GLOBAL(sdl) && encode != enc)) {
|
||||
zval *zstype = Z_VAR_ENC_STYPE_P(data);
|
||||
ZVAL_DEREF(zstype);
|
||||
if (Z_TYPE_P(zstype) == IS_STRING) {
|
||||
zval *zns = Z_VAR_ENC_NS_P(data);
|
||||
ZVAL_DEREF(zns);
|
||||
if (Z_TYPE_P(zns) == IS_STRING) {
|
||||
set_ns_and_type_ex(node, Z_STRVAL_P(zns), Z_STRVAL_P(zstype));
|
||||
} else {
|
||||
@@ -438,13 +431,11 @@ static xmlNodePtr master_to_xml_int(encodePtr encode, zval *data, int style, xml
|
||||
}
|
||||
|
||||
zval *zname = Z_VAR_ENC_NAME_P(data);
|
||||
ZVAL_DEREF(zname);
|
||||
if (Z_TYPE_P(zname) == IS_STRING) {
|
||||
xmlNodeSetName(node, BAD_CAST(Z_STRVAL_P(zname)));
|
||||
}
|
||||
|
||||
zval *znamens = Z_VAR_ENC_NAMENS_P(data);
|
||||
ZVAL_DEREF(znamens);
|
||||
if (Z_TYPE_P(znamens) == IS_STRING) {
|
||||
xmlNsPtr nsp = encode_add_ns(node, Z_STRVAL_P(znamens));
|
||||
xmlSetNs(node, nsp);
|
||||
@@ -3499,14 +3490,12 @@ static encodePtr get_array_type(xmlNodePtr node, zval *array, smart_str *type)
|
||||
if (Z_TYPE_P(tmp) == IS_OBJECT &&
|
||||
Z_OBJCE_P(tmp) == soap_var_class_entry) {
|
||||
zval *ztype = Z_VAR_ENC_TYPE_P(tmp);
|
||||
ZVAL_DEREF(ztype);
|
||||
if (Z_TYPE_P(ztype) != IS_LONG) {
|
||||
soap_error0(E_ERROR, "Encoding: SoapVar has no 'enc_type' property");
|
||||
}
|
||||
cur_type = Z_LVAL_P(ztype);
|
||||
|
||||
zval *zstype = Z_VAR_ENC_STYPE_P(tmp);
|
||||
ZVAL_DEREF(zstype);
|
||||
if (Z_TYPE_P(zstype) == IS_STRING) {
|
||||
cur_stype = Z_STRVAL_P(zstype);
|
||||
} else {
|
||||
@@ -3514,7 +3503,6 @@ static encodePtr get_array_type(xmlNodePtr node, zval *array, smart_str *type)
|
||||
}
|
||||
|
||||
zval *zns = Z_VAR_ENC_NS_P(tmp);
|
||||
ZVAL_DEREF(zns);
|
||||
if (Z_TYPE_P(zns) == IS_STRING) {
|
||||
cur_ns = Z_STRVAL_P(zns);
|
||||
} else {
|
||||
|
||||
@@ -170,12 +170,12 @@
|
||||
#define UNKNOWN_TYPE 999998
|
||||
#define END_KNOWN_TYPES 999999
|
||||
|
||||
#define Z_VAR_ENC_TYPE_P(zv) OBJ_PROP_NUM(Z_OBJ_P(zv), 0)
|
||||
#define Z_VAR_ENC_VALUE_P(zv) OBJ_PROP_NUM(Z_OBJ_P(zv), 1)
|
||||
#define Z_VAR_ENC_STYPE_P(zv) OBJ_PROP_NUM(Z_OBJ_P(zv), 2)
|
||||
#define Z_VAR_ENC_NS_P(zv) OBJ_PROP_NUM(Z_OBJ_P(zv), 3)
|
||||
#define Z_VAR_ENC_NAME_P(zv) OBJ_PROP_NUM(Z_OBJ_P(zv), 4)
|
||||
#define Z_VAR_ENC_NAMENS_P(zv) OBJ_PROP_NUM(Z_OBJ_P(zv), 5)
|
||||
#define Z_VAR_ENC_TYPE_P(zv) php_soap_deref(OBJ_PROP_NUM(Z_OBJ_P(zv), 0))
|
||||
#define Z_VAR_ENC_VALUE_P(zv) php_soap_deref(OBJ_PROP_NUM(Z_OBJ_P(zv), 1))
|
||||
#define Z_VAR_ENC_STYPE_P(zv) php_soap_deref(OBJ_PROP_NUM(Z_OBJ_P(zv), 2))
|
||||
#define Z_VAR_ENC_NS_P(zv) php_soap_deref(OBJ_PROP_NUM(Z_OBJ_P(zv), 3))
|
||||
#define Z_VAR_ENC_NAME_P(zv) php_soap_deref(OBJ_PROP_NUM(Z_OBJ_P(zv), 4))
|
||||
#define Z_VAR_ENC_NAMENS_P(zv) php_soap_deref(OBJ_PROP_NUM(Z_OBJ_P(zv), 5))
|
||||
|
||||
struct _encodeType {
|
||||
int type;
|
||||
|
||||
@@ -33,14 +33,12 @@ static zend_string *get_http_headers(php_stream *socketd);
|
||||
int proxy_authentication(zval* this_ptr, smart_str* soap_headers)
|
||||
{
|
||||
zval *login = Z_CLIENT_PROXY_LOGIN_P(this_ptr);
|
||||
ZVAL_DEREF(login);
|
||||
if (Z_TYPE_P(login) == IS_STRING) {
|
||||
smart_str auth = {0};
|
||||
smart_str_append(&auth, Z_STR_P(login));
|
||||
smart_str_appendc(&auth, ':');
|
||||
|
||||
zval *password = Z_CLIENT_PROXY_PASSWORD_P(this_ptr);
|
||||
ZVAL_DEREF(password);
|
||||
if (Z_TYPE_P(password) == IS_STRING) {
|
||||
smart_str_append(&auth, Z_STR_P(password));
|
||||
}
|
||||
@@ -61,16 +59,12 @@ int basic_authentication(zval* this_ptr, smart_str* soap_headers)
|
||||
{
|
||||
zval *login = Z_CLIENT_LOGIN_P(this_ptr);
|
||||
zval *use_digest = Z_CLIENT_USE_DIGEST_P(this_ptr);
|
||||
ZVAL_DEREF(login);
|
||||
ZVAL_DEREF(use_digest);
|
||||
|
||||
if (Z_TYPE_P(login) == IS_STRING && Z_TYPE_P(use_digest) != IS_TRUE) {
|
||||
smart_str auth = {0};
|
||||
smart_str_append(&auth, Z_STR_P(login));
|
||||
smart_str_appendc(&auth, ':');
|
||||
|
||||
zval *password = Z_CLIENT_PASSWORD_P(this_ptr);
|
||||
ZVAL_DEREF(password);
|
||||
if (Z_TYPE_P(password) == IS_STRING) {
|
||||
smart_str_append(&auth, Z_STR_P(password));
|
||||
}
|
||||
@@ -171,8 +165,6 @@ static php_stream* http_connect(zval* this_ptr, php_url *phpurl, int use_ssl, ph
|
||||
|
||||
zval *proxy_host = Z_CLIENT_PROXY_HOST_P(this_ptr);
|
||||
zval *proxy_port = Z_CLIENT_PROXY_PORT_P(this_ptr);
|
||||
ZVAL_DEREF(proxy_host);
|
||||
ZVAL_DEREF(proxy_port);
|
||||
if (Z_TYPE_P(proxy_host) == IS_STRING && Z_TYPE_P(proxy_port) == IS_LONG) {
|
||||
host = Z_STRVAL_P(proxy_host);
|
||||
port = Z_LVAL_P(proxy_port);
|
||||
@@ -183,7 +175,6 @@ static php_stream* http_connect(zval* this_ptr, php_url *phpurl, int use_ssl, ph
|
||||
}
|
||||
|
||||
tmp = Z_CLIENT_CONNECTION_TIMEOUT_P(this_ptr);
|
||||
ZVAL_DEREF(tmp);
|
||||
if (Z_TYPE_P(tmp) == IS_LONG && Z_LVAL_P(tmp) > 0) {
|
||||
tv.tv_sec = Z_LVAL_P(tmp);
|
||||
tv.tv_usec = 0;
|
||||
@@ -196,7 +187,6 @@ static php_stream* http_connect(zval* this_ptr, php_url *phpurl, int use_ssl, ph
|
||||
/* Changed ternary operator to an if/else so that additional comparisons can be done on the ssl_method property */
|
||||
if (use_ssl && !*use_proxy) {
|
||||
tmp = Z_CLIENT_SSL_METHOD_P(this_ptr);
|
||||
ZVAL_DEREF(tmp);
|
||||
if (Z_TYPE_P(tmp) == IS_LONG) {
|
||||
/* uses constants declared in soap.c to determine ssl uri protocol */
|
||||
switch (Z_LVAL_P(tmp)) {
|
||||
@@ -285,7 +275,6 @@ static php_stream* http_connect(zval* this_ptr, php_url *phpurl, int use_ssl, ph
|
||||
proper encrypyion method based on constants defined in soap.c */
|
||||
int crypto_method = STREAM_CRYPTO_METHOD_SSLv23_CLIENT;
|
||||
tmp = Z_CLIENT_SSL_METHOD_P(this_ptr);
|
||||
ZVAL_DEREF(tmp);
|
||||
if (Z_TYPE_P(tmp) == IS_LONG) {
|
||||
switch (Z_LVAL_P(tmp)) {
|
||||
case SOAP_SSL_METHOD_TLS:
|
||||
@@ -349,7 +338,7 @@ int make_http_soap_request(zval *this_ptr,
|
||||
size_t err;
|
||||
php_url *phpurl = NULL;
|
||||
php_stream *stream;
|
||||
zval *trace, *tmp;
|
||||
zval *tmp;
|
||||
int use_proxy = 0;
|
||||
int use_ssl;
|
||||
zend_string *http_body;
|
||||
@@ -377,7 +366,6 @@ int make_http_soap_request(zval *this_ptr,
|
||||
request = buf;
|
||||
/* Compress request */
|
||||
tmp = Z_CLIENT_COMPRESSION_P(this_ptr);
|
||||
ZVAL_DEREF(tmp);
|
||||
if (Z_TYPE_P(tmp) == IS_LONG) {
|
||||
int level = Z_LVAL_P(tmp) & 0x0f;
|
||||
int kind = Z_LVAL_P(tmp) & SOAP_COMPRESSION_DEFLATE;
|
||||
@@ -426,7 +414,6 @@ int make_http_soap_request(zval *this_ptr,
|
||||
if (Z_TYPE_P(tmp) == IS_RESOURCE) {
|
||||
php_stream_from_zval_no_verify(stream,tmp);
|
||||
tmp = Z_CLIENT_USE_PROXY_P(this_ptr);
|
||||
ZVAL_DEREF(tmp);
|
||||
if (Z_TYPE_P(tmp) == IS_LONG) {
|
||||
use_proxy = Z_LVAL_P(tmp);
|
||||
}
|
||||
@@ -591,9 +578,7 @@ try_again:
|
||||
smart_str_appendc(&soap_headers, ':');
|
||||
smart_str_append_unsigned(&soap_headers, phpurl->port);
|
||||
}
|
||||
tmp = Z_CLIENT_KEEP_ALIVE_P(this_ptr);
|
||||
ZVAL_DEREF(tmp);
|
||||
if (!http_1_1 || Z_TYPE_P(tmp) == IS_FALSE) {
|
||||
if (!http_1_1 || Z_TYPE_P(Z_CLIENT_KEEP_ALIVE_P(this_ptr)) == IS_FALSE) {
|
||||
smart_str_append_const(&soap_headers, "\r\n"
|
||||
"Connection: close\r\n");
|
||||
} else {
|
||||
@@ -601,7 +586,6 @@ try_again:
|
||||
"Connection: Keep-Alive\r\n");
|
||||
}
|
||||
tmp = Z_CLIENT_USER_AGENT_P(this_ptr);
|
||||
ZVAL_DEREF(tmp);
|
||||
if (Z_TYPE_P(tmp) == IS_STRING) {
|
||||
if (Z_STRLEN_P(tmp) > 0) {
|
||||
smart_str_append_const(&soap_headers, "User-Agent: ");
|
||||
@@ -667,10 +651,8 @@ try_again:
|
||||
|
||||
/* HTTP Authentication */
|
||||
login = Z_CLIENT_LOGIN_P(this_ptr);
|
||||
ZVAL_DEREF(login);
|
||||
if (Z_TYPE_P(login) == IS_STRING) {
|
||||
zval *digest = Z_CLIENT_DIGEST_P(this_ptr);
|
||||
ZVAL_DEREF(digest);
|
||||
|
||||
has_authorization = 1;
|
||||
if (Z_TYPE_P(digest) == IS_ARRAY) {
|
||||
@@ -706,7 +688,6 @@ try_again:
|
||||
}
|
||||
PHP_MD5Update(&md5ctx, (unsigned char*)":", 1);
|
||||
password = Z_CLIENT_PASSWORD_P(this_ptr);
|
||||
ZVAL_DEREF(password);
|
||||
if (Z_TYPE_P(password) == IS_STRING) {
|
||||
PHP_MD5Update(&md5ctx, (unsigned char*)Z_STRVAL_P(password), Z_STRLEN_P(password));
|
||||
}
|
||||
@@ -821,7 +802,6 @@ try_again:
|
||||
smart_str_append(&auth, Z_STR_P(login));
|
||||
smart_str_appendc(&auth, ':');
|
||||
password = Z_CLIENT_PASSWORD_P(this_ptr);
|
||||
ZVAL_DEREF(password);
|
||||
if (Z_TYPE_P(password) == IS_STRING) {
|
||||
smart_str_append(&auth, Z_STR_P(password));
|
||||
}
|
||||
@@ -842,7 +822,6 @@ try_again:
|
||||
|
||||
/* Send cookies along with request */
|
||||
cookies = Z_CLIENT_COOKIES_P(this_ptr);
|
||||
ZVAL_DEREF(cookies);
|
||||
if (Z_TYPE_P(cookies) == IS_ARRAY) {
|
||||
zval *data;
|
||||
zend_string *key;
|
||||
@@ -880,9 +859,7 @@ try_again:
|
||||
|
||||
smart_str_append_const(&soap_headers, "\r\n");
|
||||
smart_str_0(&soap_headers);
|
||||
trace = Z_CLIENT_TRACE_P(this_ptr);
|
||||
ZVAL_DEREF(trace);
|
||||
if (Z_TYPE_P(trace) == IS_TRUE) {
|
||||
if (Z_TYPE_P(Z_CLIENT_TRACE_P(this_ptr)) == IS_TRUE) {
|
||||
zval_ptr_dtor(Z_CLIENT_LAST_REQUEST_HEADERS_P(this_ptr));
|
||||
ZVAL_STR_COPY(Z_CLIENT_LAST_REQUEST_HEADERS_P(this_ptr), soap_headers.s);
|
||||
}
|
||||
@@ -931,9 +908,7 @@ try_again:
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
trace = Z_CLIENT_TRACE_P(this_ptr);
|
||||
ZVAL_DEREF(trace);
|
||||
if (Z_TYPE_P(trace) == IS_TRUE) {
|
||||
if (Z_TYPE_P(Z_CLIENT_TRACE_P(this_ptr)) == IS_TRUE) {
|
||||
zval_ptr_dtor(Z_CLIENT_LAST_RESPONSE_HEADERS_P(this_ptr));
|
||||
ZVAL_STR_COPY(Z_CLIENT_LAST_RESPONSE_HEADERS_P(this_ptr), http_headers);
|
||||
}
|
||||
@@ -983,7 +958,6 @@ try_again:
|
||||
char *cookie;
|
||||
char *eqpos, *sempos;
|
||||
zval *cookies = Z_CLIENT_COOKIES_P(this_ptr);
|
||||
ZVAL_DEREF(cookies);
|
||||
if (Z_TYPE_P(cookies) != IS_ARRAY) {
|
||||
array_init(cookies);
|
||||
}
|
||||
@@ -1176,9 +1150,6 @@ try_again:
|
||||
zval *login = Z_CLIENT_LOGIN_P(this_ptr);
|
||||
zval *password = Z_CLIENT_PASSWORD_P(this_ptr);
|
||||
char *auth = get_http_header_value(ZSTR_VAL(http_headers), "WWW-Authenticate: ");
|
||||
ZVAL_DEREF(digest);
|
||||
ZVAL_DEREF(login);
|
||||
ZVAL_DEREF(password);
|
||||
if (auth && strstr(auth, "Digest") == auth && Z_TYPE_P(digest) != IS_ARRAY
|
||||
&& Z_TYPE_P(login) == IS_STRING && Z_TYPE_P(password) == IS_STRING) {
|
||||
char *s;
|
||||
|
||||
@@ -3244,7 +3244,6 @@ sdlPtr get_sdl(zval *this_ptr, char *uri, zend_long cache_wsdl)
|
||||
}
|
||||
|
||||
tmp = Z_CLIENT_USER_AGENT_P(this_ptr);
|
||||
ZVAL_DEREF(tmp);
|
||||
if (Z_TYPE_P(tmp) == IS_STRING && Z_STRLEN_P(tmp) > 0) {
|
||||
smart_str_appends(&headers, "User-Agent: ");
|
||||
smart_str_appends(&headers, Z_STRVAL_P(tmp));
|
||||
@@ -3253,8 +3252,6 @@ sdlPtr get_sdl(zval *this_ptr, char *uri, zend_long cache_wsdl)
|
||||
|
||||
zval *proxy_host = Z_CLIENT_PROXY_HOST_P(this_ptr);
|
||||
zval *proxy_port = Z_CLIENT_PROXY_PORT_P(this_ptr);
|
||||
ZVAL_DEREF(proxy_host);
|
||||
ZVAL_DEREF(proxy_port);
|
||||
if (Z_TYPE_P(proxy_host) == IS_STRING && Z_TYPE_P(proxy_port) == IS_LONG) {
|
||||
zval str_proxy;
|
||||
smart_str proxy = {0};
|
||||
|
||||
@@ -209,41 +209,48 @@ void add_soap_fault(zval *obj, char *fault_code, char *fault_string, char *fault
|
||||
#define soap_error3(severity, format, param1, param2, param3) \
|
||||
php_error(severity, "SOAP-ERROR: " format, param1, param2, param3)
|
||||
|
||||
#define Z_CLIENT_URI_P(zv) OBJ_PROP_NUM(Z_OBJ_P(zv), 0)
|
||||
#define Z_CLIENT_STYLE_P(zv) OBJ_PROP_NUM(Z_OBJ_P(zv), 1)
|
||||
#define Z_CLIENT_USE_P(zv) OBJ_PROP_NUM(Z_OBJ_P(zv), 2)
|
||||
#define Z_CLIENT_LOCATION_P(zv) OBJ_PROP_NUM(Z_OBJ_P(zv), 3)
|
||||
#define Z_CLIENT_TRACE_P(zv) OBJ_PROP_NUM(Z_OBJ_P(zv), 4)
|
||||
#define Z_CLIENT_COMPRESSION_P(zv) OBJ_PROP_NUM(Z_OBJ_P(zv), 5)
|
||||
#define Z_CLIENT_SDL_P(zv) OBJ_PROP_NUM(Z_OBJ_P(zv), 6)
|
||||
#define Z_CLIENT_TYPEMAP_P(zv) OBJ_PROP_NUM(Z_OBJ_P(zv), 7)
|
||||
#define Z_CLIENT_HTTPSOCKET_P(zv) OBJ_PROP_NUM(Z_OBJ_P(zv), 8)
|
||||
#define Z_CLIENT_HTTPURL_P(zv) OBJ_PROP_NUM(Z_OBJ_P(zv), 9)
|
||||
#define Z_CLIENT_LOGIN_P(zv) OBJ_PROP_NUM(Z_OBJ_P(zv), 10)
|
||||
#define Z_CLIENT_PASSWORD_P(zv) OBJ_PROP_NUM(Z_OBJ_P(zv), 11)
|
||||
#define Z_CLIENT_USE_DIGEST_P(zv) OBJ_PROP_NUM(Z_OBJ_P(zv), 12)
|
||||
#define Z_CLIENT_DIGEST_P(zv) OBJ_PROP_NUM(Z_OBJ_P(zv), 13)
|
||||
#define Z_CLIENT_PROXY_HOST_P(zv) OBJ_PROP_NUM(Z_OBJ_P(zv), 14)
|
||||
#define Z_CLIENT_PROXY_PORT_P(zv) OBJ_PROP_NUM(Z_OBJ_P(zv), 15)
|
||||
#define Z_CLIENT_PROXY_LOGIN_P(zv) OBJ_PROP_NUM(Z_OBJ_P(zv), 16)
|
||||
#define Z_CLIENT_PROXY_PASSWORD_P(zv) OBJ_PROP_NUM(Z_OBJ_P(zv), 17)
|
||||
#define Z_CLIENT_EXCEPTIONS_P(zv) OBJ_PROP_NUM(Z_OBJ_P(zv), 18)
|
||||
#define Z_CLIENT_ENCODING_P(zv) OBJ_PROP_NUM(Z_OBJ_P(zv), 19)
|
||||
#define Z_CLIENT_CLASSMAP_P(zv) OBJ_PROP_NUM(Z_OBJ_P(zv), 20)
|
||||
#define Z_CLIENT_FEATURES_P(zv) OBJ_PROP_NUM(Z_OBJ_P(zv), 21)
|
||||
#define Z_CLIENT_CONNECTION_TIMEOUT_P(zv) OBJ_PROP_NUM(Z_OBJ_P(zv), 22)
|
||||
#define Z_CLIENT_STREAM_CONTEXT_P(zv) OBJ_PROP_NUM(Z_OBJ_P(zv), 23)
|
||||
#define Z_CLIENT_USER_AGENT_P(zv) OBJ_PROP_NUM(Z_OBJ_P(zv), 24)
|
||||
#define Z_CLIENT_KEEP_ALIVE_P(zv) OBJ_PROP_NUM(Z_OBJ_P(zv), 25)
|
||||
#define Z_CLIENT_SSL_METHOD_P(zv) OBJ_PROP_NUM(Z_OBJ_P(zv), 26)
|
||||
#define Z_CLIENT_SOAP_VERSION_P(zv) OBJ_PROP_NUM(Z_OBJ_P(zv), 27)
|
||||
#define Z_CLIENT_USE_PROXY_P(zv) OBJ_PROP_NUM(Z_OBJ_P(zv), 28)
|
||||
#define Z_CLIENT_COOKIES_P(zv) OBJ_PROP_NUM(Z_OBJ_P(zv), 29)
|
||||
#define Z_CLIENT_DEFAULT_HEADERS_P(zv) OBJ_PROP_NUM(Z_OBJ_P(zv), 30)
|
||||
#define Z_CLIENT_SOAP_FAULT_P(zv) OBJ_PROP_NUM(Z_OBJ_P(zv), 31)
|
||||
#define Z_CLIENT_LAST_REQUEST_P(zv) OBJ_PROP_NUM(Z_OBJ_P(zv), 32)
|
||||
#define Z_CLIENT_LAST_RESPONSE_P(zv) OBJ_PROP_NUM(Z_OBJ_P(zv), 33)
|
||||
#define Z_CLIENT_LAST_REQUEST_HEADERS_P(zv) OBJ_PROP_NUM(Z_OBJ_P(zv), 34)
|
||||
#define Z_CLIENT_LAST_RESPONSE_HEADERS_P(zv) OBJ_PROP_NUM(Z_OBJ_P(zv), 35)
|
||||
static zend_always_inline zval *php_soap_deref(zval *zv) {
|
||||
if (UNEXPECTED(Z_TYPE_P(zv) == IS_REFERENCE)) {
|
||||
return Z_REFVAL_P(zv);
|
||||
}
|
||||
return zv;
|
||||
}
|
||||
|
||||
#define Z_CLIENT_URI_P(zv) php_soap_deref(OBJ_PROP_NUM(Z_OBJ_P(zv), 0))
|
||||
#define Z_CLIENT_STYLE_P(zv) php_soap_deref(OBJ_PROP_NUM(Z_OBJ_P(zv), 1))
|
||||
#define Z_CLIENT_USE_P(zv) php_soap_deref(OBJ_PROP_NUM(Z_OBJ_P(zv), 2))
|
||||
#define Z_CLIENT_LOCATION_P(zv) php_soap_deref(OBJ_PROP_NUM(Z_OBJ_P(zv), 3))
|
||||
#define Z_CLIENT_TRACE_P(zv) php_soap_deref(OBJ_PROP_NUM(Z_OBJ_P(zv), 4))
|
||||
#define Z_CLIENT_COMPRESSION_P(zv) php_soap_deref(OBJ_PROP_NUM(Z_OBJ_P(zv), 5))
|
||||
#define Z_CLIENT_SDL_P(zv) php_soap_deref(OBJ_PROP_NUM(Z_OBJ_P(zv), 6))
|
||||
#define Z_CLIENT_TYPEMAP_P(zv) php_soap_deref(OBJ_PROP_NUM(Z_OBJ_P(zv), 7))
|
||||
#define Z_CLIENT_HTTPSOCKET_P(zv) php_soap_deref(OBJ_PROP_NUM(Z_OBJ_P(zv), 8))
|
||||
#define Z_CLIENT_HTTPURL_P(zv) php_soap_deref(OBJ_PROP_NUM(Z_OBJ_P(zv), 9))
|
||||
#define Z_CLIENT_LOGIN_P(zv) php_soap_deref(OBJ_PROP_NUM(Z_OBJ_P(zv), 10))
|
||||
#define Z_CLIENT_PASSWORD_P(zv) php_soap_deref(OBJ_PROP_NUM(Z_OBJ_P(zv), 11))
|
||||
#define Z_CLIENT_USE_DIGEST_P(zv) php_soap_deref(OBJ_PROP_NUM(Z_OBJ_P(zv), 12))
|
||||
#define Z_CLIENT_DIGEST_P(zv) php_soap_deref(OBJ_PROP_NUM(Z_OBJ_P(zv), 13))
|
||||
#define Z_CLIENT_PROXY_HOST_P(zv) php_soap_deref(OBJ_PROP_NUM(Z_OBJ_P(zv), 14))
|
||||
#define Z_CLIENT_PROXY_PORT_P(zv) php_soap_deref(OBJ_PROP_NUM(Z_OBJ_P(zv), 15))
|
||||
#define Z_CLIENT_PROXY_LOGIN_P(zv) php_soap_deref(OBJ_PROP_NUM(Z_OBJ_P(zv), 16))
|
||||
#define Z_CLIENT_PROXY_PASSWORD_P(zv) php_soap_deref(OBJ_PROP_NUM(Z_OBJ_P(zv), 17))
|
||||
#define Z_CLIENT_EXCEPTIONS_P(zv) php_soap_deref(OBJ_PROP_NUM(Z_OBJ_P(zv), 18))
|
||||
#define Z_CLIENT_ENCODING_P(zv) php_soap_deref(OBJ_PROP_NUM(Z_OBJ_P(zv), 19))
|
||||
#define Z_CLIENT_CLASSMAP_P(zv) php_soap_deref(OBJ_PROP_NUM(Z_OBJ_P(zv), 20))
|
||||
#define Z_CLIENT_FEATURES_P(zv) php_soap_deref(OBJ_PROP_NUM(Z_OBJ_P(zv), 21))
|
||||
#define Z_CLIENT_CONNECTION_TIMEOUT_P(zv) php_soap_deref(OBJ_PROP_NUM(Z_OBJ_P(zv), 22))
|
||||
#define Z_CLIENT_STREAM_CONTEXT_P(zv) php_soap_deref(OBJ_PROP_NUM(Z_OBJ_P(zv), 23))
|
||||
#define Z_CLIENT_USER_AGENT_P(zv) php_soap_deref(OBJ_PROP_NUM(Z_OBJ_P(zv), 24))
|
||||
#define Z_CLIENT_KEEP_ALIVE_P(zv) php_soap_deref(OBJ_PROP_NUM(Z_OBJ_P(zv), 25))
|
||||
#define Z_CLIENT_SSL_METHOD_P(zv) php_soap_deref(OBJ_PROP_NUM(Z_OBJ_P(zv), 26))
|
||||
#define Z_CLIENT_SOAP_VERSION_P(zv) php_soap_deref(OBJ_PROP_NUM(Z_OBJ_P(zv), 27))
|
||||
#define Z_CLIENT_USE_PROXY_P(zv) php_soap_deref(OBJ_PROP_NUM(Z_OBJ_P(zv), 28))
|
||||
#define Z_CLIENT_COOKIES_P(zv) php_soap_deref(OBJ_PROP_NUM(Z_OBJ_P(zv), 29))
|
||||
#define Z_CLIENT_DEFAULT_HEADERS_P(zv) php_soap_deref(OBJ_PROP_NUM(Z_OBJ_P(zv), 30))
|
||||
#define Z_CLIENT_SOAP_FAULT_P(zv) php_soap_deref(OBJ_PROP_NUM(Z_OBJ_P(zv), 31))
|
||||
#define Z_CLIENT_LAST_REQUEST_P(zv) php_soap_deref(OBJ_PROP_NUM(Z_OBJ_P(zv), 32))
|
||||
#define Z_CLIENT_LAST_RESPONSE_P(zv) php_soap_deref(OBJ_PROP_NUM(Z_OBJ_P(zv), 33))
|
||||
#define Z_CLIENT_LAST_REQUEST_HEADERS_P(zv) php_soap_deref(OBJ_PROP_NUM(Z_OBJ_P(zv), 34))
|
||||
#define Z_CLIENT_LAST_RESPONSE_HEADERS_P(zv) php_soap_deref(OBJ_PROP_NUM(Z_OBJ_P(zv), 35))
|
||||
|
||||
#endif
|
||||
|
||||
@@ -141,27 +141,27 @@ static void soap_error_handler(int error_num, zend_string *error_filename, const
|
||||
|
||||
#define FETCH_TYPEMAP_RES(ss,tmp) ss = (HashTable*) zend_fetch_resource_ex(tmp, "typemap", le_typemap)
|
||||
|
||||
#define Z_PARAM_NAME_P(zv) OBJ_PROP_NUM(Z_OBJ_P(zv), 0)
|
||||
#define Z_PARAM_DATA_P(zv) OBJ_PROP_NUM(Z_OBJ_P(zv), 1)
|
||||
#define Z_PARAM_NAME_P(zv) php_soap_deref(OBJ_PROP_NUM(Z_OBJ_P(zv), 0))
|
||||
#define Z_PARAM_DATA_P(zv) php_soap_deref(OBJ_PROP_NUM(Z_OBJ_P(zv), 1))
|
||||
|
||||
#define Z_HEADER_NAMESPACE_P(zv) OBJ_PROP_NUM(Z_OBJ_P(zv), 0)
|
||||
#define Z_HEADER_NAME_P(zv) OBJ_PROP_NUM(Z_OBJ_P(zv), 1)
|
||||
#define Z_HEADER_DATA_P(zv) OBJ_PROP_NUM(Z_OBJ_P(zv), 2)
|
||||
#define Z_HEADER_MUST_UNDERSTAND_P(zv) OBJ_PROP_NUM(Z_OBJ_P(zv), 3)
|
||||
#define Z_HEADER_ACTOR_P(zv) OBJ_PROP_NUM(Z_OBJ_P(zv), 4)
|
||||
#define Z_HEADER_NAMESPACE_P(zv) php_soap_deref(OBJ_PROP_NUM(Z_OBJ_P(zv), 0))
|
||||
#define Z_HEADER_NAME_P(zv) php_soap_deref(OBJ_PROP_NUM(Z_OBJ_P(zv), 1))
|
||||
#define Z_HEADER_DATA_P(zv) php_soap_deref(OBJ_PROP_NUM(Z_OBJ_P(zv), 2))
|
||||
#define Z_HEADER_MUST_UNDERSTAND_P(zv) php_soap_deref(OBJ_PROP_NUM(Z_OBJ_P(zv), 3))
|
||||
#define Z_HEADER_ACTOR_P(zv) php_soap_deref(OBJ_PROP_NUM(Z_OBJ_P(zv), 4))
|
||||
|
||||
#define Z_SERVER_SERVICE_P(zv) OBJ_PROP_NUM(Z_OBJ_P(zv), 0)
|
||||
#define Z_SERVER_SOAP_FAULT_P(zv) OBJ_PROP_NUM(Z_OBJ_P(zv), 1)
|
||||
#define Z_SERVER_SERVICE_P(zv) php_soap_deref(OBJ_PROP_NUM(Z_OBJ_P(zv), 0))
|
||||
#define Z_SERVER_SOAP_FAULT_P(zv) php_soap_deref(OBJ_PROP_NUM(Z_OBJ_P(zv), 1))
|
||||
|
||||
/* SoapFault extends Exception, so take those properties into account. */
|
||||
#define FAULT_PROP_START_OFFSET zend_ce_exception->default_properties_count
|
||||
#define Z_FAULT_STRING_P(zv) OBJ_PROP_NUM(Z_OBJ_P(zv), FAULT_PROP_START_OFFSET + 0)
|
||||
#define Z_FAULT_CODE_P(zv) OBJ_PROP_NUM(Z_OBJ_P(zv), FAULT_PROP_START_OFFSET + 1)
|
||||
#define Z_FAULT_CODENS_P(zv) OBJ_PROP_NUM(Z_OBJ_P(zv), FAULT_PROP_START_OFFSET + 2)
|
||||
#define Z_FAULT_ACTOR_P(zv) OBJ_PROP_NUM(Z_OBJ_P(zv), FAULT_PROP_START_OFFSET + 3)
|
||||
#define Z_FAULT_DETAIL_P(zv) OBJ_PROP_NUM(Z_OBJ_P(zv), FAULT_PROP_START_OFFSET + 4)
|
||||
#define Z_FAULT_NAME_P(zv) OBJ_PROP_NUM(Z_OBJ_P(zv), FAULT_PROP_START_OFFSET + 5)
|
||||
#define Z_FAULT_HEADERFAULT_P(zv) OBJ_PROP_NUM(Z_OBJ_P(zv), FAULT_PROP_START_OFFSET + 6)
|
||||
#define Z_FAULT_STRING_P(zv) php_soap_deref(OBJ_PROP_NUM(Z_OBJ_P(zv), FAULT_PROP_START_OFFSET + 0))
|
||||
#define Z_FAULT_CODE_P(zv) php_soap_deref(OBJ_PROP_NUM(Z_OBJ_P(zv), FAULT_PROP_START_OFFSET + 1))
|
||||
#define Z_FAULT_CODENS_P(zv) php_soap_deref(OBJ_PROP_NUM(Z_OBJ_P(zv), FAULT_PROP_START_OFFSET + 2))
|
||||
#define Z_FAULT_ACTOR_P(zv) php_soap_deref(OBJ_PROP_NUM(Z_OBJ_P(zv), FAULT_PROP_START_OFFSET + 3))
|
||||
#define Z_FAULT_DETAIL_P(zv) php_soap_deref(OBJ_PROP_NUM(Z_OBJ_P(zv), FAULT_PROP_START_OFFSET + 4))
|
||||
#define Z_FAULT_NAME_P(zv) php_soap_deref(OBJ_PROP_NUM(Z_OBJ_P(zv), FAULT_PROP_START_OFFSET + 5))
|
||||
#define Z_FAULT_HEADERFAULT_P(zv) php_soap_deref(OBJ_PROP_NUM(Z_OBJ_P(zv), FAULT_PROP_START_OFFSET + 6))
|
||||
|
||||
#define FETCH_THIS_SERVICE(ss) \
|
||||
{ \
|
||||
@@ -1785,9 +1785,8 @@ static zend_never_inline ZEND_COLD void soap_real_error_handler(int error_num, z
|
||||
|
||||
if (Z_OBJ(SOAP_GLOBAL(error_object)) &&
|
||||
instanceof_function(Z_OBJCE(SOAP_GLOBAL(error_object)), soap_class_entry)) {
|
||||
zval *tmp = Z_CLIENT_EXCEPTIONS_P(&SOAP_GLOBAL(error_object));
|
||||
ZVAL_DEREF(tmp);
|
||||
bool use_exceptions = Z_TYPE_P(tmp) != IS_FALSE;
|
||||
bool use_exceptions =
|
||||
Z_TYPE_P(Z_CLIENT_EXCEPTIONS_P(&SOAP_GLOBAL(error_object))) != IS_FALSE;
|
||||
if ((error_num & E_FATAL_ERRORS) && use_exceptions) {
|
||||
zval fault;
|
||||
char *code = SOAP_GLOBAL(error_code);
|
||||
@@ -2149,7 +2148,6 @@ static int do_request(zval *this_ptr, xmlDoc *request, char *location, char *act
|
||||
|
||||
zend_try {
|
||||
zval *trace = Z_CLIENT_TRACE_P(this_ptr);
|
||||
ZVAL_DEREF(trace);
|
||||
if (Z_TYPE_P(trace) == IS_TRUE) {
|
||||
zval_ptr_dtor(Z_CLIENT_LAST_REQUEST_P(this_ptr));
|
||||
ZVAL_STRINGL(Z_CLIENT_LAST_REQUEST_P(this_ptr), buf, buf_size);
|
||||
@@ -2212,8 +2210,6 @@ static void do_soap_call(zend_execute_data *execute_data,
|
||||
zval* output_headers
|
||||
) /* {{{ */
|
||||
{
|
||||
zval *tmp;
|
||||
zval *trace;
|
||||
sdlPtr sdl = NULL;
|
||||
sdlPtr old_sdl = NULL;
|
||||
sdlFunctionPtr fn;
|
||||
@@ -2230,14 +2226,12 @@ static void do_soap_call(zend_execute_data *execute_data,
|
||||
|
||||
SOAP_CLIENT_BEGIN_CODE();
|
||||
|
||||
trace = Z_CLIENT_TRACE_P(this_ptr);
|
||||
ZVAL_DEREF(trace);
|
||||
if (Z_TYPE_P(trace) == IS_TRUE) {
|
||||
if (Z_TYPE_P(Z_CLIENT_TRACE_P(this_ptr)) == IS_TRUE) {
|
||||
convert_to_null(Z_CLIENT_LAST_REQUEST_P(this_ptr));
|
||||
convert_to_null(Z_CLIENT_LAST_RESPONSE_P(this_ptr));
|
||||
}
|
||||
tmp = Z_CLIENT_SOAP_VERSION_P(this_ptr);
|
||||
ZVAL_DEREF(tmp);
|
||||
|
||||
zval *tmp = Z_CLIENT_SOAP_VERSION_P(this_ptr);
|
||||
if (Z_TYPE_P(tmp) == IS_LONG && Z_LVAL_P(tmp) == SOAP_1_2) {
|
||||
soap_version = SOAP_1_2;
|
||||
} else {
|
||||
@@ -2246,7 +2240,6 @@ static void do_soap_call(zend_execute_data *execute_data,
|
||||
|
||||
if (location == NULL) {
|
||||
tmp = Z_CLIENT_LOCATION_P(this_ptr);
|
||||
ZVAL_DEREF(tmp);
|
||||
if (Z_TYPE_P(tmp) == IS_STRING) {
|
||||
location = Z_STRVAL_P(tmp);
|
||||
}
|
||||
@@ -2269,7 +2262,6 @@ static void do_soap_call(zend_execute_data *execute_data,
|
||||
SOAP_GLOBAL(sdl) = sdl;
|
||||
old_encoding = SOAP_GLOBAL(encoding);
|
||||
tmp = Z_CLIENT_ENCODING_P(this_ptr);
|
||||
ZVAL_DEREF(tmp);
|
||||
if (Z_TYPE_P(tmp) == IS_STRING) {
|
||||
SOAP_GLOBAL(encoding) = xmlFindCharEncodingHandler(Z_STRVAL_P(tmp));
|
||||
} else {
|
||||
@@ -2277,7 +2269,6 @@ static void do_soap_call(zend_execute_data *execute_data,
|
||||
}
|
||||
old_class_map = SOAP_GLOBAL(class_map);
|
||||
tmp = Z_CLIENT_CLASSMAP_P(this_ptr);
|
||||
ZVAL_DEREF(tmp);
|
||||
if (Z_TYPE_P(tmp) == IS_ARRAY) {
|
||||
SOAP_GLOBAL(class_map) = Z_ARRVAL_P(tmp);
|
||||
} else {
|
||||
@@ -2287,7 +2278,6 @@ static void do_soap_call(zend_execute_data *execute_data,
|
||||
SOAP_GLOBAL(typemap) = typemap;
|
||||
old_features = SOAP_GLOBAL(features);
|
||||
tmp = Z_CLIENT_FEATURES_P(this_ptr);
|
||||
ZVAL_DEREF(tmp);
|
||||
if (Z_TYPE_P(tmp) == IS_LONG) {
|
||||
SOAP_GLOBAL(features) = Z_LVAL_P(tmp);
|
||||
} else {
|
||||
@@ -2342,7 +2332,6 @@ static void do_soap_call(zend_execute_data *execute_data,
|
||||
}
|
||||
} else {
|
||||
zval *uri = Z_CLIENT_URI_P(this_ptr);
|
||||
ZVAL_DEREF(uri);
|
||||
if (Z_TYPE_P(uri) != IS_STRING) {
|
||||
add_soap_fault(this_ptr, "Client", "Error finding \"uri\" property", NULL, NULL);
|
||||
} else if (location == NULL) {
|
||||
@@ -2503,7 +2492,6 @@ void soap_client_call_impl(INTERNAL_FUNCTION_PARAMETERS, bool is_soap_call)
|
||||
/* Add default headers */
|
||||
this_ptr = ZEND_THIS;
|
||||
tmp = Z_CLIENT_DEFAULT_HEADERS_P(this_ptr);
|
||||
ZVAL_DEREF(tmp);
|
||||
if (Z_TYPE_P(tmp) == IS_ARRAY) {
|
||||
HashTable *default_headers = Z_ARRVAL_P(tmp);
|
||||
if (soap_headers) {
|
||||
@@ -2625,7 +2613,7 @@ PHP_METHOD(SoapClient, __getLastRequest)
|
||||
RETURN_THROWS();
|
||||
}
|
||||
|
||||
RETURN_COPY_DEREF(Z_CLIENT_LAST_REQUEST_P(ZEND_THIS));
|
||||
RETURN_COPY(Z_CLIENT_LAST_REQUEST_P(ZEND_THIS));
|
||||
}
|
||||
/* }}} */
|
||||
|
||||
@@ -2637,7 +2625,7 @@ PHP_METHOD(SoapClient, __getLastResponse)
|
||||
RETURN_THROWS();
|
||||
}
|
||||
|
||||
RETURN_COPY_DEREF(Z_CLIENT_LAST_RESPONSE_P(ZEND_THIS));
|
||||
RETURN_COPY(Z_CLIENT_LAST_RESPONSE_P(ZEND_THIS));
|
||||
}
|
||||
/* }}} */
|
||||
|
||||
@@ -2649,7 +2637,7 @@ PHP_METHOD(SoapClient, __getLastRequestHeaders)
|
||||
RETURN_THROWS();
|
||||
}
|
||||
|
||||
RETURN_COPY_DEREF(Z_CLIENT_LAST_REQUEST_HEADERS_P(ZEND_THIS));
|
||||
RETURN_COPY(Z_CLIENT_LAST_REQUEST_HEADERS_P(ZEND_THIS));
|
||||
}
|
||||
/* }}} */
|
||||
|
||||
@@ -2661,7 +2649,7 @@ PHP_METHOD(SoapClient, __getLastResponseHeaders)
|
||||
RETURN_THROWS();
|
||||
}
|
||||
|
||||
RETURN_COPY_DEREF(Z_CLIENT_LAST_RESPONSE_HEADERS_P(ZEND_THIS));
|
||||
RETURN_COPY(Z_CLIENT_LAST_RESPONSE_HEADERS_P(ZEND_THIS));
|
||||
}
|
||||
/* }}} */
|
||||
|
||||
@@ -2711,8 +2699,6 @@ PHP_METHOD(SoapClient, __setCookie)
|
||||
}
|
||||
|
||||
zval *cookies = Z_CLIENT_COOKIES_P(this_ptr);
|
||||
ZVAL_DEREF(cookies);
|
||||
|
||||
if (val == NULL) {
|
||||
if (Z_TYPE_P(cookies) == IS_ARRAY) {
|
||||
zend_hash_del(Z_ARRVAL_P(cookies), name);
|
||||
@@ -2738,7 +2724,6 @@ PHP_METHOD(SoapClient, __getCookies)
|
||||
}
|
||||
|
||||
zval *cookies = Z_CLIENT_COOKIES_P(ZEND_THIS);
|
||||
ZVAL_DEREF(cookies);
|
||||
if (Z_TYPE_P(cookies) == IS_ARRAY) {
|
||||
RETURN_ARR(zend_array_dup(Z_ARRVAL_P(cookies)));
|
||||
} else {
|
||||
@@ -3279,11 +3264,7 @@ ignore_header:
|
||||
|
||||
static void set_soap_header_attributes(xmlNodePtr h, zval *header, int version) /* {{{ */
|
||||
{
|
||||
zval *tmp;
|
||||
|
||||
tmp = Z_HEADER_MUST_UNDERSTAND_P(header);
|
||||
ZVAL_DEREF(tmp);
|
||||
if (Z_TYPE_P(tmp) == IS_TRUE) {
|
||||
if (Z_TYPE_P(Z_HEADER_MUST_UNDERSTAND_P(header)) == IS_TRUE) {
|
||||
if (version == SOAP_1_1) {
|
||||
xmlSetProp(h, BAD_CAST(SOAP_1_1_ENV_NS_PREFIX":mustUnderstand"), BAD_CAST("1"));
|
||||
} else {
|
||||
@@ -3291,8 +3272,7 @@ static void set_soap_header_attributes(xmlNodePtr h, zval *header, int version)
|
||||
}
|
||||
}
|
||||
|
||||
tmp = Z_HEADER_ACTOR_P(header);
|
||||
ZVAL_DEREF(tmp);
|
||||
zval *tmp = Z_HEADER_ACTOR_P(header);
|
||||
if (Z_TYPE_P(tmp) == IS_STRING) {
|
||||
if (version == SOAP_1_1) {
|
||||
xmlSetProp(h, BAD_CAST(SOAP_1_1_ENV_NS_PREFIX":actor"), BAD_CAST(Z_STRVAL_P(tmp)));
|
||||
@@ -3450,13 +3430,10 @@ static xmlDocPtr serialize_response_call(sdlFunctionPtr function, char *function
|
||||
|
||||
if (Z_TYPE_P(ret) == IS_OBJECT &&
|
||||
instanceof_function(Z_OBJCE_P(ret), soap_fault_class_entry)) {
|
||||
char *detail_name;
|
||||
zval *tmp;
|
||||
char *detail_name;
|
||||
sdlFaultPtr fault = NULL;
|
||||
char *fault_ns = NULL;
|
||||
|
||||
tmp = Z_FAULT_HEADERFAULT_P(ret);
|
||||
ZVAL_DEREF(tmp);
|
||||
zval *tmp = Z_FAULT_HEADERFAULT_P(ret);
|
||||
if (headers && Z_TYPE_P(tmp) > IS_NULL) {
|
||||
encodePtr hdr_enc = NULL;
|
||||
int hdr_use = SOAP_LITERAL;
|
||||
@@ -3471,7 +3448,6 @@ static xmlDocPtr serialize_response_call(sdlFunctionPtr function, char *function
|
||||
smart_str key = {0};
|
||||
|
||||
tmp = Z_HEADER_NAMESPACE_P(hdr_ret);
|
||||
ZVAL_DEREF(tmp);
|
||||
if (Z_TYPE_P(tmp) == IS_STRING) {
|
||||
smart_str_appendl(&key, Z_STRVAL_P(tmp), Z_STRLEN_P(tmp));
|
||||
smart_str_appendc(&key, ':');
|
||||
@@ -3479,7 +3455,6 @@ static xmlDocPtr serialize_response_call(sdlFunctionPtr function, char *function
|
||||
}
|
||||
|
||||
tmp = Z_HEADER_NAME_P(hdr_ret);
|
||||
ZVAL_DEREF(tmp);
|
||||
if (Z_TYPE_P(tmp) == IS_STRING) {
|
||||
smart_str_appendl(&key, Z_STRVAL_P(tmp), Z_STRLEN_P(tmp));
|
||||
hdr_name = Z_STRVAL_P(tmp);
|
||||
@@ -3519,14 +3494,12 @@ static xmlDocPtr serialize_response_call(sdlFunctionPtr function, char *function
|
||||
param = xmlNewChild(body, ns, BAD_CAST("Fault"), NULL);
|
||||
|
||||
tmp = Z_FAULT_CODENS_P(ret);
|
||||
ZVAL_DEREF(tmp);
|
||||
if (Z_TYPE_P(tmp) == IS_STRING) {
|
||||
fault_ns = Z_STRVAL_P(tmp);
|
||||
}
|
||||
use = SOAP_LITERAL;
|
||||
|
||||
tmp = Z_FAULT_NAME_P(ret);
|
||||
ZVAL_DEREF(tmp);
|
||||
if (Z_TYPE_P(tmp) == IS_STRING) {
|
||||
sdlFaultPtr tmp_fault;
|
||||
if (function && function->faults &&
|
||||
@@ -3573,7 +3546,6 @@ static xmlDocPtr serialize_response_call(sdlFunctionPtr function, char *function
|
||||
|
||||
if (version == SOAP_1_1) {
|
||||
tmp = Z_FAULT_CODE_P(ret);
|
||||
ZVAL_DEREF(tmp);
|
||||
if (Z_TYPE_P(tmp) == IS_STRING) {
|
||||
xmlNodePtr node = xmlNewNode(NULL, BAD_CAST("faultcode"));
|
||||
zend_string *str = php_escape_html_entities((unsigned char*)Z_STRVAL_P(tmp), Z_STRLEN_P(tmp), 0, 0, NULL);
|
||||
@@ -3589,13 +3561,11 @@ static xmlDocPtr serialize_response_call(sdlFunctionPtr function, char *function
|
||||
zend_string_release_ex(str, 0);
|
||||
}
|
||||
tmp = Z_FAULT_STRING_P(ret);
|
||||
ZVAL_DEREF(tmp);
|
||||
if (Z_TYPE_P(tmp) == IS_STRING) {
|
||||
xmlNodePtr node = master_to_xml(get_conversion(IS_STRING), tmp, SOAP_LITERAL, param);
|
||||
xmlNodeSetName(node, BAD_CAST("faultstring"));
|
||||
}
|
||||
tmp = Z_FAULT_ACTOR_P(ret);
|
||||
ZVAL_DEREF(tmp);
|
||||
if (Z_TYPE_P(tmp) == IS_STRING) {
|
||||
xmlNodePtr node = master_to_xml(get_conversion(IS_STRING), tmp, SOAP_LITERAL, param);
|
||||
xmlNodeSetName(node, BAD_CAST("faultactor"));
|
||||
@@ -3603,7 +3573,6 @@ static xmlDocPtr serialize_response_call(sdlFunctionPtr function, char *function
|
||||
detail_name = "detail";
|
||||
} else {
|
||||
tmp = Z_FAULT_CODE_P(ret);
|
||||
ZVAL_DEREF(tmp);
|
||||
if (Z_TYPE_P(tmp) == IS_STRING) {
|
||||
xmlNodePtr node = xmlNewChild(param, ns, BAD_CAST("Code"), NULL);
|
||||
zend_string *str = php_escape_html_entities((unsigned char*)Z_STRVAL_P(tmp), Z_STRLEN_P(tmp), 0, 0, NULL);
|
||||
@@ -3619,7 +3588,6 @@ static xmlDocPtr serialize_response_call(sdlFunctionPtr function, char *function
|
||||
zend_string_release_ex(str, 0);
|
||||
}
|
||||
tmp = Z_FAULT_STRING_P(ret);
|
||||
ZVAL_DEREF(tmp);
|
||||
if (Z_TYPE_P(tmp) == IS_STRING) {
|
||||
xmlNodePtr node = xmlNewChild(param, ns, BAD_CAST("Reason"), NULL);
|
||||
node = master_to_xml(get_conversion(IS_STRING), tmp, SOAP_LITERAL, node);
|
||||
@@ -3635,7 +3603,6 @@ static xmlDocPtr serialize_response_call(sdlFunctionPtr function, char *function
|
||||
xmlNodePtr x;
|
||||
|
||||
tmp = Z_FAULT_DETAIL_P(ret);
|
||||
ZVAL_DEREF(tmp);
|
||||
if (Z_TYPE_P(tmp) > IS_NULL) {
|
||||
detail = tmp;
|
||||
}
|
||||
@@ -3681,7 +3648,6 @@ static xmlDocPtr serialize_response_call(sdlFunctionPtr function, char *function
|
||||
}
|
||||
} else {
|
||||
tmp = Z_FAULT_DETAIL_P(ret);
|
||||
ZVAL_DEREF(tmp);
|
||||
if (Z_TYPE_P(tmp) > IS_NULL) {
|
||||
serialize_zval(tmp, NULL, detail_name, use, param);
|
||||
}
|
||||
@@ -3710,14 +3676,12 @@ static xmlDocPtr serialize_response_call(sdlFunctionPtr function, char *function
|
||||
smart_str key = {0};
|
||||
|
||||
tmp = Z_HEADER_NAMESPACE_P(&h->retval);
|
||||
ZVAL_DEREF(tmp);
|
||||
if (Z_TYPE_P(tmp) == IS_STRING) {
|
||||
smart_str_appendl(&key, Z_STRVAL_P(tmp), Z_STRLEN_P(tmp));
|
||||
smart_str_appendc(&key, ':');
|
||||
hdr_ns = Z_STRVAL_P(tmp);
|
||||
}
|
||||
tmp = Z_HEADER_NAME_P(&h->retval);
|
||||
ZVAL_DEREF(tmp);
|
||||
if (Z_TYPE_P(tmp) == IS_STRING) {
|
||||
smart_str_appendl(&key, Z_STRVAL_P(tmp), Z_STRLEN_P(tmp));
|
||||
hdr_name = Z_STRVAL_P(tmp);
|
||||
@@ -3861,7 +3825,6 @@ static xmlDocPtr serialize_function_call(zval *this_ptr, sdlFunctionPtr function
|
||||
}
|
||||
} else {
|
||||
zstyle = Z_CLIENT_STYLE_P(this_ptr);
|
||||
ZVAL_DEREF(zstyle);
|
||||
if (Z_TYPE_P(zstyle) == IS_LONG) {
|
||||
style = Z_LVAL_P(zstyle);
|
||||
} else {
|
||||
@@ -3885,7 +3848,6 @@ static xmlDocPtr serialize_function_call(zval *this_ptr, sdlFunctionPtr function
|
||||
}
|
||||
|
||||
zuse = Z_CLIENT_USE_P(this_ptr);
|
||||
ZVAL_DEREF(zuse);
|
||||
if (Z_TYPE_P(zuse) == IS_LONG && Z_LVAL_P(zuse) == SOAP_LITERAL) {
|
||||
use = SOAP_LITERAL;
|
||||
} else {
|
||||
@@ -3946,8 +3908,6 @@ static xmlDocPtr serialize_function_call(zval *this_ptr, sdlFunctionPtr function
|
||||
|
||||
zval *name = Z_HEADER_NAME_P(header);
|
||||
zval *ns = Z_HEADER_NAMESPACE_P(header);
|
||||
ZVAL_DEREF(name);
|
||||
ZVAL_DEREF(ns);
|
||||
if (Z_TYPE_P(name) == IS_STRING && Z_TYPE_P(ns) == IS_STRING) {
|
||||
xmlNodePtr h;
|
||||
xmlNsPtr nsptr;
|
||||
@@ -4022,7 +3982,6 @@ static xmlNodePtr serialize_parameter(sdlParamPtr param, zval *param_val, int in
|
||||
&& Z_OBJCE_P(param_val) == soap_param_class_entry) {
|
||||
zval *param_name = Z_PARAM_NAME_P(param_val);
|
||||
zval *param_data = Z_PARAM_DATA_P(param_val);
|
||||
ZVAL_DEREF(param_name);
|
||||
if (Z_TYPE_P(param_name) == IS_STRING && Z_TYPE_P(param_data) != IS_UNDEF) {
|
||||
param_val = param_data;
|
||||
name = Z_STRVAL_P(param_name);
|
||||
|
||||
Reference in New Issue
Block a user