mirror of https://github.com/v2ray/v2ray-core
				
				
				
			merge similar error definitions
							parent
							
								
									786775ea80
								
							
						
					
					
						commit
						ad1353ac2f
					
				| 
						 | 
				
			
			@ -1,15 +1,13 @@
 | 
			
		|||
package router
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"errors"
 | 
			
		||||
	"github.com/v2ray/v2ray-core/common"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
type ConfigObjectCreator func([]byte) (interface{}, error)
 | 
			
		||||
 | 
			
		||||
var (
 | 
			
		||||
	configCache map[string]ConfigObjectCreator
 | 
			
		||||
 | 
			
		||||
	ErrRouterNotFound = errors.New("Router not found.")
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
func RegisterRouterConfig(strategy string, creator ConfigObjectCreator) error {
 | 
			
		||||
| 
						 | 
				
			
			@ -21,7 +19,7 @@ func RegisterRouterConfig(strategy string, creator ConfigObjectCreator) error {
 | 
			
		|||
func CreateRouterConfig(strategy string, data []byte) (interface{}, error) {
 | 
			
		||||
	creator, found := configCache[strategy]
 | 
			
		||||
	if !found {
 | 
			
		||||
		return nil, ErrRouterNotFound
 | 
			
		||||
		return nil, common.ErrObjectNotFound
 | 
			
		||||
	}
 | 
			
		||||
	return creator(data)
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -3,6 +3,7 @@ package router
 | 
			
		|||
import (
 | 
			
		||||
	"github.com/v2ray/v2ray-core/app"
 | 
			
		||||
	"github.com/v2ray/v2ray-core/common"
 | 
			
		||||
	"github.com/v2ray/v2ray-core/common/log"
 | 
			
		||||
	v2net "github.com/v2ray/v2ray-core/common/net"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -24,7 +25,9 @@ var (
 | 
			
		|||
)
 | 
			
		||||
 | 
			
		||||
func RegisterRouter(name string, factory RouterFactory) error {
 | 
			
		||||
	// TODO: check name
 | 
			
		||||
	if _, found := routerCache[name]; found {
 | 
			
		||||
		return common.ErrDuplicatedName
 | 
			
		||||
	}
 | 
			
		||||
	routerCache[name] = factory
 | 
			
		||||
	return nil
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -33,5 +36,6 @@ func CreateRouter(name string, rawConfig interface{}, space app.Space) (Router,
 | 
			
		|||
	if factory, found := routerCache[name]; found {
 | 
			
		||||
		return factory.Create(rawConfig, space)
 | 
			
		||||
	}
 | 
			
		||||
	return nil, ErrRouterNotFound
 | 
			
		||||
	log.Error("Router: not found: ", name)
 | 
			
		||||
	return nil, common.ErrObjectNotFound
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -9,6 +9,8 @@ import (
 | 
			
		|||
var (
 | 
			
		||||
	ErrObjectReleased   = errors.New("Object already released.")
 | 
			
		||||
	ErrBadConfiguration = errors.New("Bad configuration.")
 | 
			
		||||
	ErrObjectNotFound   = errors.New("Object not found.")
 | 
			
		||||
	ErrDuplicatedName   = errors.New("Duplicated name.")
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
// Releasable interface is for those types that can release its members.
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -5,6 +5,7 @@ package loader
 | 
			
		|||
import (
 | 
			
		||||
	"encoding/json"
 | 
			
		||||
 | 
			
		||||
	"github.com/v2ray/v2ray-core/common"
 | 
			
		||||
	"github.com/v2ray/v2ray-core/common/log"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -42,7 +43,7 @@ func (this *JSONConfigLoader) Load(raw []byte) (interface{}, string, error) {
 | 
			
		|||
	rawID, found := obj[this.idKey]
 | 
			
		||||
	if !found {
 | 
			
		||||
		log.Error(this.idKey, " not found in JSON content.")
 | 
			
		||||
		return nil, "", ErrConfigIDKeyNotFound
 | 
			
		||||
		return nil, "", common.ErrObjectNotFound
 | 
			
		||||
	}
 | 
			
		||||
	var id string
 | 
			
		||||
	if err := json.Unmarshal(rawID, &id); err != nil {
 | 
			
		||||
| 
						 | 
				
			
			@ -53,7 +54,7 @@ func (this *JSONConfigLoader) Load(raw []byte) (interface{}, string, error) {
 | 
			
		|||
		configValue, found := obj[this.configKey]
 | 
			
		||||
		if !found {
 | 
			
		||||
			log.Error(this.configKey, " not found in JSON content.")
 | 
			
		||||
			return nil, "", ErrConfigIDKeyNotFound
 | 
			
		||||
			return nil, "", common.ErrObjectNotFound
 | 
			
		||||
		}
 | 
			
		||||
		rawConfig = configValue
 | 
			
		||||
	}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -2,12 +2,11 @@ package loader
 | 
			
		|||
 | 
			
		||||
import (
 | 
			
		||||
	"errors"
 | 
			
		||||
	"github.com/v2ray/v2ray-core/common"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
var (
 | 
			
		||||
	ErrConfigIDKeyNotFound = errors.New("Config ID key is not found.")
 | 
			
		||||
	ErrConfigIDExists      = errors.New("Config ID already exists.")
 | 
			
		||||
	ErrUnknownConfigID     = errors.New("Unknown config ID.")
 | 
			
		||||
	ErrUnknownConfigID = errors.New("Unknown config ID.")
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
type ConfigCreator func() interface{}
 | 
			
		||||
| 
						 | 
				
			
			@ -31,7 +30,7 @@ func NewBaseConfigLoader() *BaseConfigLoader {
 | 
			
		|||
 | 
			
		||||
func (this *BaseConfigLoader) RegisterCreator(id string, creator ConfigCreator) error {
 | 
			
		||||
	if _, found := this.creators[id]; found {
 | 
			
		||||
		return ErrConfigIDExists
 | 
			
		||||
		return common.ErrDuplicatedName
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	this.creators[id] = creator
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,9 +1,8 @@
 | 
			
		|||
package registry
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"errors"
 | 
			
		||||
 | 
			
		||||
	"github.com/v2ray/v2ray-core/app"
 | 
			
		||||
	"github.com/v2ray/v2ray-core/common"
 | 
			
		||||
	"github.com/v2ray/v2ray-core/proxy"
 | 
			
		||||
	"github.com/v2ray/v2ray-core/transport/internet"
 | 
			
		||||
)
 | 
			
		||||
| 
						 | 
				
			
			@ -11,14 +10,11 @@ import (
 | 
			
		|||
var (
 | 
			
		||||
	inboundFactories  = make(map[string]InboundHandlerFactory)
 | 
			
		||||
	outboundFactories = make(map[string]OutboundHandlerFactory)
 | 
			
		||||
 | 
			
		||||
	ErrProxyNotFound = errors.New("Proxy not found.")
 | 
			
		||||
	ErrNameExists    = errors.New("Proxy with the same name already exists.")
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
func RegisterInboundHandlerCreator(name string, creator InboundHandlerFactory) error {
 | 
			
		||||
	if _, found := inboundFactories[name]; found {
 | 
			
		||||
		return ErrNameExists
 | 
			
		||||
		return common.ErrDuplicatedName
 | 
			
		||||
	}
 | 
			
		||||
	inboundFactories[name] = creator
 | 
			
		||||
	return nil
 | 
			
		||||
| 
						 | 
				
			
			@ -32,7 +28,7 @@ func MustRegisterInboundHandlerCreator(name string, creator InboundHandlerFactor
 | 
			
		|||
 | 
			
		||||
func RegisterOutboundHandlerCreator(name string, creator OutboundHandlerFactory) error {
 | 
			
		||||
	if _, found := outboundFactories[name]; found {
 | 
			
		||||
		return ErrNameExists
 | 
			
		||||
		return common.ErrDuplicatedName
 | 
			
		||||
	}
 | 
			
		||||
	outboundFactories[name] = creator
 | 
			
		||||
	return nil
 | 
			
		||||
| 
						 | 
				
			
			@ -47,7 +43,7 @@ func MustRegisterOutboundHandlerCreator(name string, creator OutboundHandlerFact
 | 
			
		|||
func CreateInboundHandler(name string, space app.Space, rawConfig []byte, meta *proxy.InboundHandlerMeta) (proxy.InboundHandler, error) {
 | 
			
		||||
	creator, found := inboundFactories[name]
 | 
			
		||||
	if !found {
 | 
			
		||||
		return nil, ErrProxyNotFound
 | 
			
		||||
		return nil, common.ErrObjectNotFound
 | 
			
		||||
	}
 | 
			
		||||
	if meta.StreamSettings == nil {
 | 
			
		||||
		meta.StreamSettings = &internet.StreamSettings{
 | 
			
		||||
| 
						 | 
				
			
			@ -70,7 +66,7 @@ func CreateInboundHandler(name string, space app.Space, rawConfig []byte, meta *
 | 
			
		|||
func CreateOutboundHandler(name string, space app.Space, rawConfig []byte, meta *proxy.OutboundHandlerMeta) (proxy.OutboundHandler, error) {
 | 
			
		||||
	creator, found := outboundFactories[name]
 | 
			
		||||
	if !found {
 | 
			
		||||
		return nil, ErrProxyNotFound
 | 
			
		||||
		return nil, common.ErrObjectNotFound
 | 
			
		||||
	}
 | 
			
		||||
	if meta.StreamSettings == nil {
 | 
			
		||||
		meta.StreamSettings = &internet.StreamSettings{
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -3,6 +3,7 @@ package testing
 | 
			
		|||
import (
 | 
			
		||||
	"fmt"
 | 
			
		||||
 | 
			
		||||
	"github.com/v2ray/v2ray-core/common"
 | 
			
		||||
	"github.com/v2ray/v2ray-core/proxy/registry"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -17,7 +18,7 @@ func RegisterInboundConnectionHandlerCreator(prefix string, creator registry.Inb
 | 
			
		|||
	for {
 | 
			
		||||
		name := prefix + randomString()
 | 
			
		||||
		err := registry.RegisterInboundHandlerCreator(name, creator)
 | 
			
		||||
		if err != registry.ErrNameExists {
 | 
			
		||||
		if err != common.ErrDuplicatedName {
 | 
			
		||||
			return name, err
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
| 
						 | 
				
			
			@ -27,7 +28,7 @@ func RegisterOutboundConnectionHandlerCreator(prefix string, creator registry.Ou
 | 
			
		|||
	for {
 | 
			
		||||
		name := prefix + randomString()
 | 
			
		||||
		err := registry.RegisterOutboundHandlerCreator(name, creator)
 | 
			
		||||
		if err != registry.ErrNameExists {
 | 
			
		||||
		if err != common.ErrDuplicatedName {
 | 
			
		||||
			return name, err
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,8 +1,7 @@
 | 
			
		|||
package internet
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"errors"
 | 
			
		||||
 | 
			
		||||
	"github.com/v2ray/v2ray-core/common"
 | 
			
		||||
	"github.com/v2ray/v2ray-core/common/alloc"
 | 
			
		||||
	"github.com/v2ray/v2ray-core/common/loader"
 | 
			
		||||
)
 | 
			
		||||
| 
						 | 
				
			
			@ -21,16 +20,13 @@ type AuthenticatorConfig interface {
 | 
			
		|||
}
 | 
			
		||||
 | 
			
		||||
var (
 | 
			
		||||
	ErrDuplicatedAuthenticator = errors.New("Authenticator already registered.")
 | 
			
		||||
	ErrAuthenticatorNotFound   = errors.New("Authenticator not found.")
 | 
			
		||||
 | 
			
		||||
	authenticatorCache = make(map[string]AuthenticatorFactory)
 | 
			
		||||
	configCache        loader.ConfigLoader
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
func RegisterAuthenticator(name string, factory AuthenticatorFactory, configCreator loader.ConfigCreator) error {
 | 
			
		||||
	if _, found := authenticatorCache[name]; found {
 | 
			
		||||
		return ErrDuplicatedAuthenticator
 | 
			
		||||
		return common.ErrDuplicatedName
 | 
			
		||||
	}
 | 
			
		||||
	authenticatorCache[name] = factory
 | 
			
		||||
	return configCache.RegisterCreator(name, configCreator)
 | 
			
		||||
| 
						 | 
				
			
			@ -39,7 +35,7 @@ func RegisterAuthenticator(name string, factory AuthenticatorFactory, configCrea
 | 
			
		|||
func CreateAuthenticator(name string, config AuthenticatorConfig) (Authenticator, error) {
 | 
			
		||||
	factory, found := authenticatorCache[name]
 | 
			
		||||
	if !found {
 | 
			
		||||
		return nil, ErrAuthenticatorNotFound
 | 
			
		||||
		return nil, common.ErrObjectNotFound
 | 
			
		||||
	}
 | 
			
		||||
	return factory.Create(config), nil
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue