(r *countingByteReader, l uint64, streamID quic.StreamID, qlogger qlogwriter.Recorder)
| 300 | } |
| 301 | |
| 302 | func 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 | |
| 323 | func (f *goAwayFrame) Append(b []byte) []byte { |
| 324 | b = quicvarint.Append(b, 0x7) |
searching dependent graphs…