Skip to content

Commit c011523

Browse files
committed
fix: send PROTOCOL_ERROR instead of REFUSED_STREAM for oversized headers
1 parent 7dbb5c5 commit c011523

File tree

2 files changed

+5
-5
lines changed

2 files changed

+5
-5
lines changed

src/proto/streams/streams.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -504,15 +504,15 @@ impl Inner {
504504

505505
actions.send.schedule_implicit_reset(
506506
stream,
507-
Reason::REFUSED_STREAM,
507+
Reason::PROTOCOL_ERROR,
508508
counts,
509509
&mut actions.task);
510510

511511
actions.recv.enqueue_reset_expiration(stream, counts);
512512

513513
Ok(())
514514
} else {
515-
Err(Error::library_reset(stream.id, Reason::REFUSED_STREAM))
515+
Err(Error::library_reset(stream.id, Reason::PROTOCOL_ERROR))
516516
}
517517
},
518518
Err(RecvHeaderBlockError::State(err)) => Err(err),

tests/h2-tests/tests/client_request.rs

+3-3
Original file line numberDiff line numberDiff line change
@@ -844,7 +844,7 @@ async fn recv_too_big_headers() {
844844
srv.send_frame(frames::headers(3).response(200)).await;
845845
// no reset for 1, since it's closed anyway
846846
// but reset for 3, since server hasn't closed stream
847-
srv.recv_frame(frames::reset(3).refused()).await;
847+
srv.recv_frame(frames::reset(3).protocol_error()).await;
848848
idle_ms(10).await;
849849
};
850850

@@ -865,7 +865,7 @@ async fn recv_too_big_headers() {
865865
// waiting for a response.
866866
let req1 = tokio::spawn(async move {
867867
let err = req1.expect("send_request").0.await.expect_err("response1");
868-
assert_eq!(err.reason(), Some(Reason::REFUSED_STREAM));
868+
assert_eq!(err.reason(), Some(Reason::PROTOCOL_ERROR));
869869
});
870870

871871
let request = Request::builder()
@@ -876,7 +876,7 @@ async fn recv_too_big_headers() {
876876
let req2 = client.send_request(request, true);
877877
let req2 = tokio::spawn(async move {
878878
let err = req2.expect("send_request").0.await.expect_err("response2");
879-
assert_eq!(err.reason(), Some(Reason::REFUSED_STREAM));
879+
assert_eq!(err.reason(), Some(Reason::PROTOCOL_ERROR));
880880
});
881881

882882
let conn = tokio::spawn(async move {

0 commit comments

Comments
 (0)