Commit Graph

252 Commits

Author SHA1 Message Date
Matt Joiner 1a4950ad4a Add default DHT servers when UTP disabled
Also ensures that UDP and TCP sockets are reserved, even if not used, and fixes tests. Fixes #289.
2018-11-04 17:43:47 +11:00
Matt Joiner 8a0f333bb9 Add test for dht servers when utp disabled
#289
2018-11-04 17:42:12 +11:00
Matt Joiner fc4fab91f5 Switch to goimports import sorting
Used to use sortimports, but it's old, and goimports seems to have an opinion now.
2018-11-02 23:12:01 +11:00
Matt Joiner 2940f27f9f Use the new firewall callback support in go-libutp 2018-07-25 17:11:09 +10:00
Matt Joiner 6dd3b9c12c Law of Demeter Client.mu 2018-07-25 13:42:28 +10:00
Matt Joiner 50def7a688 Move PEX stuff into peer_protocol 2018-07-10 11:21:24 +10:00
Matt Joiner 57849844ae Rework status export in tests to allow count > 1 without a server for every test 2018-06-26 19:54:48 +10:00
Matt Joiner 0f5a2f0c05 Disable accept rate limiting by default in tests 2018-06-17 21:20:41 +10:00
Matt Joiner 68e88977d5 Remove TestUTPRawConn
It's a bit racy and depends on flaky network. Something like this belongs in the utp package anyway.
2018-06-16 20:17:05 +10:00
Matt Joiner e97f487d2e Rename Config->ClientConfig and change how defaults work
This is a very breaking change.
2018-06-16 16:30:04 +10:00
Matt Joiner c9187bf736 Update some tests now that adding connections is more reliable 2018-06-13 22:02:30 +10:00
Matt Joiner 360e1dbdd1 Track ConnStats with atomics 2018-06-12 20:21:53 +10:00
Matt Joiner 2007f2c234 Make download cancellable tests more reliable 2018-06-12 20:19:53 +10:00
Matt Joiner a9bdb438dc Fix timing failures in download cancel tests 2018-06-10 09:20:33 +10:00
Matt Joiner e04b6f0ba0 Try to make test more reliable 2018-04-14 11:23:26 +10:00
Matt Joiner e9386d1016 Fix #246 2018-04-12 23:34:31 +10:00
Matt Joiner 485d8cdf61 Use new DHT stats fields 2018-04-12 16:11:22 +10:00
Matt Joiner 83e4c65fc4 Add LoopbackListenHost 2018-04-12 15:21:31 +10:00
Matt Joiner b5df073217 Support different hosts for each network
CircleCI's localhost hostname doesn't resolve for IPv6.
2018-04-12 15:06:53 +10:00
Matt Joiner 319e57d1c6 Rework conns to/and allow multiple DHT servers
This will help with #229, and IPv6 support.
2018-04-12 11:41:07 +10:00
Matt Joiner 8f7408b1f9 IPv6 tracker support 2018-02-19 16:19:18 +11:00
Matt Joiner b92e8b7814 Add support for disabling IPv4 and IPv4 peers 2018-02-16 10:46:11 +11:00
Matt Joiner 6773fa9a7e Fix TestSetMaxEstablishedConn and allow it to be run with -count > 1
Similar changes should occur to other tests exporting StatusWriters.
2018-02-11 15:14:31 +11:00
Matt Joiner 5a4e8cd4c5 Rename and rearrange some conn stats 2018-02-03 00:41:13 +11:00
Matt Joiner 45aff24188 TestClientTransferRateLimitedUpload: Export client status 2018-02-01 14:43:57 +11:00
Matt Joiner 50c1cdb601 Some test tidying and improvements 2018-01-29 18:22:21 +11:00
Matt Joiner 77806c1f49 More development of the new logging interface 2018-01-29 18:22:21 +11:00
Matt Joiner 53e32ca9dd Start using new log package 2018-01-28 16:07:11 +11:00
Matt Joiner 37272a391b Avoid race in test 2018-01-27 14:31:46 +11:00
Matt Joiner 51b3374015 Add very tentative UPnP NAT traversal
Relates to #230
2018-01-25 13:14:20 +11:00
Matt Joiner 89ea4c0e29 Fix mentions of TorrentDataOpener 2018-01-11 17:11:54 +11:00
Matt Joiner 659be3d366 Add some TODOs and tidy a test 2018-01-09 17:26:46 +11:00
Matt Joiner 47622fad36 Fix the Stats panic in #214 2017-12-02 09:58:08 +11:00
themihai 6ab65a49a8 feat(config): Allows the torrent client to customise the client identity and connection config 2017-11-07 20:14:13 +02:00
Matt Joiner 9757f04cf8 Apply megacheck to torrent package 2017-11-07 16:11:59 +11:00
Matt Joiner be3f32e962 Fix a lot of noisy logging and test warnings 2017-11-07 16:00:08 +11:00
Matt Joiner dd083a4e11 Track completion known to implementation state
Addresses #193
2017-10-12 16:09:32 +11:00
Matt Joiner 083d2120f3 Avoid race condition in test 2017-10-12 16:06:14 +11:00
Matt Joiner cfa54ead7c Use badStorage for TestPeerInvalidHave 2017-09-18 12:15:14 +10:00
Matt Joiner 07679c3895 Remove test temporary directories when finished
They're all grouped together in a parent directory that gets removed. Testing with mmap storage can generate very large files on bad filesystems.
2017-09-18 12:14:16 +10:00
Matt Joiner 2aa20b3e22 Don't verify data at startup, add Torrent.Piece.VerifyData and Torrent.VerifyData for this purpose
This has the side effect of deflaking a lot of tests that race to verify data when a torrent is added.
2017-09-15 19:22:32 +10:00
Matt Joiner 5d3ee0a531 Fix panic when error occurs binding uTP socket
Fixes #187.
2017-09-14 00:25:29 +10:00
Matt Joiner 705de83a5a TestUTPRawConn: More tidying, and slow down the rate 2017-09-01 15:22:08 +10:00
Matt Joiner 158dab71c9 Use require in some places in TestUTPRawConn 2017-09-01 15:09:10 +10:00
Matt Joiner a8a1ea755d Remove unused functions 2017-08-26 13:23:04 +10:00
Matt Joiner c0dd0f63a1 Fix test 2017-08-07 22:11:25 +10:00
Matt Joiner 2624281842 Changes for dht-cleanup 2017-07-21 00:40:49 +10:00
Matt Joiner ae8b03d586 Use go-libutp if cgo is enabled 2017-06-16 18:08:24 +10:00
Matt Joiner 49648b9ae1 Close implicit Client default storage on Client.Close
Fixes #158
2017-06-01 22:57:08 +10:00
Matt Joiner 1c37903a74 Remove FileStorePieces storage backend
ResourcePIeces is now preferred.
2017-01-05 17:00:59 +11:00
Matt Joiner 1e033d5f91 sortimports 2017-01-05 17:00:16 +11:00
Matt Joiner b68d7cd08e dht/… moved to github.com/anacrolix/dht 2016-12-14 11:43:37 +11:00
Matt Joiner 3602d90b65 gofmt simplify 2016-11-22 14:01:09 +11:00
Matt Joiner d4cbdc5c38 Add download rate limiting
Fixes #121.
2016-10-10 17:29:39 +11:00
Matt Joiner 836bb344f3 Add really simple upload rate limiting and test 2016-10-10 14:58:29 +11:00
Matt Joiner 76c24e70b5 Improve code comments 2016-10-10 14:57:34 +11:00
Matt Joiner aefc63b9d3 Default to debug mode in client testing config 2016-10-05 15:57:38 +11:00
Matt Joiner c593366aab Create missing intermediate directories in test 2016-09-21 21:17:22 +10:00
Matt Joiner 0c9c3d35cf Tidy up TestMultipleTorrentsWithEncryption test 2016-09-21 21:02:18 +10:00
Matt Joiner cbeff0a496 Formatting fixes 2016-09-20 18:39:36 +10:00
Matt Joiner 594053609c Fixes for changes to metainfo.MetaInfo.UnmarshalInfo 2016-09-20 18:39:07 +10:00
Michael Howell 9a4fbb01f0 Add a test case for #114 (#117) 2016-09-17 00:01:15 +10:00
Matt Joiner 1100aaa553 Relax the seeder torrent connection stats test
The values have changed due to the recent storage change, I'm not sure why, and I don't know if it's important.
2016-09-02 15:26:21 +10:00
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 9b3869f3c5.
2016-07-07 14:16:06 +10:00
Matt Joiner 9b3869f3c5 Revert "TestSetMaxEstablishedConn does now work with utp"
This reverts commit eb1be48cc6.
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