3
0
mirror of https://github.com/ergochat/ergo.git synced 2024-11-10 22:19:31 +01:00

Merge pull request #131 from slingamn/hostmask_fix

fix hostmask issue
This commit is contained in:
Daniel Oaks 2017-09-06 02:01:47 +10:00 committed by GitHub
commit b975c6f182

View File

@ -28,7 +28,13 @@ func AddrLookupHostname(addr net.Addr) string {
// LookupHostname returns the hostname for `addr` if it has one. Otherwise, just returns `addr`.
func LookupHostname(addr string) string {
names, err := net.LookupAddr(addr)
if err != nil || len(names) < 1 || !IsHostname(names[0]) {
if err == nil && len(names) > 0 {
candidate := strings.TrimSuffix(names[0], ".")
if IsHostname(candidate) {
return candidate
}
}
// return original address if no hostname found
if len(addr) > 0 && addr[0] == ':' {
// fix for IPv6 hostnames (so they don't start with a colon), same as all other IRCds
@ -37,9 +43,6 @@ func LookupHostname(addr string) string {
return addr
}
return names[0]
}
var allowedHostnameChars = "abcdefghijklmnopqrstuvwxyz1234567890-."
// IsHostname returns whether we consider `name` a valid hostname.