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

667 Commits

Author SHA1 Message Date
Matt Joiner
8696f32e58 Make Config.DHTConfig not a pointer 2016-01-17 00:12:53 +11:00
Matt Joiner
2beb5f8bd4 Track dirty chunks, instead of pending chunk specs
This is the first step toward having purely Reader-based priorities. If a chunk is pending, that currently implies that we want to download it. I want to move that kind of state out to the readers.
2016-01-13 17:11:59 +11:00
Matt Joiner
153c13db43 Revert "Merge pull request #54 from zhulik/master"
This reverts commit 5cf75b869c469196a8473c4962b99a450daaeeec, reversing
changes made to 09050ff2c5607f3991e6ec6422ed57ba0dee0bad.
2016-01-06 12:19:49 +11:00
Gleb Sinyavsky
48c3df2d43 Refactorings 2016-01-05 11:48:16 +03:00
Gleb Sinyavsky
8637086ef9 Merge branch 'master' of https://github.com/anacrolix/torrent 2016-01-04 15:39:08 +03:00
Matt Joiner
09050ff2c5 Some missing hunks that fix build 2016-01-04 22:56:36 +11:00
Matt Joiner
3208fac438 Failure to announce on one tracker isn't very interesting 2016-01-04 22:54:19 +11:00
Matt Joiner
3c446086af Add Have and Bitfield connection methods 2016-01-04 22:37:49 +11:00
Matt Joiner
8346ff81f7 Switch to int from peer_protocol.Integer for piece index in a lot of places 2016-01-04 22:34:24 +11:00
Gleb Sinyavsky
be8e44da3c peersKey is a public type now 2015-12-27 15:27:32 +03:00
Gleb Sinyavsky
5b790bf874 Torrent structs replaced with Download interface in exported Client methods 2015-12-27 14:49:15 +03:00
Matt Joiner
f9a04b4f29 Suppress log message regarding bad tracker URLs 2015-12-23 03:32:24 +11:00
Matt Joiner
86c4c609f1 Expose Torrent.SetDisplayName 2015-12-12 14:03:04 +11:00
Matt Joiner
672e3c4136 Don't consider a peer to have touched a piece if a chunk isn't written successfully
This prevents peers being banned when there are issues with the data service locally.
2015-12-11 03:04:04 +11:00
Matt Joiner
79eb1ca0d5 torrent.DisplayName should not be exported 2015-11-22 18:44:08 +11:00
Matt Joiner
9f38d212e4 Blocking IPv6 addresses is not so interesting 2015-11-13 22:33:50 +11:00
Matt Joiner
d01c6221e6 Remove sync.Cond from piece
It's not trivial to ensure that anyone waiting on the piece Cond will wake on events like the torrent being dropped from the client.
2015-11-06 00:40:16 +11:00
Matt Joiner
f8fb480817 Avoid copying mutex in piece 2015-10-30 01:16:52 +11:00
Matt Joiner
a4049e179c Avoid allocation in iplist.Ranger.Lookup
It was very expensive for DHT packets.
2015-10-19 00:00:26 +11:00
Matt Joiner
b3a8020401 Store pieces inplace in torrent.Pieces
This should save some allocation overhead, especially for torrents that have 20k+ pieces.
2015-10-16 22:10:03 +11:00
Kupai József
70a307a5ea fix: added announce to torrent spec 2015-10-10 14:31:02 +02:00
Matt Joiner
efe294ac35 utp package merged PacketConn with Socket 2015-10-04 00:02:14 +10:00
Matt Joiner
b7a8bb7570 Simplify the torrent Data interface
None of the methods are optional anymore. Removed the nasty wrappers for some data implementations. Moved data.Data back into the main torrent package. Should make it much easier to understand for people implementing their own Data implementations.
2015-10-02 00:09:04 +10:00
Matt Joiner
58c997210e Track peer sources with a dict, and don't exceed high water mark 2015-09-28 15:30:13 +10:00
Matt Joiner
53259397fc Initialize connection piece priorities lazily, and using a pool 2015-09-26 17:27:35 +10:00
Matt Joiner
22428da0e3 Add packed IP list
This saves a lot of memory by allowing the IP blocklist to be mmap()ed in. In production with the latest level1 blocklist it's 35MB per process.
2015-09-23 18:25:22 +10:00
Matt Joiner
0fa547e292 Don't warn about zero port peers from trackers 2015-09-20 21:09:10 +10:00
Matt Joiner
cd96dbcd9d Tidy 2015-09-17 12:54:03 +10:00
Matt Joiner
11d703fbf1 Count failed chunk sends against a connection 2015-09-17 12:50:29 +10:00
Matt Joiner
9f324d04e2 Tweak logging 2015-09-17 12:40:35 +10:00
Matt Joiner
0113776f1d Reduce noise about zero port peers 2015-09-17 12:39:51 +10:00
Matt Joiner
313adf1d2f Some code missed in the last commit ಠ_ಠ 2015-09-06 12:35:56 +10:00
Matt Joiner
eebd09c0fe Allow subscribing to torrent piece state changes 2015-09-06 12:33:22 +10:00
Matt Joiner
4472a0e27a Add Debug flag to Config
I'll use this to squash the noisy logging for people who don't care.
2015-08-23 12:59:03 +10:00
Matt Joiner
698181e470 Code comment 2015-08-23 12:49:35 +10:00
Matt Joiner
1db00a54f0 Redo the compact peer types 2015-08-17 19:52:47 +10:00
Matt Joiner
6b27e1473d Upload after a piece completes 2015-08-12 17:11:14 +10:00
Matt Joiner
6c8c870b28 Log zero ports from trackers 2015-08-06 08:58:13 +10:00
Matt Joiner
cb00308157 Back off on the kicked connections log 2015-08-06 08:56:36 +10:00
Matt Joiner
59e50bd614 Log who's giving us zero ports over PEX
In the long run this will help determine why this happens.
2015-08-06 08:55:48 +10:00
Matt Joiner
5d5ee66be4 Clear piece touch flag from connection after a piece is hashed 2015-08-05 02:43:53 +10:00
Matt Joiner
497d185373 Add an option to disable IPv6 2015-08-05 02:41:50 +10:00
Matt Joiner
085be622a0 Replacing pendingWrites WaitGroup with Mutex/Cond/int
Apparently I've been using WaitGroups wrong all along.
2015-08-05 02:40:46 +10:00
Matt Joiner
92e1e505b4 Improve log message 2015-08-04 01:33:50 +10:00
Matt Joiner
da8ac9fe01 Log errant unwanted piece rather than panic
Eventually I'll work out what causes this, but for now it's incredibly rare.
2015-08-04 01:29:40 +10:00
Matt Joiner
bbe58bbd73 Filter out DHT peers with port 0
Probably not necessary now we ban the nodes that send them, but it's appropriate to check here too.
2015-08-04 01:20:10 +10:00
Matt Joiner
f3317322f8 Fix crash if peer sends out of bounds HAVE message 2015-08-04 01:17:32 +10:00
Matt Joiner
f69c51bea3 Tighten up some potential leaks
Based on some observations of lingering goroutines in unit tests.
2015-08-04 01:15:09 +10:00
Matt Joiner
54339a30e3 Drop connections that contributed to pieces that failed to hash
There are peers out there that seem to intentionally spam bad data, and the same pieces will often fail continuously. This really puts a bee in their bonnet.
2015-08-04 01:12:09 +10:00
Matt Joiner
51aad774ab Add IPBlocklist option to Config, and test it's inherited by DHT 2015-08-04 01:07:22 +10:00