]> Sergey Matveev's repositories - btrtrc.git/log
btrtrc.git
8 years agoAdd packed IP list
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.

8 years agoDerp
Matt Joiner [Sun, 20 Sep 2015 11:09:55 +0000 (21:09 +1000)]
Derp

8 years agoDon't warn about zero port peers from trackers
Matt Joiner [Sun, 20 Sep 2015 11:09:10 +0000 (21:09 +1000)]
Don't warn about zero port peers from trackers

8 years agobencode: Decode very large integers as big.Int if they overflow int64
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

8 years agoAvoid frequent allocation of piece request order iterator
Matt Joiner [Sun, 20 Sep 2015 01:29:52 +0000 (11:29 +1000)]
Avoid frequent allocation of piece request order iterator

8 years agoMerge pull request #30 from therewillbecode/patch-1
Matt Joiner [Thu, 17 Sep 2015 12:18:01 +0000 (22:18 +1000)]
Merge pull request #30 from therewillbecode/patch-1

Improved Word Flow

8 years agoImproved Word Flow
Tom [Thu, 17 Sep 2015 10:56:45 +0000 (11:56 +0100)]
Improved Word Flow

8 years agoTidy
Matt Joiner [Thu, 17 Sep 2015 02:54:03 +0000 (12:54 +1000)]
Tidy

8 years agoAdd a test for dropping a torrent before it gets the Info
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.

8 years agoCount failed chunk sends against a connection
Matt Joiner [Thu, 17 Sep 2015 02:50:29 +0000 (12:50 +1000)]
Count failed chunk sends against a connection

8 years agoTweak logging
Matt Joiner [Thu, 17 Sep 2015 02:40:35 +0000 (12:40 +1000)]
Tweak logging

8 years agoReduce noise about zero port peers
Matt Joiner [Thu, 17 Sep 2015 02:39:51 +0000 (12:39 +1000)]
Reduce noise about zero port peers

8 years agoSome code missed in the last commit ಠ_ಠ
Matt Joiner [Sun, 6 Sep 2015 02:35:56 +0000 (12:35 +1000)]
Some code missed in the last commit ಠ_ಠ

8 years agoAllow subscribing to torrent piece state changes
Matt Joiner [Sun, 6 Sep 2015 02:33:22 +0000 (12:33 +1000)]
Allow subscribing to torrent piece state changes

8 years agoSome doc comments
Matt Joiner [Sun, 6 Sep 2015 02:31:23 +0000 (12:31 +1000)]
Some doc comments

8 years agofs: Update for changes in bazil.org/fuse
Matt Joiner [Sun, 23 Aug 2015 09:25:33 +0000 (19:25 +1000)]
fs: Update for changes in bazil.org/fuse

8 years agobencode: Remove trailing bytes checks, this broke the peer protocol and should be...
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

8 years agoRevert "bencode: Trailing bytes on Unmarshal is an error"
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.

8 years agobencode: Simplify parse_int
Matt Joiner [Sun, 23 Aug 2015 07:51:24 +0000 (17:51 +1000)]
bencode: Simplify parse_int

8 years agobencode: Trailing bytes on Unmarshal is an error
Matt Joiner [Sun, 23 Aug 2015 07:47:01 +0000 (17:47 +1000)]
bencode: Trailing bytes on Unmarshal is an error

8 years agobencode: Don't allow extraneous trailing 'e's
Matt Joiner [Sun, 23 Aug 2015 07:45:59 +0000 (17:45 +1000)]
bencode: Don't allow extraneous trailing 'e's

8 years agobencode: Add tests for Unmarshalling trailing bytes, and extraneous 'e'
Matt Joiner [Sun, 23 Aug 2015 06:13:30 +0000 (16:13 +1000)]
bencode: Add tests for Unmarshalling trailing bytes, and extraneous 'e'

8 years agobencode: Fuzz
Matt Joiner [Sun, 23 Aug 2015 05:59:49 +0000 (15:59 +1000)]
bencode: Fuzz

8 years agoAdd Debug flag to Config
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.

