Skip to content

Commit a8264f2

Browse files
committed
Switch to torrent.Reader.SetContext
1 parent dc1134d commit a8264f2

File tree

3 files changed

+140
-188
lines changed

3 files changed

+140
-188
lines changed

confluence/misc.go

Lines changed: 2 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,12 @@ package confluence
22

33
import (
44
"bytes"
5-
"io"
65
"net/http"
76
"os"
87
"path"
98
"path/filepath"
109
"time"
1110

12-
"github.com/anacrolix/missinggo/v2"
1311
"github.com/anacrolix/missinggo/v2/httptoo"
1412
"github.com/anacrolix/torrent"
1513
"github.com/anacrolix/torrent/metainfo"
@@ -68,20 +66,9 @@ func ServeTorrent(w http.ResponseWriter, r *http.Request, t *torrent.Torrent) {
6866
}
6967

7068
func ServeTorrentReader(w http.ResponseWriter, r *http.Request, tr torrent.Reader, name string) {
69+
tr.SetContext(r.Context())
7170
defer tr.Close()
72-
rs := struct {
73-
io.Reader
74-
io.Seeker
75-
}{
76-
Reader: missinggo.ContextedReader{
77-
R: tr,
78-
// From Go 1.8, the Request Context is done when the client goes
79-
// away.
80-
Ctx: r.Context(),
81-
},
82-
Seeker: tr,
83-
}
84-
http.ServeContent(w, r, name, time.Time{}, rs)
71+
http.ServeContent(w, r, name, time.Time{}, tr)
8572
}
8673

8774
func ServeFile(w http.ResponseWriter, r *http.Request, t *torrent.Torrent, _path string) {

go.mod

Lines changed: 40 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,23 @@
11
module github.com/anacrolix/confluence
22

3-
go 1.22
4-
5-
toolchain go1.22.3
3+
go 1.24
64

75
require (
8-
github.com/anacrolix/dht/v2 v2.19.2-0.20221121215055-066ad8494444
6+
github.com/anacrolix/dht/v2 v2.22.2-0.20250623060212-d7b7d8a52b01
97
github.com/anacrolix/envpprof v1.3.0
10-
github.com/anacrolix/go-libutp v1.3.1
8+
github.com/anacrolix/go-libutp v1.3.2
119
github.com/anacrolix/gostdapp v0.1.0
12-
github.com/anacrolix/log v0.15.3-0.20240627045001-cd912c641d83
13-
github.com/anacrolix/missinggo/v2 v2.7.3
10+
github.com/anacrolix/log v0.16.1-0.20250526073428-5cb74e15092b
11+
github.com/anacrolix/missinggo/v2 v2.8.1-0.20250626123431-aa4691b19d56
1412
github.com/anacrolix/publicip v0.2.0
1513
github.com/anacrolix/squirrel v0.6.4
1614
github.com/anacrolix/tagflag v1.4.0
17-
github.com/anacrolix/torrent v1.56.2-0.20240630095337-f22cf7de8b38
15+
github.com/anacrolix/torrent v1.58.2-0.20250720014114-dda1d97c6a22
1816
github.com/arl/statsviz v0.4.0
1917
github.com/honeycombio/honeycomb-opentelemetry-go v0.3.0
2018
github.com/prometheus/client_golang v1.12.2
2119
go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.34.0
22-
golang.org/x/net v0.23.0
20+
golang.org/x/net v0.42.0
2321
zombiezen.com/go/sqlite v0.13.1
2422
)
2523

@@ -28,18 +26,18 @@ require (
2826
github.com/ajwerner/btree v0.0.0-20211221152037-f427b3e689c0 // indirect
2927
github.com/alecthomas/atomic v0.1.0-alpha2 // indirect
3028
github.com/anacrolix/backtrace v0.0.0-20221205112523-22a61db8f82e // indirect
31-
github.com/anacrolix/chansync v0.4.1-0.20240627045151-1aa1ac392fe8 // indirect
32-
github.com/anacrolix/generics v0.0.2-0.20240227122613-f95486179cab // indirect
29+
github.com/anacrolix/chansync v0.6.0 // indirect
30+
github.com/anacrolix/generics v0.0.3-0.20250526144502-593be7092deb // indirect
3331
github.com/anacrolix/missinggo v1.3.0 // indirect
3432
github.com/anacrolix/missinggo/perf v1.0.0 // indirect
35-
github.com/anacrolix/mmsg v1.0.0 // indirect
36-
github.com/anacrolix/multiless v0.3.0 // indirect
37-
github.com/anacrolix/stm v0.4.0 // indirect
38-
github.com/anacrolix/sync v0.5.1 // indirect
33+
github.com/anacrolix/mmsg v1.0.1 // indirect
34+
github.com/anacrolix/multiless v0.4.0 // indirect
35+
github.com/anacrolix/stm v0.4.1-0.20221221005312-96d17df0e496 // indirect
36+
github.com/anacrolix/sync v0.5.4 // indirect
3937
github.com/anacrolix/upnp v0.1.4 // indirect
4038
github.com/anacrolix/utp v0.1.0 // indirect
4139
github.com/bahlo/generic-list-go v0.2.0 // indirect
42-
github.com/benbjohnson/immutable v0.3.0 // indirect
40+
github.com/benbjohnson/immutable v0.4.1-0.20221220213129-8932b999621d // indirect
4341
github.com/beorn7/perks v1.0.1 // indirect
4442
github.com/bits-and-blooms/bitset v1.2.2 // indirect
4543
github.com/bradfitz/iter v0.0.0-20191230175014-e8f45d346db8 // indirect
@@ -53,14 +51,14 @@ require (
5351
github.com/felixge/httpsnoop v1.0.3 // indirect
5452
github.com/frankban/quicktest v1.14.6 // indirect
5553
github.com/go-llsqlite/adapter v0.0.0-20230927005056-7f5ce7f0c916 // indirect
56-
github.com/go-llsqlite/crawshaw v0.5.2-0.20240425034140-f30eb7704568 // indirect
54+
github.com/go-llsqlite/crawshaw v0.5.6-0.20250312230104-194977a03421 // indirect
5755
github.com/go-logr/logr v1.2.3 // indirect
5856
github.com/go-logr/stdr v1.2.2 // indirect
5957
github.com/go-ole/go-ole v1.2.6 // indirect
6058
github.com/golang/protobuf v1.5.3 // indirect
6159
github.com/google/btree v1.1.2 // indirect
6260
github.com/google/go-cmp v0.6.0 // indirect
63-
github.com/google/uuid v1.3.0 // indirect
61+
github.com/google/uuid v1.6.0 // indirect
6462
github.com/gorilla/websocket v1.5.0 // indirect
6563
github.com/grpc-ecosystem/grpc-gateway/v2 v2.12.0 // indirect
6664
github.com/honeycombio/opentelemetry-go-contrib/launcher v0.0.0-20221031150637-a3c60ed98d54 // indirect
@@ -76,31 +74,30 @@ require (
7674
github.com/mschoch/smat v0.2.0 // indirect
7775
github.com/multiformats/go-multihash v0.2.3 // indirect
7876
github.com/multiformats/go-varint v0.0.6 // indirect
79-
github.com/pion/datachannel v1.5.2 // indirect
80-
github.com/pion/dtls/v2 v2.2.4 // indirect
81-
github.com/pion/ice/v2 v2.2.6 // indirect
82-
github.com/pion/interceptor v0.1.11 // indirect
83-
github.com/pion/logging v0.2.2 // indirect
84-
github.com/pion/mdns v0.0.5 // indirect
77+
github.com/pion/datachannel v1.5.9 // indirect
78+
github.com/pion/dtls/v3 v3.0.3 // indirect
79+
github.com/pion/ice/v4 v4.0.2 // indirect
80+
github.com/pion/interceptor v0.1.40 // indirect
81+
github.com/pion/logging v0.2.3 // indirect
82+
github.com/pion/mdns/v2 v2.0.7 // indirect
8583
github.com/pion/randutil v0.1.0 // indirect
86-
github.com/pion/rtcp v1.2.9 // indirect
87-
github.com/pion/rtp v1.7.13 // indirect
88-
github.com/pion/sctp v1.8.2 // indirect
89-
github.com/pion/sdp/v3 v3.0.5 // indirect
90-
github.com/pion/srtp/v2 v2.0.9 // indirect
91-
github.com/pion/stun v0.3.5 // indirect
92-
github.com/pion/transport v0.13.1 // indirect
93-
github.com/pion/transport/v2 v2.0.0 // indirect
94-
github.com/pion/turn/v2 v2.0.8 // indirect
95-
github.com/pion/udp v0.1.4 // indirect
96-
github.com/pion/webrtc/v3 v3.1.42 // indirect
84+
github.com/pion/rtcp v1.2.15 // indirect
85+
github.com/pion/rtp v1.8.18 // indirect
86+
github.com/pion/sctp v1.8.33 // indirect
87+
github.com/pion/sdp/v3 v3.0.9 // indirect
88+
github.com/pion/srtp/v3 v3.0.4 // indirect
89+
github.com/pion/stun/v3 v3.0.0 // indirect
90+
github.com/pion/transport/v3 v3.0.7 // indirect
91+
github.com/pion/turn/v4 v4.0.0 // indirect
92+
github.com/pion/webrtc/v4 v4.0.0 // indirect
9793
github.com/pkg/errors v0.9.1 // indirect
9894
github.com/power-devops/perfstat v0.0.0-20220216144756-c35f1ee13d7c // indirect
9995
github.com/prometheus/client_model v0.2.0 // indirect
10096
github.com/prometheus/common v0.35.0 // indirect
10197
github.com/prometheus/procfs v0.7.3 // indirect
98+
github.com/protolambda/ctxlock v0.1.0 // indirect
10299
github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec // indirect
103-
github.com/rogpeppe/go-internal v1.9.0 // indirect
100+
github.com/rogpeppe/go-internal v1.11.0 // indirect
104101
github.com/rs/dnscache v0.0.0-20211102005908-e0241e321417 // indirect
105102
github.com/ryszard/goskiplist v0.0.0-20150312221310-2dfbae5fcf46 // indirect
106103
github.com/sethvargo/go-envconfig v0.8.2 // indirect
@@ -109,6 +106,7 @@ require (
109106
github.com/tidwall/btree v1.6.0 // indirect
110107
github.com/tklauser/go-sysconf v0.3.10 // indirect
111108
github.com/tklauser/numcpus v0.5.0 // indirect
109+
github.com/wlynxg/anet v0.0.3 // indirect
112110
github.com/yusufpapurcu/wmi v1.2.2 // indirect
113111
go.etcd.io/bbolt v1.3.6 // indirect
114112
go.opentelemetry.io/contrib/instrumentation/host v0.36.4 // indirect
@@ -131,16 +129,16 @@ require (
131129
go.opentelemetry.io/proto/otlp v0.19.0 // indirect
132130
go.uber.org/atomic v1.10.0 // indirect
133131
go.uber.org/multierr v1.8.0 // indirect
134-
golang.org/x/crypto v0.21.0 // indirect
135-
golang.org/x/exp v0.0.0-20240506185415-9bf2ced13842 // indirect
136-
golang.org/x/sync v0.7.0 // indirect
137-
golang.org/x/sys v0.18.0 // indirect
138-
golang.org/x/text v0.14.0 // indirect
132+
golang.org/x/crypto v0.40.0 // indirect
133+
golang.org/x/exp v0.0.0-20240823005443-9b4947da3948 // indirect
134+
golang.org/x/sync v0.16.0 // indirect
135+
golang.org/x/sys v0.34.0 // indirect
136+
golang.org/x/text v0.27.0 // indirect
139137
golang.org/x/time v0.1.0 // indirect
140138
golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2 // indirect
141139
google.golang.org/genproto v0.0.0-20230410155749-daa745c078e1 // indirect
142140
google.golang.org/grpc v1.56.3 // indirect
143-
google.golang.org/protobuf v1.30.0 // indirect
141+
google.golang.org/protobuf v1.33.0 // indirect
144142
lukechampine.com/blake3 v1.1.6 // indirect
145143
modernc.org/libc v1.22.3 // indirect
146144
modernc.org/mathutil v1.5.0 // indirect

0 commit comments

Comments
 (0)