mirror of
https://github.com/v2fly/v2ray-core.git
synced 2026-04-16 18:49:16 -04:00
split listening settings from inbound proxies and apply context
This commit is contained in:
@@ -5,63 +5,20 @@ 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
|
||||
|
||||
Process(context.Context, net.Network, internet.Connection) error
|
||||
}
|
||||
|
||||
// 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)
|
||||
Process(context.Context, ray.OutboundRay) error
|
||||
}
|
||||
|
||||
// Dialer is used by OutboundHandler for creating outbound connections.
|
||||
|
||||
Reference in New Issue
Block a user