Commit Graph

1103 Commits

Author SHA1 Message Date
Matt Joiner a5b54f21a1 Make opening a torrent in storage an explicit method
This is storage types where opening can fail, like mmap
2016-03-28 22:40:29 +11:00
Matt Joiner 775cf53809 Get mmap storage working 2016-03-28 21:57:04 +11:00
Matt Joiner b97b50aca9 New storage interface 2016-03-28 20:38:30 +11:00
Matt Joiner 4986c61138 data/file: Rewrite ReadAt 2016-03-26 20:45:31 +11:00
Matt Joiner 729723d62d data/file: Add a test checking for io.ErrUnexpectedEOF on short read 2016-03-26 18:30:30 +11:00
Matt Joiner ca3529bd9a Improve doc comments on Data 2016-03-26 18:27:28 +11:00
Matt Joiner ac184c8f52 Tidy up a test that fails with the wrong reasons 2016-03-24 23:52:38 +11:00
Matt Joiner bb04cb8843 Tidy up bytesLeft calculations
This should fix a bug where completion is shown as negative in WriteStatus
2016-03-22 13:11:36 +11:00
Matt Joiner 01bef851ed Log connection errors when debug mode 2016-03-22 13:10:18 +11:00
Matt Joiner 0c877a9d94 Add a test for bad have messages
The reason for the cleanup to peer have-related messages in the first place.
2016-03-22 13:09:02 +11:00
Matt Joiner bfd0b86441 Tidy up the peer have{,all,none},bitfield handling 2016-03-22 12:07:03 +11:00
Matt Joiner e2ffcd008b Add t.bytesLeftAnnounce
Now it's safe to remove tracker specific bytesLeft contract
2016-03-22 09:06:48 +11:00
Matt Joiner 782589e2b9 Client.WriteStatus: Raise the precision of the completion percentage 2016-03-22 08:33:08 +11:00
Matt Joiner 99109e636b Use missinggo.AddrPort directly 2016-03-21 16:02:36 +11:00
Matt Joiner 99fa0c26aa Make peerGotPiece a method on connection 2016-03-21 14:19:51 +11:00
Matt Joiner 1508e02935 Move peerGotPiece 2016-03-21 14:17:15 +11:00
Matt Joiner 125c864a8c Add some File method comments 2016-03-19 17:40:30 +11:00
Matt Joiner 409d3695a6 Favour earlier pieces slightly, helps with in-order downloads 2016-03-19 17:40:18 +11:00
Matt Joiner 4c3fffa097 Fix locks on Reader.SetReadahead 2016-03-19 17:39:56 +11:00
Matt Joiner b6cd456779 Use new missinggo.SplitHostMaybePort implementation 2016-03-15 21:32:47 +11:00
Matt Joiner 0d5502932d Track accepted connections 2016-03-06 17:26:04 +11:00
Matt Joiner f436c9c955 Use missinggo.Event to track Client closed 2016-03-05 19:36:21 +11:00
Matt Joiner c175fab5a6 Fix a UTP Conn leak, on unencrypted followup dial attempts
I would guess that TCP ones were cleaned up by GC.
2016-03-02 23:27:46 +11:00
Matt Joiner aed2b6b3cb Add Reader.Torrent() 2016-03-02 23:26:46 +11:00
Matt Joiner 67aea29ba9 Extend the timeout, drone.io is slow? 2016-02-26 22:18:08 +11:00
Matt Joiner e33006a419 Ignore the corner case when a piece is dropped from storage 2016-02-26 22:12:13 +11:00
Matt Joiner 811b460f1d dht: Use missinggo.Event for closing 2016-02-26 22:11:48 +11:00
Matt Joiner a8ad7dfd0e Add test checking that cancel works 2016-02-26 22:10:29 +11:00
Matt Joiner 5cc8d8a652 Catch error creating client in tests 2016-02-26 22:10:09 +11:00
Matt Joiner aa76d13ffd Fix bad DHT node in tests in constructed torrent 2016-02-24 21:57:30 +11:00
Matt Joiner 976510db60 Add DHT nodes from metainfo when added to Client 2016-02-24 21:56:50 +11:00
Matt Joiner 2fa233345e dht: Rename newDHTAddr->NewAddr, and clean up the interface 2016-02-24 02:02:33 +11:00
Matt Joiner 7b0b0f9bf9 dht: Rename dHTAddr to Addr 2016-02-24 01:50:15 +11:00
Matt Joiner 5665505dc7 Test that metainfo nodes are added to the DHT 2016-02-24 01:48:44 +11:00
Matt Joiner a04fb2ce26 metainfo: Check for error unmarshalling bad nodes contents from a metainfo 2016-02-23 23:53:39 +11:00
Matt Joiner 621ec7bac4 dht: Misc trivial improvements 2016-02-23 23:52:30 +11:00
Matt Joiner 9c7d3d4783 metainfo: Fix use of CastSlice when copying nodes 2016-02-23 22:47:41 +11:00
Matt Joiner d67379b3cb metainfo: Ensure that nodes encode correctly 2016-02-23 22:37:38 +11:00
Matt Joiner 752e884155 metainfo: Support nodes as []string or [](string, int64)
Fixes #65.
2016-02-23 22:28:23 +11:00
Matt Joiner b3a5591d14 metainfo: It looks like the "nodes" field of metainfo was never handled correctly, support []string instead of [][]string, fix tests 2016-02-23 22:04:06 +11:00
Matt Joiner 7ed81fa708 metainfo tests: Fix some naming conventions 2016-02-23 21:50:07 +11:00
Matt Joiner c0cef5274b bencode: Update some test code 2016-02-23 21:47:00 +11:00
Matt Joiner fd5da294ff bencode tests: Idiomatize identifier naming 2016-02-23 21:43:05 +11:00
Matt Joiner f470f04d8f bencode: Use the testdata convention in tests 2016-02-23 21:31:15 +11:00
Matt Joiner c03593bc01 Catch error creating new client in test 2016-02-22 14:30:02 +11:00
Matt Joiner c371502cb3 Fix failure to request data from peers if it goes missing after being downloaded during the same session
The chunks remained marked dirty, even after the piece was marked complete. So when the piece was not complete, there was nothing to do.
2016-02-22 03:23:49 +11:00
Matt Joiner fd37f5c24b fs: Fix what looks like a glaring mistake: If Seek failed on the torrent reader, it would have got stuck
Since Seek is artificial, and the offsets are usually checked in the caller, it looks like it never failed anyway.
2016-02-22 02:44:29 +11:00
Matt Joiner 5cfa8232ed Fix races in Reader 2016-02-22 02:42:01 +11:00
Matt Joiner 033c95d73b Add a client transfer test with limited file cache, and a second pass read 2016-02-22 02:41:07 +11:00
Matt Joiner ca5080a382 fs: Change listen addrs to localhost in tests
Seems to improve reliability. Maybe the missinggo.Addr{IP,Port} change did something.
2016-02-22 02:39:49 +11:00