summaryrefslogtreecommitdiff
path: root/libsoup/http2
diff options
context:
space:
mode:
authorCarlos Garcia Campos <cgarcia@igalia.com>2022-10-18 13:07:06 +0200
committerCarlos Garcia Campos <cgarcia@igalia.com>2022-10-18 13:07:06 +0200
commit030ef0e472c8b0152f6efa9b19faa1dc58829546 (patch)
tree60c32225bd6c1d96fd2db4393aed7e08da6fe5b1 /libsoup/http2
parent2332dd32e4916f05d0f462e7639eee88776242dd (diff)
downloadlibsoup-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.c9
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: