]> Sergey Matveev's repositories - btrtrc.git/log
btrtrc.git
10 years agoDHT node table should be loaded after the server is initialized
Matt Joiner [Tue, 24 Jun 2014 13:17:06 +0000 (23:17 +1000)]
DHT node table should be loaded after the server is initialized

10 years agoudp_tracker: If a read deadline occurs, writes were failing with i/o timeout
Matt Joiner [Mon, 23 Jun 2014 10:30:31 +0000 (20:30 +1000)]
udp_tracker: If a read deadline occurs, writes were failing with i/o timeout

10 years agoReorder actions after a chunk is received
Matt Joiner [Wed, 28 May 2014 16:44:27 +0000 (02:44 +1000)]
Reorder actions after a chunk is received

10 years agoShuffle chunk spec request order for readahead pieces
Matt Joiner [Wed, 28 May 2014 15:32:34 +0000 (01:32 +1000)]
Shuffle chunk spec request order for readahead pieces

Should reduce overlap in received chunks.

10 years agoMake the readahead on ResponsiveDownloadStrategy customizable
Matt Joiner [Wed, 28 May 2014 15:30:59 +0000 (01:30 +1000)]
Make the readahead on ResponsiveDownloadStrategy customizable

10 years agoRemove requests from the outbound message queue if cancelled before they're written
Matt Joiner [Wed, 28 May 2014 15:27:48 +0000 (01:27 +1000)]
Remove requests from the outbound message queue if cancelled before they're written

Only post peer protocol messages to the channel, bytes must be done directly.
This fixes a possible issue where slow responses during handshake could cause
keep alive messages to be sent prematurely.

10 years agoKeepalives weren't marshalled correctly
Matt Joiner [Wed, 28 May 2014 15:22:51 +0000 (01:22 +1000)]
Keepalives weren't marshalled correctly

10 years agoGot dht-server working nicely
Matt Joiner [Tue, 27 May 2014 06:28:56 +0000 (16:28 +1000)]
Got dht-server working nicely

10 years agodht-server: Save and load node table between invocations
Matt Joiner [Sun, 25 May 2014 13:04:55 +0000 (23:04 +1000)]
dht-server: Save and load node table between invocations

10 years agoSwitch dht-server to bootstrapping
Matt Joiner [Sun, 25 May 2014 11:34:29 +0000 (21:34 +1000)]
Switch dht-server to bootstrapping

10 years agoBegin implementing DHT
Matt Joiner [Sat, 24 May 2014 06:51:56 +0000 (16:51 +1000)]
Begin implementing DHT

10 years agoAdd README.rst with codeship image
Matt Joiner [Fri, 23 May 2014 14:23:44 +0000 (00:23 +1000)]
Add README.rst with codeship image

10 years agoRemove redundant replenishConnRequests when receiving unchoke
Matt Joiner [Fri, 23 May 2014 11:02:42 +0000 (21:02 +1000)]
Remove redundant replenishConnRequests when receiving unchoke

10 years agodat new-world-style panic
Matt Joiner [Fri, 23 May 2014 11:02:11 +0000 (21:02 +1000)]
dat new-world-style panic

10 years agoFix a race checking bytes left when announcing
Matt Joiner [Fri, 23 May 2014 11:01:35 +0000 (21:01 +1000)]
Fix a race checking bytes left when announcing

10 years agoStore request heat in the download strategy
Matt Joiner [Fri, 23 May 2014 11:01:05 +0000 (21:01 +1000)]
Store request heat in the download strategy

This avoids recalculating it for every FillRequest

10 years agotorrent.go: Alias peer_protocol as pp
Matt Joiner [Fri, 23 May 2014 10:58:11 +0000 (20:58 +1000)]
torrent.go: Alias peer_protocol as pp

10 years agoPut interface assertion next to the asserted type
Matt Joiner [Thu, 22 May 2014 14:38:07 +0000 (00:38 +1000)]
Put interface assertion next to the asserted type

10 years agoTorrentReadAt shouldn't care about verification state
Matt Joiner [Thu, 22 May 2014 14:37:36 +0000 (00:37 +1000)]
TorrentReadAt shouldn't care about verification state

10 years agoAvoid rebuffering in peer_protocol.Decode
Matt Joiner [Thu, 22 May 2014 14:36:47 +0000 (00:36 +1000)]
Avoid rebuffering in peer_protocol.Decode

