From 3609d556a32c2f9c774a3dacf8091b4c12fb9503 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=88=98=E7=A5=A5=E8=B6=85?= Date: Tue, 17 Nov 2020 16:53:50 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8F=AF=E4=BB=A5=E7=9B=B4=E6=8E=A5=E7=94=A8CN?= =?UTF-8?q?AME=E8=AE=BF=E9=97=AE=E6=9C=8D=E5=8A=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pkg/serverconfigs/server_config.go | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/pkg/serverconfigs/server_config.go b/pkg/serverconfigs/server_config.go index 8bc18d0..18e0a40 100644 --- a/pkg/serverconfigs/server_config.go +++ b/pkg/serverconfigs/server_config.go @@ -3,16 +3,18 @@ package serverconfigs import ( "encoding/json" "errors" + "github.com/TeaOSLab/EdgeCommon/pkg/configutils" "github.com/TeaOSLab/EdgeCommon/pkg/serverconfigs/sslconfigs" ) type ServerConfig struct { - Id int64 `yaml:"id" json:"id"` // ID - Type string `yaml:"type" json:"type"` // 类型 - IsOn bool `yaml:"isOn" json:"isOn"` // 是否开启 - Name string `yaml:"name" json:"name"` // 名称 - Description string `yaml:"description" json:"description"` // 描述 - ServerNames []*ServerNameConfig `yaml:"serverNames" json:"serverNames"` // 域名 + Id int64 `yaml:"id" json:"id"` // ID + Type string `yaml:"type" json:"type"` // 类型 + IsOn bool `yaml:"isOn" json:"isOn"` // 是否开启 + Name string `yaml:"name" json:"name"` // 名称 + Description string `yaml:"description" json:"description"` // 描述 + AliasServerNames []string `yaml:"aliasServerNames" json:"aliasServerNames"` // 关联的域名,比如CNAME之类的 + ServerNames []*ServerNameConfig `yaml:"serverNames" json:"serverNames"` // 域名 // 前端协议 HTTP *HTTPProtocolConfig `yaml:"http" json:"http"` // HTTP配置 @@ -177,6 +179,12 @@ func (this *ServerConfig) IsUDP() bool { // 判断是否和域名匹配 func (this *ServerConfig) MatchName(name string) bool { + if len(name) == 0 { + return false + } + if len(this.AliasServerNames) > 0 && configutils.MatchDomains(this.AliasServerNames, name) { + return true + } for _, serverName := range this.ServerNames { if serverName.Match(name) { return true