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

2742 Commits

Author SHA1 Message Date
Matt Joiner
99f3e9ad3d Reject accepted connections if we don't want conns
This prevents unnecessarily stalling peers dialling us if we have no intention to ever accept.
2021-06-23 12:41:25 +10:00
Matt Joiner
42a2fb445f Rearrange some tracker tests and files 2021-06-22 23:32:27 +10:00
Matt Joiner
af8c41ebe9 Extract HTTP tracker client into separate package 2021-06-22 23:28:26 +10:00
Matt Joiner
8df885cd81 Move tracker test server code to test file 2021-06-22 22:48:49 +10:00
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