From 92aef24f98eec0361c6c9d7ea1246781e9046362 Mon Sep 17 00:00:00 2001 From: Darien Raymond Date: Fri, 9 Feb 2018 23:07:38 +0100 Subject: [PATCH] remove unnecessary proxy functions --- app/proxyman/inbound/always.go | 8 +++++++- app/proxyman/outbound/handler.go | 9 ++++++++- proxy/handler_cache.go | 33 -------------------------------- 3 files changed, 15 insertions(+), 35 deletions(-) delete mode 100644 proxy/handler_cache.go diff --git a/app/proxyman/inbound/always.go b/app/proxyman/inbound/always.go index 7253fa5e1..d57e7b091 100644 --- a/app/proxyman/inbound/always.go +++ b/app/proxyman/inbound/always.go @@ -5,6 +5,7 @@ import ( "v2ray.com/core/app/proxyman" "v2ray.com/core/app/proxyman/mux" + "v2ray.com/core/common" "v2ray.com/core/common/dice" "v2ray.com/core/common/net" "v2ray.com/core/proxy" @@ -18,10 +19,14 @@ type AlwaysOnInboundHandler struct { } func NewAlwaysOnInboundHandler(ctx context.Context, tag string, receiverConfig *proxyman.ReceiverConfig, proxyConfig interface{}) (*AlwaysOnInboundHandler, error) { - p, err := proxy.CreateInboundHandler(ctx, proxyConfig) + rawProxy, err := common.CreateObject(ctx, proxyConfig) if err != nil { return nil, err } + p, ok := rawProxy.(proxy.Inbound) + if !ok { + return nil, newError("not an inbound proxy.") + } h := &AlwaysOnInboundHandler{ proxy: p, @@ -80,6 +85,7 @@ func (h *AlwaysOnInboundHandler) Close() error { for _, worker := range h.workers { worker.Close() } + h.mux.Close() return nil } diff --git a/app/proxyman/outbound/handler.go b/app/proxyman/outbound/handler.go index 98a1d979b..d3c237e16 100644 --- a/app/proxyman/outbound/handler.go +++ b/app/proxyman/outbound/handler.go @@ -7,6 +7,7 @@ import ( "v2ray.com/core" "v2ray.com/core/app/proxyman" "v2ray.com/core/app/proxyman/mux" + "v2ray.com/core/common" "v2ray.com/core/common/errors" "v2ray.com/core/common/net" "v2ray.com/core/proxy" @@ -50,11 +51,16 @@ func NewHandler(ctx context.Context, config *core.OutboundHandlerConfig) (*Handl return nil, err } - proxyHandler, err := proxy.CreateOutboundHandler(ctx, proxyConfig) + rawProxyHandler, err := common.CreateObject(ctx, proxyConfig) if err != nil { return nil, err } + proxyHandler, ok := rawProxyHandler.(proxy.Outbound) + if !ok { + return nil, newError("not an outbound handler") + } + if h.senderSettings != nil && h.senderSettings.MultiplexSettings != nil && h.senderSettings.MultiplexSettings.Enabled { config := h.senderSettings.MultiplexSettings if config.Concurrency < 1 || config.Concurrency > 1024 { @@ -134,5 +140,6 @@ func (h *Handler) Start() error { // Close implements common.Runnable. func (h *Handler) Close() error { + common.Close(h.mux) return nil } diff --git a/proxy/handler_cache.go b/proxy/handler_cache.go deleted file mode 100644 index 0d580a720..000000000 --- a/proxy/handler_cache.go +++ /dev/null @@ -1,33 +0,0 @@ -package proxy - -import ( - "context" - - "v2ray.com/core/common" -) - -func CreateInboundHandler(ctx context.Context, config interface{}) (Inbound, error) { - handler, err := common.CreateObject(ctx, config) - if err != nil { - return nil, newError("failed to create inbound handler").Base(err) - } - switch h := handler.(type) { - case Inbound: - return h, nil - default: - return nil, newError("not a InboundHandler") - } -} - -func CreateOutboundHandler(ctx context.Context, config interface{}) (Outbound, error) { - handler, err := common.CreateObject(ctx, config) - if err != nil { - return nil, newError("failed to create outbound handler").Base(err) - } - switch h := handler.(type) { - case Outbound: - return h, nil - default: - return nil, newError("not a OutboundHandler") - } -}