mirror of
https://github.com/v2fly/v2ray-core.git
synced 2026-01-02 07:25:19 -05:00
massive refactoring for interoperability
This commit is contained in:
@@ -5,52 +5,8 @@ package proxyman
|
||||
|
||||
import (
|
||||
"context"
|
||||
|
||||
"v2ray.com/core/app"
|
||||
"v2ray.com/core/common/net"
|
||||
"v2ray.com/core/proxy"
|
||||
"v2ray.com/core/transport/ray"
|
||||
)
|
||||
|
||||
type InboundHandlerManager interface {
|
||||
GetHandler(ctx context.Context, tag string) (InboundHandler, error)
|
||||
AddHandler(ctx context.Context, config *InboundHandlerConfig) error
|
||||
}
|
||||
|
||||
type InboundHandler interface {
|
||||
Start() error
|
||||
Close()
|
||||
|
||||
// For migration
|
||||
GetRandomInboundProxy() (proxy.Inbound, net.Port, int)
|
||||
}
|
||||
|
||||
type OutboundHandlerManager interface {
|
||||
GetHandler(tag string) OutboundHandler
|
||||
GetDefaultHandler() OutboundHandler
|
||||
AddHandler(ctx context.Context, config *OutboundHandlerConfig) error
|
||||
}
|
||||
|
||||
type OutboundHandler interface {
|
||||
Dispatch(ctx context.Context, outboundRay ray.OutboundRay)
|
||||
}
|
||||
|
||||
func InboundHandlerManagerFromSpace(space app.Space) InboundHandlerManager {
|
||||
app := space.GetApplication((*InboundHandlerManager)(nil))
|
||||
if app == nil {
|
||||
return nil
|
||||
}
|
||||
return app.(InboundHandlerManager)
|
||||
}
|
||||
|
||||
func OutboundHandlerManagerFromSpace(space app.Space) OutboundHandlerManager {
|
||||
app := space.GetApplication((*OutboundHandlerManager)(nil))
|
||||
if app == nil {
|
||||
return nil
|
||||
}
|
||||
return app.(OutboundHandlerManager)
|
||||
}
|
||||
|
||||
type key int
|
||||
|
||||
const (
|
||||
|
||||
Reference in New Issue
Block a user