8 years agoAdd tests inspired by issue #27
Matt Joiner [Sun, 23 Aug 2015 02:50:32 +0000 (12:50 +1000)]
Add tests inspired by issue #27

8 years agoCode comment
Matt Joiner [Sun, 23 Aug 2015 02:49:35 +0000 (12:49 +1000)]
Code comment

8 years agoNeedlessly convoluted
Matt Joiner [Wed, 19 Aug 2015 03:29:01 +0000 (13:29 +1000)]
Needlessly convoluted

8 years agodht: Use new Msg.Args helper method
Matt Joiner [Mon, 17 Aug 2015 16:12:52 +0000 (02:12 +1000)]
dht: Use new Msg.Args helper method

8 years agodht: Remove redundant code which caused rare crash
Matt Joiner [Mon, 17 Aug 2015 16:12:27 +0000 (02:12 +1000)]
dht: Remove redundant code which caused rare crash

8 years agodht: Use passive from server config
Matt Joiner [Mon, 17 Aug 2015 16:11:48 +0000 (02:11 +1000)]
dht: Use passive from server config

8 years agodht: Improve on on Msg methods
Matt Joiner [Mon, 17 Aug 2015 16:11:09 +0000 (02:11 +1000)]
dht: Improve on on Msg methods

8 years agodht: BEP43
Matt Joiner [Mon, 17 Aug 2015 16:09:10 +0000 (02:09 +1000)]
dht: BEP43

8 years agodht: Revive the UnmarshalGetPeersResponse test
Matt Joiner [Mon, 17 Aug 2015 16:08:08 +0000 (02:08 +1000)]
dht: Revive the UnmarshalGetPeersResponse test

8 years agoRedo the compact peer types
Matt Joiner [Mon, 17 Aug 2015 09:52:47 +0000 (19:52 +1000)]
Redo the compact peer types

8 years agoUpload after a piece completes
Matt Joiner [Wed, 12 Aug 2015 07:11:14 +0000 (17:11 +1000)]
Upload after a piece completes

8 years agoAdd TestSeedAfterDownloading
Matt Joiner [Wed, 12 Aug 2015 06:51:12 +0000 (16:51 +1000)]
Add TestSeedAfterDownloading

8 years agoSeveral bad KRPC message are crying wolf
Matt Joiner [Wed, 5 Aug 2015 23:02:50 +0000 (09:02 +1000)]
Several bad KRPC message are crying wolf

8 years agodht: Support IPv6 compact peers
Matt Joiner [Wed, 5 Aug 2015 23:01:38 +0000 (09:01 +1000)]
dht: Support IPv6 compact peers

8 years agodht: Short circuit non-DHT traffic
Matt Joiner [Wed, 5 Aug 2015 22:59:30 +0000 (08:59 +1000)]
dht: Short circuit non-DHT traffic

8 years agoLog zero ports from trackers
Matt Joiner [Wed, 5 Aug 2015 22:58:13 +0000 (08:58 +1000)]
Log zero ports from trackers

8 years agoBack off on the kicked connections log
Matt Joiner [Wed, 5 Aug 2015 22:56:36 +0000 (08:56 +1000)]
Back off on the kicked connections log

8 years agoLog who's giving us zero ports over PEX
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.

8 years agoutp.NewSocket now takes network parameter
Matt Joiner [Tue, 4 Aug 2015 16:51:40 +0000 (02:51 +1000)]
utp.NewSocket now takes network parameter

8 years agoClear piece touch flag from connection after a piece is hashed
Matt Joiner [Tue, 4 Aug 2015 16:43:53 +0000 (02:43 +1000)]
Clear piece touch flag from connection after a piece is hashed

8 years agoAdd an option to disable IPv6
Matt Joiner [Tue, 4 Aug 2015 16:41:50 +0000 (02:41 +1000)]
Add an option to disable IPv6

8 years agoReplacing pendingWrites WaitGroup with Mutex/Cond/int
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.

8 years agoInvalid test
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.

