Documentation
¶
Index ¶
- Constants
- type Dialer
- type ReceiveStream
- type SendStream
- type Server
- func (s *Server) Close() error
- func (s *Server) ListenAndServe() error
- func (s *Server) ListenAndServeTLS(certFile, keyFile string) error
- func (s *Server) Serve(conn net.PacketConn) error
- func (s *Server) ServeQUICConn(conn *quic.Conn) error
- func (s *Server) Upgrade(w http.ResponseWriter, r *http.Request) (*Session, error)
- type Session
- func (s *Session) AcceptStream(ctx context.Context) (*Stream, error)
- func (s *Session) AcceptUniStream(ctx context.Context) (*ReceiveStream, error)
- func (s *Session) CloseWithError(code SessionErrorCode, msg string) error
- func (s *Session) ConnectionState() quic.ConnectionState
- func (s *Session) Context() context.Context
- func (s *Session) LocalAddr() net.Addr
- func (s *Session) OpenStream() (*Stream, error)
- func (s *Session) OpenStreamSync(ctx context.Context) (*Stream, error)
- func (s *Session) OpenUniStream() (*SendStream, error)
- func (s *Session) OpenUniStreamSync(ctx context.Context) (str *SendStream, err error)
- func (s *Session) ReceiveDatagram(ctx context.Context) ([]byte, error)
- func (s *Session) RemoteAddr() net.Addr
- func (s *Session) SendDatagram(b []byte) error
- type SessionError
- type SessionErrorCode
- type Stream
- func (s *Stream) CancelRead(e StreamErrorCode)
- func (s *Stream) CancelWrite(e StreamErrorCode)
- func (s *Stream) Close() error
- func (s *Stream) Read(b []byte) (int, error)
- func (s *Stream) SetDeadline(t time.Time) error
- func (s *Stream) SetReadDeadline(t time.Time) error
- func (s *Stream) SetWriteDeadline(t time.Time) error
- func (s *Stream) StreamID() quic.StreamID
- func (s *Stream) Write(b []byte) (int, error)
- type StreamError
- type StreamErrorCode
Constants ¶
View Source
const WebTransportBufferedStreamRejectedErrorCode quic.StreamErrorCode = 0x3994bd84
WebTransportBufferedStreamRejectedErrorCode is the error code of the H3_WEBTRANSPORT_BUFFERED_STREAM_REJECTED error.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Dialer ¶
type Dialer struct {
// TLSClientConfig is the TLS client config used when dialing the QUIC connection.
// It must set the h3 ALPN.
TLSClientConfig *tls.Config
// QUICConfig is the QUIC config used when dialing the QUIC connection.
QUICConfig *quic.Config
// StreamReorderingTime is the time an incoming WebTransport stream that cannot be associated
// with a session is buffered.
// This can happen if the response to a CONNECT request (that creates a new session) is reordered,
// and arrives after the first WebTransport stream(s) for that session.
// Defaults to 5 seconds.
StreamReorderingTimeout time.Duration
// DialAddr is the function used to dial the underlying QUIC connection.
// If unset, quic.DialAddrEarly will be used.
DialAddr func(ctx context.Context, addr string, tlsCfg *tls.Config, cfg *quic.Config) (*quic.Conn, error)
// contains filtered or unexported fields
}
type ReceiveStream ¶
type ReceiveStream struct {
// contains filtered or unexported fields
}
func (*ReceiveStream) CancelRead ¶
func (s *ReceiveStream) CancelRead(e StreamErrorCode)
func (*ReceiveStream) SetReadDeadline ¶
func (s *ReceiveStream) SetReadDeadline(t time.Time) error
func (*ReceiveStream) StreamID ¶
func (s *ReceiveStream) StreamID() quic.StreamID
type SendStream ¶
type SendStream struct {
// contains filtered or unexported fields
}
func (*SendStream) CancelWrite ¶
func (s *SendStream) CancelWrite(e StreamErrorCode)
func (*SendStream) Close ¶ added in v0.9.1
func (s *SendStream) Close() error
func (*SendStream) SetWriteDeadline ¶
func (s *SendStream) SetWriteDeadline(t time.Time) error
func (*SendStream) StreamID ¶
func (s *SendStream) StreamID() quic.StreamID
type Server ¶
type Server struct {
H3 http3.Server
// ReorderingTimeout is the maximum time an incoming WebTransport stream that cannot be associated
// with a session is buffered. It is also the maximum time a WebTransport connection request is
// blocked waiting for the client's SETTINGS are received.
// This can happen if the CONNECT request (that creates a new session) is reordered, and arrives
// after the first WebTransport stream(s) for that session.
// Defaults to 5 seconds.
ReorderingTimeout time.Duration
// CheckOrigin is used to validate the request origin, thereby preventing cross-site request forgery.
// CheckOrigin returns true if the request Origin header is acceptable.
// If unset, a safe default is used: If the Origin header is set, it is checked that it
// matches the request's Host header.
CheckOrigin func(r *http.Request) bool
// contains filtered or unexported fields
}
func (*Server) ListenAndServe ¶
func (*Server) ListenAndServeTLS ¶
func (*Server) ServeQUICConn ¶
ServeQUICConn serves a single QUIC connection.
type Session ¶
type Session struct {
// contains filtered or unexported fields
}
func (*Session) AcceptUniStream ¶
func (s *Session) AcceptUniStream(ctx context.Context) (*ReceiveStream, error)
func (*Session) CloseWithError ¶
func (s *Session) CloseWithError(code SessionErrorCode, msg string) error
func (*Session) ConnectionState ¶
func (s *Session) ConnectionState() quic.ConnectionState
func (*Session) OpenStream ¶
func (*Session) OpenStreamSync ¶
func (*Session) OpenUniStream ¶
func (s *Session) OpenUniStream() (*SendStream, error)
func (*Session) OpenUniStreamSync ¶
func (s *Session) OpenUniStreamSync(ctx context.Context) (str *SendStream, err error)
func (*Session) ReceiveDatagram ¶
func (*Session) RemoteAddr ¶
func (*Session) SendDatagram ¶
type SessionError ¶
type SessionError struct {
Remote bool
ErrorCode SessionErrorCode
Message string
}
SessionError is a WebTransport connection error.
func (*SessionError) Error ¶
func (e *SessionError) Error() string
type SessionErrorCode ¶
type SessionErrorCode uint32
SessionErrorCode is an error code for session termination.
type Stream ¶
type Stream struct {
// contains filtered or unexported fields
}
func (*Stream) CancelRead ¶ added in v0.9.1
func (s *Stream) CancelRead(e StreamErrorCode)
func (*Stream) CancelWrite ¶ added in v0.9.1
func (s *Stream) CancelWrite(e StreamErrorCode)
func (*Stream) SetReadDeadline ¶ added in v0.9.1
func (*Stream) SetWriteDeadline ¶ added in v0.9.1
type StreamError ¶
type StreamError struct {
ErrorCode StreamErrorCode
Remote bool
}
StreamError is the error that is returned from stream operations (Read, Write) when the stream is canceled.
func (*StreamError) Error ¶
func (e *StreamError) Error() string
func (*StreamError) Is ¶
func (e *StreamError) Is(target error) bool
type StreamErrorCode ¶
type StreamErrorCode uint32
StreamErrorCode is an error code used for stream termination.
Source Files
¶
Click to show internal directories.
Click to hide internal directories.