]> Sergey Matveev's repositories - btrtrc.git/log
btrtrc.git
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

8 years agoSome changes to writing torrent status
Matt Joiner [Mon, 29 Jun 2015 14:46:24 +0000 (00:46 +1000)]
Some changes to writing torrent status

8 years agoReplace pruning timer with as-required connection dropping
Matt Joiner [Mon, 29 Jun 2015 14:45:26 +0000 (00:45 +1000)]
Replace pruning timer with as-required connection dropping

8 years agoAdjust some expvars
Matt Joiner [Mon, 29 Jun 2015 14:35:47 +0000 (00:35 +1000)]
Adjust some expvars

8 years agoImplement Stringer on connection
Matt Joiner [Mon, 29 Jun 2015 09:37:52 +0000 (19:37 +1000)]
Implement Stringer on connection

8 years agodht: Export some useful variables
Matt Joiner [Mon, 29 Jun 2015 09:36:08 +0000 (19:36 +1000)]
dht: Export some useful variables

8 years agodht: Suppress error during bootstrapping because Server already closed
Matt Joiner [Mon, 29 Jun 2015 09:34:42 +0000 (19:34 +1000)]
dht: Suppress error during bootstrapping because Server already closed

8 years agoRename and sort some of the expvars
Matt Joiner [Sun, 28 Jun 2015 06:41:51 +0000 (16:41 +1000)]
Rename and sort some of the expvars

8 years agoComments and update version strings
Matt Joiner [Sun, 28 Jun 2015 06:40:46 +0000 (16:40 +1000)]
Comments and update version strings

8 years agoSeveral trivial fixes
Matt Joiner [Sun, 28 Jun 2015 06:39:04 +0000 (16:39 +1000)]
Several trivial fixes

8 years agoMerge pull request #19 from scr4t/master
Matt Joiner [Sat, 27 Jun 2015 09:49:58 +0000 (19:49 +1000)]
Merge pull request #19 from scr4t/master

Make torrent-pick work with latest changes

8 years agoMake torrent-pick work with latest changes
Alexander Baranov [Thu, 25 Jun 2015 18:02:14 +0000 (21:02 +0300)]
Make torrent-pick work with latest changes

8 years agofs: Fix test when :50007 already in use
Matt Joiner [Mon, 22 Jun 2015 16:03:08 +0000 (02:03 +1000)]
fs: Fix test when :50007 already in use

8 years agoTODO
Matt Joiner [Mon, 22 Jun 2015 16:02:32 +0000 (02:02 +1000)]
TODO

8 years agoMove methods to correct file
Matt Joiner [Mon, 22 Jun 2015 16:02:22 +0000 (02:02 +1000)]
Move methods to correct file

8 years agoUpstream bazil.org/fuse changed again ಠ_ಠ
Matt Joiner [Mon, 22 Jun 2015 13:02:29 +0000 (23:02 +1000)]
Upstream bazil.org/fuse changed again ಠ_ಠ

8 years agoTODO
Matt Joiner [Mon, 22 Jun 2015 09:52:00 +0000 (19:52 +1000)]
TODO

8 years agocmd/torrent-metainfo-pprint: Output JSON instead
Matt Joiner [Mon, 22 Jun 2015 09:50:29 +0000 (19:50 +1000)]
cmd/torrent-metainfo-pprint: Output JSON instead

8 years agoDocument ConfigDir
Matt Joiner [Mon, 22 Jun 2015 09:48:50 +0000 (19:48 +1000)]
Document ConfigDir

8 years agoClarify downloaded chunk counters
Matt Joiner [Mon, 22 Jun 2015 09:48:30 +0000 (19:48 +1000)]
Clarify downloaded chunk counters

8 years agoPrint peer IDs as escaped ascii
Matt Joiner [Mon, 22 Jun 2015 09:46:26 +0000 (19:46 +1000)]
Print peer IDs as escaped ascii

8 years agoMove IP blocklist loading into iplist package
Matt Joiner [Mon, 22 Jun 2015 09:44:59 +0000 (19:44 +1000)]
Move IP blocklist loading into iplist package

8 years agoAdd benchmark for adding a torrent with a lot of pieces
Matt Joiner [Mon, 22 Jun 2015 09:43:22 +0000 (19:43 +1000)]
Add benchmark for adding a torrent with a lot of pieces

8 years agoSmall tweak to readahead, and fix the tests
Matt Joiner [Tue, 16 Jun 2015 07:14:15 +0000 (17:14 +1000)]
Small tweak to readahead, and fix the tests

8 years agoImprove uploading/seeding
Matt Joiner [Tue, 16 Jun 2015 06:57:47 +0000 (16:57 +1000)]
Improve uploading/seeding

8 years agoMake readahead always at least 2 blocks.
Matt Joiner [Tue, 16 Jun 2015 06:54:12 +0000 (16:54 +1000)]
Make readahead always at least 2 blocks.

9 years agoFix rare crash due to bad DHT node IDs
Matt Joiner [Mon, 8 Jun 2015 08:16:29 +0000 (18:16 +1000)]
Fix rare crash due to bad DHT node IDs

9 years agoDon't try to connect again without encryption, if encryption is disabled
Matt Joiner [Mon, 8 Jun 2015 08:16:01 +0000 (18:16 +1000)]
Don't try to connect again without encryption, if encryption is disabled

9 years agoClarify Example_fileReader
Matt Joiner [Thu, 4 Jun 2015 04:25:52 +0000 (14:25 +1000)]
Clarify Example_fileReader

9 years agoReduce log noise due to uTP connection timeouts
Matt Joiner [Wed, 3 Jun 2015 12:44:03 +0000 (22:44 +1000)]
Reduce log noise due to uTP connection timeouts

9 years agoFix rare single-torrent stall due to obsolete ceaseNetworking call
Matt Joiner [Wed, 3 Jun 2015 12:43:40 +0000 (22:43 +1000)]
Fix rare single-torrent stall due to obsolete ceaseNetworking call

Only occurred if you have a data backend that can drop completed pieces, and it happened that you wanted to redownload data that had been dropped after completely downloading the torrent in the past.

9 years agoFix compile error in example
Matt Joiner [Wed, 3 Jun 2015 03:48:57 +0000 (13:48 +1000)]
Fix compile error in example

9 years agoRetry Reader reads when data is unexpectedly missing
Matt Joiner [Wed, 3 Jun 2015 03:36:27 +0000 (13:36 +1000)]
Retry Reader reads when data is unexpectedly missing

9 years agocmd/torrent-pick: gofmt and sortimports
Matt Joiner [Wed, 3 Jun 2015 03:31:27 +0000 (13:31 +1000)]
cmd/torrent-pick: gofmt and sortimports