/*
tofuproxy -- flexible HTTP/HTTPS proxy, TLS terminator, X.509 TOFU
manager, WARC/geminispace browser
-Copyright (C) 2021-2022 Sergey Matveev <stargrave@stargrave.org>
+Copyright (C) 2021-2023 Sergey Matveev <stargrave@stargrave.org>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
}
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()
}
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 {