8 years agocmd/dht-secure-id
Matt Joiner [Tue, 4 Aug 2015 16:38:02 +0000 (02:38 +1000)]
cmd/dht-secure-id

8 years agodht: Expose SecureNodeId and NodeIdSecure
Matt Joiner [Tue, 4 Aug 2015 16:37:43 +0000 (02:37 +1000)]
dht: Expose SecureNodeId and NodeIdSecure

8 years agoImprove log message
Matt Joiner [Mon, 3 Aug 2015 15:33:50 +0000 (01:33 +1000)]
Improve log message

8 years agoDrop peers for sending too many unwanted pieces
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.

8 years agoLog errant unwanted piece rather than panic
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.

8 years agodht: Count announce errors, don't log them
Matt Joiner [Mon, 3 Aug 2015 15:20:44 +0000 (01:20 +1000)]
dht: Count announce errors, don't log them

8 years agoFilter out DHT peers with port 0
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.

8 years agoFix crash if peer sends out of bounds HAVE message
Matt Joiner [Mon, 3 Aug 2015 15:17:32 +0000 (01:17 +1000)]
Fix crash if peer sends out of bounds HAVE message

8 years agoTighten up some potential leaks
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.

8 years agoDrop connections that contributed to pieces that failed to hash
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.

8 years agoAdd IPBlocklist option to Config, and test it's inherited by DHT
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

8 years agoFix utp.Socket leak in test
Matt Joiner [Mon, 3 Aug 2015 14:48:17 +0000 (00:48 +1000)]
Fix utp.Socket leak in test

8 years agoAdd File.DisplayPath
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

8 years agoIf a DHTConfig was provided without a blocklist, the DHT wouldn't inherit the Client...
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

8 years agodht: Add PublicIP to config to secure node ID
Matt Joiner [Mon, 3 Aug 2015 14:37:16 +0000 (00:37 +1000)]
dht: Add PublicIP to config to secure node ID

8 years agodht: Block bad nodes, start by banning those that send port=0
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

8 years agoSome utils moved to missinggo
Matt Joiner [Mon, 3 Aug 2015 14:29:01 +0000 (00:29 +1000)]
Some utils moved to missinggo

8 years agoReplace go-check with testify
Matt Joiner [Mon, 3 Aug 2015 06:23:05 +0000 (16:23 +1000)]
Replace go-check with testify

It's muuuuch better.

8 years agoFix locking in data/blob
Matt Joiner [Mon, 3 Aug 2015 04:24:59 +0000 (14:24 +1000)]
Fix locking in data/blob

8 years agoTrivial missed changes
Matt Joiner [Sun, 2 Aug 2015 11:00:49 +0000 (21:00 +1000)]
Trivial missed changes

8 years agoRemove clunky sentence from README
Matt Joiner [Sun, 2 Aug 2015 10:45:26 +0000 (20:45 +1000)]
Remove clunky sentence from README

8 years agoconnection.writer wasn't working efficiently
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.

8 years agotracker_test: Check for the error string instead of the type
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.

8 years agoTrack connection writes and flushes
Matt Joiner [Sun, 2 Aug 2015 04:30:33 +0000 (14:30 +1000)]
Track connection writes and flushes

Helps determine efficiency of the routine.

8 years agoTrack the connection flags for completed handshakes
Matt Joiner [Sat, 1 Aug 2015 18:06:22 +0000 (04:06 +1000)]
Track the connection flags for completed handshakes

8 years agoTidy up outbound connection code
Matt Joiner [Sat, 1 Aug 2015 18:04:42 +0000 (04:04 +1000)]
Tidy up outbound connection code

Preparing to allow alternate dialing logic.

8 years agoSuppress a lot of noisy logging
Matt Joiner [Sat, 1 Aug 2015 18:01:41 +0000 (04:01 +1000)]
Suppress a lot of noisy logging

8 years agoExplicitly import Torrent.InfoHash
Matt Joiner [Sat, 1 Aug 2015 17:55:48 +0000 (03:55 +1000)]
Explicitly import Torrent.InfoHash

