diff --git a/app/packet_dispatcher.go b/app/packet_dispatcher.go index dba6bc39..48dcf9e1 100644 --- a/app/packet_dispatcher.go +++ b/app/packet_dispatcher.go @@ -5,6 +5,8 @@ import ( "github.com/v2ray/v2ray-core/transport/ray" ) +// PacketDispatcher dispatch a packet and possibly further network payload to +// its destination. type PacketDispatcher interface { DispatchToOutbound(packet v2net.Packet) ray.InboundRay } diff --git a/common/log/log.go b/common/log/log.go index 0cff1a06..786509e6 100644 --- a/common/log/log.go +++ b/common/log/log.go @@ -76,18 +76,22 @@ func SetLogLevel(level LogLevel) { } } +// Debug outputs a debug log with given format and optional arguments. func Debug(format string, v ...interface{}) { debugLogger.WriteLog("[Debug]", format, v...) } +// Info outputs an info log with given format and optional arguments. func Info(format string, v ...interface{}) { infoLogger.WriteLog("[Info]", format, v...) } +// Warning outputs a warning log with given format and optional arguments. func Warning(format string, v ...interface{}) { warningLogger.WriteLog("[Warning]", format, v...) } +// Error outputs an error log with given format and optional arguments. func Error(format string, v ...interface{}) { errorLogger.WriteLog("[Error]", format, v...) } diff --git a/proxy/inbound_connection.go b/proxy/inbound_connection.go index 5d648961..2ad25595 100644 --- a/proxy/inbound_connection.go +++ b/proxy/inbound_connection.go @@ -4,10 +4,15 @@ import ( "github.com/v2ray/v2ray-core/app" ) +// A InboundConnectionHandlerFactory creates InboundConnectionHandler on demand. type InboundConnectionHandlerFactory interface { + // Create creates a new InboundConnectionHandler with given configuration. Create(dispatch app.PacketDispatcher, config interface{}) (InboundConnectionHandler, error) } +// A InboundConnectionHandler handles inbound network connections to V2Ray. type InboundConnectionHandler interface { + // Listen starts a InboundConnectionHandler by listen on a specific port. This method is called + // exactly once during runtime. Listen(port uint16) error } diff --git a/proxy/outbound_connection.go b/proxy/outbound_connection.go index 3c8230cf..67fd8996 100644 --- a/proxy/outbound_connection.go +++ b/proxy/outbound_connection.go @@ -5,10 +5,14 @@ import ( "github.com/v2ray/v2ray-core/transport/ray" ) +// An OutboundConnectionHandlerFactory creates OutboundConnectionHandler on demand. type OutboundConnectionHandlerFactory interface { + // Create creates a new OutboundConnectionHandler with given config. Create(config interface{}) (OutboundConnectionHandler, error) } +// An OutboundConnectionHandler handles outbound network connection for V2Ray. type OutboundConnectionHandler interface { + // Dispatch sends one or more Packets to its destination. Dispatch(firstPacket v2net.Packet, ray ray.OutboundRay) error } diff --git a/transport/ray/direct.go b/transport/ray/direct.go index b70a0c46..88c36ab8 100644 --- a/transport/ray/direct.go +++ b/transport/ray/direct.go @@ -8,6 +8,7 @@ const ( bufferSize = 16 ) +// NewRay creates a new Ray for direct traffic transport. func NewRay() Ray { return &directRay{ Input: make(chan *alloc.Buffer, bufferSize),