Commit Graph

911 Commits

Author SHA1 Message Date
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