10 years agoSome minor fiddling to announcing in the client
Matt Joiner [Thu, 22 May 2014 14:35:24 +0000 (00:35 +1000)]
Some minor fiddling to announcing in the client

10 years agoThe fuse library allocates a response data slice for us, so use it
Matt Joiner [Thu, 22 May 2014 14:34:18 +0000 (00:34 +1000)]
The fuse library allocates a response data slice for us, so use it

10 years agoResponsiveDownloadStrategy will readahead blocks
Matt Joiner [Thu, 22 May 2014 14:33:07 +0000 (00:33 +1000)]
ResponsiveDownloadStrategy will readahead blocks

Test peers don't play well with short "up request" buffers, so we need to fill
these with the most likely blocks to achieve maximum download speeds.

10 years agoclient.go: Shorten module peer_protocol to pp
Matt Joiner [Wed, 21 May 2014 08:01:58 +0000 (18:01 +1000)]
client.go: Shorten module peer_protocol to pp

10 years agoShorten variable names in connectionLoop
Matt Joiner [Wed, 21 May 2014 07:55:50 +0000 (17:55 +1000)]
Shorten variable names in connectionLoop

10 years agoBe more selective about when to replenish connection requests
Matt Joiner [Wed, 21 May 2014 07:49:59 +0000 (17:49 +1000)]
Be more selective about when to replenish connection requests

10 years agoImplement connection.{Cancel,Choke}
Matt Joiner [Wed, 21 May 2014 07:49:28 +0000 (17:49 +1000)]
Implement connection.{Cancel,Choke}

10 years agoAllocate peer_protocol.Message on the stack in connectionLoop
Matt Joiner [Wed, 21 May 2014 07:48:44 +0000 (17:48 +1000)]
Allocate peer_protocol.Message on the stack in connectionLoop

10 years agoSupport individual peer max requests
Matt Joiner [Wed, 21 May 2014 07:47:42 +0000 (17:47 +1000)]
Support individual peer max requests

10 years agoMisc minor improvements
Matt Joiner [Wed, 21 May 2014 07:42:06 +0000 (17:42 +1000)]
Misc minor improvements

10 years agoAdd Client.DownloadStrategy; fix priority of incomplete pieces
Matt Joiner [Wed, 21 May 2014 07:40:54 +0000 (17:40 +1000)]
Add Client.DownloadStrategy; fix priority of incomplete pieces

10 years agocmd/torrent: Add flags -disableTrackers and -seed
Matt Joiner [Wed, 21 May 2014 07:38:09 +0000 (17:38 +1000)]
cmd/torrent: Add flags -disableTrackers and -seed

10 years agoIninitialize the torrent.Priorities up front and do initial piece checks with a singl...
Matt Joiner [Wed, 21 May 2014 07:37:31 +0000 (17:37 +1000)]
Ininitialize the torrent.Priorities up front and do initial piece checks with a single goroutine

10 years agoAdd some String methods and contextual information in log messages
Matt Joiner [Tue, 20 May 2014 14:52:49 +0000 (00:52 +1000)]
Add some String methods and contextual information in log messages

11 years agoMake Request private
Matt Joiner [Wed, 16 Apr 2014 11:13:44 +0000 (21:13 +1000)]
Make Request private

11 years agoImplement receiving cancel messages
Matt Joiner [Wed, 16 Apr 2014 07:33:33 +0000 (17:33 +1000)]
Implement receiving cancel messages

11 years agoTestUnmountWedged, fs.Destroy
Matt Joiner [Thu, 17 Apr 2014 06:37:54 +0000 (16:37 +1000)]
TestUnmountWedged, fs.Destroy

11 years agoBig visibility/doc clean-up, and extract mmap_span package
Matt Joiner [Tue, 8 Apr 2014 16:36:05 +0000 (02:36 +1000)]
Big visibility/doc clean-up, and extract mmap_span package

11 years agoCheck for asynchronous mount error after serving
Matt Joiner [Tue, 8 Apr 2014 15:18:55 +0000 (01:18 +1000)]
Check for asynchronous mount error after serving

11 years agoBreak up torrentfs main(), it's too large
Matt Joiner [Tue, 8 Apr 2014 15:18:29 +0000 (01:18 +1000)]
Break up torrentfs main(), it's too large

11 years agoHandle repeat SIGINT/SIGTERMs
Matt Joiner [Tue, 8 Apr 2014 15:17:53 +0000 (01:17 +1000)]
Handle repeat SIGINT/SIGTERMs

