diff options
Diffstat (limited to 'ext/soap/php_http.c')
-rw-r--r-- | ext/soap/php_http.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/ext/soap/php_http.c b/ext/soap/php_http.c index 1ca0a1610b..e79c537992 100644 --- a/ext/soap/php_http.c +++ b/ext/soap/php_http.c @@ -433,12 +433,14 @@ try_again: smart_str_appendc(&soap_headers, ':'); smart_str_append_unsigned(&soap_headers, phpurl->port); } - if (http_1_1) { + if (!http_1_1 || + (zend_hash_find(Z_OBJPROP_P(this_ptr), "_keep_alive", sizeof("_keep_alive"), (void **)&tmp) == SUCCESS && + Z_LVAL_PP(tmp) == 0)) { smart_str_append_const(&soap_headers, "\r\n" - "Connection: Keep-Alive\r\n"); + "Connection: close\r\n"); } else { smart_str_append_const(&soap_headers, "\r\n" - "Connection: close\r\n"); + "Connection: Keep-Alive\r\n"); } if (zend_hash_find(Z_OBJPROP_P(this_ptr), "_user_agent", sizeof("_user_agent"), (void **)&tmp) == SUCCESS && Z_TYPE_PP(tmp) == IS_STRING) { |