diff options
author | Carlos Garcia Campos <cgarcia@igalia.com> | 2022-10-18 13:07:06 +0200 |
---|---|---|
committer | Carlos Garcia Campos <cgarcia@igalia.com> | 2022-10-18 13:07:06 +0200 |
commit | 030ef0e472c8b0152f6efa9b19faa1dc58829546 (patch) | |
tree | 60c32225bd6c1d96fd2db4393aed7e08da6fe5b1 /libsoup/http2 | |
parent | 2332dd32e4916f05d0f462e7639eee88776242dd (diff) | |
download | libsoup-030ef0e472c8b0152f6efa9b19faa1dc58829546.tar.gz |
http2: content-sniffed should be emitted even for resources with no content
They are always considered text/plain like in http1.
Diffstat (limited to 'libsoup/http2')
-rw-r--r-- | libsoup/http2/soup-client-message-io-http2.c | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/libsoup/http2/soup-client-message-io-http2.c b/libsoup/http2/soup-client-message-io-http2.c index abee92ff..15278786 100644 --- a/libsoup/http2/soup-client-message-io-http2.c +++ b/libsoup/http2/soup-client-message-io-http2.c @@ -726,12 +726,15 @@ on_frame_recv_callback (nghttp2_session *session, g_assert_not_reached (); } + soup_message_got_headers (data->msg); + if (soup_message_get_status (data->msg) == SOUP_STATUS_NO_CONTENT || frame->hd.flags & NGHTTP2_FLAG_END_STREAM) { h2_debug (io, data, "Stream done"); - advance_state_from (data, STATE_READ_HEADERS, STATE_READ_DATA); + advance_state_from (data, STATE_READ_HEADERS, STATE_READ_DATA_START); + if (soup_message_has_content_sniffer (data->msg)) + soup_message_content_sniffed (data->msg, "text/plain", NULL); + advance_state_from (data, STATE_READ_DATA_START, STATE_READ_DATA); } - soup_message_got_headers (data->msg); - break; } case NGHTTP2_DATA: |