summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSebastian Dröge <sebastian@centricular.com>2021-08-15 12:26:38 +0300
committerTim-Philipp Müller <tim@centricular.com>2021-08-15 14:04:40 +0100
commitf484e87c65de9ed5a6a47029835a4e9e04c7739a (patch)
treea39766b6ee0850b6b24eac72321f058669e021f2
parent7d9cdda764f2cc683050ae4bafe882a61abf63db (diff)
downloadgstreamer-plugins-good-f484e87c65de9ed5a6a47029835a4e9e04c7739a.tar.gz
souphttpsrc: Always use the content decoder but set `Accept-Encoding: identity` if no compression should be used
Some servers respond with gzip-encoded responses regardless of whether the request allowed it to be used in the response. By always having the content decoder enabled, these invalid responses can be decoded correctly while for well-behaving servers the `compress` property selects between allowing compressed responses or not. Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/issues/833 Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/1054>
-rw-r--r--ext/soup/gstsouphttpsrc.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/ext/soup/gstsouphttpsrc.c b/ext/soup/gstsouphttpsrc.c
index a89922293..ab3155efe 100644
--- a/ext/soup/gstsouphttpsrc.c
+++ b/ext/soup/gstsouphttpsrc.c
@@ -1509,8 +1509,10 @@ gst_soup_http_src_build_message (GstSoupHTTPSrc * src, const gchar * method)
soup_message_disable_feature (src->msg, SOUP_TYPE_COOKIE_JAR);
}
- if (!src->compress)
- soup_message_disable_feature (src->msg, SOUP_TYPE_CONTENT_DECODER);
+ if (!src->compress) {
+ soup_message_headers_append (src->msg->request_headers, "Accept-Encoding",
+ "identity");
+ }
soup_message_set_flags (src->msg, SOUP_MESSAGE_OVERWRITE_CHUNKS |
(src->automatic_redirect ? 0 : SOUP_MESSAGE_NO_REDIRECT));