]> Sergey Matveev's repositories - btrtrc.git/log
btrtrc.git
2 years agoAdd generics TODO v1.31.0
Matt Joiner [Thu, 2 Sep 2021 00:21:56 +0000 (10:21 +1000)]
Add generics TODO

2 years agoAdd "no name" handling and storage.NewFileOpts
Matt Joiner [Thu, 2 Sep 2021 00:21:46 +0000 (10:21 +1000)]
Add "no name" handling and storage.NewFileOpts

This came out of testing against Transmission in https://github.com/anacrolix/torrent/discussions/556#discussioncomment-1263670.

2 years ago./cmd/torrent-create: Update the builtin announce list
Matt Joiner [Wed, 1 Sep 2021 23:28:29 +0000 (09:28 +1000)]
./cmd/torrent-create: Update the builtin announce list

2 years agoFix info name when building from . and ..
Matt Joiner [Wed, 1 Sep 2021 06:17:23 +0000 (16:17 +1000)]
Fix info name when building from . and ..

2 years agocmd/torrent download: Don't seed if no torrents are specified
Matt Joiner [Wed, 1 Sep 2021 05:26:12 +0000 (15:26 +1000)]
cmd/torrent download: Don't seed if no torrents are specified

2 years agoFix panic on double Close of sqlite piece completion DB
Matt Joiner [Wed, 1 Sep 2021 05:25:46 +0000 (15:25 +1000)]
Fix panic on double Close of sqlite piece completion DB

2 years agoPieceStateRuns: reduce copying and make inlineable
YenForYang [Wed, 1 Sep 2021 04:06:25 +0000 (23:06 -0500)]
PieceStateRuns: reduce copying and make inlineable

Just a heads up: using `range` and/or `defer` prevents function inlining. This is fine for infrequently called functions and/or large functions, but for simple public methods like these, I'd assume it's better for them to be inlined.

2 years agoFix some DeepSource lints
Matt Joiner [Mon, 30 Aug 2021 01:48:34 +0000 (11:48 +1000)]
Fix some DeepSource lints

2 years agoSet Go CI workflow to use Go 1.17
Matt Joiner [Mon, 30 Aug 2021 01:19:16 +0000 (11:19 +1000)]
Set Go CI workflow to use Go 1.17

2 years agoAvoid reallocating keep alive timer on each pass v1.30.4
Matt Joiner [Sun, 22 Aug 2021 10:05:53 +0000 (20:05 +1000)]
Avoid reallocating keep alive timer on each pass

2 years agoDon't run linter on master branch
Matt Joiner [Sun, 22 Aug 2021 06:59:40 +0000 (16:59 +1000)]
Don't run linter on master branch

Super unimpressed with this pedantic rubbish. PRs to adjust the settings welcome.

2 years agoUpdate install command
Matt Joiner [Sun, 22 Aug 2021 05:52:35 +0000 (15:52 +1000)]
Update install command

2 years agoChange linter workflow branches and name v1.30.3
Matt Joiner [Thu, 19 Aug 2021 06:12:28 +0000 (16:12 +1000)]
Change linter workflow branches and name

2 years agoRemove unused code
Matt Joiner [Thu, 19 Aug 2021 06:06:46 +0000 (16:06 +1000)]
Remove unused code

2 years agoUpdate staticcheck go target to 1.16
Matt Joiner [Thu, 19 Aug 2021 06:06:24 +0000 (16:06 +1000)]
Update staticcheck go target to 1.16

2 years agoDisable excessively pedantic linters
Matt Joiner [Thu, 19 Aug 2021 06:05:58 +0000 (16:05 +1000)]
Disable excessively pedantic linters

2 years agoFix data race closing incoming PeerConn
Matt Joiner [Thu, 19 Aug 2021 03:35:52 +0000 (13:35 +1000)]
Fix data race closing incoming PeerConn

2 years agoSet direct sqlite storage conn to nil on close
Matt Joiner [Wed, 18 Aug 2021 06:56:05 +0000 (16:56 +1000)]
Set direct sqlite storage conn to nil on close

This might help catch the reason for SQLITE_MISUSE in getCapacity.

2 years agoRewrite peerConnMsgWriter.run
Matt Joiner [Wed, 18 Aug 2021 06:51:30 +0000 (16:51 +1000)]
Rewrite peerConnMsgWriter.run

