tracker/udp/client.go | 3 +++ diff --git a/tracker/udp/client.go b/tracker/udp/client.go index 077cc7a40bac83d9259e4d0c65fb417d054d1437..4664643dd244d65c958e508ce7eac15ef93d0d16 100644 --- a/tracker/udp/client.go +++ b/tracker/udp/client.go @@ -225,6 +225,9 @@ } else if dr.Header.Action == ActionError { // udp://tracker.torrent.eu.org:451/announce frequently returns "Connection ID // missmatch.\x00" err = ErrorResponse{Message: string(dr.Body)} + // Force a reconnection. Probably any error is worth doing this for, but the one we're + // specifically interested in is ConnectionIdMissmatchNul. + cl.connIdIssued = time.Time{} } else { err = fmt.Errorf("unexpected response action %v", dr.Header.Action) }