-
Notifications
You must be signed in to change notification settings - Fork 10.4k
Closed
Labels
HTTP3area-networkingIncludes servers, yarp, json patch, bedrock, websockets, http client factory, and http abstractionsIncludes servers, yarp, json patch, bedrock, websockets, http client factory, and http abstractions
Milestone
Description
Spec says that Kestrel should return H3_FRAME_UNEXPECTED protocol error for unexpected frames
https://tools.ietf.org/html/draft-ietf-quic-http-33#section-4.1
Currently doing:
aspnetcore/src/Servers/Kestrel/Core/src/Internal/Http3/Http3Stream.cs
Lines 440 to 459 in 45867e0
private Task ProcessHttp3Stream<TContext>(IHttpApplication<TContext> application, in ReadOnlySequence<byte> payload) where TContext : notnull | |
{ | |
switch (_incomingFrame.Type) | |
{ | |
case Http3FrameType.Data: | |
return ProcessDataFrameAsync(payload); | |
case Http3FrameType.Headers: | |
return ProcessHeadersFrameAsync(application, payload); | |
// need to be on control stream | |
case Http3FrameType.DuplicatePush: | |
case Http3FrameType.PushPromise: | |
case Http3FrameType.Settings: | |
case Http3FrameType.GoAway: | |
case Http3FrameType.CancelPush: | |
case Http3FrameType.MaxPushId: | |
throw new Http3ConnectionException("HTTP_FRAME_UNEXPECTED"); | |
default: | |
return ProcessUnknownFrameAsync(); | |
} | |
} |
Also check other places where Kestrel processes frame types.
Metadata
Metadata
Assignees
Labels
HTTP3area-networkingIncludes servers, yarp, json patch, bedrock, websockets, http client factory, and http abstractionsIncludes servers, yarp, json patch, bedrock, websockets, http client factory, and http abstractions