]> Sergey Matveev's repositories - btrtrc.git/log
btrtrc.git
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

2 years agoFix in decPieceAvailability when we don't have torrent info
Matt Joiner [Sun, 16 May 2021 23:08:39 +0000 (09:08 +1000)]
Fix in decPieceAvailability when we don't have torrent info

Happens when we close a Peer before getting Torrent info.

2 years agoFix sqlite piece completion
Matt Joiner [Fri, 14 May 2021 05:19:49 +0000 (15:19 +1000)]
Fix sqlite piece completion

2 years agoAdd client-level max unverified bytes
Matt Joiner [Fri, 14 May 2021 03:40:09 +0000 (13:40 +1000)]
Add client-level max unverified bytes

2 years agoGet max unverified bytes working
Matt Joiner [Fri, 14 May 2021 03:06:12 +0000 (13:06 +1000)]
Get max unverified bytes working

2 years agoPrepare to implement max unverified bytes
Matt Joiner [Fri, 14 May 2021 01:50:41 +0000 (11:50 +1000)]
Prepare to implement max unverified bytes

2 years agoDo checks for preallocated requests too
Matt Joiner [Fri, 14 May 2021 00:24:50 +0000 (10:24 +1000)]
Do checks for preallocated requests too

Otherwise we reserve requests with the assumption that they can be assigned later, and they actually might not be.

2 years agoFix non-deterministic test
Matt Joiner [Fri, 14 May 2021 00:23:18 +0000 (10:23 +1000)]
Fix non-deterministic test

2 years agoGet request rebalancing working optimally!
Matt Joiner [Thu, 13 May 2021 10:56:12 +0000 (20:56 +1000)]
Get request rebalancing working optimally!

2 years agoMove piece allocation to its own func
Matt Joiner [Thu, 13 May 2021 08:35:49 +0000 (18:35 +1000)]
Move piece allocation to its own func

2 years agoNew tests and fixes for them
Matt Joiner [Thu, 13 May 2021 03:50:41 +0000 (13:50 +1000)]
New tests and fixes for them

Not complete. There's still a request-stealing balancing issue, but it's functional for now.

2 years agoDon't log each applied request
Matt Joiner [Thu, 13 May 2021 03:49:57 +0000 (13:49 +1000)]
Don't log each applied request

2 years agoAdd a working request strategy test
Matt Joiner [Thu, 13 May 2021 01:26:22 +0000 (11:26 +1000)]
Add a working request strategy test

2 years agoExtract request strategy stuff into a separate module
Matt Joiner [Wed, 12 May 2021 23:56:58 +0000 (09:56 +1000)]
Extract request strategy stuff into a separate module

2 years agoImprove num requests per piece status output
Matt Joiner [Wed, 12 May 2021 11:48:23 +0000 (21:48 +1000)]
Improve num requests per piece status output

2 years agoImprove piece availability status output
Matt Joiner [Wed, 12 May 2021 11:48:11 +0000 (21:48 +1000)]
Improve piece availability status output

2 years agoFixes to reassigning chunks in requests
Matt Joiner [Wed, 12 May 2021 11:47:35 +0000 (21:47 +1000)]
Fixes to reassigning chunks in requests

2 years agoRework to improve work stealing and try to thread peers through all request pieces
Matt Joiner [Wed, 12 May 2021 07:45:36 +0000 (17:45 +1000)]
Rework to improve work stealing and try to thread peers through all request pieces

2 years agoForgot to remove initial have all state for webseeds
Matt Joiner [Tue, 11 May 2021 07:14:56 +0000 (17:14 +1000)]
Forgot to remove initial have all state for webseeds

Later when the webseed was closed, it was assumed that it had contributed to the piece availability count.

2 years agoDo requests every 100ms
Matt Joiner [Mon, 10 May 2021 07:43:34 +0000 (17:43 +1000)]
Do requests every 100ms

2 years agoDon't need stable sort
Matt Joiner [Mon, 10 May 2021 07:43:23 +0000 (17:43 +1000)]
Don't need stable sort

2 years agoImprove naming on storage key
Matt Joiner [Mon, 10 May 2021 07:43:10 +0000 (17:43 +1000)]
Improve naming on storage key

2 years agoReuse pieceRequestOrder slice
Matt Joiner [Mon, 10 May 2021 07:42:51 +0000 (17:42 +1000)]
Reuse pieceRequestOrder slice

2 years agoMissed piece availability code
Matt Joiner [Mon, 10 May 2021 07:05:08 +0000 (17:05 +1000)]
Missed piece availability code

2 years agoComments
Matt Joiner [Mon, 10 May 2021 07:04:27 +0000 (17:04 +1000)]
Comments

2 years agoIgnore pieces for request after accounting for storage
Matt Joiner [Mon, 10 May 2021 07:03:56 +0000 (17:03 +1000)]
Ignore pieces for request after accounting for storage

2 years agoTrack peer availability at the Torrent-level
Matt Joiner [Mon, 10 May 2021 07:02:17 +0000 (17:02 +1000)]
Track peer availability at the Torrent-level

2 years agoRemove unused pieceRequestOrder in Client
Matt Joiner [Mon, 10 May 2021 03:35:24 +0000 (13:35 +1000)]
Remove unused pieceRequestOrder in Client

2 years agogo mod tidy
Matt Joiner [Mon, 10 May 2021 02:40:42 +0000 (12:40 +1000)]
go mod tidy

2 years agoUse multiless with Float64
Matt Joiner [Mon, 10 May 2021 02:30:44 +0000 (12:30 +1000)]
Use multiless with Float64

2 years agoPeerConn.post becomes PeerConn.write
Matt Joiner [Mon, 10 May 2021 02:29:47 +0000 (12:29 +1000)]
PeerConn.post becomes PeerConn.write