summaryrefslogtreecommitdiff
path: root/ext/soap/php_sdl.c
diff options
context:
space:
mode:
authorDmitry Stogov <dmitry@php.net>2008-12-01 09:49:58 +0000
committerDmitry Stogov <dmitry@php.net>2008-12-01 09:49:58 +0000
commit1a3f557b1aa235532b4fe5475a6f4b315d63ef3b (patch)
treeb41d8a617cbf150ec3726bfc14551abc2affbbee /ext/soap/php_sdl.c
parentbc192e183d6c31fbc80cd0d68733e5f12bc164b7 (diff)
downloadphp-git-1a3f557b1aa235532b4fe5475a6f4b315d63ef3b.tar.gz
Fixed bug #43069 (SoapClient causes 505 HTTP Version not supported error message)
Diffstat (limited to 'ext/soap/php_sdl.c')
-rw-r--r--ext/soap/php_sdl.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/ext/soap/php_sdl.c b/ext/soap/php_sdl.c
index fcc90aa742..2ed545bd9e 100644
--- a/ext/soap/php_sdl.c
+++ b/ext/soap/php_sdl.c
@@ -3152,6 +3152,8 @@ sdlPtr get_sdl(zval *this_ptr, char *uri, long cache_wsdl TSRMLS_DC)
if (SUCCESS == zend_hash_find(Z_OBJPROP_P(this_ptr),
"_stream_context", sizeof("_stream_context"), (void**)&tmp)) {
context = php_stream_context_from_zval(*tmp, 0);
+ } else {
+ context = php_stream_context_alloc();
}
if (zend_hash_find(Z_OBJPROP_P(this_ptr), "_proxy_host", sizeof("_proxy_host"), (void **) &proxy_host) == SUCCESS &&
@@ -3189,6 +3191,16 @@ sdlPtr get_sdl(zval *this_ptr, char *uri, long cache_wsdl TSRMLS_DC)
basic_authentication(this_ptr, &headers TSRMLS_CC);
+ /* Use HTTP/1.1 with "Connection: close" by default */
+ if (php_stream_context_get_option(context, "http", "protocol_version", &tmp) == FAILURE) {
+ zval *http_version;
+ MAKE_STD_ZVAL(http_version);
+ ZVAL_DOUBLE(http_version, 1.1);
+ php_stream_context_set_option(context, "http", "protocol_version", http_version);
+ zval_ptr_dtor(&http_version);
+ smart_str_appendl(&headers, "Connection: close", sizeof("Connection: close")-1);
+ }
+
if (headers.len > 0) {
zval *str_headers;