Documentation
¶
Index ¶
- Constants
- func GetNormalizedPath(c *SplitHttpConfig) string
- func GetNormalizedQuery(c *SplitHttpConfig) string
- func GetNormalizedScMaxBufferedPosts(c *SplitHttpConfig) int
- func GetRequestHeader(c *SplitHttpConfig, rawURL string) (http.Header, error)
- func Init(m *XmuxConfig)
- func IsValidHTTPHost(request string, config string) bool
- func NewUploadQueue(maxPackets int) *uploadQueue
- func Rand(c RangeConfig) int32
- func WriteResponseHeader(c *SplitHttpConfig, writer http.ResponseWriter)
- type DefaultDialerClient
- func (c *DefaultDialerClient) IsClosed() bool
- func (c *DefaultDialerClient) OpenStream(ctx context.Context, url string, body io.Reader, uploadOnly bool) (wrc io.ReadCloser, remoteAddr, localAddr gonet.Addr, err error)
- func (c *DefaultDialerClient) PostPacket(ctx context.Context, url string, body io.Reader, contentLength int64) error
- type DialerClient
- type DownConfig
- type DownConfig_Reality
- type DownConfig_Tls
- type FakePacketConn
- type H1Conn
- type Listener
- type Packet
- type RangeConfig
- func GetNormalizedCMaxReuseTimes(m *XmuxConfig) RangeConfig
- func GetNormalizedHMaxRequestTimes(m *XmuxConfig) RangeConfig
- func GetNormalizedHMaxReusableSecs(m *XmuxConfig) RangeConfig
- func GetNormalizedMaxConcurrency(m *XmuxConfig) RangeConfig
- func GetNormalizedMaxConnections(m *XmuxConfig) RangeConfig
- func GetNormalizedScMaxEachPostBytes(c *SplitHttpConfig) RangeConfig
- func GetNormalizedScMinPostsIntervalMs(c *SplitHttpConfig) RangeConfig
- func GetNormalizedScStreamUpServerSecs(c *SplitHttpConfig) RangeConfig
- func GetNormalizedXPaddingBytes(c *SplitHttpConfig) RangeConfig
- type RangeConfig_builder
- type SplitHttpConfig
- type SplitHttpConfig_builder
- type WaitReadCloser
- type XhttpDialer
- type XmuxClient
- type XmuxConfig
- type XmuxConfig_builder
- type XmuxConn
- type XmuxManager
Constants ¶
View Source
const ChromeH2KeepAlivePeriod = 45 * time.Second
consistent with chrome
View Source
const ConnIdleTimeout = 300 * time.Second
View Source
const QuicgoH3KeepAlivePeriod = 10 * time.Second
consistent with quic-go
Variables ¶
This section is empty.
Functions ¶
func GetNormalizedPath ¶ added in v1.1.2
func GetNormalizedPath(c *SplitHttpConfig) string
func GetNormalizedQuery ¶ added in v1.1.2
func GetNormalizedQuery(c *SplitHttpConfig) string
func GetNormalizedScMaxBufferedPosts ¶ added in v1.1.2
func GetNormalizedScMaxBufferedPosts(c *SplitHttpConfig) int
func GetRequestHeader ¶ added in v1.1.2
func GetRequestHeader(c *SplitHttpConfig, rawURL string) (http.Header, error)
func Init ¶ added in v1.1.2
func Init(m *XmuxConfig)
func IsValidHTTPHost ¶
func NewUploadQueue ¶
func NewUploadQueue(maxPackets int) *uploadQueue
func Rand ¶ added in v1.1.2
func Rand(c RangeConfig) int32
func WriteResponseHeader ¶ added in v1.1.2
func WriteResponseHeader(c *SplitHttpConfig, writer http.ResponseWriter)
Types ¶
type DefaultDialerClient ¶
type DefaultDialerClient struct {
// contains filtered or unexported fields
}
implements splithttp.DialerClient in terms of direct network connections
func (*DefaultDialerClient) IsClosed ¶
func (c *DefaultDialerClient) IsClosed() bool
func (*DefaultDialerClient) OpenStream ¶
func (*DefaultDialerClient) PostPacket ¶
type DialerClient ¶
type DialerClient interface {
IsClosed() bool
// ctx, url, body, uploadOnly
OpenStream(context.Context, string, io.Reader, bool) (io.ReadCloser, net.Addr, net.Addr, error)
// ctx, url, body, contentLength
PostPacket(context.Context, string, io.Reader, int64) error
}
interface to abstract between use of browser dialer, vs net/http
type DownConfig ¶
type DownConfig = xhpb.DownConfig
type DownConfig_Reality ¶
type DownConfig_Reality = xhpb.DownConfig_Reality
type DownConfig_Tls ¶
type DownConfig_Tls = xhpb.DownConfig_Tls
type FakePacketConn ¶
func (*FakePacketConn) LocalAddr ¶
func (c *FakePacketConn) LocalAddr() net.Addr
func (*FakePacketConn) SetReadBuffer ¶
func (c *FakePacketConn) SetReadBuffer(bytes int) error
type RangeConfig ¶
type RangeConfig = xhpb.RangeConfig
func GetNormalizedCMaxReuseTimes ¶ added in v1.1.2
func GetNormalizedCMaxReuseTimes(m *XmuxConfig) RangeConfig
func GetNormalizedHMaxRequestTimes ¶ added in v1.1.2
func GetNormalizedHMaxRequestTimes(m *XmuxConfig) RangeConfig
func GetNormalizedHMaxReusableSecs ¶ added in v1.1.2
func GetNormalizedHMaxReusableSecs(m *XmuxConfig) RangeConfig
func GetNormalizedMaxConcurrency ¶ added in v1.1.2
func GetNormalizedMaxConcurrency(m *XmuxConfig) RangeConfig
func GetNormalizedMaxConnections ¶ added in v1.1.2
func GetNormalizedMaxConnections(m *XmuxConfig) RangeConfig
func GetNormalizedScMaxEachPostBytes ¶ added in v1.1.2
func GetNormalizedScMaxEachPostBytes(c *SplitHttpConfig) RangeConfig
func GetNormalizedScMinPostsIntervalMs ¶ added in v1.1.2
func GetNormalizedScMinPostsIntervalMs(c *SplitHttpConfig) RangeConfig
func GetNormalizedScStreamUpServerSecs ¶ added in v1.1.2
func GetNormalizedScStreamUpServerSecs(c *SplitHttpConfig) RangeConfig
func GetNormalizedXPaddingBytes ¶ added in v1.1.2
func GetNormalizedXPaddingBytes(c *SplitHttpConfig) RangeConfig
type RangeConfig_builder ¶ added in v1.1.2
type RangeConfig_builder = xhpb.RangeConfig_builder
type SplitHttpConfig ¶
type SplitHttpConfig = xhpb.SplitHttpConfig
type SplitHttpConfig_builder ¶ added in v1.1.2
type SplitHttpConfig_builder = xhpb.SplitHttpConfig_builder
type WaitReadCloser ¶
type WaitReadCloser struct {
Wait chan struct{}
io.ReadCloser
}
func (*WaitReadCloser) Close ¶
func (w *WaitReadCloser) Close() error
func (*WaitReadCloser) Set ¶
func (w *WaitReadCloser) Set(rc io.ReadCloser)
type XhttpDialer ¶
type XhttpDialer struct {
// contains filtered or unexported fields
}
func NewXhttpDialer ¶
func NewXhttpDialer(config *SplitHttpConfig, sc security.Engine, dialer i.DialerListener, dnsServer i.ECHResolver) (*XhttpDialer, error)
func (*XhttpDialer) Dial ¶
func (x *XhttpDialer) Dial(ctx context.Context, dest net.Destination) (net.Conn, error)
type XmuxClient ¶
type XmuxConfig ¶
type XmuxConfig = xhpb.XmuxConfig
type XmuxConfig_builder ¶ added in v1.1.2
type XmuxConfig_builder = xhpb.XmuxConfig_builder
type XmuxManager ¶
type XmuxManager struct {
// contains filtered or unexported fields
}
func NewXmuxManager ¶
func NewXmuxManager(xmuxConfig XmuxConfig, newConnFunc func() XmuxConn) *XmuxManager
func (*XmuxManager) GetXmuxClient ¶
func (m *XmuxManager) GetXmuxClient(ctx context.Context) *XmuxClient
Click to show internal directories.
Click to hide internal directories.