| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162 | // Package proxy contains all proxies used by V2Ray.package proxyimport (	"v2ray.com/core/common/buf"	v2net "v2ray.com/core/common/net"	"v2ray.com/core/common/protocol"	"v2ray.com/core/transport/internet"	"v2ray.com/core/transport/ray")type HandlerState intconst (	HandlerStateStopped = HandlerState(0)	HandlerStateRunning = HandlerState(1))type SessionInfo struct {	Source      v2net.Destination	Destination v2net.Destination	User        *protocol.User	Inbound     *InboundHandlerMeta}type InboundHandlerMeta struct {	Tag                    string	Address                v2net.Address	Port                   v2net.Port	AllowPassiveConnection bool	StreamSettings         *internet.StreamConfig}type OutboundHandlerMeta struct {	Tag            string	Address        v2net.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() v2net.Port}// An OutboundHandler handles outbound network connection for V2Ray.type OutboundHandler interface {	// Dispatch sends one or more Packets to its destination.	Dispatch(destination v2net.Destination, payload *buf.Buffer, ray ray.OutboundRay)}
 |