@marcel91200 / caddy Mirror · read-only / commits / e62b5fb5
Fork 0

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 )