Matt Joiner
28c1536daf
bencode: When decoding a dict, if the final key is missing its value, don't treat that as an error.
...
I think I'm swayed here by the robustness principle/Postel's Law.
2015-10-02 00:13:43 +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
afece1f67f
Match the names used in other blob implementations
2015-10-01 15:41:30 +10:00
Matt Joiner
d8a43e1b03
Reduce UDP tracker response buffer size from 64KiB to 2KiB
2015-10-01 00:36:41 +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
52b0705956
Include num pieces in torrent status
2015-09-25 22:05:32 +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
87158e594a
Derp
2015-09-20 21:09:55 +10:00
Matt Joiner
0fa547e292
Don't warn about zero port peers from trackers
2015-09-20 21:09:10 +10:00
Matt Joiner
8949375bd6
bencode: Decode very large integers as big.Int if they overflow int64
2015-09-20 21:08:42 +10:00
Matt Joiner
f9ed9c4c04
Avoid frequent allocation of piece request order iterator
2015-09-20 11:29:52 +10:00
Matt Joiner
31ce250a6b
Merge pull request #30 from therewillbecode/patch-1
...
Improved Word Flow
2015-09-17 22:18:01 +10:00
Tom
fe646f0810
Improved Word Flow
2015-09-17 11:56:45 +01:00
Matt Joiner
cd96dbcd9d
Tidy
2015-09-17 12:54:03 +10:00
Matt Joiner
afed0b7ce3
Add a test for dropping a torrent before it gets the Info
...
Really just to check the behaviour doesn't change, it was mentioned before but wasn't the actual cause of any problem.
2015-09-17 12:53:52 +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
5ea0c26717
Some doc comments
2015-09-06 12:31:23 +10:00
Matt Joiner
e735aeeee3
fs: Update for changes in bazil.org/fuse
2015-08-23 19:25:33 +10:00
Matt Joiner
a101f9bcbd
bencode: Remove trailing bytes checks, this broke the peer protocol and should be a new API
2015-08-23 19:24:29 +10:00
Matt Joiner
577ea21793
Revert "bencode: Trailing bytes on Unmarshal is an error"
...
This reverts commit ad73a0ea89
.
2015-08-23 19:10:22 +10:00
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