summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLionel Landwerlin <llandwerlin@gmail.com>2017-10-09 17:12:47 +0100
committerLionel Landwerlin <lionel.g.landwerlin@intel.com>2018-01-04 12:28:51 +0000
commite24abeeb31da35e2d1073a296c193388691c8621 (patch)
treec3a80a0c50ece0ab1d2161936ec15a8f23988d3b
parent7c685b6258a1ad1b8ca19a8f9b01caa7b3c3590d (diff)
downloadlibsoup-e24abeeb31da35e2d1073a296c193388691c8621.tar.gz
session: don't request Keep-Alive for upgraded connections
When an upgrade is requested through "Connection: Upgrade" (used for setting up websocket connection for example), there is no need to request Keep-Alive. It turns out doing both is confusing some servers based on the h2o library. https://bugzilla.gnome.org/show_bug.cgi?id=788723
-rw-r--r--libsoup/soup-session.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/libsoup/soup-session.c b/libsoup/soup-session.c
index 8ce3d516..3387f68a 100644
--- a/libsoup/soup-session.c
+++ b/libsoup/soup-session.c
@@ -1314,7 +1314,9 @@ soup_session_send_queue_item (SoupSession *session,
if (!soup_message_headers_header_contains (item->msg->request_headers,
"Connection", "Keep-Alive") &&
!soup_message_headers_header_contains (item->msg->request_headers,
- "Connection", "close")) {
+ "Connection", "close") &&
+ !soup_message_headers_header_contains (item->msg->request_headers,
+ "Connection", "Upgrade")) {
soup_message_headers_append (item->msg->request_headers,
"Connection", "Keep-Alive");
}