Commit Graph

2530 Commits

Author SHA1 Message Date
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
Matt Joiner aea8e1dfd0 Update README.md
Add Console 32 mention

(cherry picked from commit f3d3fd3724)
2020-12-21 10:18:00 +11:00
Matt Joiner ba68b56715 Move request strategy doc comments onto their public functions
(cherry picked from commit 8c059ae158)
2020-12-21 10:18:00 +11:00
Matt Joiner 0013035c93 Add deprecated ParseMagnetURI 2020-12-21 10:16:08 +11:00
Matt Joiner f3d3fd3724
Update README.md
Add Console 32 mention
2020-12-21 10:04:44 +11:00
Matt Joiner b2fd53f4ce Generalize internal/string-limiter Key type 2020-12-21 09:39:02 +11:00
Matt Joiner b67ccab7f2 Pass trackerScraper context to announces
This will cancel announces for Closed Torrents and let them move more quickly to announcing the stopped event. Spotted by @hwh33.
2020-12-21 09:29:20 +11:00
Matt Joiner 8c059ae158 Move request strategy doc comments onto their public functions 2020-12-19 14:43:21 +11:00
Matt Joiner ddd03362f8 Factor out internal/string_limiter 2020-12-17 12:22:02 +11:00
Matt Joiner d713aaf280 Rework active announce limiter to reduce contention 2020-12-15 15:29:45 +11:00
Matt Joiner de964db3c2 Don't send keepalives if a connection isn't useful to us
This might help break the situation where anacrolix/torrent Clients that are connected to each other never release a connection until there's new connections that look more promising.
2020-12-10 11:13:45 +11:00
Aranjedeath 8d27c02962 Update metainfo.go
delete "yoloham" so that is no longer the default comment string on torrents made without a comment specified. Should resolve https://github.com/anacrolix/torrent/issues/342
2020-12-10 10:12:33 +11:00
Matt Joiner c81da2d5ee Strictly adher to tracker announce response intervals if a torrent is private 2020-12-09 22:36:57 +11:00
Matt Joiner 65db2436fd cmd/torrent: Add spew-bencoding command 2020-12-09 20:01:53 +11:00
Matt Joiner 143bf42f5e cmd/torrent: Fix download command default flags 2020-12-09 20:01:33 +11:00
Matt Joiner 846fa3f1f6 Log announce return 2020-12-09 20:01:05 +11:00
Matt Joiner e67fe7ddca cmd/torrent: Add file pick flag 2020-12-09 20:00:42 +11:00
Matt Joiner c0db7e1c26 Update github.com/anacrolix/dht/v2 2020-12-09 19:59:38 +11:00
Matt Joiner 3178691f15 cmd/torrent: Use alexflint/go-arg for argument parsing
Also add list-files command to test it out.
2020-12-09 16:18:54 +11:00
Matt Joiner 29736f5153 Update required go version
I believe 1.15 is required for testing.T.TempDir.
2020-11-30 14:26:12 +11:00
Matt Joiner 388e6899a1 piece resource storage: Delete incomplete chunks concurrently after writing complete piece 2020-11-21 13:44:23 +11:00
Matt Joiner b35c204238 Use ConsecutiveChunkWriter in MarkComplete for piece resource storage if available 2020-11-21 13:44:23 +11:00
Matt Joiner 99ddad31c9 Track piece marking state separately 2020-11-21 13:44:23 +11:00
Matt Joiner 41ef267c1b sqlite storage: Ensure that chunks are consecutive 2020-11-21 13:44:23 +11:00