Commit Graph

1580 Commits

Author SHA1 Message Date
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 17ea4f7fdd Performance optimizations to calculating bytes left in Torrent
Was generating significant overhead in cmd/torrent
2017-09-23 15:28:13 +10:00
Matt Joiner 018afed5a7 storage: Remove incorrect comment 2017-09-23 15:27:26 +10:00
Matt Joiner 2c91d1e3fb Changes to Bitmap referencing 2017-09-23 15:27:10 +10:00
Matt Joiner 6aad8041ab Implement new request strategy
The new strategy, 2, has the fastest connection download by priority in order, and all other pieces stick to a randomized ordering that's stable per connection.
2017-09-23 15:25:47 +10:00
Matt Joiner 25d1f371c3 fs: Some test tidying 2017-09-22 13:46:00 +10:00
Matt Joiner 1f6a7eb810 It looks like Torrent.worstBadConn was returning an arbitrary bad connection, it wasn't the worst
heap.Init got lost somewhere along the way? Need a unit test for this.
2017-09-21 19:32:03 +10:00
Matt Joiner 326f60b319 Reduce system call overhead reading from connections 2017-09-21 19:29:56 +10:00
Matt Joiner 3879364536 fs/test.sh: umount requires sudo 2017-09-18 13:51:05 +10:00
Matt Joiner 67e96686d2 Also post cancels
Should mean that we don't have to wait for the peer requests low water mark before we process chunks to cancel.
2017-09-18 13:47:49 +10:00
Matt Joiner 3ed8274384 Abstract out making a cancel message 2017-09-18 13:42:42 +10:00
Matt Joiner 9e6cdff175 storage: Don't add empty mmaps to the mmap span 2017-09-18 13:41:19 +10:00
Matt Joiner 0790516440 Only run connection.Close once
Avoids unnecessary error messages for net.Conn.Close
2017-09-18 13:40:36 +10:00
Matt Joiner 19adb2cac3 Improve mmap storage error messages
Trying to map unusual Info's gave unhelpful messages.
2017-09-18 12:19:34 +10:00
Matt Joiner c93f5d3038 test.sh: Unmount and wait for torrentfs to return after completion 2017-09-18 12:17:28 +10:00
Matt Joiner c85aac6383 Log errors closing connection net.Conn's 2017-09-18 12:16:59 +10:00
Matt Joiner 639c49f1ae Rename fs/unwedge-tests so it gets synced to test servers 2017-09-18 12:16:05 +10: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 bb53c97d38 Move uploading to the connection writer 2017-09-18 12:09:08 +10:00
Matt Joiner ed0fa62340 Comment and formatting 2017-09-17 00:45:12 +10:00
Matt Joiner 69ffb9bc8d Fix build error 2017-09-17 00:44:09 +10:00
Matt Joiner 846da66103 Merge pull request #188 from boramalper/KnownSwarm
added the initial version of the (t *Torrent) KnownSwarm() function
2017-09-17 00:20:00 +10:00
Bora M. Alper a66b0e83f3 added support for half-open peers in KnownSwarm() function 2017-09-16 11:48:16 +01:00
Matt Joiner b3137b1ede Make type piece public 2017-09-15 19:35:16 +10:00
Matt Joiner f7e07237ed fs: Fix tests now that data verification isn't automatic 2017-09-15 19:34:42 +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 b39df82fbc Include peer data with half open connections 2017-09-15 19:10:09 +10:00
Matt Joiner 846ac2d33e Herp 2017-09-15 12:56:54 +10:00
Matt Joiner d4576a56d9 Add some expvars to track uTP/TCP and PHE fallbacks for outgoing connections 2017-09-15 12:56:15 +10:00
Matt Joiner 7fdc750166 mse: Make plaintext mode the default when protocol header encryption is in use 2017-09-15 12:54:29 +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 881f1a7e35 Support plaintext crypto method for protocol header encryption 2017-09-13 18:20:20 +10:00
Matt Joiner 29e06fb83c mse: Support plaintext crypto mode 2017-09-13 16:19:14 +10:00
Matt Joiner 11165d4fa5 mse: Error if initial payload exceeds maximum size 2017-09-13 16:18:15 +10:00
Matt Joiner 7e056f7753 mse: Reuse writer write buffer 2017-09-13 01:00:43 +10:00
Matt Joiner f1d292203e mse: Add a read/write benchmark 2017-09-13 00:58:54 +10:00
Bora M. Alper f87b732959 added the initial version of the (t *Torrent) KnownSwarm() function 2017-09-12 15:22:53 +01:00
Matt Joiner 260806a6f2 peer_protocol: Improve piece decoding benchmark 2017-09-12 21:32:01 +10:00
Matt Joiner 01fee38709 peer_protocol: Add a benchmark for decoding pieces 2017-09-12 21:12:56 +10:00
Matt Joiner 98eac5343e mse: Remove unused function 2017-09-12 19:30:05 +10:00
Matt Joiner 16433297d7 Merge branch 'master' into pull-writer 2017-09-12 18:32:40 +10:00
Matt Joiner cee24fe21b storage: Add TODO about handling Close errors 2017-09-12 18:31:56 +10:00
Matt Joiner 2b01d2976b README: Improve wording around torrent as a library 2017-09-12 18:31:56 +10:00
Matt Joiner e25cfdf6b2 The bencode README is markdown 2017-09-12 18:31:56 +10:00
Matt Joiner 76a81b5e54 Merge pull request #185 from mh-cbon/patch-1
Update README
2017-09-12 18:28:35 +10:00
Matt Joiner 128b331b48 Remove mention of the mobile branch from README 2017-09-12 18:26:14 +10:00
mh-cbon 54a3090f7e Update README 2017-09-05 16:42:37 +02:00
Matt Joiner 4e8f6b8e5b Optimize nextRequestState to return cancel and new requests, and reinstate requestsLowWater 2017-09-02 10:36:43 +10:00