Skip to content

Commit 436aee5

Browse files
committed
Start http1 header read timeout even when 0 bytes are read
1 parent d342c2c commit 436aee5

File tree

1 file changed

+11
-8
lines changed

1 file changed

+11
-8
lines changed

src/proto/h1/role.rs

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -67,17 +67,12 @@ pub(super) fn parse_headers<T>(
6767
where
6868
T: Http1Transaction,
6969
{
70-
// If the buffer is empty, don't bother entering the span, it's just noise.
71-
if bytes.is_empty() {
72-
return Ok(None);
73-
}
74-
75-
let span = trace_span!("parse_headers");
76-
let _s = span.enter();
77-
7870
#[cfg(all(feature = "server", feature = "runtime"))]
7971
if !*ctx.h1_header_read_timeout_running {
8072
if let Some(h1_header_read_timeout) = ctx.h1_header_read_timeout {
73+
let span = trace_span!("parse_headers");
74+
let _s = span.enter();
75+
8176
let deadline = Instant::now() + h1_header_read_timeout;
8277
*ctx.h1_header_read_timeout_running = true;
8378
match ctx.h1_header_read_timeout_fut {
@@ -94,6 +89,14 @@ where
9489
}
9590
}
9691

92+
// If the buffer is empty, don't bother entering the span, it's just noise.
93+
if bytes.is_empty() {
94+
return Ok(None);
95+
}
96+
97+
let span = trace_span!("parse_headers");
98+
let _s = span.enter();
99+
97100
T::parse(bytes, ctx)
98101
}
99102

0 commit comments

Comments
 (0)