Need to determine if there's a way to better interrupt the FS or if we have no control over that.

11 years agoAdd error handling to PrioritizeDataRegion as it's public facing API
Matt Joiner [Tue, 8 Apr 2014 15:15:39 +0000 (01:15 +1000)]
Add error handling to PrioritizeDataRegion as it's public facing API

11 years agoMask EHOSTUNREACH on connect()
Matt Joiner [Tue, 8 Apr 2014 09:40:10 +0000 (19:40 +1000)]
Mask EHOSTUNREACH on connect()

11 years agogoimports decided to reorganise imports
Matt Joiner [Tue, 8 Apr 2014 09:39:34 +0000 (19:39 +1000)]
goimports decided to reorganise imports

11 years agoFix calculation of request for torrent data offset
Matt Joiner [Tue, 8 Apr 2014 06:45:33 +0000 (16:45 +1000)]
Fix calculation of request for torrent data offset

11 years agoBreak up client.go into several files and a few fixes
Matt Joiner [Thu, 3 Apr 2014 12:16:59 +0000 (23:16 +1100)]
Break up client.go into several files and a few fixes

Suppress expected errors when initiating connections.
Add an explicit timeout to initiate connections.
Put a lock on closing a connection to prevent data race warnings.

11 years agoFix short read and report unexpected EOFs decoding peer protocol
Matt Joiner [Thu, 20 Mar 2014 13:42:40 +0000 (00:42 +1100)]
Fix short read and report unexpected EOFs decoding peer protocol

11 years agoTODO
Matt Joiner [Thu, 20 Mar 2014 13:40:54 +0000 (00:40 +1100)]
TODO

11 years agoLots of logging improvements
Matt Joiner [Thu, 20 Mar 2014 13:14:17 +0000 (00:14 +1100)]
Lots of logging improvements

11 years agoAdd -listenAddr and actually listen in ./cmd/torrent
Matt Joiner [Thu, 20 Mar 2014 13:13:32 +0000 (00:13 +1100)]
Add -listenAddr and actually listen in ./cmd/torrent

11 years agoSend port on announces when possible
Matt Joiner [Thu, 20 Mar 2014 13:12:53 +0000 (00:12 +1100)]
Send port on announces when possible

11 years agoFix requests to other leechers
Matt Joiner [Thu, 20 Mar 2014 13:11:49 +0000 (00:11 +1100)]
Fix requests to other leechers

11 years agoTidy up
Matt Joiner [Thu, 20 Mar 2014 11:02:15 +0000 (22:02 +1100)]
Tidy up

11 years agoFix races stopping clients and closing connections
Matt Joiner [Thu, 20 Mar 2014 11:01:56 +0000 (22:01 +1100)]
Fix races stopping clients and closing connections

11 years agoTest created torrent structure in current directory
Matt Joiner [Thu, 20 Mar 2014 06:35:11 +0000 (17:35 +1100)]
Test created torrent structure in current directory

11 years agoImprovements to pending chunks; extract testutil
Matt Joiner [Thu, 20 Mar 2014 05:58:09 +0000 (16:58 +1100)]
Improvements to pending chunks; extract testutil

11 years agoAdd a scrape command so I can work out if trackers are seeing my test clients
Matt Joiner [Wed, 19 Mar 2014 17:30:32 +0000 (04:30 +1100)]
Add a scrape command so I can work out if trackers are seeing my test clients

I don't even know if scrape is the right word.

11 years agoVarious progress, particularly around the way data readiness is handled
Matt Joiner [Wed, 19 Mar 2014 17:30:08 +0000 (04:30 +1100)]
Various progress, particularly around the way data readiness is handled

11 years agoHunting for goroutine leaks
Matt Joiner [Tue, 18 Mar 2014 11:39:33 +0000 (22:39 +1100)]
Hunting for goroutine leaks

Start implementing Client.Stop().

11 years agoAdd a end-to-end test for torrentfs
Matt Joiner [Mon, 17 Mar 2014 14:44:22 +0000 (01:44 +1100)]
Add a end-to-end test for torrentfs

Basic unchoking and uploading.
Accept incoming connections.
Break out torrentfs lib.
Fix and implement some protocol stuff.

11 years agoAdd tracker_test
Matt Joiner [Sun, 16 Mar 2014 15:31:06 +0000 (02:31 +1100)]
Add tracker_test

