From 6db7935b8c874e03ab8d0c7fc7b3445513a4ad3e Mon Sep 17 00:00:00 2001 From: Darien Raymond Date: Tue, 26 Feb 2019 21:32:07 +0100 Subject: [PATCH] tolerate domain type names as much as possible. --- infra/conf/dns.go | 6 ++++++ infra/conf/router.go | 3 +++ 2 files changed, 9 insertions(+) diff --git a/infra/conf/dns.go b/infra/conf/dns.go index 93e6f7b5..c852a679 100644 --- a/infra/conf/dns.go +++ b/infra/conf/dns.go @@ -171,6 +171,12 @@ func (c *DnsConfig) Build() (*dns.Config, error) { mapping.Type = dns.DomainMatchingType_Keyword mapping.Domain = domain[8:] + mappings = append(mappings, mapping) + } else if strings.HasPrefix(domain, "full:") { + mapping := getHostMapping(addr) + mapping.Type = dns.DomainMatchingType_Full + mapping.Domain = domain[5:] + mappings = append(mappings, mapping) } else { mapping := getHostMapping(addr) diff --git a/infra/conf/router.go b/infra/conf/router.go index d79f486f..285d715c 100644 --- a/infra/conf/router.go +++ b/infra/conf/router.go @@ -286,6 +286,9 @@ func parseDomainRule(domain string) ([]*router.Domain, error) { case strings.HasPrefix(domain, "full:"): domainRule.Type = router.Domain_Full domainRule.Value = domain[5:] + case strings.HasPrefix(domain, "keyword:"): + domainRule.Type = router.Domain_Plain + domainRule.Value = domain[8:] default: domainRule.Type = router.Domain_Plain domainRule.Value = domain