Matt Joiner
60e992ec97
Rework webseed peers to use a pool of requesters
...
This fixes the limitation that the max outstanding requests for a webseed peer must match the request concurrency. It should mean less recalculation, and more pipelining.
2021-01-29 16:01:35 +11:00
Matt Joiner
4078644db9
Pass callbacks to webseed peers
2021-01-28 18:25:06 +11:00
Matt Joiner
1ac5811990
Remove requests as soon as chunk data is received
...
Note that this breaks the backpressure on webseed responses again, and should be fixed shortly.
2021-01-28 16:36:35 +11:00
Matt Joiner
ca1497ad58
Add peer upload order analysis
2021-01-28 16:31:13 +11:00
Matt Joiner
47d6282e54
Don't cancel request on current peer when receiving chunk
2021-01-28 14:26:10 +11:00
Matt Joiner
b86c212d30
Update deps
2021-01-28 14:23:34 +11:00
Matt Joiner
456a2f7c5d
Expose more callbacks and Request and ChunkSpec
2021-01-28 14:23:22 +11:00
Matt Joiner
f409daa93f
PORT message belongs to BEP 5
2021-01-27 17:08:15 +11:00
Matt Joiner
fbc9a77cd8
Escape URI path
2021-01-26 21:49:53 +11:00
Matt Joiner
7440ef92d2
Update deps
2021-01-25 15:54:37 +11:00
Matt Joiner
9d6bf7a4f0
Remove cast(data as blob) workaround
...
Upstream merged the fix. Good performance boost.
2021-01-25 15:54:37 +11:00
Matt Joiner
c424a2510e
Create index on blob(last_used)
2021-01-25 15:54:37 +11:00
Matt Joiner
3e34763678
Add sqlite-storage-cli
2021-01-25 15:54:37 +11:00
Matt Joiner
5920bcae89
Remove obsolete reference to piece storage opts
2021-01-25 15:54:37 +11:00
Matt Joiner
25c60b72eb
Fix race in writes to closed provider
2021-01-25 15:54:37 +11:00
Matt Joiner
beb9ec8ffe
Fix transfer tests involving sqlite memory storage
2021-01-25 15:54:37 +11:00
Matt Joiner
b69bb34eaf
Rejig some storage options
2021-01-25 15:54:37 +11:00
Matt Joiner
28682f6ae6
Fix unused opts param
2021-01-25 15:54:37 +11:00
Matt Joiner
19f5984aec
Include context.Context and pprof label in withConn
2021-01-25 15:54:37 +11:00
Matt Joiner
2ddd3169ef
Move storage piece benchmarks to storage/test and add a lot more dials
2021-01-25 15:54:37 +11:00
Matt Joiner
cb5f80ec11
Improve configurability and add PutSized to sqlite storage
2021-01-25 15:54:37 +11:00
Matt Joiner
434dfdf6e0
Add MarkComplete benchmark for sqlite
2021-01-25 15:54:37 +11:00
Matt Joiner
b5215ea7e8
Expose Peer.Network to replace Peer.RemoteAddr.Network
2021-01-25 15:49:48 +11:00
Matt Joiner
9f9953be52
Don't expose Peer network through RemoteAddr
2021-01-25 15:49:48 +11:00
Matt Joiner
955e337b78
Generate a RemoteAddr for webseed Peers
2021-01-25 15:49:48 +11:00
Matt Joiner
669905e203
Add ReceivedUsefulData Callback
2021-01-25 15:49:48 +11:00
Matt Joiner
27108bd2f7
Export Peer
2021-01-25 15:49:48 +11:00
Matt Joiner
03b1abafb9
Implement encoding.TextMarshaler to match unmarshaler for metainfo.Hash
...
Fixes https://github.com/anacrolix/torrent/issues/463
2021-01-22 09:53:53 +11:00
Matt Joiner
6aaaaaffba
Fix unreferenced variable
2021-01-19 10:55:22 +11:00
Matt Joiner
bbfc38c44a
Fix call to wrong postCancel?
...
Looks like this would forget to also cancel the request on the peer, and only send the message.
2021-01-19 10:55:13 +11:00
Matt Joiner
d56087441e
Fix duplicate import under different aliases
2021-01-19 10:55:02 +11:00
Matt Joiner
fdfd305a0c
Update DHT
2021-01-18 14:48:30 +11:00
Matt Joiner
cb1d6bfc8f
Fix boundary conditions trimming sqlite3 storage cache
2021-01-18 14:48:30 +11:00
Justin M
b6ad979670
Fix panic on Ping/WriteMessage for webtorrent
...
Introduced in anacrolix/torrent #455
2021-01-17 15:39:59 +11:00
Matt Joiner
69a419882b
Add link for @anacrolix
2021-01-07 09:50:46 +11:00
ucwong
52bb7f7a39
connection drop log debug level
2021-01-07 00:21:59 +11:00
Justin M
f33b3ba5ce
Ping websocket to ensure connect remains online.
...
OpenWebTorrent disconnects clients after two minutes of inactivity. In a scenario where an
announce occurs and no other activity occurs for the (default) 120-second idle timer, the
websocket will be torn down by OpenWebTorrent. This in turn causes the tracker client to wait one
minute, reconnect, and reannounce its peers.
This patch sends a websocket.PingMessage every 60 seconds to maintain the connection.
2021-01-06 14:30:01 +11:00
Matt Joiner
ded6c19edb
Add the DropMutuallyCompletePeers ClientConfig field
2021-01-05 16:58:45 +11:00
Justin M
ae9d5bce18
Align webtorrent tracker to BEP-3
...
Adding "omitempty" to json marshalling, bringing the webtorrent tracker AnnounceRequest in line
with BEP-3, which states omitting the the "event" field is acceptable.
2021-01-05 11:38:39 +11:00
Justin M
b2ab540f93
Reannounce webtorrent webrtc offers on reconnect
...
On socket reconnect, reannounce any webrtc offers that might have been half-open before the
socket reconnected. This implementation closes any existing half-open offers and republishes them,
but does nothing to existing webrtc connections which are still running (these are cleaned up
elsewhere and are not owned by this code)
2021-01-05 11:38:16 +11:00
Matt Joiner
133cc17c00
Some peerImpl observations
2021-01-04 15:51:23 +11:00
Matt Joiner
1e9d382af9
Reinstate cmd/announce announce subcommand
2021-01-04 13:37:44 +11:00
Matt Joiner
be639852e3
mse: Optimize allocations receiving handshakes
2021-01-04 11:34:04 +11:00
Matt Joiner
176ba51313
Add benchmark for receiving handshakes with large skey counts
2021-01-04 11:33:46 +11:00
Matt Joiner
73823ee61d
Add mse.ReceiveHandshakeEx
2021-01-04 10:49:28 +11:00
Matt Joiner
ae9ad721f2
Upgrade github.com/frankban/quicktest
2021-01-04 10:39:28 +11:00
Matt Joiner
29cc20ede9
Fix "none" event for WebTorrent announces
2020-12-30 11:43:48 +11:00
Matt Joiner
6e43db6a89
Document ClientConfig.DisableAcceptRateLimiting
2020-12-21 19:12:50 +11:00
Matt Joiner
28cab41400
Merge branch 'v1.19'
...
* v1.19:
Further fixes to webseed path encoding
Update README.md
Move request strategy doc comments onto their public functions
Add deprecated ParseMagnetURI
2020-12-21 19:12:40 +11:00
Matt Joiner
41721f025d
Further fixes to webseed path encoding
2020-12-21 12:24:24 +11:00