summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBastien Nocera <hadess@hadess.net>2011-11-16 13:15:52 +0000
committerBastien Nocera <hadess@hadess.net>2011-11-16 13:18:09 +0000
commit6929e9f9661b4d1e68f8912d8e60107366255a47 (patch)
tree6237bbc7557c0ef6be02fdcd4ea202326a12e923
parent47a61b04fe209fc76b92de874c446d0a3f44c276 (diff)
downloadgvfs-6929e9f9661b4d1e68f8912d8e60107366255a47.tar.gz
http: Automatically decompress gzip'ed streams
The content-encoding of served files was completely ignored and application, even though they were getting a content-type of "text/xml" for example, were served gzip'ed data. Enable the content decoder. Fixes parsing of multiple RSS feeds in totem-pl-parser. https://bugzilla.gnome.org/show_bug.cgi?id=664200
-rw-r--r--daemon/gvfsbackendhttp.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/daemon/gvfsbackendhttp.c b/daemon/gvfsbackendhttp.c
index 90208d28..eaad965d 100644
--- a/daemon/gvfsbackendhttp.c
+++ b/daemon/gvfsbackendhttp.c
@@ -83,6 +83,7 @@ g_vfs_backend_http_init (GVfsBackendHttp *backend)
const char *debug;
SoupSessionFeature *proxy_resolver;
SoupSessionFeature *cookie_jar;
+ SoupSessionFeature *content_decoder;
g_vfs_backend_set_user_visible (G_VFS_BACKEND (backend), FALSE);
@@ -111,6 +112,12 @@ g_vfs_backend_http_init (GVfsBackendHttp *backend)
g_object_set (backend->session, "accept-language-auto", TRUE, NULL);
g_object_set (backend->session_async, "accept-language-auto", TRUE, NULL);
+ /* Handle decompression automatically */
+ content_decoder = g_object_new (SOUP_TYPE_CONTENT_DECODER, NULL);
+ soup_session_add_feature (backend->session, content_decoder);
+ soup_session_add_feature (backend->session_async, content_decoder);
+ g_object_unref (content_decoder);
+
/* Logging */
debug = g_getenv ("GVFS_HTTP_DEBUG");
if (debug)