diff --git a/frontend/http/parser.go b/frontend/http/parser.go index d873f40..33a499d 100644 --- a/frontend/http/parser.go +++ b/frontend/http/parser.go @@ -79,6 +79,11 @@ func ParseAnnounce(r *http.Request, realIPHeader string, allowIPSpoofing bool) ( return nil, bittorrent.ClientError("failed to parse peer IP address") } + // Sanitize IPv4 addresses to 4 bytes. + if ip := request.Peer.IP.To4(); ip != nil { + request.Peer.IP = ip + } + return request, nil }