2
0
mirror of synced 2025-02-24 14:48:27 +00:00

2788 Commits

Author SHA1 Message Date
Matt Joiner
2ddddad6f7 Update test tracker urls 2021-06-22 22:45:56 +10:00
Matt Joiner
98630dfc3d Fix tracker test timeouts 2021-06-22 22:45:50 +10:00
Matt Joiner
333c878d2b Rewrite UDP tracker client 2021-06-22 22:36:43 +10:00
Matt Joiner
582f0ccd48 Add UDP tracker announce and connect expvars 2021-06-22 16:52:55 +10:00
Matt Joiner
364c7d862e Add to bencode.Unmarshal doc comment 2021-06-21 17:58:04 +10:00
Matt Joiner
b9c7d6266b Tidy up the Dialer interface 2021-06-21 13:29:26 +10:00
Matt Joiner
88d144e65e Minor tidying 2021-06-21 13:00:20 +10:00
Matt Joiner
765edfa7cb Expose DialFirst 2021-06-21 12:54:57 +10:00
Matt Joiner
9f5ce7e90e Mark client transfer test as parallel 2021-06-21 12:30:05 +10:00
Matt Joiner
5fc42e8105 Remove sqlite piece-resource storage 2021-06-21 12:29:37 +10:00
Matt Joiner
15f8e77519 Add explicit metadata extension types 2021-06-21 12:14:06 +10:00
Matt Joiner
a01b451857 Add ClientConfig.AcceptPeerConnections 2021-06-21 12:14:01 +10:00
Matt Joiner
af1ca91e04 Remove conntrack, expose Torrent.AnnounceToDht, ClientConfig.PeriodicallyAnnounceTorrentsToDht 2021-06-21 12:13:53 +10:00
Matt Joiner
ebd19af795 Merge branch 'request-strategy-rewrite' 2021-06-21 12:04:06 +10:00
Zilog8
e2a559e243
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.
2021-06-08 15:45:35 +10:00
deepsource-autofix[bot]
a68f040ea6 Fix nil context being passed to function 2021-06-07 19:32:02 +10:00
Matt Joiner
f183acefe2 Add default param name in TorrentImpl.Piece func 2021-06-07 13:01:40 +10:00
Matt Joiner
ef39f408fe 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.
2021-06-07 13:01:40 +10:00
Matt Joiner
bc186ac211 Expose AnacrolixDhtServerWrapper 2021-06-07 13:01:40 +10:00
Matt Joiner
7d9e2b18d6 Extract chansync to github.com/anacrolix/chansync 2021-06-07 13:01:40 +10:00
Matt Joiner
047cdbae0d bencode: Improve support for embedded structs 2021-06-07 13:01:40 +10:00
Matt Joiner
25d2eea12d bencode: Support anonymous embedded struct pointers
More to come if this line of improvement is retained.
2021-06-07 13:01:40 +10:00
Matt Joiner
259356ccd6 Rework bencode decoding so it might support embedded structs 2021-06-07 13:01:40 +10:00
Matt Joiner
f50b8fc2fa Fix issue with duplicate preallocated requests
Likely introduced by allowing actual and next request states to differ.
2021-06-07 13:01:40 +10:00
Matt Joiner
e0a4831f27 Fix bitmap-related benchmark 2021-06-07 13:01:40 +10:00
Matt Joiner
c895a21a16 Track chunks read for webseed peers too 2021-06-07 13:01:40 +10:00
Matt Joiner
33d3a75cd3 Rename file 2021-06-07 13:01:40 +10:00
Matt Joiner
906db030f3 Add peerConnMsgWriter file
Forgot this earlier, new to Sublime Merge.
2021-06-07 13:01:40 +10:00
Matt Joiner
a2dbec3b4a Add chansync interfaces 2021-06-07 13:01:40 +10:00
Matt Joiner
47c49735fc Fix race in piece availability runs 2021-06-07 13:01:40 +10:00
Matt Joiner
36f52d7a14 Apply next request state asynchronously 2021-06-07 13:01:40 +10:00
Matt Joiner
d37dea1f61 Move peerConnMsgWriter into its own file 2021-06-07 13:01:40 +10:00
Matt Joiner
24ceed61da Break out peerConnWriter 2021-06-07 13:01:40 +10:00
Matt Joiner
925f5d147d Resolve local replaces 2021-06-07 13:01:40 +10:00
Matt Joiner
b43987fcc8 Fix up some crashes around piece availability 2021-06-07 13:01:40 +10:00
Matt Joiner
1a27e14391 Don't always force piece reallocation
The balancing for unforced pieces may not be exactly what we want yet.
2021-06-07 13:01:39 +10:00
Matt Joiner
95d808d3c5 Use rejiggered missinggo bitmap 2021-06-07 13:01:39 +10:00
Matt Joiner
a26e7f9933 Determine peer max requests based on receive speed 2021-06-07 13:01:39 +10:00
Matt Joiner
86524214f5 Merge maxRequests into localClientReqq 2021-06-07 13:01:39 +10:00
Matt Joiner
42bf6b58a6 Fix in decPieceAvailability when we don't have torrent info
Happens when we close a Peer before getting Torrent info.
2021-06-07 13:01:39 +10:00
Matt Joiner
fcc4ef2b95 Fix sqlite piece completion 2021-06-07 13:01:39 +10:00
Matt Joiner
ad298364aa Add client-level max unverified bytes 2021-06-07 13:01:39 +10:00
Matt Joiner
63b0e42731 Get max unverified bytes working 2021-06-07 13:01:39 +10:00
Matt Joiner
307d6d178f Prepare to implement max unverified bytes 2021-06-07 13:01:39 +10:00
Matt Joiner
8e9cb9f2be 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.
2021-06-07 13:01:39 +10:00
Matt Joiner
9dd85e5bd2 Fix non-deterministic test 2021-06-07 13:01:39 +10:00
Matt Joiner
b80e2b08b5 Get request rebalancing working optimally! 2021-06-07 13:01:39 +10:00
Matt Joiner
4e9f707aeb Move piece allocation to its own func 2021-06-07 13:01:39 +10:00
Matt Joiner
07ba6e9210 New tests and fixes for them
Not complete. There's still a request-stealing balancing issue, but it's functional for now.
2021-06-07 13:01:39 +10:00
Matt Joiner
e7c5ed679f Don't log each applied request 2021-06-07 13:01:39 +10:00