You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Summary:
Every transport framed its egress datagrams in a different place: H3 wrapped
them in a `sendDatagram` override, while coro and qmux framed them in their
write loops. Because framing happened that late, a datagram too large to ever
fit on the wire was accepted by `sendDatagram` and then silently dropped by the
write loop. This adds a `frameDatagram` hook on `WtSessionBase` that each
transport overrides once, so what gets queued is already on-wire bytes. Coro
and qmux check their size limits while framing, so callers now get an error
back from `sendDatagram` instead of losing the datagram later. H2 has no
datagram egress path yet, so its override has no caller until the capsule
transports are wired up.
Reviewed By: sharmafb
Differential Revision: D115362262
fbshipit-source-id: c96e329f42aa3213ec193c2f1509681a4b229c9f
0 commit comments