]>
Sergey Matveev's repositories - btrtrc.git/log
Matt Joiner [Fri, 25 Sep 2015 12:05:32 +0000 (22:05 +1000)]
Include num pieces in torrent status
Matt Joiner [Wed, 23 Sep 2015 08:25:22 +0000 (18:25 +1000)]
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.
Matt Joiner [Sun, 20 Sep 2015 11:09:55 +0000 (21:09 +1000)]
Derp
Matt Joiner [Sun, 20 Sep 2015 11:09:10 +0000 (21:09 +1000)]
Don't warn about zero port peers from trackers
Matt Joiner [Sun, 20 Sep 2015 11:08:42 +0000 (21:08 +1000)]
bencode: Decode very large integers as big.Int if they overflow int64
Matt Joiner [Sun, 20 Sep 2015 01:29:52 +0000 (11:29 +1000)]
Avoid frequent allocation of piece request order iterator
Matt Joiner [Thu, 17 Sep 2015 12:18:01 +0000 (22:18 +1000)]
Merge pull request #30 from therewillbecode/patch-1
Improved Word Flow
Tom [Thu, 17 Sep 2015 10:56:45 +0000 (11:56 +0100)]
Improved Word Flow
Matt Joiner [Thu, 17 Sep 2015 02:54:03 +0000 (12:54 +1000)]
Tidy
Matt Joiner [Thu, 17 Sep 2015 02:53:52 +0000 (12:53 +1000)]
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.
Matt Joiner [Thu, 17 Sep 2015 02:50:29 +0000 (12:50 +1000)]
Count failed chunk sends against a connection
Matt Joiner [Thu, 17 Sep 2015 02:40:35 +0000 (12:40 +1000)]
Tweak logging
Matt Joiner [Thu, 17 Sep 2015 02:39:51 +0000 (12:39 +1000)]
Reduce noise about zero port peers
Matt Joiner [Sun, 6 Sep 2015 02:35:56 +0000 (12:35 +1000)]
Some code missed in the last commit ಠ_ಠ
Matt Joiner [Sun, 6 Sep 2015 02:33:22 +0000 (12:33 +1000)]
Allow subscribing to torrent piece state changes
Matt Joiner [Sun, 6 Sep 2015 02:31:23 +0000 (12:31 +1000)]
Some doc comments
Matt Joiner [Sun, 23 Aug 2015 09:25:33 +0000 (19:25 +1000)]
fs: Update for changes in bazil.org/fuse
Matt Joiner [Sun, 23 Aug 2015 09:24:29 +0000 (19:24 +1000)]
bencode: Remove trailing bytes checks, this broke the peer protocol and should be a new API
Matt Joiner [Sun, 23 Aug 2015 09:10:22 +0000 (19:10 +1000)]
Revert "bencode: Trailing bytes on Unmarshal is an error"
This reverts commit
ad73a0ea8958ed6cb15513798762be65e5c29568 .
Matt Joiner [Sun, 23 Aug 2015 07:51:24 +0000 (17:51 +1000)]
bencode: Simplify parse_int
Matt Joiner [Sun, 23 Aug 2015 07:47:01 +0000 (17:47 +1000)]
bencode: Trailing bytes on Unmarshal is an error
Matt Joiner [Sun, 23 Aug 2015 07:45:59 +0000 (17:45 +1000)]
bencode: Don't allow extraneous trailing 'e's
Matt Joiner [Sun, 23 Aug 2015 06:13:30 +0000 (16:13 +1000)]
bencode: Add tests for Unmarshalling trailing bytes, and extraneous 'e'
Matt Joiner [Sun, 23 Aug 2015 05:59:49 +0000 (15:59 +1000)]
bencode: Fuzz
Matt Joiner [Sun, 23 Aug 2015 02:59:03 +0000 (12:59 +1000)]
Add Debug flag to Config
I'll use this to squash the noisy logging for people who don't care.
Matt Joiner [Sun, 23 Aug 2015 02:50:32 +0000 (12:50 +1000)]
Add tests inspired by issue #27
Matt Joiner [Sun, 23 Aug 2015 02:49:35 +0000 (12:49 +1000)]
Code comment
Matt Joiner [Wed, 19 Aug 2015 03:29:01 +0000 (13:29 +1000)]
Needlessly convoluted
Matt Joiner [Mon, 17 Aug 2015 16:12:52 +0000 (02:12 +1000)]
dht: Use new Msg.Args helper method
Matt Joiner [Mon, 17 Aug 2015 16:12:27 +0000 (02:12 +1000)]
dht: Remove redundant code which caused rare crash
Matt Joiner [Mon, 17 Aug 2015 16:11:48 +0000 (02:11 +1000)]
dht: Use passive from server config
Matt Joiner [Mon, 17 Aug 2015 16:11:09 +0000 (02:11 +1000)]
dht: Improve on on Msg methods
Matt Joiner [Mon, 17 Aug 2015 16:09:10 +0000 (02:09 +1000)]
dht: BEP43
Matt Joiner [Mon, 17 Aug 2015 16:08:08 +0000 (02:08 +1000)]
dht: Revive the UnmarshalGetPeersResponse test
Matt Joiner [Mon, 17 Aug 2015 09:52:47 +0000 (19:52 +1000)]
Redo the compact peer types
Matt Joiner [Wed, 12 Aug 2015 07:11:14 +0000 (17:11 +1000)]
Upload after a piece completes
Matt Joiner [Wed, 12 Aug 2015 06:51:12 +0000 (16:51 +1000)]
Add TestSeedAfterDownloading
Matt Joiner [Wed, 5 Aug 2015 23:02:50 +0000 (09:02 +1000)]
Several bad KRPC message are crying wolf
Matt Joiner [Wed, 5 Aug 2015 23:01:38 +0000 (09:01 +1000)]
dht: Support IPv6 compact peers
Matt Joiner [Wed, 5 Aug 2015 22:59:30 +0000 (08:59 +1000)]
dht: Short circuit non-DHT traffic
Matt Joiner [Wed, 5 Aug 2015 22:58:13 +0000 (08:58 +1000)]
Log zero ports from trackers
Matt Joiner [Wed, 5 Aug 2015 22:56:36 +0000 (08:56 +1000)]
Back off on the kicked connections log
Matt Joiner [Wed, 5 Aug 2015 22:55:48 +0000 (08:55 +1000)]
Log who's giving us zero ports over PEX
In the long run this will help determine why this happens.
Matt Joiner [Tue, 4 Aug 2015 16:51:40 +0000 (02:51 +1000)]
utp.NewSocket now takes network parameter
Matt Joiner [Tue, 4 Aug 2015 16:43:53 +0000 (02:43 +1000)]
Clear piece touch flag from connection after a piece is hashed
Matt Joiner [Tue, 4 Aug 2015 16:41:50 +0000 (02:41 +1000)]
Add an option to disable IPv6
Matt Joiner [Tue, 4 Aug 2015 16:40:46 +0000 (02:40 +1000)]
Replacing pendingWrites WaitGroup with Mutex/Cond/int
Apparently I've been using WaitGroups wrong all along.
Matt Joiner [Tue, 4 Aug 2015 16:38:36 +0000 (02:38 +1000)]
Invalid test
The function is never exposed publicly or called without holding the client lock.
Matt Joiner [Tue, 4 Aug 2015 16:38:02 +0000 (02:38 +1000)]
cmd/dht-secure-id
Matt Joiner [Tue, 4 Aug 2015 16:37:43 +0000 (02:37 +1000)]
dht: Expose SecureNodeId and NodeIdSecure
Matt Joiner [Mon, 3 Aug 2015 15:33:50 +0000 (01:33 +1000)]
Improve log message
Matt Joiner [Mon, 3 Aug 2015 15:32:45 +0000 (01:32 +1000)]
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.
Matt Joiner [Mon, 3 Aug 2015 15:29:40 +0000 (01:29 +1000)]
Log errant unwanted piece rather than panic
Eventually I'll work out what causes this, but for now it's incredibly rare.
Matt Joiner [Mon, 3 Aug 2015 15:20:44 +0000 (01:20 +1000)]
dht: Count announce errors, don't log them
Matt Joiner [Mon, 3 Aug 2015 15:20:10 +0000 (01:20 +1000)]
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.
Matt Joiner [Mon, 3 Aug 2015 15:17:32 +0000 (01:17 +1000)]
Fix crash if peer sends out of bounds HAVE message
Matt Joiner [Mon, 3 Aug 2015 15:15:09 +0000 (01:15 +1000)]
Tighten up some potential leaks
Based on some observations of lingering goroutines in unit tests.
Matt Joiner [Mon, 3 Aug 2015 15:12:09 +0000 (01:12 +1000)]
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.
Matt Joiner [Mon, 3 Aug 2015 15:07:22 +0000 (01:07 +1000)]
Add IPBlocklist option to Config, and test it's inherited by DHT
Matt Joiner [Mon, 3 Aug 2015 14:48:17 +0000 (00:48 +1000)]
Fix utp.Socket leak in test
Matt Joiner [Mon, 3 Aug 2015 14:45:15 +0000 (00:45 +1000)]
Add File.DisplayPath
It's used in many places, I just never formalized it. This will help prevent bugs and misuse of File.Path
Matt Joiner [Mon, 3 Aug 2015 14:43:46 +0000 (00:43 +1000)]
If a DHTConfig was provided without a blocklist, the DHT wouldn't inherit the Client's blocklist
Matt Joiner [Mon, 3 Aug 2015 14:37:16 +0000 (00:37 +1000)]
dht: Add PublicIP to config to secure node ID
Matt Joiner [Mon, 3 Aug 2015 14:31:53 +0000 (00:31 +1000)]
dht: Block bad nodes, start by banning those that send port=0
Matt Joiner [Mon, 3 Aug 2015 14:29:01 +0000 (00:29 +1000)]
Some utils moved to missinggo
Matt Joiner [Mon, 3 Aug 2015 06:23:05 +0000 (16:23 +1000)]
Replace go-check with testify
It's muuuuch better.
Matt Joiner [Mon, 3 Aug 2015 04:24:59 +0000 (14:24 +1000)]
Fix locking in data/blob
Matt Joiner [Sun, 2 Aug 2015 11:00:49 +0000 (21:00 +1000)]
Trivial missed changes
Matt Joiner [Sun, 2 Aug 2015 10:45:26 +0000 (20:45 +1000)]
Remove clunky sentence from README
Matt Joiner [Sun, 2 Aug 2015 10:39:31 +0000 (20:39 +1000)]
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.
Matt Joiner [Sun, 2 Aug 2015 04:57:28 +0000 (14:57 +1000)]
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.
Matt Joiner [Sun, 2 Aug 2015 04:30:33 +0000 (14:30 +1000)]
Track connection writes and flushes
Helps determine efficiency of the routine.
Matt Joiner [Sat, 1 Aug 2015 18:06:22 +0000 (04:06 +1000)]
Track the connection flags for completed handshakes
Matt Joiner [Sat, 1 Aug 2015 18:04:42 +0000 (04:04 +1000)]
Tidy up outbound connection code
Preparing to allow alternate dialing logic.
Matt Joiner [Sat, 1 Aug 2015 18:01:41 +0000 (04:01 +1000)]
Suppress a lot of noisy logging
Matt Joiner [Sat, 1 Aug 2015 17:55:48 +0000 (03:55 +1000)]
Explicitly import Torrent.InfoHash
Matt Joiner [Sat, 1 Aug 2015 17:53:37 +0000 (03:53 +1000)]
Comments
Matt Joiner [Wed, 22 Jul 2015 09:07:01 +0000 (19:07 +1000)]
fs: Remove errant logging
Matt Joiner [Tue, 21 Jul 2015 12:54:50 +0000 (22:54 +1000)]
cmd/torrent: Remove some dead code
Matt Joiner [Tue, 21 Jul 2015 12:54:02 +0000 (22:54 +1000)]
Torrent.BytesCompleted was racy
Matt Joiner [Tue, 21 Jul 2015 12:52:43 +0000 (22:52 +1000)]
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.
Matt Joiner [Tue, 21 Jul 2015 12:51:15 +0000 (22:51 +1000)]
Hashing was blocking prioritization of pieces
Matt Joiner [Mon, 20 Jul 2015 08:48:23 +0000 (18:48 +1000)]
Move CI to drone.io
Codeship keeps breaking, and is too painful to use.
Matt Joiner [Sat, 18 Jul 2015 15:12:50 +0000 (01:12 +1000)]
Update README
Matt Joiner [Fri, 17 Jul 2015 11:45:44 +0000 (21:45 +1000)]
client.go: Missing perf import
Matt Joiner [Fri, 17 Jul 2015 11:07:01 +0000 (21:07 +1000)]
Several speedups in logic
Matt Joiner [Fri, 17 Jul 2015 11:04:43 +0000 (21:04 +1000)]
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.
Matt Joiner [Fri, 17 Jul 2015 10:59:26 +0000 (20:59 +1000)]
Hold client lock as little as possible in Reader.readAt
Matt Joiner [Fri, 17 Jul 2015 10:58:25 +0000 (20:58 +1000)]
Avoid holding client lock while scanning pieces in File.State
Some torrent data backends are expensive to query.
Matt Joiner [Wed, 15 Jul 2015 06:00:59 +0000 (16:00 +1000)]
Store chunk data without holding client lock
Matt Joiner [Wed, 15 Jul 2015 05:54:19 +0000 (15:54 +1000)]
Add fixes triggered by TestResponsive
Matt Joiner [Wed, 15 Jul 2015 05:51:42 +0000 (15:51 +1000)]
Add TestResponsive
Matt Joiner [Wed, 15 Jul 2015 05:31:18 +0000 (15:31 +1000)]
Allow chunk size to be specified per torrent
Matt Joiner [Wed, 15 Jul 2015 05:29:53 +0000 (15:29 +1000)]
When seeding, actually seed beyond 6 chunks
Matt Joiner [Sat, 4 Jul 2015 03:38:42 +0000 (13:38 +1000)]
Don't raise piece priority while hashing or if piece complete
Matt Joiner [Sat, 4 Jul 2015 03:31:46 +0000 (13:31 +1000)]
Merge branch 'master' of github.com:anacrolix/torrent
Matt Joiner [Sat, 4 Jul 2015 03:30:26 +0000 (13:30 +1000)]
cmd/torrent-metainfo-pprint: Don't print extra newline when -name is true
Matt Joiner [Thu, 2 Jul 2015 10:32:00 +0000 (20:32 +1000)]
Abandon the mailing list and gophers channel
Matt Joiner [Thu, 2 Jul 2015 10:31:15 +0000 (20:31 +1000)]
Move the gitter badge inline with the other badges
Matt Joiner [Thu, 2 Jul 2015 10:29:54 +0000 (20:29 +1000)]
Merge pull request #9 from gitter-badger/gitter-badge
Add a Gitter chat badge to README.md