]>
Sergey Matveev's repositories - btrtrc.git/log
Matt Joiner [Tue, 2 May 2023 07:06:36 +0000 (17:06 +1000)]
Fix race in TestUtpLocalPortIsReusable
Matt Joiner [Tue, 2 May 2023 03:06:54 +0000 (13:06 +1000)]
Support multiple ongoing half-open attempts
Matt Joiner [Tue, 2 May 2023 07:47:47 +0000 (17:47 +1000)]
Add internal panicif, check and nestedmaps packages
Fuckit I'm sick of reinventing the wheel.
Matt Joiner [Mon, 1 May 2023 02:30:06 +0000 (12:30 +1000)]
Locate target peer using dial addr when receiving a holepunch rendezvous
Matt Joiner [Tue, 9 May 2023 05:42:33 +0000 (15:42 +1000)]
go mod tidy
Matt Joiner [Sat, 29 Apr 2023 04:53:03 +0000 (14:53 +1000)]
Don't dial out TCP from the listen port
Matt Joiner [Fri, 28 Apr 2023 11:27:18 +0000 (21:27 +1000)]
Add test showing that reusing TCP ports isn't a good idea
Matt Joiner [Mon, 1 May 2023 00:15:34 +0000 (10:15 +1000)]
Dial TCP with the listener's local addr
Matt Joiner [Sat, 29 Apr 2023 11:38:41 +0000 (21:38 +1000)]
Prefer outgoing connections from higher to lower peer IDs
I think it may have been wrong all this time.
Matt Joiner [Fri, 28 Apr 2023 00:00:41 +0000 (10:00 +1000)]
Add more hole punching NOTES
Matt Joiner [Tue, 25 Apr 2023 12:31:16 +0000 (22:31 +1000)]
Break PeerConn status into more lines and improve pex status
Matt Joiner [Tue, 25 Apr 2023 03:39:59 +0000 (13:39 +1000)]
Set torrent logger default level to debug
Matt Joiner [Tue, 9 May 2023 05:45:50 +0000 (15:45 +1000)]
Synchronize holepunch connect messages with existing rendezvous
Matt Joiner [Sun, 23 Apr 2023 01:44:56 +0000 (11:44 +1000)]
WIP support for ut_holepunch
Matt Joiner [Tue, 25 Apr 2023 12:30:45 +0000 (22:30 +1000)]
Order peer conn status by peer priority and show webseeds separately
Matt Joiner [Tue, 25 Apr 2023 02:18:49 +0000 (12:18 +1000)]
Rate limit received PEX messages per connection
Matt Joiner [Mon, 1 May 2023 00:19:24 +0000 (10:19 +1000)]
Misc debug status, pex conn tracking improvements
Matt Joiner [Mon, 24 Apr 2023 05:21:57 +0000 (15:21 +1000)]
Rename prioritized_peers go files
Matt Joiner [Sat, 22 Apr 2023 06:07:07 +0000 (16:07 +1000)]
Camel case requestStrategy package
Matt Joiner [Sat, 22 Apr 2023 05:42:13 +0000 (15:42 +1000)]
Try to balance incoming and outgoing conns per torrent
Matt Joiner [Tue, 4 Apr 2023 09:13:14 +0000 (19:13 +1000)]
Don't log using torrent source as warning for context cancellation
This probably occurs because the info was obtained and we don't need to try the source anymore.
Matt Joiner [Tue, 4 Apr 2023 09:12:26 +0000 (19:12 +1000)]
Import generics as g
Matt Joiner [Tue, 4 Apr 2023 09:12:01 +0000 (19:12 +1000)]
Add AddTorrentOpts.InfoBytes
Matt Joiner [Mon, 3 Apr 2023 05:10:54 +0000 (15:10 +1000)]
Expose StringAddr
Matt Joiner [Mon, 3 Apr 2023 05:10:38 +0000 (15:10 +1000)]
bencode: Only use unsafe.String for go>=1.20
Matt Joiner [Sun, 19 Mar 2023 23:50:22 +0000 (10:50 +1100)]
bencode: Support parsing strings into bool
Matt Joiner [Wed, 1 Mar 2023 03:17:29 +0000 (14:17 +1100)]
Add Peer.Torrent
This was for accessing from callback events.
Matt Joiner [Wed, 1 Mar 2023 01:34:35 +0000 (12:34 +1100)]
gorond
Matt Joiner [Wed, 1 Mar 2023 01:33:25 +0000 (12:33 +1100)]
Finish moving all Peer types and methods into peer.go
Matt Joiner [Fri, 24 Feb 2023 05:20:08 +0000 (16:20 +1100)]
Expose UDP tracker error response type
Matt Joiner [Mon, 20 Feb 2023 04:49:55 +0000 (15:49 +1100)]
Don't reconnect before sending requests with current conn ID
The tracker udp://tracker.torrent.eu.org:451/announce gives `error response: "Connection ID missmatch.\x00"` every 2 minutes when under heavy use. I suspect that reconnect requests are sent just after the connection ID is confirmed as not stale, but before it used for a request, and the server rejects the request after processing the reconnect first.
It might also just be that that tracker server implementation is lazy and marks everything stale on regular boundaries.
Matt Joiner [Sun, 19 Feb 2023 02:24:25 +0000 (13:24 +1100)]
Add unit test for relative availability after HaveNone
Could help with https://github.com/anacrolix/torrent/issues/813.
Matt Joiner [Sun, 19 Feb 2023 01:08:23 +0000 (12:08 +1100)]
Add http and udp tracker server implementations
Matt Joiner [Sat, 18 Feb 2023 07:35:22 +0000 (18:35 +1100)]
gofumpt
dependabot[bot] [Sat, 18 Feb 2023 05:06:17 +0000 (16:06 +1100)]
Bump golang.org/x/net from 0.5.0 to 0.7.0 (#819)
Bumps [golang.org/x/net](https://github.com/golang/net) from 0.5.0 to 0.7.0.
- [Release notes](https://github.com/golang/net/releases)
- [Commits](https://github.com/golang/net/compare/v0.5.0...v0.7.0)
---
updated-dependencies:
- dependency-name: golang.org/x/net
dependency-type: indirect
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Matt Joiner [Tue, 14 Feb 2023 01:46:23 +0000 (12:46 +1100)]
Limit peer request data allocation
This follows up from
abb5cbc96e301a4ca1f5df698b105ae8553ce1e9 . 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.
dependabot[bot] [Mon, 13 Feb 2023 21:15:15 +0000 (08:15 +1100)]
Bump github.com/pion/dtls/v2 from 2.1.5 to 2.2.4 (#814)
Bumps [github.com/pion/dtls/v2](https://github.com/pion/dtls) from 2.1.5 to 2.2.4.
- [Release notes](https://github.com/pion/dtls/releases)
- [Commits](https://github.com/pion/dtls/compare/v2.1.5...v2.2.4)
---
updated-dependencies:
- dependency-name: github.com/pion/dtls/v2
dependency-type: indirect
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Matt Joiner [Mon, 13 Feb 2023 12:27:15 +0000 (23:27 +1100)]
Check for chunks overflowing piece bounds on request read
Test for integer overflow in when checking read requests are within the bounds of the associated piece. Another fix is required to limit the amount of memory that can be allocated for such requests.
Colin Marc [Mon, 13 Feb 2023 03:26:03 +0000 (04:26 +0100)]
Remove unecessary completion "set" (#812)
If the file has never been downloaded, complete will naturally be false. It's
not necessary to then set it false again unless it was actually claimed to be
true in the first place.
In my tests, using the boltdb completion thingy with fsync turned *on*, this
reduced the cold start for big buck bunny from multiple seconds to just a few
ms.
Spencer Comfort [Mon, 30 Jan 2023 21:41:06 +0000 (16:41 -0500)]
Update codeql analysis to v2 (#806)
Updates the outdated codeql analysis actions to v2
Matt Joiner [Mon, 23 Jan 2023 21:52:49 +0000 (08:52 +1100)]
Roaring bitmap tests now pass when run from downstream
Matt Joiner [Sun, 8 Jan 2023 06:22:02 +0000 (17:22 +1100)]
Add span for udp packet handling
Matt Joiner [Wed, 4 Jan 2023 13:05:34 +0000 (00:05 +1100)]
Forward leechers and seeders announce handler results
Matt Joiner [Wed, 4 Jan 2023 13:04:42 +0000 (00:04 +1100)]
Handle left param for http tracker server announces
Matt Joiner [Tue, 3 Jan 2023 14:26:31 +0000 (01:26 +1100)]
gorond
Matt Joiner [Tue, 3 Jan 2023 14:25:57 +0000 (01:25 +1100)]
Add a check that piece request order items are scanned in order
It's not clear from btree documentation that scan should be ordered.
Matt Joiner [Tue, 3 Jan 2023 14:25:26 +0000 (01:25 +1100)]
Fix an issue parsing negative bencode string lengths
See the fuzz test in dht/krpc.
Matt Joiner [Mon, 2 Jan 2023 13:14:21 +0000 (00:14 +1100)]
Limit udp tracker server request concurrency
Matt Joiner [Sat, 31 Dec 2022 02:25:00 +0000 (13:25 +1100)]
Update tidwall/btree
Matt Joiner [Sat, 31 Dec 2022 00:27:47 +0000 (11:27 +1100)]
Sleep webseed peers after unhandled errors
Matt Joiner [Thu, 29 Dec 2022 08:42:19 +0000 (19:42 +1100)]
Assume upstream peers are leechers
Matt Joiner [Thu, 29 Dec 2022 08:41:36 +0000 (19:41 +1100)]
Resize packet buffer to avoid wasting memory
Matt Joiner [Thu, 29 Dec 2022 08:41:09 +0000 (19:41 +1100)]
Avoid panic in AnnounceEvent.String
Matt Joiner [Thu, 29 Dec 2022 08:40:20 +0000 (19:40 +1100)]
Fix race when final peers are available early
Matt Joiner [Wed, 28 Dec 2022 23:22:03 +0000 (10:22 +1100)]
Add Context parameter to SendResponse
Matt Joiner [Wed, 28 Dec 2022 23:21:34 +0000 (10:21 +1100)]
Track request payload len
Matt Joiner [Sat, 17 Dec 2022 00:08:46 +0000 (11:08 +1100)]
Default to announcing as leecher
(cherry picked from commit
16da3c0c46a71d6f270600c63acb674226c1c9ae )
Matt Joiner [Fri, 16 Dec 2022 04:38:30 +0000 (15:38 +1100)]
Add --port flag to announce
(cherry picked from commit
e554aa19a691615f349bf6dae0601706ea47dc03 )
Matt Joiner [Sun, 25 Dec 2022 08:26:01 +0000 (19:26 +1100)]
Merge branch 'universal-webseed-escaping'
Matt Joiner [Sun, 25 Dec 2022 08:23:07 +0000 (19:23 +1100)]
Fix write error handling
Fixes https://github.com/anacrolix/torrent/issues/798.
Prior to this fix, it looks like the writer would just keep writing chunks of the front buffer (incorrectly if there was an error), until presumably the writer would be killed by read hangup elsewhere.
Matt Joiner [Sun, 25 Dec 2022 07:20:42 +0000 (18:20 +1100)]
Don't use path.Join in default webseed path escaper
Thanks fuzzing!
Matt Joiner [Sun, 25 Dec 2022 07:20:23 +0000 (18:20 +1100)]
Add fuzzing for webseed path escaping
Matt Joiner [Fri, 23 Dec 2022 00:18:36 +0000 (11:18 +1100)]
Change default webseed path escaping to work for all S3-compatible providers
a [Thu, 22 Dec 2022 00:07:40 +0000 (18:07 -0600)]
update deps (#794)
Matt Joiner [Sat, 17 Dec 2022 23:56:25 +0000 (10:56 +1100)]
Make trackerServer package
Matt Joiner [Sat, 17 Dec 2022 00:08:46 +0000 (11:08 +1100)]
Default to announcing as leecher
Matt Joiner [Sat, 17 Dec 2022 00:08:35 +0000 (11:08 +1100)]
Pass seeders and leechers back in UDP announce
Matt Joiner [Fri, 16 Dec 2022 04:39:02 +0000 (15:39 +1100)]
Use port from announce request, not packet source
Matt Joiner [Fri, 16 Dec 2022 04:38:30 +0000 (15:38 +1100)]
Add --port flag to announce
Matt Joiner [Fri, 16 Dec 2022 02:22:44 +0000 (13:22 +1100)]
Set span errors
Matt Joiner [Thu, 15 Dec 2022 12:21:08 +0000 (23:21 +1100)]
Propagate announce interval, particularly for UDP
Matt Joiner [Tue, 13 Dec 2022 05:41:08 +0000 (16:41 +1100)]
Add upstream announce gating
Matt Joiner [Tue, 13 Dec 2022 04:28:34 +0000 (15:28 +1100)]
Add some tracing
Matt Joiner [Mon, 12 Dec 2022 00:23:33 +0000 (11:23 +1100)]
Don't use AnnounceHandler by value
It needs to share mutex for upstream tracker single flight handling.
Matt Joiner [Sun, 11 Dec 2022 04:21:23 +0000 (15:21 +1100)]
Validate received chunks before conversion to indexes
https://github.com/anacrolix/torrent/issues/791
Matt Joiner [Thu, 8 Dec 2022 04:07:14 +0000 (15:07 +1100)]
Fix error message for connection ID mismatch
Matt Joiner [Thu, 8 Dec 2022 04:06:59 +0000 (15:06 +1100)]
Make UDP tracker connection ID unsigned
This is more appropriate for logging and its use as a byte blob elsewhere.
Matt Joiner [Thu, 8 Dec 2022 04:06:05 +0000 (15:06 +1100)]
Use ConnectionId type alias
Matt Joiner [Thu, 8 Dec 2022 03:04:23 +0000 (14:04 +1100)]
Add get peers limits
Matt Joiner [Thu, 8 Dec 2022 03:04:42 +0000 (14:04 +1100)]
Use smaller parameter type
Matt Joiner [Thu, 8 Dec 2022 02:39:58 +0000 (13:39 +1100)]
Fix goroutine leak when augmenting peers from upstream
Marco Vidonis [Wed, 7 Dec 2022 22:17:33 +0000 (22:17 +0000)]
Add customer headers when dialling WS connection to tracker (#789)
* expose WebtorrentTrackerHttpHeader field
Matt Joiner [Tue, 6 Dec 2022 23:43:45 +0000 (10:43 +1100)]
Fix missing log argument
Matt Joiner [Tue, 6 Dec 2022 23:43:33 +0000 (10:43 +1100)]
Rework logging
Matt Joiner [Tue, 6 Dec 2022 14:54:38 +0000 (01:54 +1100)]
Support upstream trackers
Matt Joiner [Tue, 6 Dec 2022 04:59:06 +0000 (15:59 +1100)]
Support alternate remote host resolution
Matt Joiner [Mon, 5 Dec 2022 06:52:03 +0000 (17:52 +1100)]
Support HTTP tracker server
Matt Joiner [Mon, 5 Dec 2022 01:52:19 +0000 (12:52 +1100)]
Start a UDP server implementation
Matt Joiner [Tue, 6 Dec 2022 23:42:29 +0000 (10:42 +1100)]
Group Client DHT and tracker config
Matt Joiner [Mon, 5 Dec 2022 06:53:36 +0000 (17:53 +1100)]
Support marshalling http tracker response peers
Matt Joiner [Mon, 5 Dec 2022 06:50:39 +0000 (17:50 +1100)]
Rename tracker/http package
Matt Joiner [Mon, 5 Dec 2022 06:49:27 +0000 (17:49 +1100)]
New go fmt on doc comments
Matt Joiner [Mon, 5 Dec 2022 01:51:29 +0000 (12:51 +1100)]
Some tidying in tracker/udp
Matt Joiner [Mon, 5 Dec 2022 01:50:40 +0000 (12:50 +1100)]
Add announce --event flag
Matt Joiner [Mon, 28 Nov 2022 23:42:32 +0000 (10:42 +1100)]
Wrap error returned from tracker HTTP request director
Matt Joiner [Mon, 28 Nov 2022 23:44:46 +0000 (10:44 +1100)]
Rename some HTTP identifiers to Http
I believe the Go convention on this is bad, and this names them inline with the style used elsewhere in anacrolix/torrent with Ip for example.
Unfortunately it's pretty widespread, so I've only changed the recent additions.
Marco Vidonis [Mon, 28 Nov 2022 23:35:36 +0000 (23:35 +0000)]
Modify HTTP request before sending (#787)
* set up custom request headers
* apply headers defined in torrent client config
* add error handling
* provide better name for method
* update error message
* only apply HTTPRequestDirector if not nil
Matt Joiner [Mon, 28 Nov 2022 23:29:50 +0000 (10:29 +1100)]
Fix godo use in torrentfs CI
Matt Joiner [Wed, 23 Nov 2022 23:33:06 +0000 (10:33 +1100)]
Metadata size handling and DHT logging noise
Matt Joiner [Tue, 15 Nov 2022 12:22:10 +0000 (23:22 +1100)]
gorond ./...