Skip to content

Commit 75f8cb4

Browse files
authored
replace quic-go with Anapaya fork (#22)
1 parent 97828a7 commit 75f8cb4

File tree

5 files changed

+39
-17
lines changed

5 files changed

+39
-17
lines changed

README.md

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,4 +18,12 @@ If you are looking to install and configure the SCION-HTTP proxy as a user or ne
1818

1919
## Developer setup
2020

21-
If you are looking to set up a developer environment, you can directly refer to the [Development Setup](https://scion-http-proxy.readthedocs.io/en/latest/dev_setup.html) section.
21+
If you are looking to set up a developer environment, you can directly refer to the [Development Setup](https://scion-http-proxy.readthedocs.io/en/latest/dev_setup.html) section.
22+
23+
## Dependencies
24+
25+
This project requires a forked version of quic-go that handle PMTUD when using the SCION network. If you're using this library in your project, add the following replace directive to your go.mod:
26+
27+
```go
28+
replace github.com/quic-go/quic-go => github.com/Anapaya/quic-go v0.50.1-0.20250318085304-31c2831f6fe0
29+
```

forward/panpolicy/transport.go

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ import (
2626
"github.com/netsec-ethz/scion-apps/pkg/pan"
2727
"github.com/netsec-ethz/scion-apps/pkg/quicutil"
2828
"github.com/netsec-ethz/scion-apps/pkg/shttp"
29+
"github.com/quic-go/quic-go"
2930
"go.uber.org/zap"
3031
)
3132

@@ -65,7 +66,11 @@ type pathAwareConn interface {
6566

6667
func NewSCIONDialer(logger *zap.Logger, dialTimeout time.Duration, shared bool) *SCIONDialer {
6768
return &SCIONDialer{
68-
dialSCION: &internalSCIONDialer{dialer: &shttp.Dialer{}},
69+
dialSCION: &internalSCIONDialer{dialer: &shttp.Dialer{
70+
QuicConfig: &quic.Config{
71+
Versions: []quic.Version{0x5c10000f},
72+
},
73+
}},
6974
dialTimeout: dialTimeout,
7075
connectionTracker: &connectionTracker{
7176
conns: make(map[string]map[net.Conn]struct{}),

go.mod

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,14 @@
11
module github.com/scionproto-contrib/http-proxy
22

3-
go 1.22.7
3+
go 1.23
44

5-
toolchain go1.22.10
5+
toolchain go1.23.11
66

77
require (
88
github.com/gorilla/securecookie v1.1.2
99
github.com/gorilla/sessions v1.2.2
1010
github.com/netsec-ethz/scion-apps v0.5.1-0.20250203095105-f70181af6440
11-
github.com/quic-go/quic-go v0.48.2
11+
github.com/quic-go/quic-go v0.50.1
1212
github.com/scionproto/scion v0.12.1-0.20241223103250-0b42cbc42486
1313
github.com/stretchr/testify v1.9.0
1414
go.uber.org/zap v1.27.0
@@ -51,14 +51,15 @@ require (
5151
github.com/uber/jaeger-client-go v2.30.0+incompatible // indirect
5252
github.com/uber/jaeger-lib v2.4.1+incompatible // indirect
5353
go.uber.org/atomic v1.11.0 // indirect
54-
go.uber.org/mock v0.4.0 // indirect
54+
go.uber.org/mock v0.5.0 // indirect
5555
go.uber.org/multierr v1.11.0 // indirect
5656
golang.org/x/crypto v0.31.0 // indirect
5757
golang.org/x/exp v0.0.0-20240506185415-9bf2ced13842 // indirect
58-
golang.org/x/mod v0.17.0 // indirect
58+
golang.org/x/mod v0.18.0 // indirect
59+
golang.org/x/sync v0.10.0 // indirect
5960
golang.org/x/sys v0.28.0 // indirect
6061
golang.org/x/text v0.21.0 // indirect
61-
golang.org/x/tools v0.21.1-0.20240508182429-e35e4ccd0d2d // indirect
62+
golang.org/x/tools v0.22.0 // indirect
6263
google.golang.org/genproto/googleapis/rpc v0.0.0-20240509183442-62759503f434 // indirect
6364
google.golang.org/grpc v1.63.2 // indirect
6465
google.golang.org/protobuf v1.34.1 // indirect
@@ -71,3 +72,5 @@ require (
7172
modernc.org/strutil v1.2.0 // indirect
7273
modernc.org/token v1.1.0 // indirect
7374
)
75+
76+
replace github.com/quic-go/quic-go => github.com/Anapaya/quic-go v0.50.1-0.20250318085304-31c2831f6fe0

go.sum

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
11
cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw=
2+
github.com/Anapaya/quic-go v0.50.1-0.20250318085304-31c2831f6fe0 h1:HulUK7LnWNLAPyl+aD/9PlNM3Zv81n8CGc1FhBo70S8=
3+
github.com/Anapaya/quic-go v0.50.1-0.20250318085304-31c2831f6fe0/go.mod h1:Vim6OmUvlYdwBhXP9ZVrtGmCMWa3wEqhq3NgYrI8b4E=
24
github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU=
35
github.com/HdrHistogram/hdrhistogram-go v1.1.2 h1:5IcZpTvzydCQeHzK4Ef/D5rrSqwxob0t8PQPMybUNFM=
46
github.com/HdrHistogram/hdrhistogram-go v1.1.2/go.mod h1:yDgFjdqOqDEKOvasDdhWNXYg9BVp4O+o5f6V/ehm6Oo=
@@ -114,8 +116,6 @@ github.com/prometheus/common v0.53.0 h1:U2pL9w9nmJwJDa4qqLQ3ZaePJ6ZTwt7cMD3AG3+a
114116
github.com/prometheus/common v0.53.0/go.mod h1:BrxBKv3FWBIGXw89Mg1AeBq7FSyRzXWI3l3e7W3RN5U=
115117
github.com/prometheus/procfs v0.14.0 h1:Lw4VdGGoKEZilJsayHf0B+9YgLGREba2C6xr+Fdfq6s=
116118
github.com/prometheus/procfs v0.14.0/go.mod h1:XL+Iwz8k8ZabyZfMFHPiilCniixqQarAy5Mu67pHlNQ=
117-
github.com/quic-go/quic-go v0.48.2 h1:wsKXZPeGWpMpCGSWqOcqpW2wZYic/8T3aqiOID0/KWE=
118-
github.com/quic-go/quic-go v0.48.2/go.mod h1:yBgs3rWBOADpga7F+jJsb6Ybg1LSYiQvwWlLX+/6HMs=
119119
github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec h1:W09IVJc94icq4NjY3clb7Lk8O1qJ8BdBEF8z0ibU0rE=
120120
github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec/go.mod h1:qqbHyh8v60DhA7CoWK5oRCqLrMHRGoxYCSS9EjAz6Eo=
121121
github.com/rogpeppe/go-internal v1.10.0 h1:TMyTOH3F/DB16zRVcYyreMH6GnZZrwQVAoYjRBZyWFQ=
@@ -150,8 +150,8 @@ go.uber.org/atomic v1.11.0/go.mod h1:LUxbIzbOniOlMKjJjyPfpl4v+PKK2cNJn91OQbhoJI0
150150
go.uber.org/goleak v1.1.10/go.mod h1:8a7PlsEVH3e/a/GLqe5IIrQx6GzcnRmZEufDUTk4A7A=
151151
go.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto=
152152
go.uber.org/goleak v1.3.0/go.mod h1:CoHD4mav9JJNrW/WLlf7HGZPjdw8EucARQHekz1X6bE=
153-
go.uber.org/mock v0.4.0 h1:VcM4ZOtdbR4f6VXfiOpwpVJDL6lCReaZ6mw31wqh7KU=
154-
go.uber.org/mock v0.4.0/go.mod h1:a6FSlNadKUHUa9IP5Vyt1zh4fC7uAwxMutEAscFbkZc=
153+
go.uber.org/mock v0.5.0 h1:KAMbZvZPyBPWgD14IrIQ38QCyjwpvVVV6K/bHl1IwQU=
154+
go.uber.org/mock v0.5.0/go.mod h1:ge71pBPLYDk7QIi1LupWxdAykm7KIEFchiOqd6z7qMM=
155155
go.uber.org/multierr v1.6.0/go.mod h1:cdWPpRnG4AhwMwsgIHip0KRBQjJy5kYEpYjJxpXp9iU=
156156
go.uber.org/multierr v1.11.0 h1:blXXJkSxSSfBVBlC76pxqeO+LN3aDfLQo+309xJstO0=
157157
go.uber.org/multierr v1.11.0/go.mod h1:20+QtiLqy0Nd6FdQB9TLXag12DsQkrbs3htMFfDN80Y=
@@ -174,8 +174,8 @@ golang.org/x/lint v0.0.0-20200302205851-738671d3881b/go.mod h1:3xt1FjdF8hUf6vQPI
174174
golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg=
175175
golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
176176
golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
177-
golang.org/x/mod v0.17.0 h1:zY54UmvipHiNd+pm+m0x9KhZ9hl1/7QNMyxXbc6ICqA=
178-
golang.org/x/mod v0.17.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c=
177+
golang.org/x/mod v0.18.0 h1:5+9lSbEzPSdWkH32vYPBwEpX8KwDbM52Ud9xBUvNlb0=
178+
golang.org/x/mod v0.18.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c=
179179
golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
180180
golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
181181
golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
@@ -220,8 +220,8 @@ golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtn
220220
golang.org/x/tools v0.0.0-20200130002326-2f3ba24bd6e7/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28=
221221
golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE=
222222
golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=
223-
golang.org/x/tools v0.21.1-0.20240508182429-e35e4ccd0d2d h1:vU5i/LfpvrRCpgM/VPfJLg5KjxD3E+hfT1SH+d9zLwg=
224-
golang.org/x/tools v0.21.1-0.20240508182429-e35e4ccd0d2d/go.mod h1:aiJjzUbINMkxbQROHiO6hDPo2LHcIPhhQsa9DLh0yGk=
223+
golang.org/x/tools v0.22.0 h1:gqSGLZqv+AI9lIQzniJ0nZDRG5GBPsSi+DRNHWNz6yA=
224+
golang.org/x/tools v0.22.0/go.mod h1:aCwcsjqvq7Yqt6TNyX7QMU2enbQ/Gt0bo6krSeEri+c=
225225
golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
226226
golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
227227
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=

networks/singlestream/network.go

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -121,7 +121,13 @@ func (l *listenerSCION) listen(
121121
NextProtos: []string{quicutil.SingleStreamProto},
122122
Certificates: quicutil.MustGenerateSelfSignedCert(),
123123
}
124-
quicListener, err := listenQUIC(ctx, network, laddr, tlsCfg, nil)
124+
quicConfig := &quic.Config{
125+
Versions: []quic.Version{
126+
quic.Version1,
127+
quic.Version2,
128+
0x5c10000f},
129+
}
130+
quicListener, err := listenQUIC(ctx, network, laddr, tlsCfg, quicConfig)
125131
if err != nil {
126132
network.Logger().Error("failed to listen on QUIC", zap.Error(err))
127133
return nil, err

0 commit comments

Comments
 (0)