diff options
author | Milan Crha <mcrha@redhat.com> | 2022-12-09 07:58:32 +0100 |
---|---|---|
committer | Patrick Griffis <pgriffis@igalia.com> | 2023-01-20 19:55:52 +0000 |
commit | 09b70ae1e37038e96c50240f340a5941706c8c5b (patch) | |
tree | ad3f8ddaff5e72752f901ae311a5543cff594123 | |
parent | 767c61f390840ba5c2c17a7fb3e49551816ceded (diff) | |
download | libsoup-09b70ae1e37038e96c50240f340a5941706c8c5b.tar.gz |
soup-message: Publicize API to force HTTP/1 version for sending
This way also the libsoup library users can force HTTP/1 version
only for some messages, not for the whole process (through
the environment variable).
Closes https://gitlab.gnome.org/GNOME/libsoup/-/issues/261
-rw-r--r-- | libsoup/soup-message.c | 39 | ||||
-rw-r--r-- | libsoup/soup-message.h | 5 |
2 files changed, 44 insertions, 0 deletions
diff --git a/libsoup/soup-message.c b/libsoup/soup-message.c index 4e6b28b9..ebe9e9f2 100644 --- a/libsoup/soup-message.c +++ b/libsoup/soup-message.c @@ -3316,3 +3316,42 @@ soup_message_is_misdirected_retry (SoupMessage *msg) return priv->is_misdirected_retry; } + +/** + * soup_message_set_force_http1: + * @msg: The #SoupMessage + * @value: value to set + * + * Sets whether HTTP/1 version should be used when sending this message. + * Some connections can still override it, if needed. + * + * Note the value is unset after the message send is finished. + * + * Since: 3.4 + */ +void +soup_message_set_force_http1 (SoupMessage *msg, + gboolean value) +{ + g_return_if_fail (SOUP_IS_MESSAGE (msg)); + + soup_message_set_force_http_version (msg, value ? SOUP_HTTP_1_1 : G_MAXUINT8); +} + +/** + * soup_message_get_force_http1: + * @msg: The #SoupMessage + * + * Returns whether HTTP/1 version is currently demanded for the @msg send. + * + * Returns: %TRUE, when HTTP/1 is demanded, %FALSE otherwise. + * + * Since: 3.4 + */ +gboolean +soup_message_get_force_http1 (SoupMessage *msg) +{ + g_return_val_if_fail (SOUP_IS_MESSAGE (msg), FALSE); + + return soup_message_get_force_http_version (msg) == SOUP_HTTP_1_1; +} diff --git a/libsoup/soup-message.h b/libsoup/soup-message.h index 69b2088f..f94d736b 100644 --- a/libsoup/soup-message.h +++ b/libsoup/soup-message.h @@ -195,5 +195,10 @@ GSocketAddress *soup_message_get_remote_address (SoupMessage *msg); SOUP_AVAILABLE_IN_ALL SoupMessageMetrics *soup_message_get_metrics (SoupMessage *msg); +SOUP_AVAILABLE_IN_3_4 +void soup_message_set_force_http1 (SoupMessage *msg, + gboolean value); +SOUP_AVAILABLE_IN_3_4 +gboolean soup_message_get_force_http1 (SoupMessage *msg); G_END_DECLS |