MCPcopy Create free account
hub / github.com/imroc/req / parseGoAwayFrame

Function parseGoAwayFrame

internal/http3/frames.go:302–321  ·  view source on GitHub ↗
(r *countingByteReader, l uint64, streamID quic.StreamID, qlogger qlogwriter.Recorder)

Source from the content-addressed store, hash-verified

300}
301
302func parseGoAwayFrame(r *countingByteReader, l uint64, streamID quic.StreamID, qlogger qlogwriter.Recorder) (*goAwayFrame, error) {
303 frame := &goAwayFrame{}
304 startLen := r.NumRead
305 id, err := quicvarint.Read(r)
306 if err != nil {
307 return nil, err
308 }
309 if r.NumRead-startLen != int(l) {
310 return nil, errors.New("GOAWAY frame: inconsistent length")
311 }
312 frame.StreamID = quic.StreamID(id)
313 if qlogger != nil {
314 qlogger.RecordEvent(qlog.FrameParsed{
315 StreamID: streamID,
316 Raw: qlog.RawInfo{Length: r.NumRead, PayloadLength: int(l)},
317 Frame: qlog.Frame{Frame: qlog.GoAwayFrame{StreamID: frame.StreamID}},
318 })
319 }
320 return frame, nil
321}
322
323func (f *goAwayFrame) Append(b []byte) []byte {
324 b = quicvarint.Append(b, 0x7)

Callers 2

ParseNextMethod · 0.70

Calls 2

StreamIDMethod · 0.65
ReadMethod · 0.45

Tested by 1

Used in the wild real call sites across dependent graphs

searching dependent graphs…