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

1136 Commits

Author SHA1 Message Date
Matt Joiner
0403d4185d bencode: Simplify parse_int 2015-08-23 17:51:24 +10:00
Matt Joiner
ad73a0ea89 bencode: Trailing bytes on Unmarshal is an error 2015-08-23 17:47:01 +10:00
Matt Joiner
2ccbaa4e79 bencode: Don't allow extraneous trailing 'e's 2015-08-23 17:45:59 +10:00
Matt Joiner
baf389aa8c bencode: Add tests for Unmarshalling trailing bytes, and extraneous 'e' 2015-08-23 16:13:30 +10:00
Matt Joiner
4fbbc0dd41 bencode: Fuzz 2015-08-23 15:59:49 +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
2202a31b85 Add tests inspired by issue #27 2015-08-23 12:50:32 +10:00
Matt Joiner
698181e470 Code comment 2015-08-23 12:49:35 +10:00
Matt Joiner
ef098c47ac Needlessly convoluted 2015-08-19 13:29:01 +10:00
Matt Joiner
87bd9b5d17 dht: Use new Msg.Args helper method 2015-08-18 02:12:52 +10:00
Matt Joiner
288abb1c6b dht: Remove redundant code which caused rare crash 2015-08-18 02:12:27 +10:00
Matt Joiner
74d3598656 dht: Use passive from server config 2015-08-18 02:11:48 +10:00
Matt Joiner
3204e276f2 dht: Improve on on Msg methods 2015-08-18 02:11:09 +10:00
Matt Joiner
b536975580 dht: BEP43 2015-08-18 02:09:10 +10:00
Matt Joiner
89f024a76b dht: Revive the UnmarshalGetPeersResponse test 2015-08-18 02:08:08 +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
0f606a2d24 Add TestSeedAfterDownloading 2015-08-12 16:51:12 +10:00
Matt Joiner
31acbac207 Several bad KRPC message are crying wolf 2015-08-06 09:02:50 +10:00
Matt Joiner
abdf1f049f dht: Support IPv6 compact peers 2015-08-06 09:01:38 +10:00
Matt Joiner
a7c374cff7 dht: Short circuit non-DHT traffic 2015-08-06 08:59:30 +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
502a7ebebd utp.NewSocket now takes network parameter 2015-08-05 02:51:40 +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
19021f1360 Invalid test
The function is never exposed publicly or called without holding the client lock.
2015-08-05 02:38:36 +10:00
Matt Joiner
4fb7d8f4d4 cmd/dht-secure-id 2015-08-05 02:38:02 +10:00
Matt Joiner
a0cdda16a4 dht: Expose SecureNodeId and NodeIdSecure 2015-08-05 02:37:43 +10:00
Matt Joiner
92e1e505b4 Improve log message 2015-08-04 01:33:50 +10:00
Matt Joiner
85a0fe6b61 Drop peers for sending too many unwanted pieces
So the algorithm is now, drop the worst half if they get too old, and drop any connection if it's ratio is poor.
2015-08-04 01:32:45 +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
5a73f73d97 dht: Count announce errors, don't log them 2015-08-04 01:20:44 +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
Matt Joiner
8d581ce7f2 Fix utp.Socket leak in test 2015-08-04 00:48:17 +10:00
Matt Joiner
87433b00ba Add File.DisplayPath
It's used in many places, I just never formalized it. This will help prevent bugs and misuse of File.Path
2015-08-04 00:45:15 +10:00
Matt Joiner
f9995244c0 If a DHTConfig was provided without a blocklist, the DHT wouldn't inherit the Client's blocklist 2015-08-04 00:43:46 +10:00
Matt Joiner
6afaa816bf dht: Add PublicIP to config to secure node ID 2015-08-04 00:37:16 +10:00
Matt Joiner
68e3b9f666 dht: Block bad nodes, start by banning those that send port=0 2015-08-04 00:31:53 +10:00
Matt Joiner
d077fed72d Some utils moved to missinggo 2015-08-04 00:29:01 +10:00
Matt Joiner
64848a206a Replace go-check with testify
It's muuuuch better.
2015-08-03 16:23:05 +10:00
Matt Joiner
50ce70c47a Fix locking in data/blob 2015-08-03 14:24:59 +10:00
Matt Joiner
1f008fb4f0 Trivial missed changes 2015-08-02 21:00:49 +10:00
Matt Joiner
0a69176da2 Remove clunky sentence from README 2015-08-02 20:45:26 +10:00