]> Sergey Matveev's repositories - btrtrc.git/log
btrtrc.git
16 months agoFix race when final peers are available early
Matt Joiner [Thu, 29 Dec 2022 08:40:20 +0000 (19:40 +1100)]
Fix race when final peers are available early

16 months agoAdd Context parameter to SendResponse
Matt Joiner [Wed, 28 Dec 2022 23:22:03 +0000 (10:22 +1100)]
Add Context parameter to SendResponse

16 months agoTrack request payload len
Matt Joiner [Wed, 28 Dec 2022 23:21:34 +0000 (10:21 +1100)]
Track request payload len

17 months agoDefault to announcing as leecher v1.48.0
Matt Joiner [Sat, 17 Dec 2022 00:08:46 +0000 (11:08 +1100)]
Default to announcing as leecher

(cherry picked from commit 16da3c0c46a71d6f270600c63acb674226c1c9ae)

17 months agoAdd --port flag to announce
Matt Joiner [Fri, 16 Dec 2022 04:38:30 +0000 (15:38 +1100)]
Add --port flag to announce

(cherry picked from commit e554aa19a691615f349bf6dae0601706ea47dc03)

17 months agoMerge branch 'universal-webseed-escaping'
Matt Joiner [Sun, 25 Dec 2022 08:26:01 +0000 (19:26 +1100)]
Merge branch 'universal-webseed-escaping'

17 months agoFix write error handling
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.

17 months agoDon't use path.Join in default webseed path escaper
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!

17 months agoAdd fuzzing for webseed path escaping
Matt Joiner [Sun, 25 Dec 2022 07:20:23 +0000 (18:20 +1100)]
Add fuzzing for webseed path escaping

17 months agoChange default webseed path escaping to work for all S3-compatible providers
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

