t.InvalidateMetadata()
return
}
+ // TODO(anacrolix): If this fails, I think something harsher should be
+ // done.
err = cl.setMetaData(t, info, t.MetaData)
if err != nil {
log.Printf("error setting metadata: %s", err)
}
func (t *torrent) InvalidateMetadata() {
- for i := range t.metadataHave {
- t.metadataHave[i] = false
- }
+ t.MetaData = nil
+ t.metadataHave = nil
t.Info = nil
}
if t.haveInfo() {
return
}
+ if index >= len(t.metadataHave) {
+ log.Printf("%s: ignoring metadata piece %d", t, index)
+ return
+ }
copy(t.MetaData[(1<<14)*index:], data)
t.metadataHave[index] = true
}