summaryrefslogtreecommitdiffstats
path: root/vendor/github.com/miekg/dns/dnsutil/util.go
diff options
context:
space:
mode:
authorChristopher Speller <crspeller@gmail.com>2017-11-13 09:09:58 -0800
committerGitHub <noreply@github.com>2017-11-13 09:09:58 -0800
commit1329aa51b605cb54ba9aae3a82a0a87b881fb7b3 (patch)
tree93cbf354ab894a560fc2cef8ef685d681b4ff889 /vendor/github.com/miekg/dns/dnsutil/util.go
parent7304a61ef597970be3031b14e652fb3a4df44304 (diff)
downloadchat-1329aa51b605cb54ba9aae3a82a0a87b881fb7b3.tar.gz
chat-1329aa51b605cb54ba9aae3a82a0a87b881fb7b3.tar.bz2
chat-1329aa51b605cb54ba9aae3a82a0a87b881fb7b3.zip
Updating server dependancies. (#7816)
Diffstat (limited to 'vendor/github.com/miekg/dns/dnsutil/util.go')
-rw-r--r--vendor/github.com/miekg/dns/dnsutil/util.go18
1 files changed, 11 insertions, 7 deletions
diff --git a/vendor/github.com/miekg/dns/dnsutil/util.go b/vendor/github.com/miekg/dns/dnsutil/util.go
index c8c6af7b3..76ac4de66 100644
--- a/vendor/github.com/miekg/dns/dnsutil/util.go
+++ b/vendor/github.com/miekg/dns/dnsutil/util.go
@@ -20,7 +20,9 @@ import (
func AddOrigin(s, origin string) string {
// ("foo.", "origin.") -> "foo." (already a FQDN)
// ("foo", "origin.") -> "foo.origin."
- // ("foo"), "origin" -> "foo.origin"
+ // ("foo", "origin") -> "foo.origin"
+ // ("foo", ".") -> "foo." (Same as dns.Fqdn())
+ // ("foo.", ".") -> "foo." (Same as dns.Fqdn())
// ("@", "origin.") -> "origin." (@ represents the apex (bare) domain)
// ("", "origin.") -> "origin." (not obvious)
// ("foo", "") -> "foo" (not obvious)
@@ -34,32 +36,34 @@ func AddOrigin(s, origin string) string {
if s == "@" || len(s) == 0 {
return origin // Expand apex.
}
-
if origin == "." {
- return s + origin // AddOrigin(s, ".") is an expensive way to add a ".".
+ return dns.Fqdn(s)
}
return s + "." + origin // The simple case.
}
// TrimDomainName trims origin from s if s is a subdomain.
-// This function will never return "", but returns "@" instead (@ represents the apex (bare) domain).
+// This function will never return "", but returns "@" instead (@ represents the apex domain).
func TrimDomainName(s, origin string) string {
// An apex (bare) domain is always returned as "@".
// If the return value ends in a ".", the domain was not the suffix.
// origin can end in "." or not. Either way the results should be the same.
if len(s) == 0 {
- return "@" // Return the apex (@) rather than "".
+ return "@"
}
// Someone is using TrimDomainName(s, ".") to remove a dot if it exists.
if origin == "." {
return strings.TrimSuffix(s, origin)
}
- // Dude, you aren't even if the right subdomain!
+ original := s
+ s = dns.Fqdn(s)
+ origin = dns.Fqdn(origin)
+
if !dns.IsSubDomain(origin, s) {
- return s
+ return original
}
slabels := dns.Split(s)