diff options
author | Nikita Popov <nikita.ppv@gmail.com> | 2019-05-21 10:04:51 +0200 |
---|---|---|
committer | Nikita Popov <nikita.ppv@gmail.com> | 2019-05-21 10:04:51 +0200 |
commit | 4ebd9a5366e2a1bb0417ad4b2031731b530bb90a (patch) | |
tree | e494ebb8de190c79a11e2aab6a2883c8d83e4269 /ext/soap/php_http.c | |
parent | 11740abd6ba1ee47e7a2a149c0ddfe6b7c8145cc (diff) | |
parent | 5f8c22d41536768298354218fe238691ae750f75 (diff) | |
download | php-git-4ebd9a5366e2a1bb0417ad4b2031731b530bb90a.tar.gz |
Merge branch 'PHP-7.2' into PHP-7.3
Diffstat (limited to 'ext/soap/php_http.c')
-rw-r--r-- | ext/soap/php_http.c | 23 |
1 files changed, 21 insertions, 2 deletions
diff --git a/ext/soap/php_http.c b/ext/soap/php_http.c index 0637b7e699..fb3089ec27 100644 --- a/ext/soap/php_http.c +++ b/ext/soap/php_http.c @@ -617,7 +617,16 @@ try_again: smart_str_append_smart_str(&soap_headers, &soap_headers_z); if (soap_version == SOAP_1_2) { - smart_str_append_const(&soap_headers,"Content-Type: application/soap+xml; charset=utf-8"); + if (context && + (tmp = php_stream_context_get_option(context, "http", "content_type")) != NULL && + Z_TYPE_P(tmp) == IS_STRING && + Z_STRLEN_P(tmp) > 0 + ) { + smart_str_append_const(&soap_headers, "Content-Type: "); + smart_str_appendl(&soap_headers, Z_STRVAL_P(tmp), Z_STRLEN_P(tmp)); + } else { + smart_str_append_const(&soap_headers, "Content-Type: application/soap+xml; charset=utf-8"); + } if (soapaction) { smart_str_append_const(&soap_headers,"; action=\""); smart_str_appends(&soap_headers, soapaction); @@ -625,7 +634,17 @@ try_again: } smart_str_append_const(&soap_headers,"\r\n"); } else { - smart_str_append_const(&soap_headers,"Content-Type: text/xml; charset=utf-8\r\n"); + if (context && + (tmp = php_stream_context_get_option(context, "http", "content_type")) != NULL && + Z_TYPE_P(tmp) == IS_STRING && + Z_STRLEN_P(tmp) > 0 + ) { + smart_str_append_const(&soap_headers, "Content-Type: "); + smart_str_appendl(&soap_headers, Z_STRVAL_P(tmp), Z_STRLEN_P(tmp)); + smart_str_append_const(&soap_headers, "\r\n"); + } else { + smart_str_append_const(&soap_headers, "Content-Type: text/xml; charset=utf-8\r\n"); + } if (soapaction) { smart_str_append_const(&soap_headers, "SOAPAction: \""); smart_str_appends(&soap_headers, soapaction); |