Browse Source

add tls config register

Shelikhoo 4 years ago
parent
commit
690995d8ce
2 changed files with 13 additions and 0 deletions
  1. 5 0
      transport/internet/tls/config.proto
  2. 8 0
      transport/internet/tls/tls.go

+ 5 - 0
transport/internet/tls/config.proto

@@ -6,6 +6,8 @@ option go_package = "github.com/v2fly/v2ray-core/v4/transport/internet/tls";
 option java_package = "com.v2ray.core.transport.internet.tls";
 option java_multiple_files = true;
 
+import "common/protoext/extensions.proto";
+
 message Certificate {
   // TLS certificate in x509 format.
   bytes Certificate = 1;
@@ -24,6 +26,9 @@ message Certificate {
 }
 
 message Config {
+  option (v2ray.core.common.protoext.message_opt).type = "security";
+  option (v2ray.core.common.protoext.message_opt).short_name = "tls";
+
   // Whether or not to allow self-signed certificates.
   bool allow_insecure = 1;
 

+ 8 - 0
transport/internet/tls/tls.go

@@ -1,7 +1,9 @@
 package tls
 
 import (
+	"context"
 	"crypto/tls"
+	"github.com/v2fly/v2ray-core/v4/common"
 
 	"github.com/v2fly/v2ray-core/v4/common/buf"
 	"github.com/v2fly/v2ray-core/v4/common/net"
@@ -61,3 +63,9 @@ func Server(c net.Conn, config *tls.Config) net.Conn {
 	tlsConn := tls.Server(c, config)
 	return &Conn{Conn: tlsConn}
 }
+
+func init() {
+	common.Must(common.RegisterConfig((*Config)(nil), func(ctx context.Context, config interface{}) (interface{}, error) {
+		return nil, newError("tls should be used with v2tls")
+	}))
+}