diff options
author | Sebastian Dröge <sebastian@centricular.com> | 2021-08-15 12:26:38 +0300 |
---|---|---|
committer | Tim-Philipp Müller <tim@centricular.com> | 2021-08-15 14:04:40 +0100 |
commit | f484e87c65de9ed5a6a47029835a4e9e04c7739a (patch) | |
tree | a39766b6ee0850b6b24eac72321f058669e021f2 | |
parent | 7d9cdda764f2cc683050ae4bafe882a61abf63db (diff) | |
download | gstreamer-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.c | 6 |
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)); |