torrent directory fix

This commit is contained in:
Ben Sarmiento
2023-11-11 13:31:24 +01:00
parent 263b0e0039
commit fef389e10d
4 changed files with 21 additions and 19 deletions

View File

@@ -107,14 +107,14 @@ func NewManager(
}
// GetChunk loads one chunk and starts the preload for the next chunks
func (m *Manager) GetChunk(object *torrent.File, offset, size int64) ([]byte, error) {
maxOffset := object.Bytes
func (m *Manager) GetChunk(file *torrent.File, offset, size int64) ([]byte, error) {
maxOffset := file.Bytes
if offset > maxOffset {
return nil, fmt.Errorf("tried to read past EOF of %v at offset %v", object.ID, offset)
return nil, fmt.Errorf("tried to read past EOF of %v at offset %v", file.ID, offset)
}
// Log.Infof("Request %v:%v md5:%v", object.ID, offset, object.MD5Checksum)
if offset+size > maxOffset {
size = object.Bytes - offset
size = file.Bytes - offset
}
ranges := splitChunkRanges(offset, size, m.ChunkSize)
@@ -123,7 +123,7 @@ func (m *Manager) GetChunk(object *torrent.File, offset, size int64) ([]byte, er
last := numRanges - 1
for i, r := range ranges {
m.requestChunk(object, r.offset, r.size, i, i == last, responses)
m.requestChunk(file, r.offset, r.size, i, i == last, responses)
}
data := make([]byte, size)
@@ -136,7 +136,7 @@ func (m *Manager) GetChunk(object *torrent.File, offset, size int64) ([]byte, er
dataOffset := ranges[res.Sequence].offset - offset
if n := copy(data[dataOffset:], res.Bytes); n == 0 {
return nil, fmt.Errorf("request %v slice %v has empty response", object.ID, res.Sequence)
return nil, fmt.Errorf("request %v slice %v has empty response", file.ID, res.Sequence)
}
}
close(responses)