Be more careful with host IPs which call /update. They are potentially IPv6. Fixes Issue #16.

This commit is contained in:
Sascha L. Teichmann 2016-04-06 11:44:51 +02:00
parent 34fa4564f2
commit 58a44c2d40

View File

@ -96,15 +96,16 @@ func (tu *tileUpdater) checkIP(r *http.Request) bool {
return true return true
} }
var host []string idx := strings.LastIndex(r.RemoteAddr, ":")
if host = strings.SplitN(r.RemoteAddr, ":", 2); len(host) < 1 { if idx < 0 {
log.Printf("WARN: cannot extract host from '%s'.\n", r.RemoteAddr) log.Printf("WARN: cannot extract host from '%s'.\n", r.RemoteAddr)
return false return false
} }
var ip net.IP host := strings.Trim(r.RemoteAddr[:idx], "[]")
if ip = net.ParseIP(host[0]); ip == nil { ip := net.ParseIP(host)
log.Printf("WARN: cannot get IP for host '%s'.\n", host[0]) if ip == nil {
log.Printf("WARN: cannot get IP for host '%s'.\n", host)
return false return false
} }