X-Git-Url: http://www.git.stargrave.org/?a=blobdiff_plain;f=warc%2Funcompressed.go;fp=warc%2Funcompressed.go;h=5dd60c5608c2b2f496daa753b1b4da0897e04568;hb=bae1cfe5ce46a1b758ccc4dddda2751b6ac47f3e;hp=0000000000000000000000000000000000000000;hpb=0c0a261a6ef4fddfc34a9150005f7964cc69c420;p=tofuproxy.git diff --git a/warc/uncompressed.go b/warc/uncompressed.go new file mode 100644 index 0000000..5dd60c5 --- /dev/null +++ b/warc/uncompressed.go @@ -0,0 +1,51 @@ +/* +tofuproxy -- flexible HTTP/WARC proxy with TLS certificates management +Copyright (C) 2021 Sergey Matveev + +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 +the Free Software Foundation, version 3 of the License. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +package warc + +import ( + "io" + "os" +) + +type UncompressedReader struct { + *os.File +} + +func NewUncompressedReader(warcPath string, offset int64) (*UncompressedReader, error) { + fd, err := os.Open(warcPath) + if err != nil { + return nil, err + } + if _, err = fd.Seek(offset, io.SeekStart); err != nil { + fd.Close() + return nil, err + } + return &UncompressedReader{File: fd}, nil +} + +func (r *UncompressedReader) Read(p []byte) (int, error) { + return r.File.Read(p) +} + +func (r *UncompressedReader) Close() error { + return r.File.Close() +} + +func (r *UncompressedReader) Offsets() []Offset { + return nil +}