diff options
-rw-r--r-- | libsoup/soup-cache.c | 5 | ||||
-rw-r--r-- | libsoup/soup-message.c | 17 | ||||
-rw-r--r-- | libsoup/soup-session.c | 10 |
3 files changed, 13 insertions, 19 deletions
diff --git a/libsoup/soup-cache.c b/libsoup/soup-cache.c index d118c4c0..3cc4844e 100644 --- a/libsoup/soup-cache.c +++ b/libsoup/soup-cache.c @@ -1069,7 +1069,7 @@ SoupCacheResponse soup_cache_has_response (SoupCache *cache, SoupMessage *msg) { SoupCacheEntry *entry; - const char *cache_control, *pragma; + const char *cache_control; gpointer value; int max_age, max_stale, min_fresh; GList *lru_item, *item; @@ -1130,8 +1130,7 @@ soup_cache_has_response (SoupCache *cache, SoupMessage *msg) /* For HTTP 1.0 compatibility. RFC2616 section 14.9.4 */ - pragma = soup_message_headers_get_list (msg->request_headers, "Pragma"); - if (pragma && soup_header_contains (pragma, "no-cache")) + if (soup_message_headers_header_contains (msg->request_headers, "Pragma", "no-cache")) return SOUP_CACHE_RESPONSE_STALE; cache_control = soup_message_headers_get_list (msg->request_headers, "Cache-Control"); diff --git a/libsoup/soup-message.c b/libsoup/soup-message.c index 45f56a4d..07bcea60 100644 --- a/libsoup/soup-message.c +++ b/libsoup/soup-message.c @@ -1528,13 +1528,6 @@ soup_message_get_http_version (SoupMessage *msg) gboolean soup_message_is_keepalive (SoupMessage *msg) { - const char *c_conn, *s_conn; - - c_conn = soup_message_headers_get_list (msg->request_headers, - "Connection"); - s_conn = soup_message_headers_get_list (msg->response_headers, - "Connection"); - if (msg->status_code == SOUP_STATUS_OK && msg->method == SOUP_METHOD_CONNECT) return TRUE; @@ -1550,13 +1543,15 @@ soup_message_is_keepalive (SoupMessage *msg) * doesn't request it. So ignore c_conn. */ - if (!s_conn || !soup_header_contains (s_conn, "Keep-Alive")) + if (!soup_message_headers_header_contains (msg->response_headers, + "Connection", "Keep-Alive")) return FALSE; } else { /* Normally persistent unless either side requested otherwise */ - if (c_conn && soup_header_contains (c_conn, "close")) - return FALSE; - if (s_conn && soup_header_contains (s_conn, "close")) + if (soup_message_headers_header_contains (msg->request_headers, + "Connection", "close") || + soup_message_headers_header_contains (msg->response_headers, + "Connection", "close")) return FALSE; return TRUE; diff --git a/libsoup/soup-session.c b/libsoup/soup-session.c index 76bf76f7..a9b14976 100644 --- a/libsoup/soup-session.c +++ b/libsoup/soup-session.c @@ -1316,7 +1316,6 @@ soup_session_send_queue_item (SoupSession *session, SoupMessageCompletionFn completion_cb) { SoupSessionPrivate *priv = SOUP_SESSION_GET_PRIVATE (session); - const char *conn_header; if (priv->user_agent) { soup_message_headers_replace (item->msg->request_headers, @@ -1336,12 +1335,13 @@ soup_session_send_queue_item (SoupSession *session, * a short period of time, as we wouldn't need to establish * new connections. Keep alive is implicit for HTTP 1.1. */ - conn_header = soup_message_headers_get_list (item->msg->request_headers, "Connection"); - if (!conn_header || - (!soup_header_contains (conn_header, "Keep-Alive") && - !soup_header_contains (conn_header, "close"))) + if (!soup_message_headers_header_contains (item->msg->request_headers, + "Connection", "Keep-Alive") && + !soup_message_headers_header_contains (item->msg->request_headers, + "Connection", "close")) { soup_message_headers_append (item->msg->request_headers, "Connection", "Keep-Alive"); + } g_signal_emit (session, signals[REQUEST_STARTED], 0, item->msg, soup_connection_get_socket (item->conn)); |