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
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
68e3b9f666
dht: Block bad nodes, start by banning those that send port=0
2015-08-04 00:31:53 +10:00
Matt Joiner
1f008fb4f0
Trivial missed changes
2015-08-02 21:00:49 +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
e5acfcbb46
Comments
2015-08-02 03:53:37 +10:00
Matt Joiner
8ce61e911d
Torrent.BytesCompleted was racy
2015-07-21 22:54:02 +10:00
Matt Joiner
78ec88ad02
Don't probe pieces when setting torrent storage
...
It blocks the caller, for potentially quite some time. I've tested without this for some time now.
2015-07-21 22:52:43 +10:00
Matt Joiner
346c457e9c
Hashing was blocking prioritization of pieces
2015-07-21 22:51:15 +10:00
Matt Joiner
84fc3aab0f
client.go: Missing perf import
2015-07-17 21:45:44 +10:00
Matt Joiner
0600c3b5e3
Several speedups in logic
2015-07-17 21:07:01 +10:00
Matt Joiner
6c04000644
Downloading a chunk may mean the piece isn't wanted anymore
...
Hopefully this fixes a very rare logic error in replenishing connection requests for a piece that isn't wanted, yet is still in the connection piece request order.
2015-07-17 21:04:43 +10:00
Matt Joiner
7e9fe4f447
Store chunk data without holding client lock
2015-07-15 16:00:59 +10:00
Matt Joiner
c018c660f0
Allow chunk size to be specified per torrent
2015-07-15 15:31:18 +10:00
Matt Joiner
4807f12ea1
When seeding, actually seed beyond 6 chunks
2015-07-15 15:29:53 +10:00
Matt Joiner
08f89c49f3
Don't raise piece priority while hashing or if piece complete
2015-07-04 13:38:42 +10:00
Matt Joiner
fd2824f595
Raise socketsPerTorrent to 80
2015-06-30 00:46:43 +10:00
Matt Joiner
bb28ff7492
Replace pruning timer with as-required connection dropping
2015-06-30 00:45:26 +10:00
Matt Joiner
1595f65ac2
Adjust some expvars
2015-06-30 00:35:47 +10:00
Matt Joiner
2277e16dca
Rename and sort some of the expvars
2015-06-28 16:41:51 +10:00
Matt Joiner
dd34efad57
Comments and update version strings
2015-06-28 16:40:46 +10:00
Matt Joiner
4f293ca75b
Several trivial fixes
2015-06-28 16:39:04 +10:00
Matt Joiner
4b6c8b1c39
Move methods to correct file
2015-06-23 02:02:22 +10:00
Matt Joiner
b5ee4f602d
Document ConfigDir
2015-06-22 19:48:50 +10:00
Matt Joiner
ad6fec2e77
Clarify downloaded chunk counters
2015-06-22 19:48:30 +10:00
Matt Joiner
859129fb28
Print peer IDs as escaped ascii
2015-06-22 19:46:26 +10:00
Matt Joiner
99a06e3f50
Move IP blocklist loading into iplist package
2015-06-22 19:44:59 +10:00
Matt Joiner
b2b290a589
Small tweak to readahead, and fix the tests
2015-06-16 17:14:15 +10:00
Matt Joiner
ced5733c88
Improve uploading/seeding
2015-06-16 16:57:47 +10:00
Matt Joiner
764f5db512
Make readahead always at least 2 blocks.
2015-06-16 16:54:12 +10:00
Matt Joiner
d63c5e5b98
Don't try to connect again without encryption, if encryption is disabled
2015-06-08 18:16:01 +10:00
Matt Joiner
5014b62e17
Reduce log noise due to uTP connection timeouts
2015-06-03 22:44:03 +10:00
Matt Joiner
005ca8124a
Fix rare single-torrent stall due to obsolete ceaseNetworking call
...
Only occurred if you have a data backend that can drop completed pieces, and it happened that you wanted to redownload data that had been dropped after completely downloading the torrent in the past.
2015-06-03 22:43:40 +10:00
Matt Joiner
7e8ee950bc
Docs and comments
2015-06-03 13:30:55 +10:00
Matt Joiner
a2df9f8b01
Miscellaneous changes
2015-06-03 00:03:43 +10:00
Matt Joiner
5de6abd6a7
Fix race to set IPBlocklist on DHT before it bootstraps and serves
2015-06-02 23:58:49 +10:00
Matt Joiner
5b52769523
Changes to the way piece prioritization affects the piece
2015-06-01 18:23:35 +10:00
Matt Joiner
21fb4933fc
Change the way piece state is exposed to give more detail
2015-06-01 18:22:12 +10:00
Matt Joiner
bc4aa06c91
Comments
2015-06-01 18:17:14 +10:00
Matt Joiner
7f9d6eed78
Relax pedantic listen addr matching
...
Fixes #15 .
2015-05-20 18:14:42 +10:00
Matt Joiner
085dbaa8ff
Include reason for panic on different listener addresses
2015-05-20 15:45:58 +10:00
Matt Joiner
1cf591dc3d
Switch to using a slice for tracking pending chunks. Saves massive amounts of memory.
2015-05-16 10:51:48 +10:00
Matt Joiner
0d13293d71
Support seeding
2015-05-15 08:39:53 +10:00
Matt Joiner
5eb6b5286e
Rare panic: a piece is requested that shouldn't have been
2015-05-09 11:52:52 +10:00
Matt Joiner
ca74d8ed33
Made Torrent.GotInfo a function, to avoid use of zero-initialized channel
2015-04-30 00:30:19 +10:00