瀏覽代碼

refactor authenticators

Darien Raymond 8 年之前
父節點
當前提交
2d83e260ac
共有 2 個文件被更改,包括 19 次插入32 次删除
  1. 0 28
      transport/internet/conn_authenticator.go
  2. 19 4
      transport/internet/header.go

+ 0 - 28
transport/internet/conn_authenticator.go

@@ -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.")
-	}
-}

+ 19 - 4
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.")
 }