Commit Graph

3388 Commits

Author SHA1 Message Date
Colin Marc 60fd7581e7
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.
2023-02-13 14:26:03 +11:00
Spencer Comfort 5a185c45c0
Update codeql analysis to v2 (#806)
Updates the outdated codeql analysis actions to v2
2023-01-31 08:41:06 +11:00
Matt Joiner d47739db0c
Roaring bitmap tests now pass when run from downstream 2023-01-24 08:52:49 +11:00
Matt Joiner c20f73d53e
gorond 2023-01-04 01:26:31 +11:00
Matt Joiner a512c0df61
Add a check that piece request order items are scanned in order
It's not clear from btree documentation that scan should be ordered.
2023-01-04 01:25:57 +11:00
Matt Joiner 8e0e36887f
Fix an issue parsing negative bencode string lengths
See the fuzz test in dht/krpc.
2023-01-04 01:25:26 +11:00
Matt Joiner 8c267645bf
Update tidwall/btree 2022-12-31 13:25:00 +11:00
Matt Joiner 14cf045b6a
Sleep webseed peers after unhandled errors 2022-12-31 11:27:47 +11:00
Matt Joiner 61a303cbf7
Default to announcing as leecher
(cherry picked from commit 16da3c0c46)
2022-12-25 19:57:16 +11:00
Matt Joiner e235776204
Add --port flag to announce
(cherry picked from commit e554aa19a6)
2022-12-25 19:56:55 +11:00
Matt Joiner 87105005e3
Merge branch 'universal-webseed-escaping' 2022-12-25 19:26:01 +11:00
Matt Joiner fed765b2a0
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.
2022-12-25 19:24:16 +11:00
Matt Joiner 079599b91b
Don't use path.Join in default webseed path escaper
Thanks fuzzing!
2022-12-25 18:20:42 +11:00
Matt Joiner df126fcace
Add fuzzing for webseed path escaping 2022-12-25 18:20:23 +11:00
Matt Joiner 291c428016
Change default webseed path escaping to work for all S3-compatible providers 2022-12-23 11:18:36 +11:00
a 48ad1a8aca
update deps (#794) 2022-12-22 11:07:40 +11:00
Matt Joiner f75989863c
Validate received chunks before conversion to indexes
https://github.com/anacrolix/torrent/issues/791
2022-12-11 15:21:23 +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 682c77fcb9
Group Client DHT and tracker config 2022-12-07 10:44:38 +11:00
Matt Joiner 98d5a19d50
Support marshalling http tracker response peers 2022-12-07 10:44:26 +11:00
Matt Joiner b81423c101
Rename tracker/http package 2022-12-07 10:44:12 +11:00
Matt Joiner 50a665f278
New go fmt on doc comments 2022-12-07 10:44:05 +11:00
Matt Joiner 330d23be22
Some tidying in tracker/udp 2022-12-05 12:51:29 +11:00
Matt Joiner bf5a22f345
Add announce --event flag 2022-12-05 12:50:55 +11:00
Matt Joiner 17058f76f7
Wrap error returned from tracker HTTP request director 2022-11-29 10:45:38 +11:00
Matt Joiner 3d49eec03a
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.
2022-11-29 10:45:38 +11:00
Marco Vidonis 916af6e38a
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
2022-11-29 10:35:36 +11:00
Matt Joiner 436af2580f
Fix godo use in torrentfs CI 2022-11-29 10:29:50 +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
Matt Joiner 5501f994ca
Move a bunch of stuff into subpackages
The core package is very large now, and often only parts of it are needed.
2022-11-15 23:31:26 +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
pk de4c16bbe9
Retrive file via HTTP URL in `metainfo.go` (#778) 2022-09-26 10:01:51 +10:00
Matt Joiner e81c6569af
Run default DHT with table maintainer 2022-09-23 23:29:19 +10:00
Matt Joiner c8ccd1c1b0
Update github.com/anacrolix/dht/v2 2022-09-18 11:26:58 +10:00
Matt Joiner 648acc0120
Merge branch 'webrtc-conn-leak' 2022-08-31 11:09:47 +10:00
Matt Joiner e931f0c113
Merge branch 'bargle' 2022-08-31 11:06:00 +10:00
Alex Sharov 61302332cf
Win limit amount of peers per udp packet (#771) 2022-08-08 15:38:19 +10:00
Alex Sharov caa9400c52
use rLock where can, part2 (#767) 2022-07-13 20:04:03 +10:00
Alex Sharov 67b55c222b
use RLock where can (#766) 2022-07-13 20:03:42 +10:00
Matt Joiner 35834100cc
cmd/torrent: Restore the announce and bencode subcommands 2022-07-13 11:34:02 +10:00
Matt Joiner 309a900b9a
Close data channel on offer init errors 2022-07-12 16:15:51 +10:00
Matt Joiner 3aa2320442
Also close created data channels when cleaning up webrtc conns 2022-07-12 16:15:50 +10:00
Matt Joiner cf58c53ad4
Support announcing to webtorrent trackers without offers 2022-07-12 16:15:50 +10:00
Matt Joiner 9694c66b36
webtorrent: Create data channel earlier per webrtc examples 2022-07-12 16:15:50 +10:00
Matt Joiner 0a4c416881
Trace some webrtcNetConn use 2022-07-12 16:15:50 +10:00
Matt Joiner 5d263855d9
cmd/torrent: Time and log TracerProvider.Shutdown 2022-07-12 16:15:50 +10:00
Matt Joiner d9ca26dabb
Close detached data channel and end span on webrtc conn close 2022-07-12 16:15:50 +10:00
Matt Joiner 660d4dfba6
cmd/torrent: Use tracing SDK 2022-07-12 16:15:49 +10:00