]> Sergey Matveev's repositories - tofuproxy.git/commitdiff
Fix some bad errors in WARC reader
authorSergey Matveev <stargrave@stargrave.org>
Fri, 24 Jun 2022 12:58:48 +0000 (15:58 +0300)
committerSergey Matveev <stargrave@stargrave.org>
Fri, 24 Jun 2022 12:58:48 +0000 (15:58 +0300)
warc/record.go

index d755acea56c7a1fbaeaed4d349ed111e3d930998..c5823fc7388ecbf95ab3c86727d6825cda6a586a 100644 (file)
@@ -53,7 +53,7 @@ type SelfRecordReader struct {
 }
 
 func (srr *SelfRecordReader) Read(p []byte) (n int, err error) {
-       n, err = srr.rrr.Read(p)
+       n, err = srr.lr.Read(p)
        if err != nil {
                srr.Close()
        }
@@ -73,7 +73,11 @@ func (rec *Record) selfReader(noHdr bool, offsets []Offset) (*SelfRecordReader,
        if err != nil {
                return nil, err
        }
-       return &SelfRecordReader{lr: &io.LimitedReader{R: rrr, N: rec.Size}, rrr: rrr}, nil
+       size := rec.Size
+       if !noHdr {
+               size += int64(rec.HdrLen)
+       }
+       return &SelfRecordReader{lr: &io.LimitedReader{R: rrr, N: size}, rrr: rrr}, nil
 }
 
 type RecordReader struct {