Browse Source

tolerate domain type names as much as possible.

Darien Raymond 6 years ago
parent
commit
6db7935b8c
2 changed files with 9 additions and 0 deletions
  1. 6 0
      infra/conf/dns.go
  2. 3 0
      infra/conf/router.go

+ 6 - 0
infra/conf/dns.go

@@ -172,6 +172,12 @@ func (c *DnsConfig) Build() (*dns.Config, error) {
 				mapping.Domain = domain[8:]
 				mapping.Domain = domain[8:]
 
 
 				mappings = append(mappings, mapping)
 				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 {
 			} else {
 				mapping := getHostMapping(addr)
 				mapping := getHostMapping(addr)
 				mapping.Type = dns.DomainMatchingType_Full
 				mapping.Type = dns.DomainMatchingType_Full

+ 3 - 0
infra/conf/router.go

@@ -286,6 +286,9 @@ func parseDomainRule(domain string) ([]*router.Domain, error) {
 	case strings.HasPrefix(domain, "full:"):
 	case strings.HasPrefix(domain, "full:"):
 		domainRule.Type = router.Domain_Full
 		domainRule.Type = router.Domain_Full
 		domainRule.Value = domain[5:]
 		domainRule.Value = domain[5:]
+	case strings.HasPrefix(domain, "keyword:"):
+		domainRule.Type = router.Domain_Plain
+		domainRule.Value = domain[8:]
 	default:
 	default:
 		domainRule.Type = router.Domain_Plain
 		domainRule.Type = router.Domain_Plain
 		domainRule.Value = domain
 		domainRule.Value = domain