unexpectedCancels = expvar.NewInt("unexpectedCancels")
postedCancels = expvar.NewInt("postedCancels")
duplicateConnsAvoided = expvar.NewInt("duplicateConnsAvoided")
+ failedPieceHashes = expvar.NewInt("failedPieceHashes")
)
const (
func (me *Client) pieceHashed(t *torrent, piece pp.Integer, correct bool) {
p := t.Pieces[piece]
+ if p.EverHashed && !correct {
+ log.Printf("%s: piece %d failed hash", t, piece)
+ failedPieceHashes.Add(1)
+ }
p.EverHashed = true
if correct {
p.PendingChunkSpecs = nil