]>
Sergey Matveev's repositories - btrtrc.git/log
summary |
shortlog | log |
commit |
commitdiff |
tree
first ⋅ prev ⋅ next
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.
Matt Joiner [Mon, 4 Nov 2013 13:06:08 +0000 (00:06 +1100)]
Stop connection writer timer on exit from function
Matt Joiner [Mon, 4 Nov 2013 13:05:44 +0000 (00:05 +1100)]
Remove obsolete private type 'pieceState'
Matt Joiner [Mon, 4 Nov 2013 13:04:14 +0000 (00:04 +1100)]
Begin on UDP trackers
Matt Joiner [Tue, 22 Oct 2013 07:03:44 +0000 (18:03 +1100)]
More explicit implementation for wantPiece method
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
Matt Joiner [Tue, 22 Oct 2013 07:02:52 +0000 (18:02 +1100)]
Set pieceByBytesPendingSlice capacity in advance to reduce memory pressure
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
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.
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.
Matt Joiner [Tue, 15 Oct 2013 08:42:30 +0000 (19:42 +1100)]
Always finish off partially downloaded pieces
Matt Joiner [Mon, 14 Oct 2013 14:39:12 +0000 (01:39 +1100)]
Implement prioritizing of torrent data regions based on FS activity
Matt Joiner [Sun, 13 Oct 2013 12:16:21 +0000 (23:16 +1100)]
Torrent client publishes data ready information; torrentfs supports file reads
Matt Joiner [Mon, 7 Oct 2013 07:58:33 +0000 (18:58 +1100)]
Fix bugs in the new WriteSectionTo hashing implementation
Matt Joiner [Sun, 6 Oct 2013 23:35:10 +0000 (10:35 +1100)]
Create more efficient writer method for MMapSpan for use with hashing
Matt Joiner [Sun, 6 Oct 2013 19:00:35 +0000 (06:00 +1100)]
Support browsing torrents in the filesystem
Matt Joiner [Sun, 6 Oct 2013 10:12:44 +0000 (21:12 +1100)]
Need executable permissions on torrent data directories
Matt Joiner [Sun, 6 Oct 2013 07:01:39 +0000 (18:01 +1100)]
Start implementing torrentfs binary
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
Matt Joiner [Wed, 2 Oct 2013 10:12:05 +0000 (20:12 +1000)]
BEP20
Matt Joiner [Wed, 2 Oct 2013 09:55:03 +0000 (19:55 +1000)]
Implement writing of chunks as they arrive
Matt Joiner [Wed, 2 Oct 2013 09:54:23 +0000 (19:54 +1000)]
Failing WriteAt should return ErrShortWrite
See the implementation of io.Copy.
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
Matt Joiner [Wed, 2 Oct 2013 07:57:19 +0000 (17:57 +1000)]
Decoding of Piece messages, and checking entire message is consumed
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
Matt Joiner [Mon, 30 Sep 2013 11:51:08 +0000 (21:51 +1000)]
Implementing bitfields and connection message handling
Matt Joiner [Sun, 29 Sep 2013 06:45:17 +0000 (16:45 +1000)]
Implement peer connection writer, optimizer and handshake
Matt Joiner [Sun, 29 Sep 2013 06:44:37 +0000 (16:44 +1000)]
Fix race conditions
Matt Joiner [Sun, 29 Sep 2013 06:43:35 +0000 (16:43 +1000)]
BytesInfoHash wasn't actually initializing the info hash
Matt Joiner [Sun, 29 Sep 2013 04:20:18 +0000 (14:20 +1000)]
Don't rely on *os.File finalizer for close
Matt Joiner [Sun, 29 Sep 2013 04:18:43 +0000 (14:18 +1000)]
Prevent false-positive race conditions
Matt Joiner [Sat, 28 Sep 2013 22:11:24 +0000 (08:11 +1000)]
Begin implementing the adding of peers, and initiating of connections
Matt Joiner [Sat, 28 Sep 2013 18:05:09 +0000 (04:05 +1000)]
Handle actorTask messages
Matt Joiner [Sat, 28 Sep 2013 18:04:46 +0000 (04:04 +1000)]
Can't send to torrentFinished while handling an event
Matt Joiner [Sat, 28 Sep 2013 18:03:36 +0000 (04:03 +1000)]
Fix crash due to torrent.MetaInfo being unset
Matt Joiner [Sat, 28 Sep 2013 18:03:04 +0000 (04:03 +1000)]
Create torrent data files with at least the required size
Truncate is required or use of mmap'd region beyond file length raises SIGBUS.
Matt Joiner [Thu, 26 Sep 2013 09:49:15 +0000 (19:49 +1000)]
Start implementing a basic client
Matt Joiner [Thu, 26 Sep 2013 03:43:46 +0000 (13:43 +1000)]
Add some basic protocol definitions, this will be improved in the future
Matt Joiner [Thu, 26 Sep 2013 03:43:08 +0000 (13:43 +1000)]
Add torrent-verify, simple exe that logs matching pieces from a torrent file and torrent path
Matt Joiner [Thu, 26 Sep 2013 03:42:24 +0000 (13:42 +1000)]
Add torrent.Mmap and MmapSpan, types that abstract memory-mapped torrent data
Matt Joiner [Thu, 19 Sep 2013 07:00:51 +0000 (17:00 +1000)]
Add cmds 'torrent-create' and 'torrent-metainfo-pprint' using nsf's libtorgo