Matt Joiner
fdf46e00b7
dht: Don't log KRPC unmarshal errors, there's a expvar for this
2015-11-13 22:34:29 +11:00
Matt Joiner
9f38d212e4
Blocking IPv6 addresses is not so interesting
2015-11-13 22:33:50 +11:00
Matt Joiner
55cae072f5
Add method File.Torrent
2015-11-12 03:25:04 +11:00
Matt Joiner
1a01ea87df
TODO
2015-11-12 03:24:41 +11:00
Matt Joiner
cb782aa303
internal/cmd/bloom-false-positives: Switch to tagflag
...
Was looking at using github.com/tylertreat/BoomFilters instead of github.com/willf/bloom
2015-11-09 23:05:52 +11:00
Matt Joiner
6d7dd06b47
Add comment doc for File.PrioritizeRegion
2015-11-09 22:27:38 +11:00
Matt Joiner
bc5d79e1d3
Make torrent.Reader reads fail when the torrent is closed instead of stalling
2015-11-06 00:40:47 +11:00
Matt Joiner
d01c6221e6
Remove sync.Cond from piece
...
It's not trivial to ensure that anyone waiting on the piece Cond will wake on events like the torrent being dropped from the client.
2015-11-06 00:40:16 +11:00
Matt Joiner
c7f9bfccc1
Ditch go-flags for tagflag
...
Fixes #37
2015-11-05 23:21:39 +11:00
Matt Joiner
5f4fdfbd3d
bencode: Improve unknown value type error
2015-11-03 23:21:10 +11:00
Matt Joiner
4f03dd3fc7
httpfile.Open can now return an error
2015-10-30 22:21:48 +11:00
Matt Joiner
f9c600b264
metainfo: Add alternative "builder" API
...
The existing builder API is gross and heavy-handed. I won't rip it out just yet.
2015-10-30 01:21:09 +11:00
Matt Joiner
61798cd94c
dht: Handle bad responses to get_peers
2015-10-30 01:18:29 +11:00
Matt Joiner
f8fb480817
Avoid copying mutex in piece
2015-10-30 01:16:52 +11:00
Matt Joiner
5372375bd5
Fix #35
2015-10-29 23:47:13 +11:00
Matt Joiner
e912ac5293
Add test for issue 35
2015-10-29 23:46:47 +11:00
Matt Joiner
db3ec698e9
Some missing io.EOFs
2015-10-23 12:45:51 +11:00
Matt Joiner
4c4eae20a2
data/pieceStore: Expose flags in Open method
2015-10-23 12:45:11 +11:00
Matt Joiner
ea0ccf6a23
Tidy
2015-10-23 12:42:57 +11:00
Matt Joiner
b8da06a885
cmd/torrent: Expose --mmap
2015-10-23 12:42:19 +11:00
Matt Joiner
99a0813d88
dht: Make Msg a struct with bencode tags
2015-10-23 12:41:45 +11:00
Matt Joiner
de69976bbf
Merge branch 'master' of github.com:anacrolix/torrent
2015-10-23 12:38:00 +11:00
Matt Joiner
47a2453098
bencode: Can't get zero type of a nil interface
2015-10-23 12:37:30 +11:00
Matt Joiner
837bdd2ccf
bencode: Rethrow non-errors during encoding
2015-10-23 12:36:47 +11:00
Matt Joiner
1fb64de07c
bencode: Encoding nil interfaces are an error except at data root
2015-10-23 12:35:38 +11:00
Matt Joiner
c7cb1009a5
Fix #33 .
2015-10-20 17:53:12 +11:00
Matt Joiner
1a4fbed1ac
Make Piece a concrete type
...
There was a lot of allocations occuring because it was an interface.
2015-10-19 01:31:34 +11:00
Matt Joiner
4b539b1f11
bencode: Don't skip encoding nil pointers and interfaces
...
This caused an annoying bug for complex types where dictionary values went missing.
2015-10-19 01:28:36 +11:00
Matt Joiner
ddf7cbbdac
bencode: Use default field name if it isn't given (but options are)
2015-10-19 01:27:15 +11:00
Matt Joiner
644ee0a244
bencode: Tidy up
2015-10-19 01:25:56 +11:00
Matt Joiner
9c200c0037
Missed in last commit
2015-10-19 00:02:42 +11:00
Matt Joiner
a4049e179c
Avoid allocation in iplist.Ranger.Lookup
...
It was very expensive for DHT packets.
2015-10-19 00:00:26 +11:00
Matt Joiner
14a7e8121f
Update TODO
2015-10-18 02:32:24 +11:00
Matt Joiner
b3a8020401
Store pieces inplace in torrent.Pieces
...
This should save some allocation overhead, especially for torrents that have 20k+ pieces.
2015-10-16 22:10:03 +11:00
Matt Joiner
db2dcfee3e
Update README
2015-10-16 22:07:13 +11:00
Matt Joiner
7979551525
Merge pull request #31 from kupsef/master
...
fix: added announce to torrent spec
2015-10-11 09:46:47 +11:00
Kupai József
70a307a5ea
fix: added announce to torrent spec
2015-10-10 14:31:02 +02:00
Matt Joiner
12722754e6
Some slow tracker tests can be Parallel
2015-10-04 19:58:23 +11:00
Matt Joiner
b0b5794890
Create a pieceStore interface, and merge in my httpfile backend, and replace data/blob
...
data/blob was aging, and had severe performance problems. It's now possible to use missinggo/filecache as a data backend to pieceStore which is better tested and performs excellently.
2015-10-04 00:22:46 +10:00
Matt Joiner
efe294ac35
utp package merged PacketConn with Socket
2015-10-04 00:02:14 +10:00
Matt Joiner
23ee45e09f
fs test: Missed package specifier
2015-10-02 00:16:50 +10:00
Matt Joiner
126447260f
Fix import cycle
2015-10-02 00:16:25 +10:00
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