Documentation
¶
Index ¶
- Constants
- func NewXPlusPacketConn(conn net.PacketConn, key []byte) net.PacketConn
- func ParsePorts(serverPorts []string) ([]uint16, error)
- func WriteClientHello(stream io.Writer, hello ClientHello) error
- func WriteClientRequest(request ClientRequest, payload []byte) *buf.Buffer
- func WriteServerHello(stream io.Writer, hello ServerHello) error
- func WriteServerResponse(stream quic.Stream, response ServerResponse) error
- type Client
- type ClientHello
- type ClientOptions
- type ClientRequest
- type HopPacketConn
- func (c *HopPacketConn) Close() error
- func (c *HopPacketConn) LocalAddr() net.Addr
- func (c *HopPacketConn) ReadFrom(b []byte) (n int, addr net.Addr, err error)
- func (c *HopPacketConn) SetDeadline(t time.Time) error
- func (c *HopPacketConn) SetReadBuffer(bytes int) error
- func (c *HopPacketConn) SetReadDeadline(t time.Time) error
- func (c *HopPacketConn) SetWriteBuffer(bytes int) error
- func (c *HopPacketConn) SetWriteDeadline(t time.Time) error
- func (c *HopPacketConn) SyscallConn() (syscall.RawConn, error)
- func (c *HopPacketConn) WriteTo(b []byte, _ net.Addr) (n int, err error)
- type ServerHandler
- type ServerHello
- type ServerResponse
- type Service
- type ServiceOptions
- type VectorisedXPlusConn
- type XPlusPacketConn
Constants ¶
View Source
const ( MbpsToBps = 125000 MinSpeedBPS = 16384 DefaultALPN = "hysteria" DefaultStreamReceiveWindow = 8388608 // 8MB DefaultConnReceiveWindow = DefaultStreamReceiveWindow * 5 / 2 // 20MB DefaultMaxIdleTimeout = 30 * time.Second DefaultKeepAlivePeriod = 10 * time.Second )
View Source
const ( ProtocolVersion = 3 ProtocolTimeout = 10 * time.Second ErrorCodeGeneric = 0 ErrorCodeProtocolError = 1 ErrorCodeAuthError = 2 )
Variables ¶
This section is empty.
Functions ¶
func NewXPlusPacketConn ¶
func NewXPlusPacketConn(conn net.PacketConn, key []byte) net.PacketConn
func ParsePorts ¶
func WriteClientHello ¶
func WriteClientHello(stream io.Writer, hello ClientHello) error
func WriteClientRequest ¶
func WriteClientRequest(request ClientRequest, payload []byte) *buf.Buffer
func WriteServerHello ¶
func WriteServerHello(stream io.Writer, hello ServerHello) error
func WriteServerResponse ¶
func WriteServerResponse(stream quic.Stream, response ServerResponse) error
Types ¶
type Client ¶
type Client struct {
// contains filtered or unexported fields
}
func NewClient ¶
func NewClient(options ClientOptions) (*Client, error)
func (*Client) CloseWithError ¶
func (*Client) ListenPacket ¶
type ClientHello ¶
func ReadClientHello ¶
func ReadClientHello(reader io.Reader) (*ClientHello, error)
type ClientOptions ¶
type ClientOptions struct {
Context context.Context
Dialer N.Dialer
Logger logger.Logger
BrutalDebug bool
ServerAddress M.Socksaddr
ServerPorts []string
HopInterval time.Duration
SendBPS uint64
ReceiveBPS uint64
XPlusPassword string
Password string
TLSConfig aTLS.Config
UDPDisabled bool
ConnReceiveWindow uint64
StreamReceiveWindow uint64
DisableMTUDiscovery bool
}
type ClientRequest ¶
func ReadClientRequest ¶
func ReadClientRequest(stream io.Reader) (*ClientRequest, error)
type HopPacketConn ¶
type HopPacketConn struct {
// contains filtered or unexported fields
}
func NewHopPacketConn ¶
func (*HopPacketConn) Close ¶
func (c *HopPacketConn) Close() error
func (*HopPacketConn) LocalAddr ¶
func (c *HopPacketConn) LocalAddr() net.Addr
func (*HopPacketConn) SetDeadline ¶
func (c *HopPacketConn) SetDeadline(t time.Time) error
func (*HopPacketConn) SetReadBuffer ¶
func (c *HopPacketConn) SetReadBuffer(bytes int) error
func (*HopPacketConn) SetReadDeadline ¶
func (c *HopPacketConn) SetReadDeadline(t time.Time) error
func (*HopPacketConn) SetWriteBuffer ¶
func (c *HopPacketConn) SetWriteBuffer(bytes int) error
func (*HopPacketConn) SetWriteDeadline ¶
func (c *HopPacketConn) SetWriteDeadline(t time.Time) error
func (*HopPacketConn) SyscallConn ¶
func (c *HopPacketConn) SyscallConn() (syscall.RawConn, error)
type ServerHandler ¶
type ServerHandler interface {
N.TCPConnectionHandlerEx
N.UDPConnectionHandlerEx
}
type ServerHello ¶
func ReadServerHello ¶
func ReadServerHello(stream io.Reader) (*ServerHello, error)
type ServerResponse ¶
func ReadServerResponse ¶
func ReadServerResponse(stream io.Reader) (*ServerResponse, error)
type Service ¶
type Service[U comparable] struct { // contains filtered or unexported fields }
func NewService ¶
func NewService[U comparable](options ServiceOptions) (*Service[U], error)
func (*Service[U]) UpdateUsers ¶
type ServiceOptions ¶
type ServiceOptions struct {
Context context.Context
Logger logger.Logger
BrutalDebug bool
SendBPS uint64
ReceiveBPS uint64
XPlusPassword string
TLSConfig aTLS.ServerConfig
UDPDisabled bool
UDPTimeout time.Duration
Handler ServerHandler
ConnReceiveWindow uint64
StreamReceiveWindow uint64
MaxIncomingStreams int64
DisableMTUDiscovery bool
}
type VectorisedXPlusConn ¶
type VectorisedXPlusConn struct {
XPlusPacketConn
// contains filtered or unexported fields
}
func (*VectorisedXPlusConn) WriteVectorisedPacket ¶
type XPlusPacketConn ¶
type XPlusPacketConn struct {
net.PacketConn
// contains filtered or unexported fields
}
func (*XPlusPacketConn) Upstream ¶
func (c *XPlusPacketConn) Upstream() any
Source Files
¶
Click to show internal directories.
Click to hide internal directories.