Skip to content

Releases

v2.5.1

Choose a tag to compare

@cenkalti cenkalti released this 07 Nov 16:07
79c479c

Changelog

  • 608cd7d metainfo, filestorage: reject paths outside of the data directory
  • 79c479c update changelog
  • d844eb0 update changelog

v2.5.0

Choose a tag to compare

@cenkalti cenkalti released this 07 Nov 16:00
79442c4

Changelog

  • 2c7f8e6 allocator: close files when closed during allocation
  • 2d4bb2e storage: add ErrNotWritten for ranges that were never written
  • f8c4295 storage: add Preparer for whole-torrent setup
  • 6e991ef storage: add Remover so storage deletes its own data
  • 64afec9 storage: make storage interfaces public
  • 79442c4 update changelog

v2.4.5

Choose a tag to compare

@cenkalti cenkalti released this 01 Nov 17:26
0db8944

Changelog

v2.4.4

Choose a tag to compare

@cenkalti cenkalti released this 19 Oct 21:36
88ef638

Changelog

  • 1d7702a build(deps): bump golang.org/x/sync from 0.23.0 to 0.24.0
  • 3679a16 build(deps): bump golang.org/x/sys from 0.48.0 to 0.49.0
  • ca76d1d udptracker: bound announces and isolate cancellation
  • d5ff613 udptracker: reduce to announce deadline and expiry check
  • 10f574d udptracker: renew expired connection ids during retries
  • 88ef638 update changelog

v2.4.3

Choose a tag to compare

@cenkalti cenkalti released this 10 Oct 16:23
7d5cd61

Changelog

  • 4fa8c05 Support plain, PeerGuardian and eMule ranges in the IP blocklist
  • c4e3890 blocklist: allow commas in PeerGuardian descriptions
  • 4bb70f1 build(deps): bump github.com/cenkalti/backoff/v7 from 7.0.0 to 7.0.1
  • 7d5cd61 update changelog

v2.4.2

Choose a tag to compare

@cenkalti cenkalti released this 03 Oct 20:06
33efae4