17 months agoupdate deps (#794)
a [Thu, 22 Dec 2022 00:07:40 +0000 (18:07 -0600)]
update deps (#794)

17 months agoMake trackerServer package
Matt Joiner [Sat, 17 Dec 2022 23:56:25 +0000 (10:56 +1100)]
Make trackerServer package

17 months agoDefault to announcing as leecher
Matt Joiner [Sat, 17 Dec 2022 00:08:46 +0000 (11:08 +1100)]
Default to announcing as leecher

17 months agoPass seeders and leechers back in UDP announce
Matt Joiner [Sat, 17 Dec 2022 00:08:35 +0000 (11:08 +1100)]
Pass seeders and leechers back in UDP announce

17 months agoUse port from announce request, not packet source
Matt Joiner [Fri, 16 Dec 2022 04:39:02 +0000 (15:39 +1100)]
Use port from announce request, not packet source

17 months agoAdd --port flag to announce
Matt Joiner [Fri, 16 Dec 2022 04:38:30 +0000 (15:38 +1100)]
Add --port flag to announce

17 months agoSet span errors
Matt Joiner [Fri, 16 Dec 2022 02:22:44 +0000 (13:22 +1100)]
Set span errors

17 months agoPropagate announce interval, particularly for UDP
Matt Joiner [Thu, 15 Dec 2022 12:21:08 +0000 (23:21 +1100)]
Propagate announce interval, particularly for UDP

17 months agoAdd upstream announce gating
Matt Joiner [Tue, 13 Dec 2022 05:41:08 +0000 (16:41 +1100)]
Add upstream announce gating

17 months agoAdd some tracing
Matt Joiner [Tue, 13 Dec 2022 04:28:34 +0000 (15:28 +1100)]
Add some tracing

17 months agoDon't use AnnounceHandler by value
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.

17 months agoValidate received chunks before conversion to indexes
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

17 months agoFix error message for connection ID mismatch
Matt Joiner [Thu, 8 Dec 2022 04:07:14 +0000 (15:07 +1100)]
Fix error message for connection ID mismatch

17 months agoMake UDP tracker connection ID unsigned
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.

17 months agoUse ConnectionId type alias
Matt Joiner [Thu, 8 Dec 2022 04:06:05 +0000 (15:06 +1100)]
Use ConnectionId type alias

17 months agoAdd get peers limits
Matt Joiner [Thu, 8 Dec 2022 03:04:23 +0000 (14:04 +1100)]
Add get peers limits

17 months agoUse smaller parameter type
Matt Joiner [Thu, 8 Dec 2022 03:04:42 +0000 (14:04 +1100)]
Use smaller parameter type

17 months agoFix goroutine leak when augmenting peers from upstream
Matt Joiner [Thu, 8 Dec 2022 02:39:58 +0000 (13:39 +1100)]
Fix goroutine leak when augmenting peers from upstream

17 months agoAdd customer headers when dialling WS connection to tracker (#789)
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

17 months agoFix missing log argument
Matt Joiner [Tue, 6 Dec 2022 23:43:45 +0000 (10:43 +1100)]
Fix missing log argument

17 months agoRework logging
Matt Joiner [Tue, 6 Dec 2022 23:43:33 +0000 (10:43 +1100)]
Rework logging

17 months agoSupport upstream trackers
Matt Joiner [Tue, 6 Dec 2022 14:54:38 +0000 (01:54 +1100)]
Support upstream trackers

17 months agoSupport alternate remote host resolution
Matt Joiner [Tue, 6 Dec 2022 04:59:06 +0000 (15:59 +1100)]
Support alternate remote host resolution

17 months agoSupport HTTP tracker server
Matt Joiner [Mon, 5 Dec 2022 06:52:03 +0000 (17:52 +1100)]
Support HTTP tracker server

17 months agoStart a UDP server implementation
Matt Joiner [Mon, 5 Dec 2022 01:52:19 +0000 (12:52 +1100)]
Start a UDP server implementation

17 months agoGroup Client DHT and tracker config
Matt Joiner [Tue, 6 Dec 2022 23:42:29 +0000 (10:42 +1100)]
Group Client DHT and tracker config

17 months agoSupport marshalling http tracker response peers
Matt Joiner [Mon, 5 Dec 2022 06:53:36 +0000 (17:53 +1100)]
Support marshalling http tracker response peers

17 months agoRename tracker/http package
Matt Joiner [Mon, 5 Dec 2022 06:50:39 +0000 (17:50 +1100)]
Rename tracker/http package

17 months agoNew go fmt on doc comments
Matt Joiner [Mon, 5 Dec 2022 06:49:27 +0000 (17:49 +1100)]
New go fmt on doc comments

17 months agoSome tidying in tracker/udp
Matt Joiner [Mon, 5 Dec 2022 01:51:29 +0000 (12:51 +1100)]
Some tidying in tracker/udp

17 months agoAdd announce --event flag
Matt Joiner [Mon, 5 Dec 2022 01:50:40 +0000 (12:50 +1100)]
Add announce --event flag

17 months agoWrap error returned from tracker HTTP request director
Matt Joiner [Mon, 28 Nov 2022 23:42:32 +0000 (10:42 +1100)]
Wrap error returned from tracker HTTP request director

17 months agoRename some HTTP identifiers to Http
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.

17 months agoModify HTTP request before sending (#787)
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

17 months agoFix godo use in torrentfs CI
Matt Joiner [Mon, 28 Nov 2022 23:29:50 +0000 (10:29 +1100)]
Fix godo use in torrentfs CI

18 months agoMetadata size handling and DHT logging noise
Matt Joiner [Wed, 23 Nov 2022 23:33:06 +0000 (10:33 +1100)]
Metadata size handling and DHT logging noise

18 months agogorond ./...
Matt Joiner [Tue, 15 Nov 2022 12:22:10 +0000 (23:22 +1100)]
gorond ./...

18 months agoMove a bunch of stuff into subpackages
Matt Joiner [Wed, 2 Nov 2022 12:03:25 +0000 (23:03 +1100)]
Move a bunch of stuff into subpackages

The core package is very large now, and often only parts of it are needed.

18 months agopass TrackerDialContext to webtorrent trackers (#785)
Raphaël Thériault [Mon, 14 Nov 2022 08:20:08 +0000 (00:20 -0800)]
pass TrackerDialContext to webtorrent trackers (#785)

18 months agosupport providing a DialContext for the http client (#786)
Raphaël Thériault [Mon, 14 Nov 2022 08:19:02 +0000 (00:19 -0800)]
support providing a DialContext for the http client (#786)

20 months agoRetrive file via HTTP URL in `metainfo.go` (#778)
pk [Mon, 26 Sep 2022 00:01:51 +0000 (19:01 -0500)]
Retrive file via HTTP URL in `metainfo.go` (#778)

20 months agoRun default DHT with table maintainer
Matt Joiner [Fri, 23 Sep 2022 13:29:19 +0000 (23:29 +1000)]
Run default DHT with table maintainer

20 months agoUpdate github.com/anacrolix/dht/v2 v1.47.0
Matt Joiner [Sun, 18 Sep 2022 01:26:58 +0000 (11:26 +1000)]
Update github.com/anacrolix/dht/v2

20 months agoMerge branch 'webrtc-conn-leak'
Matt Joiner [Wed, 31 Aug 2022 01:09:47 +0000 (11:09 +1000)]
Merge branch 'webrtc-conn-leak'

20 months agoMerge branch 'bargle'
Matt Joiner [Wed, 31 Aug 2022 01:06:00 +0000 (11:06 +1000)]
Merge branch 'bargle'

21 months agoWin limit amount of peers per udp packet (#771)
Alex Sharov [Mon, 8 Aug 2022 05:38:19 +0000 (12:38 +0700)]
Win limit amount of peers per udp packet (#771)

22 months agouse rLock where can, part2 (#767)
Alex Sharov [Wed, 13 Jul 2022 10:04:03 +0000 (17:04 +0700)]
use rLock where can, part2 (#767)

22 months agouse RLock where can (#766)
Alex Sharov [Wed, 13 Jul 2022 10:03:42 +0000 (17:03 +0700)]
use RLock where can (#766)

22 months agocmd/torrent: Restore the announce and bencode subcommands
Matt Joiner [Wed, 13 Jul 2022 01:34:02 +0000 (11:34 +1000)]
cmd/torrent: Restore the announce and bencode subcommands

22 months agoClose data channel on offer init errors
Matt Joiner [Tue, 12 Jul 2022 01:46:03 +0000 (11:46 +1000)]
Close data channel on offer init errors

22 months agoAlso close created data channels when cleaning up webrtc conns
Matt Joiner [Tue, 12 Jul 2022 00:42:35 +0000 (10:42 +1000)]
Also close created data channels when cleaning up webrtc conns

22 months agoSupport announcing to webtorrent trackers without offers
Matt Joiner [Mon, 11 Jul 2022 05:01:30 +0000 (15:01 +1000)]
Support announcing to webtorrent trackers without offers

22 months agowebtorrent: Create data channel earlier per webrtc examples
Matt Joiner [Mon, 11 Jul 2022 01:39:54 +0000 (11:39 +1000)]
webtorrent: Create data channel earlier per webrtc examples

22 months agoTrace some webrtcNetConn use
Matt Joiner [Mon, 11 Jul 2022 01:38:06 +0000 (11:38 +1000)]
Trace some webrtcNetConn use

22 months agocmd/torrent: Time and log TracerProvider.Shutdown
Matt Joiner [Mon, 11 Jul 2022 01:37:14 +0000 (11:37 +1000)]
cmd/torrent: Time and log TracerProvider.Shutdown

22 months agoClose detached data channel and end span on webrtc conn close
Matt Joiner [Sat, 9 Jul 2022 07:54:08 +0000 (17:54 +1000)]
Close detached data channel and end span on webrtc conn close

22 months agocmd/torrent: Use tracing SDK
Matt Joiner [Sat, 9 Jul 2022 04:03:34 +0000 (14:03 +1000)]
cmd/torrent: Use tracing SDK

22 months agoAdd tracing to webtorrent webrtc resources
Matt Joiner [Tue, 12 Jul 2022 06:05:19 +0000 (16:05 +1000)]
Add tracing to webtorrent webrtc resources

22 months agocmd/torrent serve: Support multiple file paths
Matt Joiner [Sun, 3 Jul 2022 11:46:28 +0000 (21:46 +1000)]
cmd/torrent serve: Support multiple file paths

22 months agocmd/torrent create: Add piece length and private options
Matt Joiner [Sat, 9 Jul 2022 04:06:27 +0000 (14:06 +1000)]
cmd/torrent create: Add piece length and private options

22 months agoRestore torrent metainfo pprint
Matt Joiner [Mon, 27 Jun 2022 09:24:43 +0000 (19:24 +1000)]
Restore torrent metainfo pprint

22 months agoMove cmd/torrent-create into torrent create
Matt Joiner [Tue, 12 Jul 2022 06:12:01 +0000 (16:12 +1000)]
Move cmd/torrent-create into torrent create

22 months agoUpdate anacrolix/bargle
Matt Joiner [Mon, 27 Jun 2022 08:36:27 +0000 (18:36 +1000)]
Update anacrolix/bargle

22 months agoUpdate bargle use
Matt Joiner [Tue, 21 Jun 2022 06:38:19 +0000 (16:38 +1000)]
Update bargle use

22 months agoTrack latest bargle
Matt Joiner [Mon, 20 Jun 2022 08:40:53 +0000 (18:40 +1000)]
Track latest bargle

22 months agoFix webrtcNetAddr.String for IPv6
Matt Joiner [Tue, 12 Jul 2022 00:41:56 +0000 (10:41 +1000)]
Fix webrtcNetAddr.String for IPv6

(cherry picked from commit d37354e6743e905d42689e88068058dd45e5be43)

22 months agoUse webrtc local addr for webrtc conn peer priority
Matt Joiner [Mon, 11 Jul 2022 08:22:23 +0000 (18:22 +1000)]
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)

22 months agoRemove relevant webtorrent offers when closing Torrent
Matt Joiner [Mon, 11 Jul 2022 05:02:24 +0000 (15:02 +1000)]
Remove relevant webtorrent offers when closing Torrent

(cherry picked from commit 73a0b5e4d2fe679aac31d87171537c70f91f46ee)

22 months agoAdd ability to set DialContext/ListenPacket for tracker announcements (#760)
Craig Campbell [Thu, 7 Jul 2022 05:51:58 +0000 (01:51 -0400)]
Add ability to set DialContext/ListenPacket for tracker announcements (#760)

This is useful if you want to use a custom dialer to proxy requests via
an external server since the HTTPProxy can only be used with tcp
trackers and not udp.

22 months agoDo torrent storage flush on piece completion (#755)
Alex Sharov [Thu, 7 Jul 2022 05:46:27 +0000 (11:46 +0600)]
Do torrent storage flush on piece completion (#755)

22 months agogo get -u ./... && go mod tidy
Matt Joiner [Sun, 3 Jul 2022 11:56:42 +0000 (21:56 +1000)]
go get -u ./... && go mod tidy

22 months agoUse metainfo.ChoosePieceLength from more locations
Matt Joiner [Mon, 27 Jun 2022 09:25:38 +0000 (19:25 +1000)]
Use metainfo.ChoosePieceLength from more locations

23 months agoCheck that incoming peer request chunk lengths don't exceed the upload rate limiter... v1.46.0
Matt Joiner [Sat, 25 Jun 2022 13:16:58 +0000 (23:16 +1000)]
Check that incoming peer request chunk lengths don't exceed the upload rate limiter burst size

Should fix #759.

23 months agoAdd exatorrent and finish tidying downstream projects
Matt Joiner [Sat, 25 Jun 2022 07:28:23 +0000 (17:28 +1000)]
Add exatorrent and finish tidying downstream projects

23 months agooptimise torrent piece length (#758)
Marco Vidonis [Thu, 23 Jun 2022 12:44:06 +0000 (13:44 +0100)]
optimise torrent piece length (#758)

23 months agoAdd Client.PublicIPs
Matt Joiner [Wed, 22 Jun 2022 13:59:18 +0000 (23:59 +1000)]
Add Client.PublicIPs

23 months agoFix typo
Matt Joiner [Wed, 22 Jun 2022 03:52:48 +0000 (13:52 +1000)]
Fix typo

23 months agoUpdate tidwall/btree (0.7.2 -> 1.3.1) (#757)
FIGBERT [Wed, 22 Jun 2022 04:16:20 +0000 (21:16 -0700)]
Update tidwall/btree (0.7.2 -> 1.3.1) (#757)

23 months agoUpdate anacrolix/generics v1.45.0
Matt Joiner [Mon, 20 Jun 2022 01:37:25 +0000 (11:37 +1000)]
Update anacrolix/generics

23 months agoUpdate downstream projects
Matt Joiner [Mon, 20 Jun 2022 22:34:38 +0000 (08:34 +1000)]
Update downstream projects

23 months agotorrent serve: Add some reasonable tracker defaults
Matt Joiner [Wed, 15 Jun 2022 04:23:18 +0000 (14:23 +1000)]
torrent serve: Add some reasonable tracker defaults

23 months agoBump up the local client reqq
Matt Joiner [Wed, 15 Jun 2022 04:22:17 +0000 (14:22 +1000)]
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.

23 months agotorrent serve: Print magnet link
Matt Joiner [Tue, 14 Jun 2022 08:23:00 +0000 (18:23 +1000)]
torrent serve: Print magnet link

23 months agoAdd comments for #752 and #753
Matt Joiner [Tue, 14 Jun 2022 00:07:09 +0000 (10:07 +1000)]
Add comments for #752 and #753

23 months agoUpdate github.com/frankban/quicktest
Matt Joiner [Tue, 14 Jun 2022 00:05:12 +0000 (10:05 +1000)]
Update github.com/frankban/quicktest

23 months agoRework peer connection writer to keep individual writes smaller
Matt Joiner [Tue, 14 Jun 2022 04:07:45 +0000 (14:07 +1000)]
Rework peer connection writer to keep individual writes smaller

This fixes an issue with WebRTC when the write buffers get too big.

23 months agointernal/testutil.Info: Support multi-file Torrents
Matt Joiner [Tue, 14 Jun 2022 00:06:36 +0000 (10:06 +1000)]
internal/testutil.Info: Support multi-file Torrents

23 months agoExportStatusWriter: take testing.TB instead of *testing.T
Matt Joiner [Tue, 14 Jun 2022 04:06:36 +0000 (14:06 +1000)]
ExportStatusWriter: take testing.TB instead of *testing.T

23 months agogithub.com/edsrzf/mmap-go v1.1.0
Alex Sharov [Tue, 14 Jun 2022 05:57:08 +0000 (12:57 +0700)]
github.com/edsrzf/mmap-go v1.1.0

23 months agoRevert "Switch requestState to be a slice" v1.44.0
Matt Joiner [Wed, 1 Jun 2022 08:24:50 +0000 (18:24 +1000)]
Revert "Switch requestState to be a slice"

This reverts commit 9eb80abc29498ecc8ba2b174457b46ca75296dec.

Via email I received a report of excessive memory use: Memory use with a slice is proportional to the total size of all torrents loaded into the Client, which can be very large.