Commit Graph

914 Commits

Author SHA1 Message Date
Matt Joiner a11739a667
Attempt holepunch after initial dial fails 2023-05-11 13:03:54 +10:00
Matt Joiner c8fd8884b1
Restore using just hex in peer extension expvar 2023-05-09 15:46:53 +10:00
Matt Joiner e9e21b9bb5
Add stats for connections that only occur due to holepunching 2023-05-09 15:46:52 +10:00
Matt Joiner ba0b955f72
Remove bad half open count assertion 2023-05-09 15:46:52 +10:00
Matt Joiner 884b71ea6d
Add Client.Stats with ActiveHalfOpenAttempts 2023-05-09 15:46:52 +10:00
Matt Joiner 0f2604e3e9
Support multiple ongoing half-open attempts 2023-05-09 15:46:52 +10:00
Matt Joiner f3b61f09a8
Add internal panicif, check and nestedmaps packages
Fuckit I'm sick of reinventing the wheel.
2023-05-09 15:46:52 +10:00
Matt Joiner 599846546e
Dial TCP with the listener's local addr 2023-05-09 15:45:52 +10:00
Matt Joiner dc68e63298
Set torrent logger default level to debug 2023-05-09 15:45:51 +10:00
Matt Joiner 06a1aa0769
Synchronize holepunch connect messages with existing rendezvous 2023-05-09 15:45:50 +10:00
Matt Joiner e86e624415
WIP support for ut_holepunch 2023-05-01 10:19:26 +10:00
Matt Joiner 60370d60d4
Order peer conn status by peer priority and show webseeds separately 2023-05-01 10:19:26 +10:00
Matt Joiner 1e13625c73
Misc debug status, pex conn tracking improvements 2023-05-01 10:19:24 +10:00
Matt Joiner 79ab1ffe2b
Try to balance incoming and outgoing conns per torrent 2023-04-29 14:54:49 +10:00
Matt Joiner 42d29d95a6
Import generics as g 2023-04-04 19:12:26 +10:00
Matt Joiner 069b92a98c
Add AddTorrentOpts.InfoBytes 2023-04-04 19:12:01 +10:00
Matt Joiner 8d3e86e3c0
Expose StringAddr 2023-04-03 15:10:54 +10:00
Matt Joiner 31bbd435f9
gorond 2023-03-01 12:34:35 +11:00
Matt Joiner 2cb7121a93
Limit peer request data allocation
This follows up from abb5cbc96e. We currently limit how many requests peers can send us, but didn't really check that peers didn't make us allocate huge amounts of space to buffer their requests. I'm sure there's some rough edges here.
2023-02-14 12:46:49 +11:00
Marco Vidonis 3909c6c125
Add customer headers when dialling WS connection to tracker (#789)
* expose WebtorrentTrackerHttpHeader field
2022-12-08 09:17:33 +11:00
Matt Joiner 93f911ed01
Metadata size handling and DHT logging noise 2022-11-24 10:33:06 +11:00
Matt Joiner 3e0f34934d
gorond ./... 2022-11-15 23:31:27 +11:00
Raphaël Thériault 455913c752
pass TrackerDialContext to webtorrent trackers (#785) 2022-11-14 19:20:08 +11:00
Raphaël Thériault 8e53dbaeb8
support providing a DialContext for the http client (#786) 2022-11-14 19:19:02 +11:00
Matt Joiner e81c6569af
Run default DHT with table maintainer 2022-09-23 23:29:19 +10:00
Alex Sharov 67b55c222b
use RLock where can (#766) 2022-07-13 20:03:42 +10:00
Matt Joiner 214fe6b93c
Use webrtc local addr for webrtc conn peer priority
WebRTC conns are providing the correct IP for peer priority calculations, so use that instead of trying to guess (which doesn't work if there are no regular conn listeners attached to the Client.

(cherry picked from commit e86bb5fee3958dc90a3d012469b1352005d6c9ad)
2022-07-12 15:52:03 +10:00
Matt Joiner 12279621e4
Check that incoming peer request chunk lengths don't exceed the upload rate limiter burst size
Should fix #759.
2022-06-25 23:16:58 +10:00
Matt Joiner 05cd58de85
Add Client.PublicIPs 2022-06-22 23:59:18 +10:00
Matt Joiner f527180873
Bump up the local client reqq
This seems to boost upload speeds to Transmission to 16MB/s. It may require a corresponding amount of buffering in memory, that could require work later.
2022-06-15 14:22:17 +10:00
Matt Joiner eeb021b134
Use Option for cached Torrent length
Fixes https://github.com/anacrolix/torrent/issues/630.
2022-05-12 13:47:12 +10:00
Matt Joiner 9434fe58a2
Set debug log level for outgoing connection error
Contributed by @tsynik in https://github.com/anacrolix/torrent/issues/702#issuecomment-1010523079.
2022-05-12 13:33:57 +10:00
Matt Joiner 39bd8fc5a0
Use reusable roaring iterators 2022-05-12 10:42:16 +10:00
Matt Joiner 669c69faac
Disable update requests timer 2022-05-12 10:37:36 +10:00
Matt Joiner 9a9c7dee00
Add and use typed roaring bitmap 2022-05-09 12:05:50 +10:00
afjoseph 5bcd5d1b13
[client] Handle nil IP in badPeerAddr() 2022-04-26 10:59:12 +10:00
Matt Joiner d8611ecf2d
Fix races around Reader and Torrent.Drop when Torrent is closed 2022-04-11 15:44:24 +10:00
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