summaryrefslogtreecommitdiff
path: root/libsoup/soup-message-headers.c
diff options
context:
space:
mode:
authorSergio Villar Senin <svillar@igalia.com>2011-05-19 10:19:13 +0200
committerSergio Villar Senin <svillar@igalia.com>2011-05-23 12:51:56 +0200
commit023d3b5e5e0bd0f1876071687c66a5228dfe37ff (patch)
tree48f0249e3d93f57237f329793aa22c64e2d2d71d /libsoup/soup-message-headers.c
parentaa8327f9f38b499006d10e3670ca1cedd43e07a8 (diff)
downloadlibsoup-023d3b5e5e0bd0f1876071687c66a5228dfe37ff.tar.gz
soup-cache: do not store hop-by-hop headers.
Those headers are meaningful only for single transport-level connections, we should not store them. https://bugzilla.gnome.org/show_bug.cgi?id=650094
Diffstat (limited to 'libsoup/soup-message-headers.c')
-rw-r--r--libsoup/soup-message-headers.c24
1 files changed, 24 insertions, 0 deletions
diff --git a/libsoup/soup-message-headers.c b/libsoup/soup-message-headers.c
index 1d6254c8..2f83addf 100644
--- a/libsoup/soup-message-headers.c
+++ b/libsoup/soup-message-headers.c
@@ -141,6 +141,30 @@ soup_message_headers_clear (SoupMessageHeaders *hdrs)
}
/**
+ * soup_message_headers_clean_connection_headers:
+ * @hdrs: a #SoupMessageHeaders
+ *
+ * Removes all the headers listed in the Connection header.
+ *
+ **/
+void
+soup_message_headers_clean_connection_headers (SoupMessageHeaders *hdrs)
+{
+ /* RFC 2616 14.10 */
+ const char *connection;
+ GSList *tokens, *t;
+
+ connection = soup_message_headers_get_list (hdrs, "Connection");
+ if (!connection)
+ return;
+
+ tokens = soup_header_parse_list (connection);
+ for (t = tokens; t; t = t->next)
+ soup_message_headers_remove (hdrs, t->data);
+ soup_header_free_list (tokens);
+}
+
+/**
* soup_message_headers_append:
* @hdrs: a #SoupMessageHeaders
* @name: the header name to add