Просмотр исходного кода

Add support for customizing tls.Config

Luke Scott 12 лет назад
Родитель
Сommit
481dc97d60
2 измененных файлов с 18 добавлено и 0 удалено
  1. 15 0
      tlsconfig.go
  2. 3 0
      utils.go

+ 15 - 0
tlsconfig.go

@@ -0,0 +1,15 @@
+package mysql
+
+import (
+	"crypto/tls"
+)
+
+type TLSConfig interface {
+	SetTLSConfig(key string, config *tls.Config)
+}
+
+var tlsConfigMap = make(map[string]*tls.Config)
+
+func (d *mysqlDriver) SetTLSConfig(key string, config *tls.Config) {
+	tlsConfigMap[key] = config
+}

+ 3 - 0
utils.go

@@ -152,6 +152,9 @@ func parseDSN(dsn string) (cfg *config, err error) {
 						cfg.tls = &tls.Config{}
 					} else if strings.ToLower(value) == "skip-verify" {
 						cfg.tls = &tls.Config{InsecureSkipVerify: true}
+					} else if tlsConfig, ok := tlsConfigMap[value]; ok {
+						cfg.tls = &tls.Config{}
+						*cfg.tls = *tlsConfig
 					}
 
 				default: