2
0
mirror of synced 2025-02-24 06:38:14 +00:00

877 Commits

Author SHA1 Message Date
Matt Joiner
e801f8518f
Merge branch 'go1.18' 2022-03-17 15:16:04 +11:00
Matt Joiner
472894d9dd
Update dht logging 2022-03-17 14:58:32 +11:00
Matt Joiner
32d89830ed
Use generic pubsub 2022-03-17 14:55:55 +11:00
Matt Joiner
55b178a8ca
Export Torrent.UseSources 2022-03-15 13:42:00 +11:00
Matt Joiner
39af2fe8f2
Merge branch 'http-proxying' 2022-03-15 12:41:22 +11:00
Matt Joiner
ec2b1b2073
Support banning webseeds 2022-03-11 14:05:31 +11:00
Matt Joiner
162cef5d1b
When banning an IP drop peers that match 2022-03-11 13:59:47 +11:00
Matt Joiner
32501740f2
Support banning webseeds 2022-03-11 13:33:34 +11:00
Matt Joiner
cb1291d565 Separate torrent sources source file 2022-02-25 19:59:16 +11:00
Matt Joiner
d06f990b81 Use HTTP proxy config for torrent sources 2022-02-25 19:59:16 +11:00
Matt Joiner
716dc55321 Fix race in MergeSpec using DisableInitialPieceCheck 2022-02-25 19:55:26 +11:00
FIGBERT
7d41b9b21c
Pass client logger to anacrolix/go-libutp sockets (#722)
* Update anacrolix/go-libutp (v1.1.0 -> v1.2.0)

* Pass client logger to anacrolix/go-libutp

* Pass logger instead of option

The project now compiles properly when CGO is not enabled.

Additionally, the new argument (now log.Logger instead of
utp.NewSocketOpt) is now required. The tests have been updated to match
this change, and now pass logger.Default to NewUtpSocket.

* Correct function signature of NewUtpSocket
2022-02-15 16:18:32 +11:00
Matt Joiner
a324fbfee3 Make use of the lazylog branch of anacrolix/log
This avoids significant allocations and overhead.
2022-01-31 17:22:36 +11:00
Matt Joiner
b68ab1db12 When banning an IP drop peers that match 2022-01-27 15:12:26 +11:00
Matt Joiner
f1e250672f Fix v4 in v6 IPs from being banned as IPv4 2022-01-27 15:11:01 +11:00
Matt Joiner
7a20e9fe8a Lazy logging 2022-01-23 09:37:11 +11:00
Matt Joiner
1cff4fe95e Switch to external anacrolix/generics 2022-01-22 18:43:04 +11:00
Matt Joiner
4a8611b23e Do smart banning on existing badPeerIPs 2022-01-22 18:43:04 +11:00
Matt Joiner
53cf508061 Implement smart ban using generics 2022-01-22 18:43:04 +11:00
Matt Joiner
f7494791d0 Reduce some logging 2021-12-27 22:06:52 +11:00
Matt Joiner
1bae62fd22 Dynamic outbound max requests
This might be one solution to https://github.com/anacrolix/torrent/issues/698.
2021-12-24 08:55:57 +11:00
Matt Joiner
bdb33ef9f7 gofumpt -extra 2021-12-23 14:00:00 +11:00
martin
b6cc93c0be * set proxy of websocket tracker to the proxy used by client config 2021-12-16 16:04:59 +11:00
Matt Joiner
1bc84e316f Don't group Torrent piece request orders without a storage capacity together 2021-12-12 18:35:02 +11:00
Matt Joiner
94bb5d40ba Implement piece request ordering with retained state 2021-12-12 18:35:01 +11:00
Matt Joiner
8dc897d4a2 Fix races using resources on Close 2021-12-12 15:01:50 +11:00
Matt Joiner
69f3b6064e Don't use the Client's IP blocklist after the Client is closed
Fixes a segfault due to using a memory mapped blocklist in confluence.
2021-12-12 15:01:50 +11:00
Matt Joiner
a9373fc8fd Fix minimum peer extensions error message 2021-12-03 20:36:50 +11:00
Matt Joiner
0f81e0011f Avoid calling net.Conn methods with the Client mutex locked
The utp firewall callback might want to use it. I can't think of a better way to determine with an incoming connection request should be blocked.
2021-11-17 14:00:50 +11:00
Matt Joiner
a90ae5aed4 Pass HTTP Proxy config into webseeding HTTP client 2021-11-12 14:16:14 +11:00
Matt Joiner
1071e261e1 Remove unused Client.updateRequests 2021-11-12 13:55:43 +11:00
Matt Joiner
c6ee03f449 gofumpt 2021-11-08 14:47:01 +11:00
Matt Joiner
f86af21cd2 Improve dht bootstrap stats logging 2021-11-05 09:30:25 +11:00
Matt Joiner
c7ff32f01c Export addTorrentOpts
Now I see what the lint was complaining about.
2021-11-04 20:00:31 +11:00
Matt Joiner
3d49a29288 Support minimum peer extensions 2021-10-25 20:52:44 +11:00
Matt Joiner
506996d038 Fix panic in update requests timer func on closed conn 2021-10-25 16:16:06 +11:00
Matt Joiner
ff3c186396 Add low requests check
This is an optimization for webseeds, which have 10 synchronous request routines, and if the request count dips below 10, some sit idle. There is probably something similar to be done with PeerConns, which won't update until there are zero requests, but there there is a timer to refresh updates, and the queues are very long (typically 512-2048).
2021-10-21 10:48:43 +11:00
Matt Joiner
8eec0b665e Update webseeds for peer requesting 2021-10-21 10:28:57 +11:00
Matt Joiner
aca3924c5e Don't panic on request refresh if there are no existing requests 2021-10-19 14:08:56 +11:00
Matt Joiner
ccce2dba13 Improvements to request refreshing 2021-10-19 14:08:56 +11:00
Matt Joiner
1201ccc53b Refresh requests after a second of no updates 2021-10-19 14:08:56 +11:00
Matt Joiner
181cbd3e52 Add expvar for successful peer wire protocol handshake peer reserved bytes 2021-10-19 14:08:56 +11:00
Matt Joiner
529aaa9b1f Use roaring bitmap for pending pieces
Also makes a significant optimization for peerHasWantedPieces possible.
2021-10-19 14:08:56 +11:00
Matt Joiner
16c571b58b Add pprof labels for request updates and remove Client-wide requester 2021-10-19 14:08:13 +11:00
Matt Joiner
58cc0f3d87 Ending a conn because we don't like its ID is not an error
(cherry picked from commit 2a5ba846cef9b4e035b3b88698f3e7f7d9d79251)
2021-10-19 14:07:40 +11:00
Matt Joiner
d19079e698 Only allow chunk size to be set for new Torrents
(cherry picked from commit 09e73e9fce139cd78da48c442e8610501b6fd26b)
2021-10-19 14:04:07 +11:00
Simon Kirsten
637045c19a
Add DisableInitialPieceCheck option (#677) 2021-10-11 11:33:40 +11:00
Matt Joiner
f47a12bd32 Return errors from Client.Close 2021-10-07 13:31:08 +11:00
Matt Joiner
9720fd576d Update chansync 2021-10-07 11:45:09 +11:00
Matt Joiner
4ca47eb358 Add ClientConfig.AlwaysWantConns 2021-09-21 13:04:51 +10:00