Matt Joiner
|
01380adac3
|
peer_protocol: Add a test for receiving overlong piece data
The chunk buffer pool decides the upper bound on chunk data len.
|
2018-07-14 11:37:56 +10:00 |
Matt Joiner
|
d4d8f78906
|
Send extended message before fast/bitfield
This is how Transmission does it.
|
2018-07-14 11:28:54 +10:00 |
Matt Joiner
|
cc6441a791
|
Fix peer_protocol.Message.RequestSpec for Type Piece
|
2018-07-13 21:33:21 +10:00 |
Matt Joiner
|
c001e6e008
|
Add a test that short pieces are decoded correctly
|
2018-07-12 09:54:06 +10:00 |
Matt Joiner
|
324cc7a281
|
Comments and trivial tweaks
|
2018-07-12 09:42:00 +10:00 |
Matt Joiner
|
ee985e51cb
|
Add peer_protocol.Integer.Uint32
|
2018-07-12 09:16:40 +10:00 |
Matt Joiner
|
86ca9ffa7e
|
Add peer_protocol.RequestSpec
|
2018-07-12 09:16:17 +10:00 |
Matt Joiner
|
f5bd377941
|
Change pieceIndex to peer_protocol.Integer
|
2018-07-12 09:15:15 +10:00 |
Matt Joiner
|
ba8ec1a787
|
Move back to net.IP for extended handshake message IPs
|
2018-07-12 00:00:07 +10:00 |
Matt Joiner
|
a4a123b04e
|
Don't error on bencode dicts that can't be marshalled
Have seen metainfo announce-lists that are lists of dicts. Possibly ignoring type errors with a tag would be smarter but I'm undecided.
|
2018-07-11 15:33:41 +10:00 |
Matt Joiner
|
04fa1b8d4c
|
Support marshalling bencode strings into byte arrays
|
2018-07-11 15:22:29 +10:00 |
Matt Joiner
|
de08380464
|
Decide where to set proxy for HTTP trackers
Remove old ClientConfig.setProxyURL, set this directly now through ClientConfig.TrackerHttpClient.Transport.Proxy (if your Client allows it).
|
2018-07-11 15:10:58 +10:00 |
Matt Joiner
|
b9cfe71d90
|
Remove debug log
|
2018-07-10 13:14:39 +10:00 |
Matt Joiner
|
2685ef6aa9
|
Use half open limit directly from Config
|
2018-07-10 12:23:00 +10:00 |
Matt Joiner
|
1f6ba94882
|
Make extended handshake a struct, and move a bunch of extended stuff into peer_protocol
|
2018-07-10 12:20:36 +10:00 |
Matt Joiner
|
50def7a688
|
Move PEX stuff into peer_protocol
|
2018-07-10 11:21:24 +10:00 |
Matt Joiner
|
e3cb94006c
|
Reinstate the reduce dial timeout and update some values
Fixes #263
|
2018-07-10 11:19:14 +10:00 |
Matt Joiner
|
f149d0b82a
|
bep40Priority: Include error in return
|
2018-07-10 11:14:23 +10:00 |
Matt Joiner
|
ba9935d522
|
Add more worseConn comparisons
Should fix #264.
|
2018-07-10 09:50:39 +10:00 |
Matt Joiner
|
a7e338a3f1
|
More sortimports
|
2018-07-07 11:40:06 +10:00 |
Matt Joiner
|
fad06c7ddf
|
sortimports
|
2018-07-07 11:36:58 +10:00 |
Matt Joiner
|
316640f921
|
Fix panic when failing to parse tracker URL
|
2018-07-07 11:35:47 +10:00 |
Matt Joiner
|
e0f0617b0b
|
Comments and readability
|
2018-07-07 11:33:48 +10:00 |
Matt Joiner
|
e1d6fc2341
|
Add torrent.InfoHash type alias
|
2018-07-07 11:32:52 +10:00 |
Matt Joiner
|
76a3c0891a
|
Expose handshake stuff in peer_protocol
|
2018-07-07 11:31:29 +10:00 |
Matt Joiner
|
a69cd7bb9b
|
fs/test.sh: Add sudo before happy path umount again
|
2018-06-30 22:03:29 +10:00 |
Matt Joiner
|
5f20a21c9d
|
Change the duplicateRequestTimeout to 1s
|
2018-06-30 21:10:48 +10:00 |
Matt Joiner
|
15f3c822c5
|
Assume connections have half the download bandwidth than calculated
|
2018-06-30 21:10:23 +10:00 |
Matt Joiner
|
b2117bc571
|
Use timers for duplicate requests
Nothing was triggering request updates when timeouts expired. This is the simplest fix, no performance considered.
|
2018-06-30 00:10:31 +10:00 |
Matt Joiner
|
716fd43d44
|
Run fs/test.sh in a temporary directory and make it clean up
|
2018-06-30 00:08:01 +10:00 |
Matt Joiner
|
a3bc6398c8
|
Merge messageTypes{Sent,Posted} into torrent expvar
|
2018-06-29 22:10:21 +10:00 |
Matt Joiner
|
60dd0eed53
|
Make requestStrategy 3 the default
Fixes #253.
|
2018-06-28 12:06:21 +10:00 |
Matt Joiner
|
7b924822c7
|
Fix panic in connection.iterPendingPieces when the info isn't available
Triggered by connection.iterUnbiasedPieceRequestOrder calling Torrent.numPieces. We shouldn't be iterating pieces when there's no info anyway, so don't yield any. Mentioned in https://github.com/anacrolix/torrent/issues/253#issuecomment-400350386.
|
2018-06-28 11:12:49 +10:00 |
Matt Joiner
|
bdf8619cf3
|
Missed deferring release of an exported status writer
|
2018-06-26 21:19:49 +10:00 |
Matt Joiner
|
8255194c64
|
Fix racy Torrent.wantConns check when adding connections
|
2018-06-26 20:47:21 +10:00 |
Matt Joiner
|
6212973011
|
Add more context to an error
|
2018-06-26 20:24:39 +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
|
c921242f30
|
Do requests synchronously, and don't request from hashing or queued pieces
Calculating the desired state was a nice idea, but too hard to debug. This way should also be faster.
|
2018-06-26 14:51:55 +10:00 |
Matt Joiner
|
7dd532d46f
|
Check that chunks we request aren't being hashed or queued for hash
|
2018-06-26 13:04:15 +10:00 |
Matt Joiner
|
67c0ed8518
|
Fix BenchmarkConnectionMainReadLoop
|
2018-06-25 14:09:08 +10:00 |
Matt Joiner
|
85dc3c204a
|
Rework stats for receiving chunks
Related to #253.
|
2018-06-25 14:06:30 +10:00 |
Matt Joiner
|
7619994ef5
|
Remove premature initialization of Torrent.lastRequested
|
2018-06-25 14:03:22 +10:00 |
Matt Joiner
|
0330b87288
|
Drop connections that send chunks we shouldn't receive
|
2018-06-24 20:35:46 +10:00 |
Matt Joiner
|
195695042d
|
Add requestStrategy 3, which duplicates requests only after a timeout
Possible solution for #253.
|
2018-06-24 20:04:31 +10:00 |
Matt Joiner
|
d2602c7935
|
Write received chunks that we don't have
Chunks were discarded if they belong to unprioritized pieces, even if those pieces were previously prioritized. May be contributing to #253.
|
2018-06-24 19:40:53 +10:00 |
Matt Joiner
|
ad03e64722
|
Retain interest if requests are outstanding and don't clear peer requests if they send not_interested
Apparent shortcomings found when trying new request algorithms.
|
2018-06-23 22:32:11 +10:00 |
Matt Joiner
|
159c4a0e28
|
Ensure 64-bit alignment of ConnStats fields
Fixes #262.
|
2018-06-23 18:33:56 +10:00 |
Matt Joiner
|
fefeef4ee9
|
Merge branch 'dev'
|
2018-06-22 17:43:51 +10:00 |
Matt Joiner
|
70093a4db3
|
Update accept limit parameters
|
2018-06-22 17:43:02 +10:00 |
Matt Joiner
|
96050948c2
|
Use scope timer in Torrent.writeChunk
|
2018-06-21 23:22:13 +10:00 |