const frameHeaderLen …
var padZeros …
type FrameType …
const FrameData …
const FrameHeaders …
const FramePriority …
const FrameRSTStream …
const FrameSettings …
const FramePushPromise …
const FramePing …
const FrameGoAway …
const FrameWindowUpdate …
const FrameContinuation …
var frameName …
func (t FrameType) String() string { … }
type Flags …
func (f Flags) Has(v Flags) bool { … }
const FlagDataEndStream …
const FlagDataPadded …
const FlagHeadersEndStream …
const FlagHeadersEndHeaders …
const FlagHeadersPadded …
const FlagHeadersPriority …
const FlagSettingsAck …
const FlagPingAck …
const FlagContinuationEndHeaders …
const FlagPushPromiseEndHeaders …
const FlagPushPromisePadded …
var flagName …
type frameParser …
var frameParsers …
func typeFrameParser(t FrameType) frameParser { … }
type FrameHeader …
func (h FrameHeader) Header() FrameHeader { … }
func (h FrameHeader) String() string { … }
func (h FrameHeader) writeDebug(buf *bytes.Buffer) { … }
func (h *FrameHeader) checkValid() { … }
func (h *FrameHeader) invalidate() { … }
var fhBytes …
func ReadFrameHeader(r io.Reader) (FrameHeader, error) { … }
func readFrameHeader(buf []byte, r io.Reader) (FrameHeader, error) { … }
type Frame …
type Framer …
func (fr *Framer) maxHeaderListSize() uint32 { … }
func (f *Framer) startWrite(ftype FrameType, flags Flags, streamID uint32) { … }
func (f *Framer) endWrite() error { … }
func (f *Framer) logWrite() { … }
func (f *Framer) writeByte(v byte) { … }
func (f *Framer) writeBytes(v []byte) { … }
func (f *Framer) writeUint16(v uint16) { … }
func (f *Framer) writeUint32(v uint32) { … }
const minMaxFrameSize …
const maxFrameSize …
func (fr *Framer) SetReuseFrames() { … }
type frameCache …
func (fc *frameCache) getDataFrame() *DataFrame { … }
func NewFramer(w io.Writer, r io.Reader) *Framer { … }
func (fr *Framer) SetMaxReadFrameSize(v uint32) { … }
func (fr *Framer) ErrorDetail() error { … }
var ErrFrameTooLarge …
func terminalReadFrameError(err error) bool { … }
func (fr *Framer) ReadFrame() (Frame, error) { … }
func (fr *Framer) connError(code ErrCode, reason string) error { … }
func (fr *Framer) checkFrameOrder(f Frame) error { … }
type DataFrame …
func (f *DataFrame) StreamEnded() bool { … }
func (f *DataFrame) Data() []byte { … }
func parseDataFrame(fc *frameCache, fh FrameHeader, countError func(string), payload []byte) (Frame, error) { … }
var errStreamID …
var errDepStreamID …
var errPadLength …
var errPadBytes …
func validStreamIDOrZero(streamID uint32) bool { … }
func validStreamID(streamID uint32) bool { … }
func (f *Framer) WriteData(streamID uint32, endStream bool, data []byte) error { … }
func (f *Framer) WriteDataPadded(streamID uint32, endStream bool, data, pad []byte) error { … }
func (f *Framer) startWriteDataPadded(streamID uint32, endStream bool, data, pad []byte) error { … }
type SettingsFrame …
func parseSettingsFrame(_ *frameCache, fh FrameHeader, countError func(string), p []byte) (Frame, error) { … }
func (f *SettingsFrame) IsAck() bool { … }
func (f *SettingsFrame) Value(id SettingID) (v uint32, ok bool) { … }
func (f *SettingsFrame) Setting(i int) Setting { … }
func (f *SettingsFrame) NumSettings() int { … }
func (f *SettingsFrame) HasDuplicates() bool { … }
func (f *SettingsFrame) ForeachSetting(fn func(Setting) error) error { … }
func (f *Framer) WriteSettings(settings ...Setting) error { … }
func (f *Framer) WriteSettingsAck() error { … }
type PingFrame …
func (f *PingFrame) IsAck() bool { … }
func parsePingFrame(_ *frameCache, fh FrameHeader, countError func(string), payload []byte) (Frame, error) { … }
func (f *Framer) WritePing(ack bool, data [8]byte) error { … }
type GoAwayFrame …
func (f *GoAwayFrame) DebugData() []byte { … }
func parseGoAwayFrame(_ *frameCache, fh FrameHeader, countError func(string), p []byte) (Frame, error) { … }
func (f *Framer) WriteGoAway(maxStreamID uint32, code ErrCode, debugData []byte) error { … }
type UnknownFrame …
func (f *UnknownFrame) Payload() []byte { … }
func parseUnknownFrame(_ *frameCache, fh FrameHeader, countError func(string), p []byte) (Frame, error) { … }
type WindowUpdateFrame …
func parseWindowUpdateFrame(_ *frameCache, fh FrameHeader, countError func(string), p []byte) (Frame, error) { … }
func (f *Framer) WriteWindowUpdate(streamID, incr uint32) error { … }
type HeadersFrame …
func (f *HeadersFrame) HeaderBlockFragment() []byte { … }
func (f *HeadersFrame) HeadersEnded() bool { … }
func (f *HeadersFrame) StreamEnded() bool { … }
func (f *HeadersFrame) HasPriority() bool { … }
func parseHeadersFrame(_ *frameCache, fh FrameHeader, countError func(string), p []byte) (_ Frame, err error) { … }
type HeadersFrameParam …
func (f *Framer) WriteHeaders(p HeadersFrameParam) error { … }
type PriorityFrame …
type PriorityParam …
func (p PriorityParam) IsZero() bool { … }
func parsePriorityFrame(_ *frameCache, fh FrameHeader, countError func(string), payload []byte) (Frame, error) { … }
func (f *Framer) WritePriority(streamID uint32, p PriorityParam) error { … }
type RSTStreamFrame …
func parseRSTStreamFrame(_ *frameCache, fh FrameHeader, countError func(string), p []byte) (Frame, error) { … }
func (f *Framer) WriteRSTStream(streamID uint32, code ErrCode) error { … }
type ContinuationFrame …
func parseContinuationFrame(_ *frameCache, fh FrameHeader, countError func(string), p []byte) (Frame, error) { … }
func (f *ContinuationFrame) HeaderBlockFragment() []byte { … }
func (f *ContinuationFrame) HeadersEnded() bool { … }
func (f *Framer) WriteContinuation(streamID uint32, endHeaders bool, headerBlockFragment []byte) error { … }
type PushPromiseFrame …
func (f *PushPromiseFrame) HeaderBlockFragment() []byte { … }
func (f *PushPromiseFrame) HeadersEnded() bool { … }
func parsePushPromise(_ *frameCache, fh FrameHeader, countError func(string), p []byte) (_ Frame, err error) { … }
type PushPromiseParam …
func (f *Framer) WritePushPromise(p PushPromiseParam) error { … }
func (f *Framer) WriteRawFrame(t FrameType, flags Flags, streamID uint32, payload []byte) error { … }
func readByte(p []byte) (remain []byte, b byte, err error) { … }
func readUint32(p []byte) (remain []byte, v uint32, err error) { … }
type streamEnder …
type headersEnder …
type headersOrContinuation …
type MetaHeadersFrame …
func (mh *MetaHeadersFrame) PseudoValue(pseudo string) string { … }
func (mh *MetaHeadersFrame) RegularFields() []hpack.HeaderField { … }
func (mh *MetaHeadersFrame) PseudoFields() []hpack.HeaderField { … }
func (mh *MetaHeadersFrame) checkPseudos() error { … }
func (fr *Framer) maxHeaderStringLen() int { … }
func (fr *Framer) readMetaFrame(hf *HeadersFrame) (Frame, error) { … }
func summarizeFrame(f Frame) string { … }