2
0
mirror of synced 2025-02-23 22:28:11 +00:00

239 Commits

Author SHA1 Message Date
Matt Joiner
1e919dd6b1 Rework storage interfaces to make them simpler to implement
This allows lots of behaviour to be baked into the new Client, Torrent and Piece wrappers, rather than duplicating (badly) them in all the backend implementations.
2016-09-02 15:10:57 +10:00
Matt Joiner
ab8349eee1 Improve test reliability on Linux and reduce log noise in tests 2016-08-31 20:14:57 +10:00
Matt Joiner
3c2db92a83 Add boltdb storage backend 2016-08-31 17:48:50 +10:00
Matt Joiner
6f7623ff3c Add missing error return check in benchmark 2016-08-30 14:09:01 +10:00
Matt Joiner
2a1cef7c9e Remove the InfoEx type, and don't generate its infohash on the fly
Fixes #106.
2016-08-26 20:29:05 +10:00
Matt Joiner
534275b625 Always run seeder and leecher on the same ports, to flex dht.Socket.CloseNow 2016-07-30 00:42:22 +10:00
Matt Joiner
debcb10b08 Some comments helping to break up the blocks in testClientTransfer 2016-07-24 00:35:34 +10:00
Matt Joiner
192bb829fb Remove duplicate seeder stat test assertions 2016-07-12 18:09:24 +10:00
Matt Joiner
fbe0ded844 Add connection read stats 2016-07-12 16:42:04 +10:00
Matt Joiner
7f6b9dbf7a Remove unnecessary log in test 2016-07-11 15:03:29 +10:00
Matt Joiner
40aa30d984 Rework the client transfer test to allow non-piece-based leecher storage
In preparation for tests for data going missing for the file-based storages. Issue #96
2016-07-10 15:01:08 +10:00
Matt Joiner
f39ab0cb8f Revert "Revert "TestSetMaxEstablishedConn does now work with utp""
This reverts commit 9b3869f3c53e65d0c42527c76504c14bdff068be.
2016-07-07 14:16:06 +10:00
Matt Joiner
9b3869f3c5 Revert "TestSetMaxEstablishedConn does now work with utp"
This reverts commit eb1be48cc6431cb380abbe11af6e72bbcec47b06.
2016-07-06 14:05:03 +10:00
Matt Joiner
eb1be48cc6 TestSetMaxEstablishedConn does now work with utp
I think dialing out from a utp.Socket before its reader has initialized may be the cause. Either way moving the addPeers to after all the Clients are initialized has worked around it as a side effect.
2016-07-06 11:05:04 +10:00
Matt Joiner
b7cd79ef62 Use addClientPeer helper in tests 2016-07-06 08:31:30 +10:00
Matt Joiner
0661689228 Add more thorough tests for Torrent.SetMaxEstablishedConns 2016-07-06 08:30:34 +10:00
Matt Joiner
240abaf512 Add Torrent.SetMaxEstablishedConns 2016-07-06 00:42:16 +10:00
Matt Joiner
12191dbfa3 Add counters for uploads
Fixes #71.
2016-07-05 15:52:33 +10:00
Matt Joiner
000f430105 Add tests for #81 2016-05-24 19:35:23 +10:00
Matt Joiner
20870ec4ff Rework torrent tracker scraping
New scrapers are added anytime trackers are added to a torrent. In the future they will also be stopped as soon as they're removed. All trackers are concurrently scraped, the old-style of sticking to one tracker that works is abandoned for now.
2016-05-22 22:45:08 +10:00
Matt Joiner
c1e0d37266 Rename some storage funcs 2016-05-16 22:02:03 +10:00
Matt Joiner
02ea8b1081 Rename storage.I->Client 2016-05-16 21:50:43 +10:00
Matt Joiner
9b5d3cac03 Test both resource and file backends to piece storage 2016-05-16 20:11:00 +10:00
Matt Joiner
52e285ea86 Remove unused fields in testDownloadCancelParams 2016-05-16 20:10:33 +10:00
Matt Joiner
506ad00fd5 Probably fix test failure
Due to some changes in the Torrent instantiation code, I think there's a race in this test to verify the piece before counting the pending chunks. The torrent isn't supposed to be complete to begin with, so give it a bogus data directory to ensure it.
2016-05-12 12:44:51 +10:00
Matt Joiner
dce3a7f675 Rework Client listeners
In particular, if the ListenAddr used a dynamic port ":0", and both TCP and uTP were enabled. If the TCP listen succeeded, and the uTP did not, the TCP listener was leaked, and another port number was not tried.
2016-05-11 21:11:52 +10:00
Matt Joiner
a45a09b877 Rework setting of info bytes 2016-05-09 15:47:39 +10:00
Matt Joiner
cee49435e0 Add Client.AddTorrentInfoHash, and some other tidying
Remove Client.bannedTorrents, which shouldn't have been in use anymore. Also fix Client.newTorrent.
2016-05-09 14:37:29 +10:00
Matt Joiner
0fd73396fd missinggo.Event changed, connection.writeOptimizer changes 2016-05-07 18:56:44 +10:00
Matt Joiner
b5812bb0b7 Remove the last of the "config dir" stuff
This just conflates the Client. It should be done orthogonally.
2016-05-05 23:05:28 +10:00
Matt Joiner
2d160b0419 metainfo.InfoEx.Hash becomes a function, UpdateBytes is added, and Bytes used in marshalling
Fixes #80.
2016-05-05 22:40:38 +10:00
Seth Hoenig
9f4bf70e17 refactor struct identifiers to follow conventional go names 2016-04-18 23:11:11 -05:00
Matt Joiner
1566e2afdc Remove deadcode 2016-04-04 15:18:51 +10:00
Matt Joiner
8f164ae956 Remove some of the magic ConfigDir stuff
This might become a helper. Torrent file cache still remains.
2016-04-04 14:04:48 +10:00
Matt Joiner
b80bb6393a Use metainfo.Hash for piece and info hashes 2016-04-04 13:01:31 +10:00
Matt Joiner
d3a1c79c79 Merge Torrent and torrent types 2016-04-03 18:40:43 +10:00
Matt Joiner
08830b97a1 Make everything on type torrent private 2016-04-03 16:50:53 +10:00
Matt Joiner
446e11b1fc Missing error checks in test 2016-03-30 19:16:40 +11:00
Matt Joiner
c0e060de63 Suppress logging noise in tests 2016-03-30 19:12:57 +11:00
Matt Joiner
7790e72832 Move storage.FileStore interface to missinggo 2016-03-30 19:12:33 +11:00
Matt Joiner
5856b91af0 Fix missinggo import 2016-03-30 19:11:55 +11:00
Matt Joiner
ee22446440 Reimplement piece storage 2016-03-29 11:14:34 +11:00
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
ac184c8f52 Tidy up a test that fails with the wrong reasons 2016-03-24 23:52:38 +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
67aea29ba9 Extend the timeout, drone.io is slow? 2016-02-26 22:18:08 +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