mirror of
				https://github.com/TeaOSLab/EdgeAPI.git
				synced 2025-11-04 16:00:24 +08:00 
			
		
		
		
	集群DNS设置中增加”包含Ln节点“选项
This commit is contained in:
		@@ -16,8 +16,11 @@ import (
 | 
				
			|||||||
// CheckClusterDNS 检查集群的DNS问题
 | 
					// CheckClusterDNS 检查集群的DNS问题
 | 
				
			||||||
// 藏这么深是避免package循环引用的问题
 | 
					// 藏这么深是避免package循环引用的问题
 | 
				
			||||||
func CheckClusterDNS(tx *dbs.Tx, cluster *models.NodeCluster) (issues []*pb.DNSIssue, err error) {
 | 
					func CheckClusterDNS(tx *dbs.Tx, cluster *models.NodeCluster) (issues []*pb.DNSIssue, err error) {
 | 
				
			||||||
	clusterId := int64(cluster.Id)
 | 
						var clusterId = int64(cluster.Id)
 | 
				
			||||||
	domainId := int64(cluster.DnsDomainId)
 | 
						var domainId = int64(cluster.DnsDomainId)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						// 集群DNS设置
 | 
				
			||||||
 | 
						var clusterDNSConfig, _ = cluster.DecodeDNSConfig()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	// 检查域名
 | 
						// 检查域名
 | 
				
			||||||
	domain, err := dns.SharedDNSDomainDAO.FindEnabledDNSDomain(tx, domainId, nil)
 | 
						domain, err := dns.SharedDNSDomainDAO.FindEnabledDNSDomain(tx, domainId, nil)
 | 
				
			||||||
@@ -101,7 +104,7 @@ func CheckClusterDNS(tx *dbs.Tx, cluster *models.NodeCluster) (issues []*pb.DNSI
 | 
				
			|||||||
	// TODO 检查域名是否已解析
 | 
						// TODO 检查域名是否已解析
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	// 检查节点
 | 
						// 检查节点
 | 
				
			||||||
	nodes, err := models.SharedNodeDAO.FindAllEnabledNodesDNSWithClusterId(tx, clusterId, true)
 | 
						nodes, err := models.SharedNodeDAO.FindAllEnabledNodesDNSWithClusterId(tx, clusterId, true, clusterDNSConfig != nil && clusterDNSConfig.IncludingLnNodes)
 | 
				
			||||||
	if err != nil {
 | 
						if err != nil {
 | 
				
			||||||
		return nil, err
 | 
							return nil, err
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -147,11 +147,12 @@ func (this *NodeClusterDAO) CreateCluster(tx *dbs.Tx, adminId int64, name string
 | 
				
			|||||||
	op.DnsDomainId = dnsDomainId
 | 
						op.DnsDomainId = dnsDomainId
 | 
				
			||||||
	op.DnsName = dnsName
 | 
						op.DnsName = dnsName
 | 
				
			||||||
	var dnsConfig = &dnsconfigs.ClusterDNSConfig{
 | 
						var dnsConfig = &dnsconfigs.ClusterDNSConfig{
 | 
				
			||||||
		NodesAutoSync:   true,
 | 
							NodesAutoSync:    true,
 | 
				
			||||||
		ServersAutoSync: true,
 | 
							ServersAutoSync:  true,
 | 
				
			||||||
		CNameRecords:    []string{},
 | 
							CNameRecords:     []string{},
 | 
				
			||||||
		CNameAsDomain:   true,
 | 
							CNameAsDomain:    true,
 | 
				
			||||||
		TTL:             0,
 | 
							TTL:              0,
 | 
				
			||||||
 | 
							IncludingLnNodes: true,
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	dnsJSON, err := json.Marshal(dnsConfig)
 | 
						dnsJSON, err := json.Marshal(dnsConfig)
 | 
				
			||||||
	if err != nil {
 | 
						if err != nil {
 | 
				
			||||||
@@ -468,7 +469,7 @@ func (this *NodeClusterDAO) ExistClusterDNSName(tx *dbs.Tx, dnsName string, excl
 | 
				
			|||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// UpdateClusterDNS 修改集群DNS相关信息
 | 
					// UpdateClusterDNS 修改集群DNS相关信息
 | 
				
			||||||
func (this *NodeClusterDAO) UpdateClusterDNS(tx *dbs.Tx, clusterId int64, dnsName string, dnsDomainId int64, nodesAutoSync bool, serversAutoSync bool, cnameRecords []string, ttl int32, cnameAsDomain bool) error {
 | 
					func (this *NodeClusterDAO) UpdateClusterDNS(tx *dbs.Tx, clusterId int64, dnsName string, dnsDomainId int64, nodesAutoSync bool, serversAutoSync bool, cnameRecords []string, ttl int32, cnameAsDomain bool, includingLnNodes bool) error {
 | 
				
			||||||
	if clusterId <= 0 {
 | 
						if clusterId <= 0 {
 | 
				
			||||||
		return errors.New("invalid clusterId")
 | 
							return errors.New("invalid clusterId")
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
@@ -504,11 +505,12 @@ func (this *NodeClusterDAO) UpdateClusterDNS(tx *dbs.Tx, clusterId int64, dnsNam
 | 
				
			|||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	var dnsConfig = &dnsconfigs.ClusterDNSConfig{
 | 
						var dnsConfig = &dnsconfigs.ClusterDNSConfig{
 | 
				
			||||||
		NodesAutoSync:   nodesAutoSync,
 | 
							NodesAutoSync:    nodesAutoSync,
 | 
				
			||||||
		ServersAutoSync: serversAutoSync,
 | 
							ServersAutoSync:  serversAutoSync,
 | 
				
			||||||
		CNameRecords:    cnameRecords,
 | 
							CNameRecords:     cnameRecords,
 | 
				
			||||||
		TTL:             ttl,
 | 
							TTL:              ttl,
 | 
				
			||||||
		CNameAsDomain:   cnameAsDomain,
 | 
							CNameAsDomain:    cnameAsDomain,
 | 
				
			||||||
 | 
							IncludingLnNodes: includingLnNodes,
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	dnsJSON, err := json.Marshal(dnsConfig)
 | 
						dnsJSON, err := json.Marshal(dnsConfig)
 | 
				
			||||||
	if err != nil {
 | 
						if err != nil {
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -11,13 +11,15 @@ func (this *NodeCluster) DecodeDNSConfig() (*dnsconfigs.ClusterDNSConfig, error)
 | 
				
			|||||||
	if len(this.Dns) == 0 {
 | 
						if len(this.Dns) == 0 {
 | 
				
			||||||
		// 一定要返回一个默认的值,防止产生nil
 | 
							// 一定要返回一个默认的值,防止产生nil
 | 
				
			||||||
		return &dnsconfigs.ClusterDNSConfig{
 | 
							return &dnsconfigs.ClusterDNSConfig{
 | 
				
			||||||
			NodesAutoSync:   false,
 | 
								NodesAutoSync:    false,
 | 
				
			||||||
			ServersAutoSync: false,
 | 
								ServersAutoSync:  false,
 | 
				
			||||||
			CNameAsDomain:   true,
 | 
								CNameAsDomain:    true,
 | 
				
			||||||
 | 
								IncludingLnNodes: true,
 | 
				
			||||||
		}, nil
 | 
							}, nil
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	var dnsConfig = &dnsconfigs.ClusterDNSConfig{
 | 
						var dnsConfig = &dnsconfigs.ClusterDNSConfig{
 | 
				
			||||||
		CNameAsDomain: true,
 | 
							CNameAsDomain:    true,
 | 
				
			||||||
 | 
							IncludingLnNodes: true,
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	err := json.Unmarshal(this.Dns, &dnsConfig)
 | 
						err := json.Unmarshal(this.Dns, &dnsConfig)
 | 
				
			||||||
	if err != nil {
 | 
						if err != nil {
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1403,7 +1403,7 @@ func (this *NodeDAO) CountAllEnabledNodesWithRegionId(tx *dbs.Tx, regionId int64
 | 
				
			|||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// FindAllEnabledNodesDNSWithClusterId 获取一个集群的节点DNS信息
 | 
					// FindAllEnabledNodesDNSWithClusterId 获取一个集群的节点DNS信息
 | 
				
			||||||
func (this *NodeDAO) FindAllEnabledNodesDNSWithClusterId(tx *dbs.Tx, clusterId int64, includeSecondaryNodes bool) (result []*Node, err error) {
 | 
					func (this *NodeDAO) FindAllEnabledNodesDNSWithClusterId(tx *dbs.Tx, clusterId int64, includeSecondaryNodes bool, includingLnNodes bool) (result []*Node, err error) {
 | 
				
			||||||
	if clusterId <= 0 {
 | 
						if clusterId <= 0 {
 | 
				
			||||||
		return nil, nil
 | 
							return nil, nil
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
@@ -1415,6 +1415,9 @@ func (this *NodeDAO) FindAllEnabledNodesDNSWithClusterId(tx *dbs.Tx, clusterId i
 | 
				
			|||||||
	} else {
 | 
						} else {
 | 
				
			||||||
		query.Attr("clusterId", clusterId)
 | 
							query.Attr("clusterId", clusterId)
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
						if !includingLnNodes {
 | 
				
			||||||
 | 
							query.Lte("level", 1)
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
	_, err = query.
 | 
						_, err = query.
 | 
				
			||||||
		State(NodeStateEnabled).
 | 
							State(NodeStateEnabled).
 | 
				
			||||||
		Attr("isOn", true).
 | 
							Attr("isOn", true).
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -417,9 +417,10 @@ func (this *DNSDomainService) convertRecordToPB(record *dnstypes.Record) *pb.DNS
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
// 检查集群节点变化
 | 
					// 检查集群节点变化
 | 
				
			||||||
func (this *DNSDomainService) findClusterDNSChanges(cluster *models.NodeCluster, records []*dnstypes.Record, domainName string, defaultRoute string) (result []maps.Map, doneNodeRecords []*dnstypes.Record, doneServerRecords []*dnstypes.Record, countAllNodes int64, countAllServers int64, nodesChanged bool, serversChanged bool, err error) {
 | 
					func (this *DNSDomainService) findClusterDNSChanges(cluster *models.NodeCluster, records []*dnstypes.Record, domainName string, defaultRoute string) (result []maps.Map, doneNodeRecords []*dnstypes.Record, doneServerRecords []*dnstypes.Record, countAllNodes int64, countAllServers int64, nodesChanged bool, serversChanged bool, err error) {
 | 
				
			||||||
	clusterId := int64(cluster.Id)
 | 
						var clusterId = int64(cluster.Id)
 | 
				
			||||||
	clusterDnsName := cluster.DnsName
 | 
						var clusterDnsName = cluster.DnsName
 | 
				
			||||||
	clusterDomain := clusterDnsName + "." + domainName
 | 
						var clusterDomain = clusterDnsName + "." + domainName
 | 
				
			||||||
 | 
						var dnsConfig, _ = cluster.DecodeDNSConfig()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	var tx = this.NullTx()
 | 
						var tx = this.NullTx()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -437,7 +438,7 @@ func (this *DNSDomainService) findClusterDNSChanges(cluster *models.NodeCluster,
 | 
				
			|||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	// 节点域名
 | 
						// 节点域名
 | 
				
			||||||
	nodes, err := models.SharedNodeDAO.FindAllEnabledNodesDNSWithClusterId(tx, clusterId, true)
 | 
						nodes, err := models.SharedNodeDAO.FindAllEnabledNodesDNSWithClusterId(tx, clusterId, true, dnsConfig != nil && dnsConfig.IncludingLnNodes)
 | 
				
			||||||
	if err != nil {
 | 
						if err != nil {
 | 
				
			||||||
		return nil, nil, nil, 0, 0, false, false, err
 | 
							return nil, nil, nil, 0, 0, false, false, err
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1304,18 +1304,19 @@ func (this *NodeService) FindAllEnabledNodesDNSWithNodeClusterId(ctx context.Con
 | 
				
			|||||||
	if clusterDNS == nil {
 | 
						if clusterDNS == nil {
 | 
				
			||||||
		return nil, errors.New("not found clusterId '" + numberutils.FormatInt64(req.NodeClusterId) + "'")
 | 
							return nil, errors.New("not found clusterId '" + numberutils.FormatInt64(req.NodeClusterId) + "'")
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	dnsDomainId := int64(clusterDNS.DnsDomainId)
 | 
						var dnsConfig, _ = clusterDNS.DecodeDNSConfig()
 | 
				
			||||||
 | 
						var dnsDomainId = int64(clusterDNS.DnsDomainId)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	routes, err := dns.SharedDNSDomainDAO.FindDomainRoutes(tx, dnsDomainId)
 | 
						routes, err := dns.SharedDNSDomainDAO.FindDomainRoutes(tx, dnsDomainId)
 | 
				
			||||||
	if err != nil {
 | 
						if err != nil {
 | 
				
			||||||
		return nil, err
 | 
							return nil, err
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	nodes, err := models.SharedNodeDAO.FindAllEnabledNodesDNSWithClusterId(tx, req.NodeClusterId, true)
 | 
						nodes, err := models.SharedNodeDAO.FindAllEnabledNodesDNSWithClusterId(tx, req.NodeClusterId, true, dnsConfig != nil && dnsConfig.IncludingLnNodes)
 | 
				
			||||||
	if err != nil {
 | 
						if err != nil {
 | 
				
			||||||
		return nil, err
 | 
							return nil, err
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	result := []*pb.NodeDNSInfo{}
 | 
						var result = []*pb.NodeDNSInfo{}
 | 
				
			||||||
	for _, node := range nodes {
 | 
						for _, node := range nodes {
 | 
				
			||||||
		ipAddresses, err := models.SharedNodeIPAddressDAO.FindNodeAccessAndUpIPAddresses(tx, int64(node.Id), nodeconfigs.NodeRoleNode)
 | 
							ipAddresses, err := models.SharedNodeIPAddressDAO.FindNodeAccessAndUpIPAddresses(tx, int64(node.Id), nodeconfigs.NodeRoleNode)
 | 
				
			||||||
		if err != nil {
 | 
							if err != nil {
 | 
				
			||||||
@@ -1327,7 +1328,7 @@ func (this *NodeService) FindAllEnabledNodesDNSWithNodeClusterId(ctx context.Con
 | 
				
			|||||||
			return nil, err
 | 
								return nil, err
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		pbRoutes := []*pb.DNSRoute{}
 | 
							var pbRoutes = []*pb.DNSRoute{}
 | 
				
			||||||
		for _, routeCode := range domainRouteCodes {
 | 
							for _, routeCode := range domainRouteCodes {
 | 
				
			||||||
			for _, r := range routes {
 | 
								for _, r := range routes {
 | 
				
			||||||
				if r.Code == routeCode {
 | 
									if r.Code == routeCode {
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -450,14 +450,15 @@ func (this *NodeClusterService) FindEnabledNodeClusterDNS(ctx context.Context, r
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
	if dnsInfo.DnsDomainId == 0 {
 | 
						if dnsInfo.DnsDomainId == 0 {
 | 
				
			||||||
		return &pb.FindEnabledNodeClusterDNSResponse{
 | 
							return &pb.FindEnabledNodeClusterDNSResponse{
 | 
				
			||||||
			Name:            dnsInfo.DnsName,
 | 
								Name:             dnsInfo.DnsName,
 | 
				
			||||||
			Domain:          nil,
 | 
								Domain:           nil,
 | 
				
			||||||
			Provider:        nil,
 | 
								Provider:         nil,
 | 
				
			||||||
			NodesAutoSync:   dnsConfig.NodesAutoSync,
 | 
								NodesAutoSync:    dnsConfig.NodesAutoSync,
 | 
				
			||||||
			ServersAutoSync: dnsConfig.ServersAutoSync,
 | 
								ServersAutoSync:  dnsConfig.ServersAutoSync,
 | 
				
			||||||
			CnameRecords:    dnsConfig.CNameRecords,
 | 
								CnameRecords:     dnsConfig.CNameRecords,
 | 
				
			||||||
			Ttl:             dnsConfig.TTL,
 | 
								Ttl:              dnsConfig.TTL,
 | 
				
			||||||
			CnameAsDomain:   dnsConfig.CNameAsDomain,
 | 
								CnameAsDomain:    dnsConfig.CNameAsDomain,
 | 
				
			||||||
 | 
								IncludingLnNodes: dnsConfig.IncludingLnNodes,
 | 
				
			||||||
		}, nil
 | 
							}, nil
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -509,15 +510,16 @@ func (this *NodeClusterService) FindEnabledNodeClusterDNS(ctx context.Context, r
 | 
				
			|||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	return &pb.FindEnabledNodeClusterDNSResponse{
 | 
						return &pb.FindEnabledNodeClusterDNSResponse{
 | 
				
			||||||
		Name:            dnsInfo.DnsName,
 | 
							Name:             dnsInfo.DnsName,
 | 
				
			||||||
		Domain:          pbDomain,
 | 
							Domain:           pbDomain,
 | 
				
			||||||
		Provider:        pbProvider,
 | 
							Provider:         pbProvider,
 | 
				
			||||||
		NodesAutoSync:   dnsConfig.NodesAutoSync,
 | 
							NodesAutoSync:    dnsConfig.NodesAutoSync,
 | 
				
			||||||
		ServersAutoSync: dnsConfig.ServersAutoSync,
 | 
							ServersAutoSync:  dnsConfig.ServersAutoSync,
 | 
				
			||||||
		CnameRecords:    dnsConfig.CNameRecords,
 | 
							CnameRecords:     dnsConfig.CNameRecords,
 | 
				
			||||||
		Ttl:             dnsConfig.TTL,
 | 
							Ttl:              dnsConfig.TTL,
 | 
				
			||||||
		CnameAsDomain:   dnsConfig.CNameAsDomain,
 | 
							CnameAsDomain:    dnsConfig.CNameAsDomain,
 | 
				
			||||||
		DefaultRoute:    defaultRoute,
 | 
							IncludingLnNodes: dnsConfig.IncludingLnNodes,
 | 
				
			||||||
 | 
							DefaultRoute:     defaultRoute,
 | 
				
			||||||
	}, nil
 | 
						}, nil
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -610,7 +612,7 @@ func (this *NodeClusterService) UpdateNodeClusterDNS(ctx context.Context, req *p
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
	var tx = this.NullTx()
 | 
						var tx = this.NullTx()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	err = models.SharedNodeClusterDAO.UpdateClusterDNS(tx, req.NodeClusterId, req.DnsName, req.DnsDomainId, req.NodesAutoSync, req.ServersAutoSync, req.CnameRecords, req.Ttl, req.CnameAsDomain)
 | 
						err = models.SharedNodeClusterDAO.UpdateClusterDNS(tx, req.NodeClusterId, req.DnsName, req.DnsDomainId, req.NodesAutoSync, req.ServersAutoSync, req.CnameRecords, req.Ttl, req.CnameAsDomain, req.IncludingLnNodes)
 | 
				
			||||||
	if err != nil {
 | 
						if err != nil {
 | 
				
			||||||
		return nil, err
 | 
							return nil, err
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -355,12 +355,12 @@ func (this *DNSTaskExecutor) doCluster(taskId int64, clusterId int64) error {
 | 
				
			|||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	// 当前的节点记录
 | 
						// 当前的节点记录
 | 
				
			||||||
	newRecordKeys := []string{}
 | 
						var newRecordKeys = []string{}
 | 
				
			||||||
	nodes, err := models.SharedNodeDAO.FindAllEnabledNodesDNSWithClusterId(tx, clusterId, true)
 | 
						nodes, err := models.SharedNodeDAO.FindAllEnabledNodesDNSWithClusterId(tx, clusterId, true, dnsConfig != nil && dnsConfig.IncludingLnNodes)
 | 
				
			||||||
	if err != nil {
 | 
						if err != nil {
 | 
				
			||||||
		return err
 | 
							return err
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	isChanged := false
 | 
						var isChanged = false
 | 
				
			||||||
	for _, node := range nodes {
 | 
						for _, node := range nodes {
 | 
				
			||||||
		routes, err := node.DNSRouteCodesForDomainId(domainId)
 | 
							routes, err := node.DNSRouteCodesForDomainId(domainId)
 | 
				
			||||||
		if err != nil {
 | 
							if err != nil {
 | 
				
			||||||
@@ -379,7 +379,7 @@ func (this *DNSTaskExecutor) doCluster(taskId int64, clusterId int64) error {
 | 
				
			|||||||
			continue
 | 
								continue
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
		for _, ipAddress := range ipAddresses {
 | 
							for _, ipAddress := range ipAddresses {
 | 
				
			||||||
			ip := ipAddress.DNSIP()
 | 
								var ip = ipAddress.DNSIP()
 | 
				
			||||||
			if len(ip) == 0 || !ipAddress.CanAccess || !ipAddress.IsUp || !ipAddress.IsOn {
 | 
								if len(ip) == 0 || !ipAddress.CanAccess || !ipAddress.IsUp || !ipAddress.IsOn {
 | 
				
			||||||
				continue
 | 
									continue
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
@@ -387,14 +387,14 @@ func (this *DNSTaskExecutor) doCluster(taskId int64, clusterId int64) error {
 | 
				
			|||||||
				continue
 | 
									continue
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
			for _, route := range routes {
 | 
								for _, route := range routes {
 | 
				
			||||||
				key := route + "@" + ip
 | 
									var key = route + "@" + ip
 | 
				
			||||||
				_, ok := oldRecordsMap[key]
 | 
									_, ok := oldRecordsMap[key]
 | 
				
			||||||
				if ok {
 | 
									if ok {
 | 
				
			||||||
					newRecordKeys = append(newRecordKeys, key)
 | 
										newRecordKeys = append(newRecordKeys, key)
 | 
				
			||||||
					continue
 | 
										continue
 | 
				
			||||||
				}
 | 
									}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
				recordType := dnstypes.RecordTypeA
 | 
									var recordType = dnstypes.RecordTypeA
 | 
				
			||||||
				if utils.IsIPv6(ip) {
 | 
									if utils.IsIPv6(ip) {
 | 
				
			||||||
					recordType = dnstypes.RecordTypeAAAA
 | 
										recordType = dnstypes.RecordTypeAAAA
 | 
				
			||||||
				}
 | 
									}
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user