torrent directory fix
This commit is contained in:
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user