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

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

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

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

10 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

10 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

10 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

10 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.

10 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

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

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

10 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

10 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.

10 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

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

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

10 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

10 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

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

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

10 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

10 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

10 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

10 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.

10 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

10 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().

10 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.

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

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

10 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

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

10 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

10 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

10 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

10 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

10 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

10 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.

10 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

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

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

10 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

10 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

10 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

10 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

10 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.

10 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.

10 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

10 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

10 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

10 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

10 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

10 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

10 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

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

10 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

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

10 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

10 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.

10 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

10 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

10 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

10 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

10 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

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

10 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

10 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

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

10 years agoBegin implementing the adding of peers, and initiating of connections
Matt Joiner [Sat, 28 Sep 2013 22:11:24 +0000 (08:11 +1000)]
Begin implementing the adding of peers, and initiating of connections

10 years agoHandle actorTask messages
Matt Joiner [Sat, 28 Sep 2013 18:05:09 +0000 (04:05 +1000)]
Handle actorTask messages

10 years agoCan't send to torrentFinished while handling an event
Matt Joiner [Sat, 28 Sep 2013 18:04:46 +0000 (04:04 +1000)]
Can't send to torrentFinished while handling an event

10 years agoFix crash due to torrent.MetaInfo being unset
Matt Joiner [Sat, 28 Sep 2013 18:03:36 +0000 (04:03 +1000)]
Fix crash due to torrent.MetaInfo being unset

10 years agoCreate torrent data files with at least the required size
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.

10 years agoStart implementing a basic client
Matt Joiner [Thu, 26 Sep 2013 09:49:15 +0000 (19:49 +1000)]
Start implementing a basic client

10 years agoAdd some basic protocol definitions, this will be improved in the future
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

10 years agoAdd torrent-verify, simple exe that logs matching pieces from a torrent file and...
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

10 years agoAdd torrent.Mmap and MmapSpan, types that abstract memory-mapped torrent data
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

10 years agoAdd cmds 'torrent-create' and 'torrent-metainfo-pprint' using nsf's libtorgo
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