Fast and extensible multi-platform HTTP/1-2-3 web server with automatic HTTPS
Mirrored from https://github.com/Slazee/caddy.git
Synced Nov 13, 06:45 UTC
chore: Build with Go 1.20, keep minimum at 1.18 for now (#5353)
Francis Lavoie committed
Feb 6, 2023 at 11:29 UTC
e62b5fb58619364051551a7ee614fb9949cfe69a
9 files changed
+45
-40
.github/workflows/ci.yml
+3
-3
@@ -19,7 +19,7 @@ jobs:
19
fail-fast: false
20
matrix:
21
os: [ ubuntu-latest, macos-latest, windows-latest ]
22
- go: [ '1.18', '1.19' ]
22
+ go: [ '1.18', '1.20' ]
23
24
include:
25
# Set the minimum Go patch version for the given Go minor
@@ -27,8 +27,8 @@ jobs:
27
- go: '1.18'
28
GO_SEMVER: '~1.18.4'
29
30
- - go: '1.19'
31
- GO_SEMVER: '~1.19.0'
30
+ - go: '1.20'
31
+ GO_SEMVER: '~1.20.0'
32
33
# Set some variables per OS, usable via ${{ matrix.VAR }}
34
# CADDY_BIN_PATH: the path to the compiled Caddy binary, for artifact publishing
.github/workflows/cross-build.yml
+3
-3
@@ -16,13 +16,13 @@ jobs:
16
fail-fast: false
17
matrix:
18
goos: ['android', 'linux', 'solaris', 'illumos', 'dragonfly', 'freebsd', 'openbsd', 'plan9', 'windows', 'darwin', 'netbsd']
19
- go: [ '1.19' ]
19
+ go: [ '1.20' ]
20
21
include:
22
# Set the minimum Go patch version for the given Go minor
23
# Usable via ${{ matrix.GO_SEMVER }}
24
- - go: '1.19'
25
- GO_SEMVER: '~1.19.0'
24
+ - go: '1.20'
25
+ GO_SEMVER: '~1.20.0'
26
27
runs-on: ubuntu-latest
28
continue-on-error: true
.github/workflows/release.yml
+3
-3
@@ -11,13 +11,13 @@ jobs:
11
strategy:
12
matrix:
13
os: [ ubuntu-latest ]
14
- go: [ '1.19' ]
14
+ go: [ '1.20' ]
15
16
include:
17
# Set the minimum Go patch version for the given Go minor
18
# Usable via ${{ matrix.GO_SEMVER }}
19
- - go: '1.19'
20
- GO_SEMVER: '~1.19.0'
19
+ - go: '1.20'
20
+ GO_SEMVER: '~1.20.0'
21
22
runs-on: ${{ matrix.os }}
23
# https://github.com/sigstore/cosign/issues/1258#issuecomment-1002251233
go.mod
+9
-8
@@ -14,9 +14,9 @@ require (
14
github.com/google/uuid v1.3.0
15
github.com/klauspost/compress v1.15.11
16
github.com/klauspost/cpuid/v2 v2.1.2
17
- github.com/lucas-clemente/quic-go v0.31.0
17
github.com/mholt/acmez v1.0.4
18
github.com/prometheus/client_golang v1.12.2
19
+ github.com/quic-go/quic-go v0.32.0
20
github.com/smallstep/certificates v0.23.0
21
github.com/smallstep/nosql v0.5.0
22
github.com/smallstep/truststore v0.12.0
@@ -30,7 +30,7 @@ require (
30
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.4.0
31
go.opentelemetry.io/otel/sdk v1.4.0
32
go.uber.org/zap v1.23.0
33
- golang.org/x/crypto v0.0.0-20221005025214-4161e89ecf1b
33
+ golang.org/x/crypto v0.4.0
34
golang.org/x/net v0.5.0
35
golang.org/x/term v0.4.0
36
google.golang.org/genproto v0.0.0-20221027153422-115e99e71e1c
@@ -45,9 +45,13 @@ require (
45
github.com/golang/mock v1.6.0 // indirect
46
github.com/google/pprof v0.0.0-20210407192527-94a9f03dee38 // indirect
47
github.com/onsi/ginkgo/v2 v2.2.0 // indirect
48
+ github.com/quic-go/qpack v0.4.0 // indirect
49
+ github.com/quic-go/qtls-go1-18 v0.2.0 // indirect
50
+ github.com/quic-go/qtls-go1-19 v0.2.0 // indirect
51
+ github.com/quic-go/qtls-go1-20 v0.1.0 // indirect
52
github.com/rogpeppe/go-internal v1.9.0 // indirect
53
github.com/x448/float16 v0.8.4 // indirect
50
- golang.org/x/exp v0.0.0-20220722155223-a9213eeb770e // indirect
54
+ golang.org/x/exp v0.0.0-20221205204356-47842c84f3db // indirect
55
)
56
57
require (
@@ -90,9 +94,6 @@ require (
94
github.com/jackc/pgx/v4 v4.17.2 // indirect
95
github.com/libdns/libdns v0.2.1 // indirect
96
github.com/manifoldco/promptui v0.9.0 // indirect
93
- github.com/marten-seemann/qpack v0.3.0 // indirect
94
- github.com/marten-seemann/qtls-go1-18 v0.1.3 // indirect
95
- github.com/marten-seemann/qtls-go1-19 v0.1.1 // indirect
97
github.com/mattn/go-colorable v0.1.8 // indirect
98
github.com/mattn/go-isatty v0.0.13 // indirect
99
github.com/matttproud/golang_protobuf_extensions v1.0.1 // indirect
@@ -127,10 +128,10 @@ require (
128
go.step.sm/linkedca v0.19.0 // indirect
129
go.uber.org/atomic v1.9.0 // indirect
130
go.uber.org/multierr v1.6.0 // indirect
130
- golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4 // indirect
131
+ golang.org/x/mod v0.6.0 // indirect
132
golang.org/x/sys v0.4.0
133
golang.org/x/text v0.6.0 // indirect
133
- golang.org/x/tools v0.1.12 // indirect
134
+ golang.org/x/tools v0.2.0 // indirect
135
google.golang.org/grpc v1.50.1 // indirect
136
google.golang.org/protobuf v1.28.1 // indirect
137
gopkg.in/square/go-jose.v2 v2.6.0 // indirect
go.sum
+19
-15
@@ -434,18 +434,10 @@ github.com/libdns/libdns v0.2.1 h1:Wu59T7wSHRgtA0cfxC+n1c/e+O3upJGWytknkmFEDis=
434
github.com/libdns/libdns v0.2.1/go.mod h1:yQCXzk1lEZmmCPa857bnk4TsOiqYasqpyOEeSObbb40=
435
github.com/lightstep/lightstep-tracer-common/golang/gogo v0.0.0-20190605223551-bc2310a04743/go.mod h1:qklhhLq1aX+mtWk9cPHPzaBjWImj5ULL6C7HFJtXQMM=
436
github.com/lightstep/lightstep-tracer-go v0.18.1/go.mod h1:jlF1pusYV4pidLvZ+XD0UBX0ZE6WURAspgAczcDHrL4=
437
-github.com/lucas-clemente/quic-go v0.31.0 h1:MfNp3fk0wjWRajw6quMFA3ap1AVtlU+2mtwmbVogB2M=
438
-github.com/lucas-clemente/quic-go v0.31.0/go.mod h1:0wFbizLgYzqHqtlyxyCaJKlE7bYgE6JQ+54TLd/Dq2g=
437
github.com/lyft/protoc-gen-validate v0.0.13/go.mod h1:XbGvPuh87YZc5TdIa2/I4pLk0QoUACkjt2znoq26NVQ=
438
github.com/magiconair/properties v1.8.0/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ=
439
github.com/manifoldco/promptui v0.9.0 h1:3V4HzJk1TtXW1MTZMP7mdlwbBpIinw3HztaIlYthEiA=
440
github.com/manifoldco/promptui v0.9.0/go.mod h1:ka04sppxSGFAtxX0qhlYQjISsg9mR4GWtQEhdbn6Pgg=
443
-github.com/marten-seemann/qpack v0.3.0 h1:UiWstOgT8+znlkDPOg2+3rIuYXJ2CnGDkGUXN6ki6hE=
444
-github.com/marten-seemann/qpack v0.3.0/go.mod h1:cGfKPBiP4a9EQdxCwEwI/GEeWAsjSekBvx/X8mh58+g=
445
-github.com/marten-seemann/qtls-go1-18 v0.1.3 h1:R4H2Ks8P6pAtUagjFty2p7BVHn3XiwDAl7TTQf5h7TI=
446
-github.com/marten-seemann/qtls-go1-18 v0.1.3/go.mod h1:mJttiymBAByA49mhlNZZGrH5u1uXYZJ+RW28Py7f4m4=
447
-github.com/marten-seemann/qtls-go1-19 v0.1.1 h1:mnbxeq3oEyQxQXwI4ReCgW9DPoPR94sNlqWoDZnjRIE=
448
-github.com/marten-seemann/qtls-go1-19 v0.1.1/go.mod h1:5HTDWtVudo/WFsHKRNuOhWlbdjrfs5JHrYb0wIJqGpI=
441
github.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU=
442
github.com/mattn/go-colorable v0.1.1/go.mod h1:FuOcm+DKB9mbwrcAfNl7/TZVBZ6rcnceauSikq3lYCQ=
443
github.com/mattn/go-colorable v0.1.4/go.mod h1:U0ppj6V5qS13XJ6of8GYAs25YV2eR4EVcfRqFIhoBtE=
@@ -568,6 +560,16 @@ github.com/prometheus/procfs v0.1.3/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4O
560
github.com/prometheus/procfs v0.6.0/go.mod h1:cz+aTbrPOrUb4q7XlbU9ygM+/jj0fzG6c1xBZuNvfVA=
561
github.com/prometheus/procfs v0.7.3 h1:4jVXhlkAyzOScmCkXBTOLRLTz8EeU+eyjrwB/EPq0VU=
562
github.com/prometheus/procfs v0.7.3/go.mod h1:cz+aTbrPOrUb4q7XlbU9ygM+/jj0fzG6c1xBZuNvfVA=
563
+github.com/quic-go/qpack v0.4.0 h1:Cr9BXA1sQS2SmDUWjSofMPNKmvF6IiIfDRmgU0w1ZCo=
564
+github.com/quic-go/qpack v0.4.0/go.mod h1:UZVnYIfi5GRk+zI9UMaCPsmZ2xKJP7XBUvVyT1Knj9A=
565
+github.com/quic-go/qtls-go1-18 v0.2.0 h1:5ViXqBZ90wpUcZS0ge79rf029yx0dYB0McyPJwqqj7U=
566
+github.com/quic-go/qtls-go1-18 v0.2.0/go.mod h1:moGulGHK7o6O8lSPSZNoOwcLvJKJ85vVNc7oJFD65bc=
567
+github.com/quic-go/qtls-go1-19 v0.2.0 h1:Cvn2WdhyViFUHoOqK52i51k4nDX8EwIh5VJiVM4nttk=
568
+github.com/quic-go/qtls-go1-19 v0.2.0/go.mod h1:ySOI96ew8lnoKPtSqx2BlI5wCpUVPT05RMAlajtnyOI=
569
+github.com/quic-go/qtls-go1-20 v0.1.0 h1:d1PK3ErFy9t7zxKsG3NXBJXZjp/kMLoIb3y/kV54oAI=
570
+github.com/quic-go/qtls-go1-20 v0.1.0/go.mod h1:JKtK6mjbAVcUTN/9jZpvLbGxvdWIKS8uT7EiStoU1SM=
571
+github.com/quic-go/quic-go v0.32.0 h1:lY02md31s1JgPiiyfqJijpu/UX/Iun304FI3yUqX7tA=
572
+github.com/quic-go/quic-go v0.32.0/go.mod h1:/fCsKANhQIeD5l76c2JFU+07gVE3KaA0FP+0zMWwfwo=
573
github.com/rcrowley/go-metrics v0.0.0-20181016184325-3113b8401b8a/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4=
574
github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg=
575
github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ=
@@ -757,8 +759,8 @@ golang.org/x/crypto v0.0.0-20210616213533-5ff15b29337e/go.mod h1:GvvjBRRGRdwPK5y
759
golang.org/x/crypto v0.0.0-20210711020723-a769d52b0f97/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc=
760
golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc=
761
golang.org/x/crypto v0.0.0-20220722155217-630584e8d5aa/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4=
760
-golang.org/x/crypto v0.0.0-20221005025214-4161e89ecf1b h1:huxqepDufQpLLIRXiVkTvnxrzJlpwmIWAObmcCcUFr0=
761
-golang.org/x/crypto v0.0.0-20221005025214-4161e89ecf1b/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4=
762
+golang.org/x/crypto v0.4.0 h1:UVQgzMY87xqpKNgb+kDsll2Igd33HszWHFLmpaRMq/8=
763
+golang.org/x/crypto v0.4.0/go.mod h1:3quD/ATkf6oY+rnes5c3ExXTbLc8mueNue5/DoinL80=
764
golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
765
golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
766
golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8=
@@ -769,8 +771,8 @@ golang.org/x/exp v0.0.0-20191227195350-da58074b4299/go.mod h1:2RIsYlXP63K8oxa1u0
771
golang.org/x/exp v0.0.0-20200119233911-0405dc783f0a/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4=
772
golang.org/x/exp v0.0.0-20200207192155-f17229e696bd/go.mod h1:J/WKrq2StrnmMY6+EHIKF9dgMWnmCNThgcyBT1FY9mM=
773
golang.org/x/exp v0.0.0-20200224162631-6cc2880d07d6/go.mod h1:3jZMyOhIsHpP37uCMkUooju7aAi5cS1Q23tOzKc+0MU=
772
-golang.org/x/exp v0.0.0-20220722155223-a9213eeb770e h1:+WEEuIdZHnUeJJmEUjyYC2gfUMj69yZXw17EnHg/otA=
773
-golang.org/x/exp v0.0.0-20220722155223-a9213eeb770e/go.mod h1:Kr81I6Kryrl9sr8s2FK3vxD90NdsKWRuOIl2O4CvYbA=
774
+golang.org/x/exp v0.0.0-20221205204356-47842c84f3db h1:D/cFflL63o2KSLJIwjlcIt8PR064j/xsmdEJL/YvY/o=
775
+golang.org/x/exp v0.0.0-20221205204356-47842c84f3db/go.mod h1:CxIveKay+FTh1D0yPZemJVgC/95VzuuOLq5Qi4xnoYc=
776
golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js=
777
golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0=
778
golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE=
@@ -792,8 +794,9 @@ golang.org/x/mod v0.1.1-0.20191107180719-034126e5016b/go.mod h1:QqPTAvyqsEbceGzB
794
golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
795
golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
796
golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
795
-golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4 h1:6zppjxzCulZykYSLyVDYbneBfbaBIQPYMevg0bEwv2s=
797
golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4=
798
+golang.org/x/mod v0.6.0 h1:b9gGHsz9/HhJ3HF5DHQytPpuwocVTChQJK3AvoLRD5I=
799
+golang.org/x/mod v0.6.0/go.mod h1:4mET923SAdbXp2ki8ey+zGs1SLqsuM2Y0uvdZR/fUNI=
800
golang.org/x/net v0.0.0-20170726083632-f5079bd7f6f7/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
801
golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
802
golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
@@ -858,8 +861,8 @@ golang.org/x/sync v0.0.0-20200317015054-43a5402ce75a/go.mod h1:RxMgew5VJxzue5/jJ
861
golang.org/x/sync v0.0.0-20200625203802-6e8e738ad208/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
862
golang.org/x/sync v0.0.0-20201207232520-09787c993a3a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
863
golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
861
-golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4 h1:uVc8UZUe6tr40fFVnUP5Oj+veunVezqYl9z7DYw9xzw=
864
golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
865
+golang.org/x/sync v0.1.0 h1:wsuoTGHzEhffawBOhz5CYhcrV4IdKZbEyZjBMuTp12o=
866
golang.org/x/sys v0.0.0-20170728174421-0f826bdd13b5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
867
golang.org/x/sys v0.0.0-20180823144017-11551d06cbcc/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
868
golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
@@ -996,8 +999,9 @@ golang.org/x/tools v0.0.0-20200825202427-b303f430e36d/go.mod h1:njjCfa9FT2d7l9Bc
999
golang.org/x/tools v0.1.1/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk=
1000
golang.org/x/tools v0.1.5/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk=
1001
golang.org/x/tools v0.1.6-0.20210726203631-07bc1bf47fb2/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk=
999
-golang.org/x/tools v0.1.12 h1:VveCTK38A2rkS8ZqFY25HIDFscX5X9OoEhJd3quQmXU=
1002
golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc=
1003
+golang.org/x/tools v0.2.0 h1:G6AHpWxTMGY1KyEYoAQ5WTtIekUUvDNjan3ugu60JvE=
1004
+golang.org/x/tools v0.2.0/go.mod h1:y4OqIKeOV/fWJetJ8bXPU1sEVniLMIyDAZWeHdV+NTA=
1005
golang.org/x/xerrors v0.0.0-20190410155217-1f06c39b4373/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
1006
golang.org/x/xerrors v0.0.0-20190513163551-3ee3066db522/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
1007
golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
listeners.go
+3
-3
@@ -30,8 +30,8 @@ import (
30
"syscall"
31
"time"
32
33
- "github.com/lucas-clemente/quic-go"
34
- "github.com/lucas-clemente/quic-go/http3"
33
+ "github.com/quic-go/quic-go"
34
+ "github.com/quic-go/quic-go/http3"
35
"go.uber.org/zap"
36
)
37
@@ -462,7 +462,7 @@ func ListenQUIC(ln net.PacketConn, tlsConf *tls.Config, activeRequests *int64) (
462
// of closes) because closing the quic.EarlyListener doesn't actually close
463
// the underlying PacketConn, but we need to for unix sockets since we dup
464
// the file descriptor and thus need to close the original; track issue:
465
- // https://github.com/lucas-clemente/quic-go/issues/3560#issuecomment-1258959608
465
+ // https://github.com/quic-go/quic-go/issues/3560#issuecomment-1258959608
466
var unix *unixConn
467
if uc, ok := ln.(*unixConn); ok {
468
unix = uc
modules/caddyhttp/app.go
+2
-2
@@ -574,7 +574,7 @@ func (app *App) Stop() error {
574
575
// TODO: we have to manually close our listeners because quic-go won't
576
// close listeners it didn't create along with the server itself...
577
- // see https://github.com/lucas-clemente/quic-go/issues/3560
577
+ // see https://github.com/quic-go/quic-go/issues/3560
578
for _, el := range server.h3listeners {
579
if err := el.Close(); err != nil {
580
app.logger.Error("HTTP/3 listener close",
@@ -583,7 +583,7 @@ func (app *App) Stop() error {
583
}
584
}
585
586
- // TODO: CloseGracefully, once implemented upstream (see https://github.com/lucas-clemente/quic-go/issues/2103)
586
+ // TODO: CloseGracefully, once implemented upstream (see https://github.com/quic-go/quic-go/issues/2103)
587
if err := server.h3server.Close(); err != nil {
588
app.logger.Error("HTTP/3 server shutdown",
589
zap.Error(err),
modules/caddyhttp/caddyhttp.go
+1
-1
@@ -232,7 +232,7 @@ func SanitizedPathJoin(root, reqPath string) string {
232
root = "."
233
}
234
235
- path := filepath.Join(root, filepath.Clean("/"+reqPath))
235
+ path := filepath.Join(root, path.Clean("/"+reqPath))
236
237
// filepath.Join also cleans the path, and cleaning strips
238
// the trailing slash, so we need to re-add it afterwards.
modules/caddyhttp/server.go
+2
-2
@@ -33,8 +33,8 @@ import (
33
"github.com/caddyserver/caddy/v2/modules/caddyevents"
34
"github.com/caddyserver/caddy/v2/modules/caddytls"
35
"github.com/caddyserver/certmagic"
36
- "github.com/lucas-clemente/quic-go"
37
- "github.com/lucas-clemente/quic-go/http3"
36
+ "github.com/quic-go/quic-go"
37
+ "github.com/quic-go/quic-go/http3"
38
"go.uber.org/zap"
39
"go.uber.org/zap/zapcore"
40
)