Changelog

  • 40b7ca7 build(deps): bump github.com/stretchr/testify from 1.12.0 to 1.12.1 (#245)
  • 6adce5a build(deps): bump golang.org/x/sync from 0.22.0 to 0.23.0 (#247)
  • 3f67632 build(deps): bump golang.org/x/sys from 0.47.0 to 0.48.0 (#246)
  • cb6759b build: fix goreleaser deprecations
  • beaaca0 build: release a universal macOS binary for arm64 and amd64 (#250)
  • 1e10ca1 ci: build with go 1.26
  • fd85e49 ci: bump golangci-lint to v2.12.2
  • aa5992b ci: bump golangci-lint to v2.14.0
  • e856eb1 ci: read go version from .go-version
  • 5bbdadd ci: read go version from go.mod
  • 957d3c3 ci: track latest go 1.26 patch
  • 0cb0950 console: fix columnsNeedStats predicate
  • c6ad423 console: split console.go by responsibility
  • 635f32a infodownloader: print indexes with %d
  • fd9826f lint: stop shadowing builtins, fix gofmt and else-flow
  • a6ce782 readme: drop go report card badge
  • 86a96b6 torrent: add tests for command channel paths
  • 80e3399 torrent: guard the two unlocked bitfield writes
  • 812d787 torrent: send commands to the run loop as closures
  • b4e8e43 torrent: use errors.AsType for InputError
  • 49b83a5 update changelog
  • 33efae4 update changelog

v2.4.1

Choose a tag to compare

@cenkalti cenkalti released this 21 Sep 23:27
c0b8ae2

Changelog

  • 4f12617 Do not cancel the stopped event announce while closing a torrent (#248)
  • de19a63 Update backoff pkg to v7
  • 28ad179 blocklist: use backoff.Retry for reload
  • 9a42639 boltdbresumer: extract update helper
  • 093a6f3 build(deps): bump actions/checkout from 6 to 7
  • 35583f8 build(deps): bump actions/setup-go from 6 to 7
  • 9326b0b build(deps): bump actions/stale from 10 to 11
  • 697380f build(deps): bump github.com/stretchr/testify from 1.11.1 to 1.12.0
  • be89944 build(deps): bump go.etcd.io/bbolt from 1.4.3 to 1.5.0
  • 6278afa build(deps): bump golang.org/x/sync from 0.21.0 to 0.22.0
  • 647fbf0 build(deps): bump golang.org/x/sys from 0.46.0 to 0.47.0
  • 48de555 ctxutil: unify channel-close to context cancel
  • aacd4f6 deps: bump x/crypto to v0.52.0
  • 3b25c49 deps: update backoff to v6
  • 85d17cf magnet: handle hybrid links with both xt topics
  • e1e8878 piecepicker: add sequential download option
  • b1ae35d piecepicker: pick both ends of every file first
  • aea3e55 piecepicker: pick first and last piece first
  • 8318eb0 piecepicker: prefer file edges over allowed-fast
  • 26c799b piecepicker: widen file ends to 1% of file size
  • 29aee4d torrent: extract sendCommand and recvResponse
  • 2c25993 torrent: use httptest.NewServer in webseed test
  • 4c1af43 torrent: wait for stopped announces on close
  • c0b8ae2 update changelog
  • 8b8b4a1 update changelog

v2.4.0

Choose a tag to compare

@cenkalti cenkalti released this 09 Aug 18:04
5c9cca1

Changelog

  • de19a63 Update backoff pkg to v7
  • 28ad179 blocklist: use backoff.Retry for reload
  • 9a42639 boltdbresumer: extract update helper
  • 093a6f3 build(deps): bump actions/checkout from 6 to 7
  • 35583f8 build(deps): bump actions/setup-go from 6 to 7
  • be89944 build(deps): bump go.etcd.io/bbolt from 1.4.3 to 1.5.0
  • 6278afa build(deps): bump golang.org/x/sync from 0.21.0 to 0.22.0
  • 647fbf0 build(deps): bump golang.org/x/sys from 0.46.0 to 0.47.0
  • 48de555 ctxutil: unify channel-close to context cancel
  • aacd4f6 deps: bump x/crypto to v0.52.0
  • 3b25c49 deps: update backoff to v6
  • 85d17cf magnet: handle hybrid links with both xt topics
  • e1e8878 piecepicker: add sequential download option
  • b1ae35d piecepicker: pick both ends of every file first
  • aea3e55 piecepicker: pick first and last piece first
  • 8318eb0 piecepicker: prefer file edges over allowed-fast
  • 26c799b piecepicker: widen file ends to 1% of file size
  • 29aee4d torrent: extract sendCommand and recvResponse
  • 5c9cca1 update changelog

v2.3.1

Choose a tag to compare

@cenkalti cenkalti released this 11 Jun 09:09
adc677b

Changelog

  • 0b4abe4 Bump github.com/sirupsen/logrus from 1.8.1 to 1.8.3
  • cacbaab Bump golang.org/x/sync from 0.18.0 to 0.19.0 (#223)
  • 92cf48b Bump golang.org/x/sync from 0.19.0 to 0.21.0
  • 94b3156 Bump golang.org/x/sys from 0.39.0 to 0.46.0
  • 220c19d Bump goreleaser/goreleaser-action from 6 to 7
  • c9bb2ed Fix lint workflow Go version mismatch
  • 2dc8ea7 Potential fix for code scanning alert no. 11: Incorrect conversion between integer types
  • 3372984 Potential fix for code scanning alert no. 8: Workflow does not contain permissions
  • a7a6a2c accept BEP 47 torrents with duplicate pad file paths
  • ba7c725 chore: bump go-prettyjson and boltbrowser to latest
  • 1c4b223 ci: avoid duplicate workflow runs on pull requests
  • 070946c ci: replace deprecated 'go get -d' with 'go mod download'
  • 10137a2 clear snubbed state when info downloader receives data
  • 5ecb782 discard webseed piece result for already completed piece
  • c6bbff9 docs(rainrpc): document GetTorrentFiles and GetTorrentFileStats
  • 17039ac docs(torrent): start AnnounceError.Error doc comment with the method name
  • 2216a9d fix HTTP tracker external-IP filter dropping wrong peers
  • e3f3555 fix UDP tracker backoff using XOR instead of exponentiation
  • a1ee648 fix connectedPeerIPs leak on duplicate peer id
  • 58fcb3c fix data race in StartAll/StopAll
  • addd69a fix data race on torrentsByInfoHash in removeTorrentFromClient
  • 1fca14f fix duplicate piece assignment to peers during webseed download
  • 5754603 fix filesection.Write not skipping padding bytes in buffer
  • 40df65f fix goroutine and context leak in resolveAndAddPeer
  • 8e7be84 fix negative metadata_size bypassing validation (remote DoS)
  • 1bbc02e fix per-source peer count on eviction in addrlist
  • 97d2b9d fix piece picker leaking choked peers on cancel/disconnect
  • 0a9f8cf fix webseed URLs escaping path separators as %2F
  • ec49299 fix webseed requesting padding files from server
  • d5c4881 fix webseedActiveDownloads counter leak on webseed downloader close
  • c1d2fb5 fix(peerprotocol): report correct wire ID for AllowedFastMessage
  • e3805ad fix(piececache): stop expiry timers on Close to release cached pieces
  • bd71845 fix(torrent): close move-torrent response body on non-200 status
  • 65546a1 fix(torrent): close tar-entry file on error paths in readData
  • 209358b fix(torrent): don't panic on unknown peer source in ListPeers handler
  • 9f71b77 fix(torrent): log instead of Fatal when RPC server stops serving
  • ff78e0f fix(torrent): wrap errors with %w in stop() so Stats.Error is inspectable
  • 6a5fb5e fix: correct version ldflag path for /v2 module
  • 38dad5b harden piece request bounds check against uint32 overflow
  • a298ef8 increase drain time in HTTP tracker test teardown to fix flaky race
  • adc677b refactor(bitfield): use NumBytes in NewBytes instead of recomputing the ceil
  • c8f1d47 refactor(console): use strconv.Itoa for ints; drop no-op errstr var
  • 838629e refactor(handshaker): share handshake error logging via btconn.LogHandshakeError
  • 6163f3f refactor(sliceset): use slices.Index in Remove
  • 7066534 refactor(torrent): decode DHT compact peers via tracker.CompactPeer
  • 6fe0060 refactor(torrent): move raw-HTTP move-torrent handler to its own file
  • 1b24e47 refactor(torrent): rename newTorrent2 to newTorrent; DTO converter to torrentToRPC
  • b8cde1c refactor(webseedsource): remove write-only DisabledAt field
  • e335ed9 refactor: migrate to math/rand/v2
  • f227280 refactor: modernize sorting with slices.SortFunc and builtin min
  • 979053c refactor: move printJSON helper to helpers.go and reuse in torrent show
  • 089dc02 refactor: split CLI into internal/command package, one file per command
  • 9e73fcb refactor: use atomic.Int32 for atomic counters
  • 0809892 reject oversized peer messages before allocating
  • edf37ac reject tar entries that escape destination dir in move-torrent
  • 008dfde reset webseedActiveDownloads when tearing down webseed downloads
  • 9b0d485 snapshot torrents before Start/Stop to avoid holding lock on blocking calls
  • 9d07450 update changelog
  • d18403f use canonical prefix guard for tar-slip check so CodeQL recognizes it

v2.3.0

Choose a tag to compare

@cenkalti cenkalti released this 07 Feb 20:51
3bce37f

Changelog

⌂ 换网址