diff --git a/transport/internet/conn_authenticator.go b/transport/internet/conn_authenticator.go deleted file mode 100644 index 0e68693ab..000000000 --- a/transport/internet/conn_authenticator.go +++ /dev/null @@ -1,28 +0,0 @@ -package internet - -import ( - "errors" - "net" - - "context" - - "v2ray.com/core/common" -) - -type ConnectionAuthenticator interface { - Client(net.Conn) net.Conn - Server(net.Conn) net.Conn -} - -func CreateConnectionAuthenticator(config interface{}) (ConnectionAuthenticator, error) { - auth, err := common.CreateObject(context.Background(), config) - if err != nil { - return nil, err - } - switch a := auth.(type) { - case ConnectionAuthenticator: - return a, nil - default: - return nil, errors.New("Internet: Not a ConnectionAuthenticator.") - } -} diff --git a/transport/internet/header.go b/transport/internet/header.go index 04ee612fa..92ab53066 100644 --- a/transport/internet/header.go +++ b/transport/internet/header.go @@ -3,6 +3,7 @@ package internet import ( "context" "errors" + "net" "v2ray.com/core/common" ) @@ -17,10 +18,24 @@ func CreatePacketHeader(config interface{}) (PacketHeader, error) { if err != nil { return nil, err } - switch h := header.(type) { - case PacketHeader: + if h, ok := header.(PacketHeader); ok { return h, nil - default: - return nil, errors.New("Internet: Not a packet header.") } + return nil, errors.New("Internet: Not a packet header.") +} + +type ConnectionAuthenticator interface { + Client(net.Conn) net.Conn + Server(net.Conn) net.Conn +} + +func CreateConnectionAuthenticator(config interface{}) (ConnectionAuthenticator, error) { + auth, err := common.CreateObject(context.Background(), config) + if err != nil { + return nil, err + } + if a, ok := auth.(ConnectionAuthenticator); ok { + return a, nil + } + return nil, errors.New("Internet: Not a ConnectionAuthenticator.") }