summaryrefslogtreecommitdiff
path: root/ext/soap/php_http.c
diff options
context:
space:
mode:
authorNikita Popov <nikita.ppv@gmail.com>2019-05-21 10:04:51 +0200
committerNikita Popov <nikita.ppv@gmail.com>2019-05-21 10:04:51 +0200
commit4ebd9a5366e2a1bb0417ad4b2031731b530bb90a (patch)
treee494ebb8de190c79a11e2aab6a2883c8d83e4269 /ext/soap/php_http.c
parent11740abd6ba1ee47e7a2a149c0ddfe6b7c8145cc (diff)
parent5f8c22d41536768298354218fe238691ae750f75 (diff)
downloadphp-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.c23
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);