From: Matt Joiner Date: Fri, 8 Aug 2025 03:29:22 +0000 (+1000) Subject: Fix build on Windows X-Git-Tag: v1.59.0~2^2~32 X-Git-Url: http://www.git.stargrave.org/?a=commitdiff_plain;h=b6e9e69c96b4402b042bd72101f0f7cb5bde419b;p=btrtrc.git Fix build on Windows --- diff --git a/storage/file-piece.go b/storage/file-piece.go index d50c509a..54f1556b 100644 --- a/storage/file-piece.go +++ b/storage/file-piece.go @@ -12,8 +12,6 @@ import ( g "github.com/anacrolix/generics" "github.com/anacrolix/missinggo/v2/panicif" - "golang.org/x/sys/unix" - "github.com/anacrolix/torrent/metainfo" "github.com/anacrolix/torrent/segments" ) @@ -318,10 +316,8 @@ func (me *filePieceImpl) writeFileTo(w io.Writer, fileIndex int, extent segments panicif.GreaterThan(extent.End(), file.FileInfo.Length) extentRemaining := extent.Length var dataOffset int64 - dataOffset, err = unix.Seek(int(f.Fd()), extent.Start, unix.SEEK_DATA) - if err == unix.ENXIO { - // File has no more data. Treat as short write like io.CopyN. - err = io.EOF + dataOffset, err = seekData(f, extent.Start) + if err == io.EOF { return } panicif.Err(err) diff --git a/storage/seek-data_unix.go b/storage/seek-data_unix.go new file mode 100644 index 00000000..35e0dee0 --- /dev/null +++ b/storage/seek-data_unix.go @@ -0,0 +1,19 @@ +//go:build unix + +package storage + +import ( + "io" + "os" + + "golang.org/x/sys/unix" +) + +func seekData(f *os.File, offset int64) (ret int64, err error) { + ret, err = unix.Seek(int(f.Fd()), offset, unix.SEEK_DATA) + if err == unix.ENXIO { + // File has no more data. Treat as short write like io.CopyN. + err = io.EOF + } + return +} diff --git a/storage/seek-data_windows.go b/storage/seek-data_windows.go new file mode 100644 index 00000000..ccfe202f --- /dev/null +++ b/storage/seek-data_windows.go @@ -0,0 +1,10 @@ +package storage + +import ( + "io" + "os" +) + +func seekData(f *os.File, offset int64) (ret int64, err error) { + return f.Seek(offset, io.SeekStart) +}