8 years agoComments
Matt Joiner [Sat, 1 Aug 2015 17:53:37 +0000 (03:53 +1000)]
Comments

8 years agofs: Remove errant logging
Matt Joiner [Wed, 22 Jul 2015 09:07:01 +0000 (19:07 +1000)]
fs: Remove errant logging

8 years agocmd/torrent: Remove some dead code
Matt Joiner [Tue, 21 Jul 2015 12:54:50 +0000 (22:54 +1000)]
cmd/torrent: Remove some dead code

8 years agoTorrent.BytesCompleted was racy
Matt Joiner [Tue, 21 Jul 2015 12:54:02 +0000 (22:54 +1000)]
Torrent.BytesCompleted was racy

8 years agoDon't probe pieces when setting torrent storage
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.

8 years agoHashing was blocking prioritization of pieces
Matt Joiner [Tue, 21 Jul 2015 12:51:15 +0000 (22:51 +1000)]
Hashing was blocking prioritization of pieces

8 years agoMove CI to drone.io
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.

8 years agoUpdate README
Matt Joiner [Sat, 18 Jul 2015 15:12:50 +0000 (01:12 +1000)]
Update README

8 years agoclient.go: Missing perf import
Matt Joiner [Fri, 17 Jul 2015 11:45:44 +0000 (21:45 +1000)]
client.go: Missing perf import

8 years agoSeveral speedups in logic
Matt Joiner [Fri, 17 Jul 2015 11:07:01 +0000 (21:07 +1000)]
Several speedups in logic

8 years agoDownloading a chunk may mean the piece isn't wanted anymore
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.

8 years agoHold client lock as little as possible in Reader.readAt
Matt Joiner [Fri, 17 Jul 2015 10:59:26 +0000 (20:59 +1000)]
Hold client lock as little as possible in Reader.readAt

8 years agoAvoid holding client lock while scanning pieces in File.State
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.

8 years agoStore chunk data without holding client lock
Matt Joiner [Wed, 15 Jul 2015 06:00:59 +0000 (16:00 +1000)]
Store chunk data without holding client lock

8 years agoAdd fixes triggered by TestResponsive
Matt Joiner [Wed, 15 Jul 2015 05:54:19 +0000 (15:54 +1000)]
Add fixes triggered by TestResponsive

8 years agoAdd TestResponsive
Matt Joiner [Wed, 15 Jul 2015 05:51:42 +0000 (15:51 +1000)]
Add TestResponsive

8 years agoAllow chunk size to be specified per torrent
Matt Joiner [Wed, 15 Jul 2015 05:31:18 +0000 (15:31 +1000)]
Allow chunk size to be specified per torrent

8 years agoWhen seeding, actually seed beyond 6 chunks
Matt Joiner [Wed, 15 Jul 2015 05:29:53 +0000 (15:29 +1000)]
When seeding, actually seed beyond 6 chunks

8 years agoDon't raise piece priority while hashing or if piece complete
Matt Joiner [Sat, 4 Jul 2015 03:38:42 +0000 (13:38 +1000)]
Don't raise piece priority while hashing or if piece complete

8 years agoMerge branch 'master' of github.com:anacrolix/torrent
Matt Joiner [Sat, 4 Jul 2015 03:31:46 +0000 (13:31 +1000)]
Merge branch 'master' of github.com:anacrolix/torrent

8 years agocmd/torrent-metainfo-pprint: Don't print extra newline when -name is true
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

8 years agoAbandon the mailing list and gophers channel
Matt Joiner [Thu, 2 Jul 2015 10:32:00 +0000 (20:32 +1000)]
Abandon the mailing list and gophers channel

8 years agoMove the gitter badge inline with the other badges
Matt Joiner [Thu, 2 Jul 2015 10:31:15 +0000 (20:31 +1000)]
Move the gitter badge inline with the other badges

8 years agoMerge pull request #9 from gitter-badger/gitter-badge
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

8 years agoRaise socketsPerTorrent to 80
Matt Joiner [Mon, 29 Jun 2015 14:46:43 +0000 (00:46 +1000)]
Raise socketsPerTorrent to 80