From 1a3f557b1aa235532b4fe5475a6f4b315d63ef3b Mon Sep 17 00:00:00 2001 From: Dmitry Stogov Date: Mon, 1 Dec 2008 09:49:58 +0000 Subject: Fixed bug #43069 (SoapClient causes 505 HTTP Version not supported error message) --- ext/soap/php_sdl.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'ext/soap/php_sdl.c') 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; -- cgit v1.2.1