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
Matt Joiner
1cc50f85a6
connection.writer wasn't working efficiently
...
Because of the pseudo-random selection of a communication in a select statement, flushing was occuring prematurely. Also the buffer was needlessly large. For large messages, like outgoing pieces, it's probably better they just go straight to the wire anyway.
This change will make it easier to implement sending of pieces that doesn't block control messages in the future. Any time that the buffer is empty, we'll be able to signal that it's an optimal time to send a piece.
2015-08-02 20:39:31 +10:00
Matt Joiner
c735370f9b
tracker_test: Check for the error string instead of the type
...
The type changes from Go 1.4->1.5, and it's not worth tearing it apart.
2015-08-02 14:57:28 +10:00
Matt Joiner
7ecc8108bf
Track connection writes and flushes
...
Helps determine efficiency of the routine.
2015-08-02 14:30:33 +10:00
Matt Joiner
06dede5690
Track the connection flags for completed handshakes
2015-08-02 04:06:22 +10:00
Matt Joiner
34d3d7aca0
Tidy up outbound connection code
...
Preparing to allow alternate dialing logic.
2015-08-02 04:04:42 +10:00
Matt Joiner
d037e6ee9c
Suppress a lot of noisy logging
2015-08-02 04:01:41 +10:00
Matt Joiner
06ebc4c37e
Explicitly import Torrent.InfoHash
2015-08-02 03:55:48 +10:00
Matt Joiner
e5acfcbb46
Comments
2015-08-02 03:53:37 +10:00
Matt Joiner
3ef59be02d
fs: Remove errant logging
2015-07-22 19:07:01 +10:00
Matt Joiner
8069573abe
cmd/torrent: Remove some dead code
2015-07-21 22:54:50 +10:00