diff options
author | Carlos Garcia Campos <cgarcia@igalia.com> | 2022-04-22 13:15:22 +0200 |
---|---|---|
committer | Carlos Garcia Campos <cgarcia@igalia.com> | 2022-04-22 13:19:44 +0200 |
commit | 5a57bdee5078b94ccecdb00b0b88204c9c7a6585 (patch) | |
tree | 8ff134951f64f113727f23961213f84f5a138eaa /libsoup/http2 | |
parent | 4fd79c8f9b7f75c57b54dfc5a44dedcd662be4f7 (diff) | |
download | libsoup-5a57bdee5078b94ccecdb00b0b88204c9c7a6585.tar.gz |
http2: handle HTTP_1_1_REQUIRED stream error
Force http version in message to 1.1 and mark it to be restarted.
Fixes #275
Diffstat (limited to 'libsoup/http2')
-rw-r--r-- | libsoup/http2/soup-client-message-io-http2.c | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/libsoup/http2/soup-client-message-io-http2.c b/libsoup/http2/soup-client-message-io-http2.c index e0d96241..6e9e48b3 100644 --- a/libsoup/http2/soup-client-message-io-http2.c +++ b/libsoup/http2/soup-client-message-io-http2.c @@ -960,8 +960,16 @@ on_stream_close_callback (nghttp2_session *session, data->io->in_callback++; - if (error_code == NGHTTP2_REFUSED_STREAM && data->state < STATE_READ_DATA) + switch (error_code) { + case NGHTTP2_REFUSED_STREAM: + if (data->state < STATE_READ_DATA) + data->can_be_restarted = TRUE; + break; + case NGHTTP2_HTTP_1_1_REQUIRED: + soup_message_set_force_http_version (data->item->msg, SOUP_HTTP_1_1); data->can_be_restarted = TRUE; + break; + } data->io->in_callback--; return 0; |