Преглед на файлове

refactor proxy registry

Darien Raymond преди 9 години
родител
ревизия
1ab02e0a6b

+ 1 - 2
inbound_detour_always.go

@@ -6,7 +6,6 @@ import (
 	"v2ray.com/core/common/log"
 	"v2ray.com/core/common/retry"
 	"v2ray.com/core/proxy"
-	proxyregistry "v2ray.com/core/proxy/registry"
 )
 
 // Handler for inbound detour connections.
@@ -28,7 +27,7 @@ func NewInboundDetourHandlerAlways(space app.Space, config *InboundConnectionCon
 		if err != nil {
 			return nil, err
 		}
-		ich, err := proxyregistry.CreateInboundHandler(config.Settings.Type, space, ichConfig, &proxy.InboundHandlerMeta{
+		ich, err := proxy.CreateInboundHandler(config.Settings.Type, space, ichConfig, &proxy.InboundHandlerMeta{
 			Address:                config.GetListenOnValue(),
 			Port:                   i,
 			Tag:                    config.Tag,

+ 2 - 3
inbound_detour_dynamic.go

@@ -10,7 +10,6 @@ import (
 	v2net "v2ray.com/core/common/net"
 	"v2ray.com/core/common/retry"
 	"v2ray.com/core/proxy"
-	proxyregistry "v2ray.com/core/proxy/registry"
 )
 
 type InboundDetourHandlerDynamic struct {
@@ -36,7 +35,7 @@ func NewInboundDetourHandlerDynamic(space app.Space, config *InboundConnectionCo
 	if err != nil {
 		return nil, err
 	}
-	ich, err := proxyregistry.CreateInboundHandler(config.Settings.Type, space, ichConfig, &proxy.InboundHandlerMeta{
+	ich, err := proxy.CreateInboundHandler(config.Settings.Type, space, ichConfig, &proxy.InboundHandlerMeta{
 		Address:                config.GetListenOnValue(),
 		Port:                   0,
 		Tag:                    config.Tag,
@@ -108,7 +107,7 @@ func (v *InboundDetourHandlerDynamic) refresh() error {
 		err := retry.Timed(5, 100).On(func() error {
 			port := v.pickUnusedPort()
 			ichConfig, _ := config.GetTypedSettings()
-			ich, err := proxyregistry.CreateInboundHandler(config.Settings.Type, v.space, ichConfig, &proxy.InboundHandlerMeta{
+			ich, err := proxy.CreateInboundHandler(config.Settings.Type, v.space, ichConfig, &proxy.InboundHandlerMeta{
 				Address: config.GetListenOnValue(), Port: port, Tag: config.Tag, StreamSettings: config.StreamSettings})
 			if err != nil {
 				delete(v.portsInUse, port)

+ 2 - 2
proxy/blackhole/init.go

@@ -2,10 +2,10 @@ package blackhole
 
 import (
 	"v2ray.com/core/common/serial"
-	"v2ray.com/core/proxy/registry"
+	"v2ray.com/core/proxy"
 )
 
 func init() {
 	// Must listed after config.pb.go
-	registry.MustRegisterOutboundHandlerCreator(serial.GetMessageType(new(Config)), new(Factory))
+	proxy.MustRegisterOutboundHandlerCreator(serial.GetMessageType(new(Config)), new(Factory))
 }

+ 16 - 0
proxy/creator.go

@@ -0,0 +1,16 @@
+package proxy
+
+import (
+	"v2ray.com/core/app"
+	v2net "v2ray.com/core/common/net"
+)
+
+type InboundHandlerFactory interface {
+	StreamCapability() v2net.NetworkList
+	Create(space app.Space, config interface{}, meta *InboundHandlerMeta) (InboundHandler, error)
+}
+
+type OutboundHandlerFactory interface {
+	StreamCapability() v2net.NetworkList
+	Create(space app.Space, config interface{}, meta *OutboundHandlerMeta) (OutboundHandler, error)
+}

+ 1 - 2
proxy/dokodemo/dokodemo.go

@@ -11,7 +11,6 @@ import (
 	v2net "v2ray.com/core/common/net"
 	"v2ray.com/core/common/serial"
 	"v2ray.com/core/proxy"
-	"v2ray.com/core/proxy/registry"
 	"v2ray.com/core/transport/internet"
 	"v2ray.com/core/transport/internet/udp"
 )
@@ -212,5 +211,5 @@ func (v *Factory) Create(space app.Space, rawConfig interface{}, meta *proxy.Inb
 }
 
 func init() {
-	registry.MustRegisterInboundHandlerCreator(serial.GetMessageType(new(Config)), new(Factory))
+	proxy.MustRegisterInboundHandlerCreator(serial.GetMessageType(new(Config)), new(Factory))
 }

+ 1 - 2
proxy/freedom/freedom.go

@@ -13,7 +13,6 @@ import (
 	"v2ray.com/core/common/retry"
 	"v2ray.com/core/common/serial"
 	"v2ray.com/core/proxy"
-	"v2ray.com/core/proxy/registry"
 	"v2ray.com/core/transport/internet"
 	"v2ray.com/core/transport/internet/tcp"
 	"v2ray.com/core/transport/ray"
@@ -142,5 +141,5 @@ func (v *FreedomFactory) Create(space app.Space, config interface{}, meta *proxy
 }
 
 func init() {
-	registry.MustRegisterOutboundHandlerCreator(serial.GetMessageType(new(Config)), new(FreedomFactory))
+	proxy.MustRegisterOutboundHandlerCreator(serial.GetMessageType(new(Config)), new(FreedomFactory))
 }

+ 7 - 8
proxy/registry/handler_cache.go → proxy/handler_cache.go

@@ -1,10 +1,9 @@
-package registry
+package proxy
 
 import (
 	"v2ray.com/core/app"
 	"v2ray.com/core/common"
 	"v2ray.com/core/common/errors"
-	"v2ray.com/core/proxy"
 	"v2ray.com/core/transport/internet"
 )
 
@@ -41,10 +40,10 @@ func MustRegisterOutboundHandlerCreator(name string, creator OutboundHandlerFact
 	}
 }
 
-func CreateInboundHandler(name string, space app.Space, config interface{}, meta *proxy.InboundHandlerMeta) (proxy.InboundHandler, error) {
+func CreateInboundHandler(name string, space app.Space, config interface{}, meta *InboundHandlerMeta) (InboundHandler, error) {
 	creator, found := inboundFactories[name]
 	if !found {
-		return nil, errors.New("Proxy|Registry: Unknown inbound name: " + name)
+		return nil, errors.New("Proxy: Unknown inbound name: " + name)
 	}
 	if meta.StreamSettings == nil {
 		meta.StreamSettings = &internet.StreamConfig{
@@ -52,17 +51,17 @@ func CreateInboundHandler(name string, space app.Space, config interface{}, meta
 		}
 	} else {
 		if !creator.StreamCapability().HasNetwork(meta.StreamSettings.Network) {
-			return nil, errors.New("Proxy|Registry: Invalid network: " + meta.StreamSettings.Network.String())
+			return nil, errors.New("Proxy: Invalid network: " + meta.StreamSettings.Network.String())
 		}
 	}
 
 	return creator.Create(space, config, meta)
 }
 
-func CreateOutboundHandler(name string, space app.Space, config interface{}, meta *proxy.OutboundHandlerMeta) (proxy.OutboundHandler, error) {
+func CreateOutboundHandler(name string, space app.Space, config interface{}, meta *OutboundHandlerMeta) (OutboundHandler, error) {
 	creator, found := outboundFactories[name]
 	if !found {
-		return nil, errors.New("Proxy|Registry: Unknown outbound name: " + name)
+		return nil, errors.New("Proxy: Unknown outbound name: " + name)
 	}
 	if meta.StreamSettings == nil {
 		meta.StreamSettings = &internet.StreamConfig{
@@ -70,7 +69,7 @@ func CreateOutboundHandler(name string, space app.Space, config interface{}, met
 		}
 	} else {
 		if !creator.StreamCapability().HasNetwork(meta.StreamSettings.Network) {
-			return nil, errors.New("Proxy|Registry: Invalid network: " + meta.StreamSettings.Network.String())
+			return nil, errors.New("Proxy: Invalid network: " + meta.StreamSettings.Network.String())
 		}
 	}
 

+ 1 - 2
proxy/http/server.go

@@ -18,7 +18,6 @@ import (
 	v2net "v2ray.com/core/common/net"
 	"v2ray.com/core/common/serial"
 	"v2ray.com/core/proxy"
-	"v2ray.com/core/proxy/registry"
 	"v2ray.com/core/transport/internet"
 	"v2ray.com/core/transport/ray"
 )
@@ -288,5 +287,5 @@ func (v *ServerFactory) Create(space app.Space, rawConfig interface{}, meta *pro
 }
 
 func init() {
-	registry.MustRegisterInboundHandlerCreator(serial.GetMessageType(new(ServerConfig)), new(ServerFactory))
+	proxy.MustRegisterInboundHandlerCreator(serial.GetMessageType(new(ServerConfig)), new(ServerFactory))
 }

+ 0 - 17
proxy/registry/creator.go

@@ -1,17 +0,0 @@
-package registry
-
-import (
-	"v2ray.com/core/app"
-	v2net "v2ray.com/core/common/net"
-	"v2ray.com/core/proxy"
-)
-
-type InboundHandlerFactory interface {
-	StreamCapability() v2net.NetworkList
-	Create(space app.Space, config interface{}, meta *proxy.InboundHandlerMeta) (proxy.InboundHandler, error)
-}
-
-type OutboundHandlerFactory interface {
-	StreamCapability() v2net.NetworkList
-	Create(space app.Space, config interface{}, meta *proxy.OutboundHandlerMeta) (proxy.OutboundHandler, error)
-}

+ 3 - 3
proxy/shadowsocks/init.go

@@ -2,11 +2,11 @@ package shadowsocks
 
 import (
 	"v2ray.com/core/common/serial"
-	"v2ray.com/core/proxy/registry"
+	"v2ray.com/core/proxy"
 )
 
 func init() {
 	// Must happen after config is initialized
-	registry.MustRegisterOutboundHandlerCreator(serial.GetMessageType(new(ClientConfig)), new(ClientFactory))
-	registry.MustRegisterInboundHandlerCreator(serial.GetMessageType(new(ServerConfig)), new(ServerFactory))
+	proxy.MustRegisterOutboundHandlerCreator(serial.GetMessageType(new(ClientConfig)), new(ClientFactory))
+	proxy.MustRegisterInboundHandlerCreator(serial.GetMessageType(new(ServerConfig)), new(ServerFactory))
 }

+ 1 - 2
proxy/socks/server.go

@@ -15,7 +15,6 @@ import (
 	v2net "v2ray.com/core/common/net"
 	"v2ray.com/core/common/serial"
 	"v2ray.com/core/proxy"
-	"v2ray.com/core/proxy/registry"
 	"v2ray.com/core/proxy/socks/protocol"
 	"v2ray.com/core/transport/internet"
 	"v2ray.com/core/transport/internet/udp"
@@ -334,5 +333,5 @@ func (v *ServerFactory) Create(space app.Space, rawConfig interface{}, meta *pro
 }
 
 func init() {
-	registry.MustRegisterInboundHandlerCreator(serial.GetMessageType(new(ServerConfig)), new(ServerFactory))
+	proxy.MustRegisterInboundHandlerCreator(serial.GetMessageType(new(ServerConfig)), new(ServerFactory))
 }

+ 1 - 2
proxy/vmess/inbound/inbound.go

@@ -17,7 +17,6 @@ import (
 	"v2ray.com/core/common/serial"
 	"v2ray.com/core/common/uuid"
 	"v2ray.com/core/proxy"
-	"v2ray.com/core/proxy/registry"
 	"v2ray.com/core/proxy/vmess"
 	"v2ray.com/core/proxy/vmess/encoding"
 	"v2ray.com/core/transport/internet"
@@ -272,5 +271,5 @@ func (v *Factory) Create(space app.Space, rawConfig interface{}, meta *proxy.Inb
 }
 
 func init() {
-	registry.MustRegisterInboundHandlerCreator(serial.GetMessageType(new(Config)), new(Factory))
+	proxy.MustRegisterInboundHandlerCreator(serial.GetMessageType(new(Config)), new(Factory))
 }

+ 1 - 2
proxy/vmess/outbound/outbound.go

@@ -12,7 +12,6 @@ import (
 	"v2ray.com/core/common/retry"
 	"v2ray.com/core/common/serial"
 	"v2ray.com/core/proxy"
-	"v2ray.com/core/proxy/registry"
 	"v2ray.com/core/proxy/vmess"
 	"v2ray.com/core/proxy/vmess/encoding"
 	"v2ray.com/core/transport/internet"
@@ -176,5 +175,5 @@ func (v *Factory) Create(space app.Space, rawConfig interface{}, meta *proxy.Out
 }
 
 func init() {
-	registry.MustRegisterOutboundHandlerCreator(serial.GetMessageType(new(Config)), new(Factory))
+	proxy.MustRegisterOutboundHandlerCreator(serial.GetMessageType(new(Config)), new(Factory))
 }

+ 1 - 2
v2ray.go

@@ -11,7 +11,6 @@ import (
 	"v2ray.com/core/common/log"
 	v2net "v2ray.com/core/common/net"
 	"v2ray.com/core/proxy"
-	proxyregistry "v2ray.com/core/proxy/registry"
 )
 
 // Point shell of V2Ray.
@@ -109,7 +108,7 @@ func NewPoint(pConfig *Config) (*Point, error) {
 		if err != nil {
 			return nil, err
 		}
-		outboundHandler, err := proxyregistry.CreateOutboundHandler(
+		outboundHandler, err := proxy.CreateOutboundHandler(
 			outbound.Settings.Type, vpoint.space, outboundSettings, &proxy.OutboundHandlerMeta{
 				Tag:            outbound.Tag,
 				Address:        outbound.GetSendThroughValue(),