Documentation
¶
Index ¶
- type AssignedAddress
- type CloseError
- type Conn
- func (c *Conn) AdvertiseRoute(ctx context.Context, routes []IPRoute) error
- func (c *Conn) AssignAddresses(ctx context.Context, prefixes []netip.Prefix) error
- func (c *Conn) Close() error
- func (c *Conn) LocalPrefixes(ctx context.Context) ([]netip.Prefix, error)
- func (c *Conn) ReadPacket(b []byte) (n int, err error)
- func (c *Conn) Routes(ctx context.Context) ([]IPRoute, error)
- func (c *Conn) WritePacket(b []byte) (icmp []byte, err error)
- type IPRoute
- type Proxy
- type Request
- type RequestParseError
- type RequestedAddress
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type AssignedAddress ¶
AssignedAddress represents an Assigned Address within an ADDRESS_ASSIGN capsule
type CloseError ¶
type CloseError struct {
Remote bool
}
func (*CloseError) Error ¶
func (e *CloseError) Error() string
func (*CloseError) Is ¶
func (e *CloseError) Is(target error) bool
type Conn ¶
type Conn struct {
// contains filtered or unexported fields
}
Conn is a connection that proxies IP packets over HTTP/3.
func Dial ¶
func Dial(ctx context.Context, conn *http3.ClientConn, template *uritemplate.Template) (*Conn, *http.Response, error)
Dial dials a proxied connection to a target server.
func (*Conn) AdvertiseRoute ¶
AdvertiseRoute informs the peer about available routes. This function can be called multiple times, but only the routes from the most recent call will be active. Previous route advertisements are overwritten by each new call to this function.
func (*Conn) AssignAddresses ¶
AssignAddresses assigned address prefixes to the peer. This function can be called multiple times, but only the addresses from the most recent call will be active. Previous address assignments are overwritten by each new call to this function.
func (*Conn) LocalPrefixes ¶
LocalPrefixes returns the prefixes that the peer currently assigned. Note that at any point during the connection, the peer can change the assignment. It is therefore recommended to call this function in a loop.
type IPRoute ¶
type IPRoute struct { StartIP netip.Addr EndIP netip.Addr // IPProtocol is the Internet Protocol Number for traffic that can be sent to this range. // If the value is 0, all protocols are allowed. IPProtocol uint8 }
IPRoute represents an IP Address Range
type Request ¶
type Request struct{}
Request is the parsed CONNECT-IP request returned from ParseRequest. It currently doesn't have any fields, since masque-go doesn't support IP flow forwarding.
type RequestParseError ¶
RequestParseError is returned from ParseRequest if parsing the CONNECT-UDP request fails. It is recommended that the request is rejected with the corresponding HTTP status code.
func (*RequestParseError) Error ¶
func (e *RequestParseError) Error() string
func (*RequestParseError) Unwrap ¶
func (e *RequestParseError) Unwrap() error
type RequestedAddress ¶
RequestedAddress represents an Requested Address within an ADDRESS_REQUEST capsule