11 years agoMake use of trackers
Matt Joiner [Sun, 16 Mar 2014 15:30:10 +0000 (02:30 +1100)]
Make use of trackers

11 years agoSimplify the tracker.New interface, just take a string
Matt Joiner [Mon, 16 Dec 2013 07:47:23 +0000 (18:47 +1100)]
Simplify the tracker.New interface, just take a string

11 years agoTracker doc
Matt Joiner [Mon, 16 Dec 2013 07:46:55 +0000 (18:46 +1100)]
Tracker doc

11 years agoFixes and tests for UDP tracker protocol
Matt Joiner [Sat, 14 Dec 2013 11:21:45 +0000 (22:21 +1100)]
Fixes and tests for UDP tracker protocol

11 years agoFix parsing of UDP announce response peers
Matt Joiner [Sat, 14 Dec 2013 11:20:13 +0000 (22:20 +1100)]
Fix parsing of UDP announce response peers

11 years agoImplementing UDP tracker in its own module
Matt Joiner [Wed, 6 Nov 2013 14:55:29 +0000 (01:55 +1100)]
Implementing UDP tracker in its own module

11 years agoUnit test for connection address comparison to avoid adding bootstrap peers when...
Matt Joiner [Mon, 4 Nov 2013 13:10:16 +0000 (00:10 +1100)]
Unit test for connection address comparison to avoid adding bootstrap peers when already present

11 years agoBring the 'torrent' command up to speed with the client API, including profiling...
Matt Joiner [Mon, 4 Nov 2013 13:07:28 +0000 (00:07 +1100)]
Bring the 'torrent' command up to speed with the client API, including profiling flags

11 years agoSet the event condition locker in client
Matt Joiner [Mon, 4 Nov 2013 13:06:40 +0000 (00:06 +1100)]
Set the event condition locker in client

Needed for WaitAll, albeit not actually triggered anywhere yet.

11 years agoStop connection writer timer on exit from function
Matt Joiner [Mon, 4 Nov 2013 13:06:08 +0000 (00:06 +1100)]
Stop connection writer timer on exit from function

11 years agoRemove obsolete private type 'pieceState'
Matt Joiner [Mon, 4 Nov 2013 13:05:44 +0000 (00:05 +1100)]
Remove obsolete private type 'pieceState'

11 years agoBegin on UDP trackers
Matt Joiner [Mon, 4 Nov 2013 13:04:14 +0000 (00:04 +1100)]
Begin on UDP trackers

11 years agoMore explicit implementation for wantPiece method
Matt Joiner [Tue, 22 Oct 2013 07:03:44 +0000 (18:03 +1100)]
More explicit implementation for wantPiece method

11 years agoIf no requests can be found for a connection, set it to uninterested
Matt Joiner [Tue, 22 Oct 2013 07:03:27 +0000 (18:03 +1100)]
If no requests can be found for a connection, set it to uninterested

11 years agoSet pieceByBytesPendingSlice capacity in advance to reduce memory pressure
Matt Joiner [Tue, 22 Oct 2013 07:02:52 +0000 (18:02 +1100)]
Set pieceByBytesPendingSlice capacity in advance to reduce memory pressure

11 years agoReconnect to the torrentfs -testPeer at regular intervals if it's missing for any...
Matt Joiner [Tue, 22 Oct 2013 07:01:56 +0000 (18:01 +1100)]
Reconnect to the torrentfs -testPeer at regular intervals if it's missing for any loaded torrents

11 years agoFix keep-alive timer use in connection writer, and make connection a public type
Matt Joiner [Tue, 22 Oct 2013 07:00:35 +0000 (18:00 +1100)]
Fix keep-alive timer use in connection writer, and make connection a public type

I'm not sure if making this public is the right approach yet, but for now it's a good way to conditionally invoke methods on Client from external packages.

11 years agoSignificant progress and improvements
Matt Joiner [Sun, 20 Oct 2013 14:07:01 +0000 (01:07 +1100)]
Significant progress and improvements

Piece state is broken up into several dimensions.
Implement keep-alive in connection writer.
Lazily hash pieces, only as requested.
Replace client actor mechanism with a mutex.
Fix runConnection/connectionLoop/handshake misnomers.
Fix broken reading from partially complete pieces.

11 years agoAlways finish off partially downloaded pieces
Matt Joiner [Tue, 15 Oct 2013 08:42:30 +0000 (19:42 +1100)]
Always finish off partially downloaded pieces

