| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970 |
- // Package proxy contains all proxies used by V2Ray.
- package proxy
- import (
- "context"
- "v2ray.com/core/common/net"
- "v2ray.com/core/common/protocol"
- "v2ray.com/core/transport/internet"
- "v2ray.com/core/transport/ray"
- )
- type HandlerState int
- const (
- HandlerStateStopped = HandlerState(0)
- HandlerStateRunning = HandlerState(1)
- )
- type SessionInfo struct {
- Source net.Destination
- Destination net.Destination
- User *protocol.User
- Inbound *InboundHandlerMeta
- }
- type InboundHandlerMeta struct {
- Tag string
- Address net.Address
- Port net.Port
- AllowPassiveConnection bool
- StreamSettings *internet.StreamConfig
- }
- type OutboundHandlerMeta struct {
- Tag string
- Address net.Address
- StreamSettings *internet.StreamConfig
- ProxySettings *internet.ProxyConfig
- }
- func (v *OutboundHandlerMeta) GetDialerOptions() internet.DialerOptions {
- return internet.DialerOptions{
- Stream: v.StreamSettings,
- Proxy: v.ProxySettings,
- }
- }
- // An InboundHandler handles inbound network connections to V2Ray.
- type InboundHandler interface {
- // Listen starts a InboundHandler.
- Start() error
- // Close stops the handler to accepting anymore inbound connections.
- Close()
- // Port returns the port that the handler is listening on.
- Port() net.Port
- Network() net.NetworkList
- }
- // An OutboundHandler handles outbound network connection for V2Ray.
- type OutboundHandler interface {
- // Dispatch sends one or more Packets to its destination.
- Dispatch(destination net.Destination, ray ray.OutboundRay)
- }
- // Dialer is used by OutboundHandler for creating outbound connections.
- type Dialer interface {
- Dial(ctx context.Context, destination net.Destination) (internet.Connection, error)
- }
|