2 years agoSet testing keep alive timeout to 1 millisecond
Matt Joiner [Wed, 18 Aug 2021 06:23:51 +0000 (16:23 +1000)]
Set testing keep alive timeout to 1 millisecond

If it's too fast, we get stuck trying to send keep alives rather than actually communicating with the peer.

2 years agoFix deadlock when checking whether to send keep alive
Matt Joiner [Wed, 18 Aug 2021 06:23:04 +0000 (16:23 +1000)]
Fix deadlock when checking whether to send keep alive

2 years agoLimit keep alives for rate limited download test
Matt Joiner [Wed, 18 Aug 2021 04:49:13 +0000 (14:49 +1000)]
Limit keep alives for rate limited download test

2 years agoFix race in assigning keep alive timer
Matt Joiner [Wed, 18 Aug 2021 04:48:25 +0000 (14:48 +1000)]
Fix race in assigning keep alive timer

2 years agoUse different keep alive timeout in tests
Matt Joiner [Wed, 18 Aug 2021 01:27:21 +0000 (11:27 +1000)]
Use different keep alive timeout in tests

Exposes bug found in email discussions resulting from https://github.com/anacrolix/torrent/discussions/547.

2 years agoAdd linter CI (#542)
Bora M. Alper [Mon, 16 Aug 2021 01:11:31 +0000 (04:11 +0300)]
Add linter CI (#542)

* Add linter CI

Signed-off-by: Bora M. Alper <bora@boramalper.org>
* Make gosec CI ignore SHA1 and upload sarif

Signed-off-by: Bora M. Alper <bora@boramalper.org>
* Fix formatting of source files

Signed-off-by: Bora M. Alper <bora@boramalper.org>
* Make go vet ignore unkeyed composite literals and fix other warnings

Signed-off-by: Bora M. Alper <bora@boramalper.org>
* Make staticcheck ignore unused methods and fix other warnings

Signed-off-by: Bora M. Alper <bora@boramalper.org>
* Use golangci-lint

Signed-off-by: Bora M. Alper <bora@boramalper.org>
2 years agoUse roaring.Bitmap directly for completed pieces
Matt Joiner [Mon, 16 Aug 2021 01:07:10 +0000 (11:07 +1000)]
Use roaring.Bitmap directly for completed pieces

Looking at improving the performance around this per https://github.com/anacrolix/torrent/discussions/547#discussion-3522317.

2 years agoSet go 1.17 in go.mod
Matt Joiner [Mon, 16 Aug 2021 00:38:43 +0000 (10:38 +1000)]
Set go 1.17 in go.mod

2 years agogo get -u
Matt Joiner [Mon, 16 Aug 2021 00:37:19 +0000 (10:37 +1000)]
go get -u

2 years agoFix mmap panic on darwin with Go 1.17 v1.30.2
Matt Joiner [Fri, 13 Aug 2021 04:02:37 +0000 (14:02 +1000)]
Fix mmap panic on darwin with Go 1.17

2 years agoDon't panic on int parse failures
Matt Joiner [Thu, 12 Aug 2021 03:46:02 +0000 (13:46 +1000)]
Don't panic on int parse failures

This means for UnmarshalTypeErrors we now include context. There are still some other error types remaining that are thrown up via panic.

2 years agoFix panic unmarshalling bencode dict into unsupported type v1.30.1
Matt Joiner [Thu, 12 Aug 2021 02:16:53 +0000 (12:16 +1000)]
Fix panic unmarshalling bencode dict into unsupported type

2 years agoFix allocation of empty DhtNodes in TorrentSpec
Matt Joiner [Wed, 11 Aug 2021 02:27:00 +0000 (12:27 +1000)]
Fix allocation of empty DhtNodes in TorrentSpec

https://github.com/anacrolix/torrent/pull/536#issuecomment-896392738

2 years agoFix race in sqlite direct storage init v1.30.0
Matt Joiner [Tue, 10 Aug 2021 23:43:40 +0000 (09:43 +1000)]
Fix race in sqlite direct storage init

There's a race between starting the blob flusher and assigning the timer to the storage client.

2 years agoReadme: Add downstream project (#543)
Alfonso Montero [Tue, 10 Aug 2021 01:13:00 +0000 (03:13 +0200)]
Readme: Add downstream project (#543)

2 years agoIncrease request update interval if there's no signalling
Matt Joiner [Sun, 1 Aug 2021 12:52:51 +0000 (22:52 +1000)]
Increase request update interval if there's no signalling

2 years agoMinimize allocations and resizing in request computation
Matt Joiner [Sun, 1 Aug 2021 12:02:40 +0000 (22:02 +1000)]
Minimize allocations and resizing in request computation

2 years agoPrecompute File.DisplayPath
Matt Joiner [Sun, 1 Aug 2021 12:01:24 +0000 (22:01 +1000)]
Precompute File.DisplayPath

This is an optimization for dir lookups in torrentfs.

2 years agocmd/torrentfs: Fix panic on missing info
Matt Joiner [Sun, 1 Aug 2021 11:38:35 +0000 (21:38 +1000)]
cmd/torrentfs: Fix panic on missing info

2 years agoTrim UDP tracker client read allocations v1.29.2
Matt Joiner [Mon, 26 Jul 2021 00:18:24 +0000 (10:18 +1000)]
Trim UDP tracker client read allocations

2 years agoClose torrent storage asynchronously on drop
Matt Joiner [Sat, 17 Jul 2021 09:10:07 +0000 (19:10 +1000)]
Close torrent storage asynchronously on drop

2 years agoAdd debug level to piece hash failure log message
Matt Joiner [Sat, 17 Jul 2021 08:52:41 +0000 (18:52 +1000)]
Add debug level to piece hash failure log message

2 years agoFix go:build directives v1.29.1
Matt Joiner [Wed, 14 Jul 2021 04:35:52 +0000 (14:35 +1000)]
Fix go:build directives

2 years agoRemove unused badges
Matt Joiner [Fri, 2 Jul 2021 04:43:13 +0000 (14:43 +1000)]
Remove unused badges

2 years agoFix race in concurrent connects in UDP tracker v1.29.0
Matt Joiner [Sun, 27 Jun 2021 01:57:11 +0000 (11:57 +1000)]
Fix race in concurrent connects in UDP tracker

2 years agomissinggo go.mod fix (#526)
ucwong [Sat, 26 Jun 2021 00:31:50 +0000 (08:31 +0800)]
missinggo go.mod fix (#526)

2 years agoCheck that udp conn ID age is non-zero
Matt Joiner [Fri, 25 Jun 2021 05:00:39 +0000 (15:00 +1000)]
Check that udp conn ID age is non-zero

2 years agoAdd http tracker AllowKeepAlive
Matt Joiner [Fri, 25 Jun 2021 05:00:09 +0000 (15:00 +1000)]
Add http tracker AllowKeepAlive

2 years agoUpdate and expose default client identifiers
Matt Joiner [Fri, 25 Jun 2021 01:29:59 +0000 (11:29 +1000)]
Update and expose default client identifiers

2 years agoAdd udp tracker scrape support
Matt Joiner [Thu, 24 Jun 2021 04:38:16 +0000 (14:38 +1000)]
Add udp tracker scrape support

2 years agoPull AnnounceOpt into tracker package
Matt Joiner [Thu, 24 Jun 2021 03:10:28 +0000 (13:10 +1000)]
Pull AnnounceOpt into tracker package

2 years agoCancel writer after request
Matt Joiner [Thu, 24 Jun 2021 03:10:18 +0000 (13:10 +1000)]
Cancel writer after request

2 years agoDon't log dispatch errors
Matt Joiner [Thu, 24 Jun 2021 03:10:00 +0000 (13:10 +1000)]
Don't log dispatch errors

2 years agoExtract protocol agnostic tracker Client
Matt Joiner [Thu, 24 Jun 2021 00:39:56 +0000 (10:39 +1000)]
Extract protocol agnostic tracker Client

2 years agoRewrite udp announce to use udp client
Matt Joiner [Wed, 23 Jun 2021 23:53:18 +0000 (09:53 +1000)]
Rewrite udp announce to use udp client

2 years agopackage expect fix (#524)
ucwong [Wed, 23 Jun 2021 11:27:18 +0000 (19:27 +0800)]
package expect fix (#524)

2 years agoFix some error wrapping in mse
Matt Joiner [Wed, 23 Jun 2021 07:25:07 +0000 (17:25 +1000)]
Fix some error wrapping in mse

2 years agoFixes for wasm
Matt Joiner [Wed, 23 Jun 2021 07:24:50 +0000 (17:24 +1000)]
Fixes for wasm

2 years agoReject accepted connections if we don't want conns
Matt Joiner [Wed, 23 Jun 2021 02:41:25 +0000 (12:41 +1000)]
Reject accepted connections if we don't want conns

This prevents unnecessarily stalling peers dialling us if we have no intention to ever accept.

2 years agoRearrange some tracker tests and files
Matt Joiner [Tue, 22 Jun 2021 13:32:27 +0000 (23:32 +1000)]
Rearrange some tracker tests and files

2 years agoExtract HTTP tracker client into separate package
Matt Joiner [Tue, 22 Jun 2021 13:28:26 +0000 (23:28 +1000)]
Extract HTTP tracker client into separate package

2 years agoMove tracker test server code to test file
Matt Joiner [Tue, 22 Jun 2021 12:48:49 +0000 (22:48 +1000)]
Move tracker test server code to test file

2 years agoUpdate test tracker urls
Matt Joiner [Tue, 22 Jun 2021 12:45:56 +0000 (22:45 +1000)]
Update test tracker urls

2 years agoFix tracker test timeouts
Matt Joiner [Tue, 22 Jun 2021 12:45:50 +0000 (22:45 +1000)]
Fix tracker test timeouts

2 years agoRewrite UDP tracker client
Matt Joiner [Tue, 22 Jun 2021 12:36:43 +0000 (22:36 +1000)]
Rewrite UDP tracker client

2 years agoAdd UDP tracker announce and connect expvars
Matt Joiner [Tue, 22 Jun 2021 06:52:55 +0000 (16:52 +1000)]
Add UDP tracker announce and connect expvars

2 years agoAdd to bencode.Unmarshal doc comment
Matt Joiner [Mon, 21 Jun 2021 07:58:04 +0000 (17:58 +1000)]
Add to bencode.Unmarshal doc comment

2 years agoTidy up the Dialer interface
Matt Joiner [Mon, 21 Jun 2021 03:29:26 +0000 (13:29 +1000)]
Tidy up the Dialer interface

2 years agoMinor tidying
Matt Joiner [Mon, 21 Jun 2021 03:00:20 +0000 (13:00 +1000)]
Minor tidying

2 years agoExpose DialFirst
Matt Joiner [Mon, 21 Jun 2021 02:54:57 +0000 (12:54 +1000)]
Expose DialFirst

2 years agoMark client transfer test as parallel
Matt Joiner [Mon, 21 Jun 2021 02:30:05 +0000 (12:30 +1000)]
Mark client transfer test as parallel

2 years agoRemove sqlite piece-resource storage
Matt Joiner [Mon, 21 Jun 2021 02:29:37 +0000 (12:29 +1000)]
Remove sqlite piece-resource storage

2 years agoAdd explicit metadata extension types
Matt Joiner [Fri, 18 Jun 2021 05:04:07 +0000 (15:04 +1000)]
Add explicit metadata extension types

2 years agoAdd ClientConfig.AcceptPeerConnections
Matt Joiner [Fri, 18 Jun 2021 04:59:20 +0000 (14:59 +1000)]
Add ClientConfig.AcceptPeerConnections

2 years agoRemove conntrack, expose Torrent.AnnounceToDht, ClientConfig.PeriodicallyAnnounceTorr...
Matt Joiner [Fri, 18 Jun 2021 01:05:23 +0000 (11:05 +1000)]
Remove conntrack, expose Torrent.AnnounceToDht, ClientConfig.PeriodicallyAnnounceTorrentsToDht

2 years agoMerge branch 'request-strategy-rewrite'
Matt Joiner [Mon, 21 Jun 2021 02:04:06 +0000 (12:04 +1000)]
Merge branch 'request-strategy-rewrite'

2 years agoAllow Storage Backends to do their own Hashing (#518)
Zilog8 [Tue, 8 Jun 2021 05:45:35 +0000 (01:45 -0400)]
Allow Storage Backends to do their own Hashing (#518)

* Allow Storage Backends to do their own Hashing

- Describes an optional interface 'SelfHashing' that a storage backend's type implementing 'PieceImpl' may also implement in order to calculate piece hashsums itself.

- Alters the 'hashPiece' function in the torrent package to look for types implementing 'SelfHashing' . If not implemented, calculate the hash as usual.

2 years agoFix nil context being passed to function
deepsource-autofix[bot] [Mon, 7 Jun 2021 03:24:32 +0000 (03:24 +0000)]
Fix nil context being passed to function

2 years agoAdd default param name in TorrentImpl.Piece func
Matt Joiner [Mon, 24 May 2021 08:06:42 +0000 (18:06 +1000)]
Add default param name in TorrentImpl.Piece func

2 years agoAdd storage/disabled
Matt Joiner [Mon, 24 May 2021 07:38:09 +0000 (17:38 +1000)]
Add storage/disabled

The default storage will create empty files on torrent open, which is undesirable in some circumstances. This storage implementation is explicit about not storing anything.

2 years agoExpose AnacrolixDhtServerWrapper
Matt Joiner [Mon, 24 May 2021 07:37:04 +0000 (17:37 +1000)]
Expose AnacrolixDhtServerWrapper

2 years agoExtract chansync to github.com/anacrolix/chansync
Matt Joiner [Mon, 24 May 2021 07:36:39 +0000 (17:36 +1000)]
Extract chansync to github.com/anacrolix/chansync

2 years agobencode: Improve support for embedded structs
Matt Joiner [Mon, 24 May 2021 07:31:52 +0000 (17:31 +1000)]
bencode: Improve support for embedded structs

2 years agobencode: Support anonymous embedded struct pointers
Matt Joiner [Sat, 22 May 2021 01:02:39 +0000 (11:02 +1000)]
bencode: Support anonymous embedded struct pointers

More to come if this line of improvement is retained.

2 years agoRework bencode decoding so it might support embedded structs
Matt Joiner [Fri, 21 May 2021 13:50:29 +0000 (23:50 +1000)]
Rework bencode decoding so it might support embedded structs

2 years agoFix issue with duplicate preallocated requests
Matt Joiner [Fri, 21 May 2021 04:02:45 +0000 (14:02 +1000)]
Fix issue with duplicate preallocated requests

Likely introduced by allowing actual and next request states to differ.

2 years agoFix bitmap-related benchmark
Matt Joiner [Fri, 21 May 2021 04:01:41 +0000 (14:01 +1000)]
Fix bitmap-related benchmark

2 years agoTrack chunks read for webseed peers too
Matt Joiner [Fri, 21 May 2021 01:49:57 +0000 (11:49 +1000)]
Track chunks read for webseed peers too

2 years agoRename file
Matt Joiner [Thu, 20 May 2021 10:33:17 +0000 (20:33 +1000)]
Rename file

2 years agoAdd peerConnMsgWriter file
Matt Joiner [Thu, 20 May 2021 10:28:23 +0000 (20:28 +1000)]
Add peerConnMsgWriter file

Forgot this earlier, new to Sublime Merge.

2 years agoAdd chansync interfaces
Matt Joiner [Thu, 20 May 2021 10:27:54 +0000 (20:27 +1000)]
Add chansync interfaces

2 years agoFix race in piece availability runs
Matt Joiner [Thu, 20 May 2021 10:24:34 +0000 (20:24 +1000)]
Fix race in piece availability runs

2 years agoApply next request state asynchronously
Matt Joiner [Thu, 20 May 2021 10:23:45 +0000 (20:23 +1000)]
Apply next request state asynchronously

2 years agoMove peerConnMsgWriter into its own file
Matt Joiner [Thu, 20 May 2021 08:55:23 +0000 (18:55 +1000)]
Move peerConnMsgWriter into its own file

2 years agoBreak out peerConnWriter
Matt Joiner [Thu, 20 May 2021 08:51:08 +0000 (18:51 +1000)]
Break out peerConnWriter

2 years agoResolve local replaces
Matt Joiner [Thu, 20 May 2021 04:08:38 +0000 (14:08 +1000)]
Resolve local replaces

2 years agoFix up some crashes around piece availability
Matt Joiner [Thu, 20 May 2021 04:01:31 +0000 (14:01 +1000)]
Fix up some crashes around piece availability

2 years agoDon't always force piece reallocation
Matt Joiner [Thu, 20 May 2021 01:26:08 +0000 (11:26 +1000)]
Don't always force piece reallocation

The balancing for unforced pieces may not be exactly what we want yet.

2 years agoUse rejiggered missinggo bitmap
Matt Joiner [Thu, 20 May 2021 01:16:54 +0000 (11:16 +1000)]
Use rejiggered missinggo bitmap

2 years agoDetermine peer max requests based on receive speed
Matt Joiner [Wed, 19 May 2021 22:56:53 +0000 (08:56 +1000)]
Determine peer max requests based on receive speed

2 years agoMerge maxRequests into localClientReqq
Matt Joiner [Wed, 19 May 2021 22:34:20 +0000 (08:34 +1000)]
Merge maxRequests into localClientReqq