11 years agoImplement prioritizing of torrent data regions based on FS activity
Matt Joiner [Mon, 14 Oct 2013 14:39:12 +0000 (01:39 +1100)]
Implement prioritizing of torrent data regions based on FS activity

11 years agoTorrent client publishes data ready information; torrentfs supports file reads
Matt Joiner [Sun, 13 Oct 2013 12:16:21 +0000 (23:16 +1100)]
Torrent client publishes data ready information; torrentfs supports file reads

11 years agoFix bugs in the new WriteSectionTo hashing implementation
Matt Joiner [Mon, 7 Oct 2013 07:58:33 +0000 (18:58 +1100)]
Fix bugs in the new WriteSectionTo hashing implementation

11 years agoCreate more efficient writer method for MMapSpan for use with hashing
Matt Joiner [Sun, 6 Oct 2013 23:35:10 +0000 (10:35 +1100)]
Create more efficient writer method for MMapSpan for use with hashing

11 years agoSupport browsing torrents in the filesystem
Matt Joiner [Sun, 6 Oct 2013 19:00:35 +0000 (06:00 +1100)]
Support browsing torrents in the filesystem

11 years agoNeed executable permissions on torrent data directories
Matt Joiner [Sun, 6 Oct 2013 10:12:44 +0000 (21:12 +1100)]
Need executable permissions on torrent data directories

11 years agoStart implementing torrentfs binary
Matt Joiner [Sun, 6 Oct 2013 07:01:39 +0000 (18:01 +1100)]
Start implementing torrentfs binary

11 years agoFix TestHaveEncode now that message length prefixes are actually included in Marshal...
Matt Joiner [Sun, 6 Oct 2013 05:05:03 +0000 (16:05 +1100)]
Fix TestHaveEncode now that message length prefixes are actually included in Marshal output

11 years agoBEP20
Matt Joiner [Wed, 2 Oct 2013 10:12:05 +0000 (20:12 +1000)]
BEP20

11 years agoImplement writing of chunks as they arrive
Matt Joiner [Wed, 2 Oct 2013 09:55:03 +0000 (19:55 +1000)]
Implement writing of chunks as they arrive

11 years agoFailing WriteAt should return ErrShortWrite
Matt Joiner [Wed, 2 Oct 2013 09:54:23 +0000 (19:54 +1000)]
Failing WriteAt should return ErrShortWrite

See the implementation of io.Copy.

11 years agoMostly handle Piece messages, and kick off a piece check when all the chunks are...
Matt Joiner [Wed, 2 Oct 2013 07:57:59 +0000 (17:57 +1000)]
Mostly handle Piece messages, and kick off a piece check when all the chunks are done

11 years agoDecoding of Piece messages, and checking entire message is consumed
Matt Joiner [Wed, 2 Oct 2013 07:57:19 +0000 (17:57 +1000)]
Decoding of Piece messages, and checking entire message is consumed

11 years agoFix request/chunk confusion, missing outgoing message prefix, protocol tests; improve...
Matt Joiner [Tue, 1 Oct 2013 08:43:18 +0000 (18:43 +1000)]
Fix request/chunk confusion, missing outgoing message prefix, protocol tests; improve request triggering

11 years agoImplementing bitfields and connection message handling
Matt Joiner [Mon, 30 Sep 2013 11:51:08 +0000 (21:51 +1000)]
Implementing bitfields and connection message handling

11 years agoImplement peer connection writer, optimizer and handshake
Matt Joiner [Sun, 29 Sep 2013 06:45:17 +0000 (16:45 +1000)]
Implement peer connection writer, optimizer and handshake

11 years agoFix race conditions
Matt Joiner [Sun, 29 Sep 2013 06:44:37 +0000 (16:44 +1000)]
Fix race conditions

11 years agoBytesInfoHash wasn't actually initializing the info hash
Matt Joiner [Sun, 29 Sep 2013 06:43:35 +0000 (16:43 +1000)]
BytesInfoHash wasn't actually initializing the info hash

11 years agoDon't rely on *os.File finalizer for close
Matt Joiner [Sun, 29 Sep 2013 04:20:18 +0000 (14:20 +1000)]
Don't rely on *os.File finalizer for close

11 years agoPrevent false-positive race conditions
Matt Joiner [Sun, 29 Sep 2013 04:18:43 +0000 (14:18 +1000)]
Prevent false-positive race conditions