diff --git a/internal/db/models/ns_cluster_model.go b/internal/db/models/ns_cluster_model.go index dd2bd8f1..dadc6fc8 100644 --- a/internal/db/models/ns_cluster_model.go +++ b/internal/db/models/ns_cluster_model.go @@ -19,6 +19,7 @@ type NSCluster struct { Hosts dbs.JSON `field:"hosts"` // DNS主机地址 AutoRemoteStart bool `field:"autoRemoteStart"` // 自动远程启动 TimeZone string `field:"timeZone"` // 时区 + Answer dbs.JSON `field:"answer"` // 应答设置 } type NSClusterOperator struct { @@ -37,6 +38,7 @@ type NSClusterOperator struct { Hosts any // DNS主机地址 AutoRemoteStart any // 自动远程启动 TimeZone any // 时区 + Answer any // 应答设置 } func NewNSClusterOperator() *NSClusterOperator { diff --git a/internal/db/models/ns_cluster_model_ext.go b/internal/db/models/ns_cluster_model_ext.go index a63c9200..2cdcbd22 100644 --- a/internal/db/models/ns_cluster_model_ext.go +++ b/internal/db/models/ns_cluster_model_ext.go @@ -3,6 +3,7 @@ package models import ( "encoding/json" "github.com/TeaOSLab/EdgeAPI/internal/remotelogs" + "github.com/TeaOSLab/EdgeCommon/pkg/dnsconfigs" "github.com/TeaOSLab/EdgeCommon/pkg/serverconfigs/ddosconfigs" ) @@ -43,3 +44,19 @@ func (this *NSCluster) DecodeHosts() []string { return hosts } + +// DecodeAnswerConfig 解析应答设置 +func (this *NSCluster) DecodeAnswerConfig() *dnsconfigs.NSAnswerConfig { + var config = dnsconfigs.DefaultNSAnswerConfig() + + if IsNull(this.Answer) { + return config + } + + err := json.Unmarshal(this.Answer, config) + if err != nil { + remotelogs.Error("NSCluster.DecodeAnswerConfig", "decode failed: "+err.Error()) + } + + return config +}