diff options
| author | Fernando Serboncini <fserb@tailscale.com> | 2026-04-07 15:59:10 -0400 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2026-04-07 15:59:10 -0400 |
| commit | 07399275f1cb6d42faa9bff6bb8a7109cce516b4 (patch) | |
| tree | 1680a4ff5b9f1952d0bda8d0ecf736eb119e61d9 /sessionrecording | |
| parent | 8a7e160a6e624965206d5dfa0ba6355be936b6de (diff) | |
| download | tailscale-alt.tar.xz tailscale-alt.zip | |
k8s-operator/sessionrecording/ws: unify Read/Write frame parsing (#19227)alt
Consolidate the duplicated WebSocket frame-parsing logic from Read
and Write into a shared processFrames loop, fixing several bugs in
the process:
- Mixed control and data frames in a single Read/Write call buffer
were not handled: a control frame would cause merged data frames
to be skipped.
- Multiple data frames into one Write call weren't being correctly
parsed: only the first frame was processed, ignoring the rest in
the buffer.
- msg.isFinalized was being set before confirming the fragment was
complete, so an incomplete msg fragment, could've been sometimes
marked as finalized.
- Continuation frames without any payload were being treated as if
they didn't have stream ID, even thought the id is already known
from the initial fragment.
Fixes tailscale/corp#39583
Signed-off-by: Fernando Serboncini <fserb@tailscale.com>
Signed-off-by: chaosinthecrd <tom@tmlabs.co.uk>
Co-authored-by: chaosinthecrd <tom@tmlabs.co.uk>
Diffstat (limited to 'sessionrecording')
0 files changed, 0 insertions, 0 deletions
