]>
Sergey Matveev's repositories - btrtrc.git/log
Matt Joiner [Thu, 3 Jul 2014 15:43:04 +0000 (01:43 +1000)]
Implement dht-get-peers command and GetPeers method in dht package
Matt Joiner [Thu, 3 Jul 2014 15:41:46 +0000 (01:41 +1000)]
Move compactPeers type to util package
Matt Joiner [Mon, 30 Jun 2014 14:06:58 +0000 (00:06 +1000)]
Fix crash when peer has only sent lower-index HAVE messages
Matt Joiner [Mon, 30 Jun 2014 14:05:28 +0000 (00:05 +1000)]
Improve some log messages
Matt Joiner [Mon, 30 Jun 2014 14:04:28 +0000 (00:04 +1000)]
Record if a connection was incoming
Matt Joiner [Mon, 30 Jun 2014 14:03:07 +0000 (00:03 +1000)]
A CPU optimization to FillRequests when we know no more can be added
Matt Joiner [Sun, 29 Jun 2014 14:22:36 +0000 (00:22 +1000)]
Disable request heat assertion for now
Probably want a flag to do intensive checks like this
Matt Joiner [Sun, 29 Jun 2014 14:22:05 +0000 (00:22 +1000)]
Move download strategies into their own file
Matt Joiner [Sun, 29 Jun 2014 09:10:59 +0000 (19:10 +1000)]
Some minor tweaks
Matt Joiner [Sun, 29 Jun 2014 09:08:46 +0000 (19:08 +1000)]
Fix crash writing torrent status before priorities are initialized
Matt Joiner [Sun, 29 Jun 2014 09:08:16 +0000 (19:08 +1000)]
Fix a race where the last piece of a torrent is requested before it's been hashed
Matt Joiner [Sun, 29 Jun 2014 09:07:43 +0000 (19:07 +1000)]
Add peers sent over PEX
Matt Joiner [Sun, 29 Jun 2014 08:57:49 +0000 (18:57 +1000)]
Add support for extended handshake "v", "reqq", and "p" fields
Matt Joiner [Sun, 29 Jun 2014 08:56:19 +0000 (18:56 +1000)]
Fix crash printing client status when a torrent info isn't available
Matt Joiner [Sun, 29 Jun 2014 05:45:21 +0000 (15:45 +1000)]
Log errors setting the metadata for a torrent, and report when metadata is completed from peers
Matt Joiner [Sun, 29 Jun 2014 05:44:55 +0000 (15:44 +1000)]
Remove some metadata related debug messages
Matt Joiner [Sat, 28 Jun 2014 09:38:31 +0000 (19:38 +1000)]
Can now download from magnet links
Matt Joiner [Fri, 27 Jun 2014 08:57:35 +0000 (18:57 +1000)]
Fixes for cmd/torrent with the new torrent.Info field
Matt Joiner [Thu, 26 Jun 2014 14:57:07 +0000 (00:57 +1000)]
Begin adding magnet and ut_metadata support
Matt Joiner [Thu, 26 Jun 2014 08:08:14 +0000 (18:08 +1000)]
Trivial fix for one of the last commits
Matt Joiner [Thu, 26 Jun 2014 08:06:33 +0000 (18:06 +1000)]
Various improvements that've had a lot of testing
Matt Joiner [Thu, 26 Jun 2014 07:30:54 +0000 (17:30 +1000)]
Fix broken connection write optimizer test
Matt Joiner [Thu, 26 Jun 2014 07:30:16 +0000 (17:30 +1000)]
vet some printfs
Matt Joiner [Thu, 26 Jun 2014 07:29:12 +0000 (17:29 +1000)]
torrentfs: Write client status to HTTP port
Matt Joiner [Wed, 25 Jun 2014 15:37:00 +0000 (01:37 +1000)]
cmd/torrentfs: Expose readahead bytes as a flag
Matt Joiner [Wed, 25 Jun 2014 15:36:25 +0000 (01:36 +1000)]
torrentfs: Reading an offset past the end of a file caused out of bounds panic
Matt Joiner [Tue, 24 Jun 2014 13:20:49 +0000 (23:20 +1000)]
Begin implementing a K closest node algorithm
Matt Joiner [Tue, 24 Jun 2014 13:20:07 +0000 (23:20 +1000)]
Some function doc
Matt Joiner [Tue, 24 Jun 2014 13:19:19 +0000 (23:19 +1000)]
Wrap server UDP sends to ensure the node last send is updated
Matt Joiner [Tue, 24 Jun 2014 13:18:30 +0000 (23:18 +1000)]
DHT default server ID generated using hostname and server address
Matt Joiner [Tue, 24 Jun 2014 13:17:06 +0000 (23:17 +1000)]
DHT node table should be loaded after the server is initialized
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
Matt Joiner [Wed, 28 May 2014 16:44:27 +0000 (02:44 +1000)]
Reorder actions after a chunk is received
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.
Matt Joiner [Wed, 28 May 2014 15:30:59 +0000 (01:30 +1000)]
Make the readahead on ResponsiveDownloadStrategy customizable
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.
Matt Joiner [Wed, 28 May 2014 15:22:51 +0000 (01:22 +1000)]
Keepalives weren't marshalled correctly
Matt Joiner [Tue, 27 May 2014 06:28:56 +0000 (16:28 +1000)]
Got dht-server working nicely
Matt Joiner [Sun, 25 May 2014 13:04:55 +0000 (23:04 +1000)]
dht-server: Save and load node table between invocations
Matt Joiner [Sun, 25 May 2014 11:34:29 +0000 (21:34 +1000)]
Switch dht-server to bootstrapping
Matt Joiner [Sat, 24 May 2014 06:51:56 +0000 (16:51 +1000)]
Begin implementing DHT
Matt Joiner [Fri, 23 May 2014 14:23:44 +0000 (00:23 +1000)]
Add README.rst with codeship image
Matt Joiner [Fri, 23 May 2014 11:02:42 +0000 (21:02 +1000)]
Remove redundant replenishConnRequests when receiving unchoke
Matt Joiner [Fri, 23 May 2014 11:02:11 +0000 (21:02 +1000)]
dat new-world-style panic
Matt Joiner [Fri, 23 May 2014 11:01:35 +0000 (21:01 +1000)]
Fix a race checking bytes left when announcing
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
Matt Joiner [Fri, 23 May 2014 10:58:11 +0000 (20:58 +1000)]
torrent.go: Alias peer_protocol as pp
Matt Joiner [Thu, 22 May 2014 14:38:07 +0000 (00:38 +1000)]
Put interface assertion next to the asserted type
Matt Joiner [Thu, 22 May 2014 14:37:36 +0000 (00:37 +1000)]
TorrentReadAt shouldn't care about verification state
Matt Joiner [Thu, 22 May 2014 14:36:47 +0000 (00:36 +1000)]
Avoid rebuffering in peer_protocol.Decode
Matt Joiner [Thu, 22 May 2014 14:35:24 +0000 (00:35 +1000)]
Some minor fiddling to announcing in the client
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
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.
Matt Joiner [Wed, 21 May 2014 08:01:58 +0000 (18:01 +1000)]
client.go: Shorten module peer_protocol to pp
Matt Joiner [Wed, 21 May 2014 07:55:50 +0000 (17:55 +1000)]
Shorten variable names in connectionLoop
Matt Joiner [Wed, 21 May 2014 07:49:59 +0000 (17:49 +1000)]
Be more selective about when to replenish connection requests
Matt Joiner [Wed, 21 May 2014 07:49:28 +0000 (17:49 +1000)]
Implement connection.{Cancel,Choke}
Matt Joiner [Wed, 21 May 2014 07:48:44 +0000 (17:48 +1000)]
Allocate peer_protocol.Message on the stack in connectionLoop
Matt Joiner [Wed, 21 May 2014 07:47:42 +0000 (17:47 +1000)]
Support individual peer max requests
Matt Joiner [Wed, 21 May 2014 07:42:06 +0000 (17:42 +1000)]
Misc minor improvements
Matt Joiner [Wed, 21 May 2014 07:40:54 +0000 (17:40 +1000)]
Add Client.DownloadStrategy; fix priority of incomplete pieces
Matt Joiner [Wed, 21 May 2014 07:38:09 +0000 (17:38 +1000)]
cmd/torrent: Add flags -disableTrackers and -seed
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
Matt Joiner [Tue, 20 May 2014 14:52:49 +0000 (00:52 +1000)]
Add some String methods and contextual information in log messages
Matt Joiner [Wed, 16 Apr 2014 11:13:44 +0000 (21:13 +1000)]
Make Request private
Matt Joiner [Wed, 16 Apr 2014 07:33:33 +0000 (17:33 +1000)]
Implement receiving cancel messages
Matt Joiner [Thu, 17 Apr 2014 06:37:54 +0000 (16:37 +1000)]
TestUnmountWedged, fs.Destroy
Matt Joiner [Tue, 8 Apr 2014 16:36:05 +0000 (02:36 +1000)]
Big visibility/doc clean-up, and extract mmap_span package
Matt Joiner [Tue, 8 Apr 2014 15:18:55 +0000 (01:18 +1000)]
Check for asynchronous mount error after serving
Matt Joiner [Tue, 8 Apr 2014 15:18:29 +0000 (01:18 +1000)]
Break up torrentfs main(), it's too large
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.
Matt Joiner [Tue, 8 Apr 2014 15:15:39 +0000 (01:15 +1000)]
Add error handling to PrioritizeDataRegion as it's public facing API
Matt Joiner [Tue, 8 Apr 2014 09:40:10 +0000 (19:40 +1000)]
Mask EHOSTUNREACH on connect()
Matt Joiner [Tue, 8 Apr 2014 09:39:34 +0000 (19:39 +1000)]
goimports decided to reorganise imports
Matt Joiner [Tue, 8 Apr 2014 06:45:33 +0000 (16:45 +1000)]
Fix calculation of request for torrent data offset
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.
Matt Joiner [Thu, 20 Mar 2014 13:42:40 +0000 (00:42 +1100)]
Fix short read and report unexpected EOFs decoding peer protocol
Matt Joiner [Thu, 20 Mar 2014 13:40:54 +0000 (00:40 +1100)]
TODO
Matt Joiner [Thu, 20 Mar 2014 13:14:17 +0000 (00:14 +1100)]
Lots of logging improvements
Matt Joiner [Thu, 20 Mar 2014 13:13:32 +0000 (00:13 +1100)]
Add -listenAddr and actually listen in ./cmd/torrent
Matt Joiner [Thu, 20 Mar 2014 13:12:53 +0000 (00:12 +1100)]
Send port on announces when possible
Matt Joiner [Thu, 20 Mar 2014 13:11:49 +0000 (00:11 +1100)]
Fix requests to other leechers
Matt Joiner [Thu, 20 Mar 2014 11:02:15 +0000 (22:02 +1100)]
Tidy up
Matt Joiner [Thu, 20 Mar 2014 11:01:56 +0000 (22:01 +1100)]
Fix races stopping clients and closing connections
Matt Joiner [Thu, 20 Mar 2014 06:35:11 +0000 (17:35 +1100)]
Test created torrent structure in current directory
Matt Joiner [Thu, 20 Mar 2014 05:58:09 +0000 (16:58 +1100)]
Improvements to pending chunks; extract testutil
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.
Matt Joiner [Wed, 19 Mar 2014 17:30:08 +0000 (04:30 +1100)]
Various progress, particularly around the way data readiness is handled
Matt Joiner [Tue, 18 Mar 2014 11:39:33 +0000 (22:39 +1100)]
Hunting for goroutine leaks
Start implementing Client.Stop().
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.
Matt Joiner [Sun, 16 Mar 2014 15:31:06 +0000 (02:31 +1100)]
Add tracker_test
Matt Joiner [Sun, 16 Mar 2014 15:30:10 +0000 (02:30 +1100)]
Make use of trackers
Matt Joiner [Mon, 16 Dec 2013 07:47:23 +0000 (18:47 +1100)]
Simplify the tracker.New interface, just take a string
Matt Joiner [Mon, 16 Dec 2013 07:46:55 +0000 (18:46 +1100)]
Tracker doc
Matt Joiner [Sat, 14 Dec 2013 11:21:45 +0000 (22:21 +1100)]
Fixes and tests for UDP tracker protocol
Matt Joiner [Sat, 14 Dec 2013 11:20:13 +0000 (22:20 +1100)]
Fix parsing of UDP announce response peers
Matt Joiner [Wed, 6 Nov 2013 14:55:29 +0000 (01:55 +1100)]
Implementing UDP tracker in its own module
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
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
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.