| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051 | // Package proxy contains all proxies used by V2Ray.package proxyimport (	"errors"	"github.com/v2ray/v2ray-core/app"	"github.com/v2ray/v2ray-core/proxy/common/connhandler"	"github.com/v2ray/v2ray-core/proxy/internal")var (	inboundFactories  = make(map[string]internal.InboundConnectionHandlerCreator)	outboundFactories = make(map[string]internal.OutboundConnectionHandlerCreator)	ErrorProxyNotFound = errors.New("Proxy not found.")	ErrorNameExists    = errors.New("Proxy with the same name already exists."))func RegisterInboundConnectionHandlerFactory(name string, creator internal.InboundConnectionHandlerCreator) error {	if _, found := inboundFactories[name]; found {		return ErrorNameExists	}	inboundFactories[name] = creator	return nil}func RegisterOutboundConnectionHandlerFactory(name string, creator internal.OutboundConnectionHandlerCreator) error {	if _, found := outboundFactories[name]; found {		return ErrorNameExists	}	outboundFactories[name] = creator	return nil}func CreateInboundConnectionHandler(name string, space app.Space, config interface{}) (connhandler.InboundConnectionHandler, error) {	if creator, found := inboundFactories[name]; !found {		return nil, ErrorProxyNotFound	} else {		return creator(space, config)	}}func CreateOutboundConnectionHandler(name string, space app.Space, config interface{}) (connhandler.OutboundConnectionHandler, error) {	if creator, found := outboundFactories[name]; !found {		return nil, ErrorNameExists	} else {		return creator(space, config)	}}
 |