diff options
author | Dan Winship <danw@src.gnome.org> | 2009-04-03 00:25:51 +0000 |
---|---|---|
committer | Dan Winship <danw@src.gnome.org> | 2009-04-03 00:25:51 +0000 |
commit | 2775879351028fe0f1a1387150f212d72f806bb6 (patch) | |
tree | bb108da2cd7e5f7fbe1b3c8dcddcb3de3d3d0205 /libsoup/soup-message.c | |
parent | e9ba1d1933517fa83bfefe7c6de52f0715f62b40 (diff) | |
download | libsoup-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.c | 8 |
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) |