summaryrefslogtreecommitdiff
path: root/libsoup/soup-message.c
diff options
context:
space:
mode:
authorDan Winship <danw@src.gnome.org>2009-04-03 00:25:51 +0000
committerDan Winship <danw@src.gnome.org>2009-04-03 00:25:51 +0000
commit2775879351028fe0f1a1387150f212d72f806bb6 (patch)
treebb108da2cd7e5f7fbe1b3c8dcddcb3de3d3d0205 /libsoup/soup-message.c
parente9ba1d1933517fa83bfefe7c6de52f0715f62b40 (diff)
downloadlibsoup-2775879351028fe0f1a1387150f212d72f806bb6.tar.gz
Bug 576760 – soup_message_headers_get_content_type returns bad headers
* libsoup/soup-message-headers.c (soup_message_headers_get_one) (soup_message_headers_get_list): New replacements for soup_message_headers_get(), indicating explicitly whether the caller expects the header to be a list or not; for non-list-type headers, if there's more than one, the second one should be ignored rather than concatenated to the first. (soup_message_headers_get): deprecate this. * libsoup/*.c: * tests/*.c: Update to use soup_message_headers_get_one() or _get_list() as appropriate. * tests/header-parsing.c (do_content_type_tests): Add some tests of Content-Type parsing/setting, including making sure that duplicate Content-Type headers are ignored. * docs/reference/libsoup-2.4-sections.txt: update svn path=/trunk/; revision=1258
Diffstat (limited to 'libsoup/soup-message.c')
-rw-r--r--libsoup/soup-message.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/libsoup/soup-message.c b/libsoup/soup-message.c
index a600f0f0..68a21c1e 100644
--- a/libsoup/soup-message.c
+++ b/libsoup/soup-message.c
@@ -919,7 +919,7 @@ header_handler_metamarshal (GClosure *closure, GValue *return_value,
return;
hdrs = priv->server_side ? msg->request_headers : msg->response_headers;
- if (soup_message_headers_get (hdrs, header_name)) {
+ if (soup_message_headers_get_one (hdrs, header_name)) {
closure->marshal (closure, return_value, n_param_values,
param_values, invocation_hint,
((GCClosure *)closure)->callback);
@@ -1293,8 +1293,10 @@ soup_message_is_keepalive (SoupMessage *msg)
{
const char *c_conn, *s_conn;
- c_conn = soup_message_headers_get (msg->request_headers, "Connection");
- s_conn = soup_message_headers_get (msg->response_headers, "Connection");
+ 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)