diff options
author | Dmitry Stogov <dmitry@php.net> | 2008-12-01 09:49:58 +0000 |
---|---|---|
committer | Dmitry Stogov <dmitry@php.net> | 2008-12-01 09:49:58 +0000 |
commit | 1a3f557b1aa235532b4fe5475a6f4b315d63ef3b (patch) | |
tree | b41d8a617cbf150ec3726bfc14551abc2affbbee /ext/soap/php_sdl.c | |
parent | bc192e183d6c31fbc80cd0d68733e5f12bc164b7 (diff) | |
download | php-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.c | 12 |
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; |