From 60b0cfa48f1782fadcb091b69e451d7029c65b38 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Thu, 7 Apr 2022 20:35:37 +0800 Subject: [PATCH] update 04-07 20:35 --- ...ore-use-Go-v1.18-update-dependencies.patch | 239 ++++++++++++++++++ ...nt-qtls-modules-for-different-Go-ver.patch | 152 +++++++++++ v2ray-core/patches/010-go-1.18.patch | 64 ----- v2ray-plugin/patches/010-go-1.18.patch | 6 +- 4 files changed, 394 insertions(+), 67 deletions(-) create mode 100644 v2ray-core/patches/0001-Chore-use-Go-v1.18-update-dependencies.patch create mode 100644 v2ray-core/patches/0002-Feat-use-different-qtls-modules-for-different-Go-ver.patch delete mode 100644 v2ray-core/patches/010-go-1.18.patch diff --git a/v2ray-core/patches/0001-Chore-use-Go-v1.18-update-dependencies.patch b/v2ray-core/patches/0001-Chore-use-Go-v1.18-update-dependencies.patch new file mode 100644 index 000000000..9fcc98ab8 --- /dev/null +++ b/v2ray-core/patches/0001-Chore-use-Go-v1.18-update-dependencies.patch @@ -0,0 +1,239 @@ +From 5d87cfc5c39d322801b99001388c5f88c4748b0f Mon Sep 17 00:00:00 2001 +From: Loyalsoldier <10487845+Loyalsoldier@users.noreply.github.com> +Date: Sun, 27 Mar 2022 01:43:02 +0800 +Subject: [PATCH 1/2] Chore: use Go v1.18 & update dependencies + +--- + .github/workflows/linter.yml | 2 +- + .github/workflows/release.yml | 4 ++-- + .github/workflows/test.yml | 2 +- + go.mod | 23 +++++++++--------- + go.sum | 44 +++++++++++++++++------------------ + 5 files changed, 38 insertions(+), 37 deletions(-) + +diff --git a/.github/workflows/linter.yml b/.github/workflows/linter.yml +index 1f4a58b4..69f460c9 100644 +--- a/.github/workflows/linter.yml ++++ b/.github/workflows/linter.yml +@@ -22,7 +22,7 @@ jobs: + - name: Set up Go 1.x + uses: actions/setup-go@v2 + with: +- go-version: ^1.17 ++ go-version: ^1.18 + + - name: Checkout codebase + uses: actions/checkout@v2 +diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml +index 2f460aeb..3633bd53 100644 +--- a/.github/workflows/release.yml ++++ b/.github/workflows/release.yml +@@ -119,7 +119,7 @@ jobs: + - name: Set up Go + uses: actions/setup-go@v2 + with: +- go-version: ^1.17 ++ go-version: ^1.18 + + - name: Get project dependencies + run: go mod download +@@ -187,7 +187,7 @@ jobs: + - name: Set up Go + uses: actions/setup-go@v2 + with: +- go-version: ^1.17 ++ go-version: ^1.18 + + - uses: actions/download-artifact@v2 + with: +diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml +index 2a86ba2c..059114b8 100644 +--- a/.github/workflows/test.yml ++++ b/.github/workflows/test.yml +@@ -30,7 +30,7 @@ jobs: + - name: Set up Go 1.x + uses: actions/setup-go@v2 + with: +- go-version: ^1.17 ++ go-version: ^1.18 + + - name: Checkout codebase + uses: actions/checkout@v2 +diff --git a/go.mod b/go.mod +index d9d96097..87752bac 100644 +--- a/go.mod ++++ b/go.mod +@@ -1,6 +1,6 @@ + module github.com/v2fly/v2ray-core/v5 + +-go 1.17 ++go 1.18 + + require ( + github.com/go-chi/chi/v5 v5.0.7 +@@ -11,23 +11,23 @@ require ( + github.com/google/go-cmp v0.5.6 + github.com/gorilla/websocket v1.4.2 + github.com/jhump/protoreflect v1.10.1 +- github.com/lucas-clemente/quic-go v0.24.0 +- github.com/marten-seemann/qtls-go1-17 v0.1.0 ++ github.com/lucas-clemente/quic-go v0.26.0 ++ github.com/marten-seemann/qtls-go1-17 v0.1.1 + github.com/miekg/dns v1.1.45 + github.com/pelletier/go-toml v1.9.4 + github.com/pires/go-proxyproto v0.6.1 +- github.com/seiflotfy/cuckoofilter v0.0.0-20201222105146-bc6005554a0c ++ github.com/seiflotfy/cuckoofilter v0.0.0-20220312154859-af7fbb8e765b + github.com/stretchr/testify v1.7.0 + github.com/v2fly/BrowserBridge v0.0.0-20210430233438-0570fc1d7d08 + github.com/v2fly/VSign v0.0.0-20201108000810-e2adc24bf848 + github.com/v2fly/ss-bloomring v0.0.0-20210312155135-28617310f63e +- go.starlark.net v0.0.0-20211203141949-70c0e40ae128 +- golang.org/x/crypto v0.0.0-20211202192323-5770296d904e +- golang.org/x/net v0.0.0-20211205041911-012df41ee64c ++ go.starlark.net v0.0.0-20220302181546-5411bad688d1 ++ golang.org/x/crypto v0.0.0-20220321153916-2c7772ba3064 ++ golang.org/x/net v0.0.0-20220325170049-de3da57026de + golang.org/x/sync v0.0.0-20210220032951-036812b2e83c +- golang.org/x/sys v0.0.0-20211205182925-97ca703d548d ++ golang.org/x/sys v0.0.0-20220325203850-36772127a21f + google.golang.org/grpc v1.42.0 +- google.golang.org/protobuf v1.27.1 ++ google.golang.org/protobuf v1.28.0 + gopkg.in/yaml.v2 v2.4.0 + h12.io/socks v1.0.3 + inet.af/netaddr v0.0.0-20211027220019-c74959edd3b6 +@@ -44,7 +44,8 @@ require ( + github.com/go-task/slim-sprig v0.0.0-20210107165309-348f09dbbbc0 // indirect + github.com/leodido/go-urn v1.2.1 // indirect + github.com/lunixbochs/struc v0.0.0-20200707160740-784aaebc1d40 // indirect +- github.com/marten-seemann/qtls-go1-16 v0.1.4 // indirect ++ github.com/marten-seemann/qtls-go1-16 v0.1.5 // indirect ++ github.com/marten-seemann/qtls-go1-18 v0.1.1 // indirect + github.com/nxadm/tail v1.4.8 // indirect + github.com/onsi/ginkgo v1.16.4 // indirect + github.com/pmezard/go-difflib v1.0.0 // indirect +@@ -53,7 +54,7 @@ require ( + go4.org/intern v0.0.0-20211027215823-ae77deb06f29 // indirect + go4.org/unsafe/assume-no-moving-gc v0.0.0-20211027215541-db492cf91b37 // indirect + golang.org/x/mod v0.4.2 // indirect +- golang.org/x/text v0.3.6 // indirect ++ golang.org/x/text v0.3.7 // indirect + golang.org/x/tools v0.1.6-0.20210726203631-07bc1bf47fb2 // indirect + golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1 // indirect + google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013 // indirect +diff --git a/go.sum b/go.sum +index 3a050afc..2a9ee306 100644 +--- a/go.sum ++++ b/go.sum +@@ -209,19 +209,20 @@ github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= + github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= + github.com/leodido/go-urn v1.2.1 h1:BqpAaACuzVSgi/VLzGZIobT2z4v53pjosyNd9Yv6n/w= + github.com/leodido/go-urn v1.2.1/go.mod h1:zt4jvISO2HfUBqxjfIshjdMTYS56ZS/qv49ictyFfxY= +-github.com/lucas-clemente/quic-go v0.24.0 h1:ToR7SIIEdrgOhgVTHvPgdVRJfgVy+N0wQAagH7L4d5g= +-github.com/lucas-clemente/quic-go v0.24.0/go.mod h1:paZuzjXCE5mj6sikVLMvqXk8lJV2AsqtJ6bDhjEfxx0= ++github.com/lucas-clemente/quic-go v0.26.0 h1:ALBQXr9UJ8A1LyzvceX4jd9QFsHvlI0RR6BkV16o00A= ++github.com/lucas-clemente/quic-go v0.26.0/go.mod h1:AzgQoPda7N+3IqMMMkywBKggIFo2KT6pfnlrQ2QieeI= + github.com/lunixbochs/struc v0.0.0-20200707160740-784aaebc1d40 h1:EnfXoSqDfSNJv0VBNqY/88RNnhSGYkrHaO0mmFGbVsc= + github.com/lunixbochs/struc v0.0.0-20200707160740-784aaebc1d40/go.mod h1:vy1vK6wD6j7xX6O6hXe621WabdtNkou2h7uRtTfRMyg= + github.com/lunixbochs/vtclean v1.0.0/go.mod h1:pHhQNgMf3btfWnGBVipUOjRYhoOsdGqdm/+2c2E2WMI= + github.com/magiconair/properties v1.8.1/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= + github.com/mailru/easyjson v0.0.0-20190312143242-1de009706dbe/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= + github.com/marten-seemann/qpack v0.2.1/go.mod h1:F7Gl5L1jIgN1D11ucXefiuJS9UMVP2opoCp2jDKb7wc= +-github.com/marten-seemann/qtls-go1-15 v0.1.4/go.mod h1:GyFwywLKkRt+6mfU99csTEY1joMZz5vmB1WNZH3P81I= +-github.com/marten-seemann/qtls-go1-16 v0.1.4 h1:xbHbOGGhrenVtII6Co8akhLEdrawwB2iHl5yhJRpnco= +-github.com/marten-seemann/qtls-go1-16 v0.1.4/go.mod h1:gNpI2Ol+lRS3WwSOtIUUtRwZEQMXjYK+dQSBFbethAk= +-github.com/marten-seemann/qtls-go1-17 v0.1.0 h1:P9ggrs5xtwiqXv/FHNwntmuLMNq3KaSIG93AtAZ48xk= +-github.com/marten-seemann/qtls-go1-17 v0.1.0/go.mod h1:fz4HIxByo+LlWcreM4CZOYNuz3taBQ8rN2X6FqvaWo8= ++github.com/marten-seemann/qtls-go1-16 v0.1.5 h1:o9JrYPPco/Nukd/HpOHMHZoBDXQqoNtUCmny98/1uqQ= ++github.com/marten-seemann/qtls-go1-16 v0.1.5/go.mod h1:gNpI2Ol+lRS3WwSOtIUUtRwZEQMXjYK+dQSBFbethAk= ++github.com/marten-seemann/qtls-go1-17 v0.1.1 h1:DQjHPq+aOzUeh9/lixAGunn6rIOQyWChPSI4+hgW7jc= ++github.com/marten-seemann/qtls-go1-17 v0.1.1/go.mod h1:C2ekUKcDdz9SDWxec1N/MvcXBpaX9l3Nx67XaR84L5s= ++github.com/marten-seemann/qtls-go1-18 v0.1.1 h1:qp7p7XXUFL7fpBvSS1sWD+uSqPvzNQK43DH+/qEkj0Y= ++github.com/marten-seemann/qtls-go1-18 v0.1.1/go.mod h1:mJttiymBAByA49mhlNZZGrH5u1uXYZJ+RW28Py7f4m4= + github.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU= + github.com/mattn/go-isatty v0.0.3/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4= + github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= +@@ -298,8 +299,8 @@ github.com/russross/blackfriday v1.5.2/go.mod h1:JO/DiYxRf+HjHt06OyowR9PTA263kcR + github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= + github.com/ryanuber/columnize v0.0.0-20160712163229-9b3edd62028f/go.mod h1:sm1tb6uqfes/u+d4ooFouqFdy9/2g9QGwK3SQygK0Ts= + github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529/go.mod h1:DxrIzT+xaE7yg65j358z/aeFdxmN0P9QXhEzd20vsDc= +-github.com/seiflotfy/cuckoofilter v0.0.0-20201222105146-bc6005554a0c h1:pqy40B3MQWYrza7YZXOXgl0Nf0QGFqrOC0BKae1UNAA= +-github.com/seiflotfy/cuckoofilter v0.0.0-20201222105146-bc6005554a0c/go.mod h1:bR6DqgcAl1zTcOX8/pE2Qkj9XO00eCNqmKb7lXP8EAg= ++github.com/seiflotfy/cuckoofilter v0.0.0-20220312154859-af7fbb8e765b h1:wHoB6ZYEnIVizebcj419LbN4Tagk7RDFiudRFKyzzmo= ++github.com/seiflotfy/cuckoofilter v0.0.0-20220312154859-af7fbb8e765b/go.mod h1:bR6DqgcAl1zTcOX8/pE2Qkj9XO00eCNqmKb7lXP8EAg= + github.com/sergi/go-diff v1.0.0/go.mod h1:0CfEIISq7TuYL3j771MWULgwwjU+GofnZX9QAmXWZgo= + github.com/shurcooL/component v0.0.0-20170202220835-f88ec8f54cc4/go.mod h1:XhFIlyj5a1fBNx5aJTbKoIq0mNaPvOagO+HjB3EtxrY= + github.com/shurcooL/events v0.0.0-20181021180414-410e4ca65f48/go.mod h1:5u70Mqkb5O5cxEA8nxTsgrgLehJeAw6Oc4Ab1c/P1HM= +@@ -371,12 +372,11 @@ go.opencensus.io v0.18.0/go.mod h1:vKdFvxhtzZ9onBp9VKHK8z/sRpBMnKAsufL7wlDrCOA= + go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU= + go.opencensus.io v0.22.0/go.mod h1:+kGneAE2xo2IficOXnaByMWTGM9T73dGwxeWcUqIpI8= + go.opentelemetry.io/proto/otlp v0.7.0/go.mod h1:PqfVotwruBrMGOCsRd/89rSnXhoiJIqeYNgFYFoEGnI= +-go.starlark.net v0.0.0-20211203141949-70c0e40ae128 h1:bxH+EXOo87zEOwKDdZ8Tevgi6irRbqheRm/fr293c58= +-go.starlark.net v0.0.0-20211203141949-70c0e40ae128/go.mod h1:t3mmBBPzAVvK0L0n1drDmrQsJ8FoIx4INCqVMTr/Zo0= ++go.starlark.net v0.0.0-20220302181546-5411bad688d1 h1:i0Sz4b+qJi5xwOaFZqZ+RNHkIpaKLDofei/Glt+PMNc= ++go.starlark.net v0.0.0-20220302181546-5411bad688d1/go.mod h1:t3mmBBPzAVvK0L0n1drDmrQsJ8FoIx4INCqVMTr/Zo0= + go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= + go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0= + go.uber.org/zap v1.10.0/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q= +-go4.org v0.0.0-20180809161055-417644f6feb5 h1:+hE86LblG4AyDgwMCLTE6FOlM9+qjHSYS+rKqxUVdsM= + go4.org v0.0.0-20180809161055-417644f6feb5/go.mod h1:MkTOUMDaeVYJUOUsaDXIhWPZYa1yOyC1qaOBpL57BhE= + go4.org/intern v0.0.0-20211027215823-ae77deb06f29 h1:UXLjNohABv4S58tHmeuIZDO6e3mHpW2Dx33gaNt03LE= + go4.org/intern v0.0.0-20211027215823-ae77deb06f29/go.mod h1:cS2ma+47FKrLPdXFpr7CuxiTW3eyJbWew4qx0qtQWDA= +@@ -395,8 +395,8 @@ golang.org/x/crypto v0.0.0-20200221231518-2aa609cf4a9d/go.mod h1:LzIPMQfyMNhhGPh + golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= + golang.org/x/crypto v0.0.0-20210322153248-0c34fe9e7dc2/go.mod h1:T9bdIzuCu7OtxOm1hfPfRQxPLYneinmdGuTeoZ9dtd4= + golang.org/x/crypto v0.0.0-20210711020723-a769d52b0f97/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= +-golang.org/x/crypto v0.0.0-20211202192323-5770296d904e h1:MUP6MR3rJ7Gk9LEia0LP2ytiH6MuCfs7qYz+47jGdD8= +-golang.org/x/crypto v0.0.0-20211202192323-5770296d904e/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= ++golang.org/x/crypto v0.0.0-20220321153916-2c7772ba3064 h1:S25/rfnfsMVgORT4/J61MJ7rdyseOZOyvLIrZEZ7s6s= ++golang.org/x/crypto v0.0.0-20220321153916-2c7772ba3064/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= + golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= + golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= + golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8= +@@ -448,9 +448,8 @@ golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v + golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM= + golang.org/x/net v0.0.0-20210428140749-89ef3d95e781/go.mod h1:OJAsFXCWl8Ukc7SiCT/9KSuxbyM7479/AVlXFRxuMCk= + golang.org/x/net v0.0.0-20210726213435-c6fcb2dbf985/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= +-golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= +-golang.org/x/net v0.0.0-20211205041911-012df41ee64c h1:7SfqwP5fxEtl/P02w5IhKc86ziJ+A25yFrkVgoy2FT8= +-golang.org/x/net v0.0.0-20211205041911-012df41ee64c/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= ++golang.org/x/net v0.0.0-20220325170049-de3da57026de h1:pZB1TWnKi+o4bENlbzAgLrEbY4RMYmUIRobMcSmfeYc= ++golang.org/x/net v0.0.0-20220325170049-de3da57026de/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= + golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= + golang.org/x/oauth2 v0.0.0-20181017192945-9dcd33a902f4/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= + golang.org/x/oauth2 v0.0.0-20181203162652-d668ce993890/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= +@@ -501,15 +500,16 @@ golang.org/x/sys v0.0.0-20210510120138-977fb7262007/go.mod h1:oPkhp1MJrh7nUepCBc + golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= + golang.org/x/sys v0.0.0-20210630005230-0f9fa26af87c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= + golang.org/x/sys v0.0.0-20210806184541-e5e7981a1069/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +-golang.org/x/sys v0.0.0-20211205182925-97ca703d548d h1:FjkYO/PPp4Wi0EAUOVLxePm7qVW4r4ctbWpURyuOD0E= +-golang.org/x/sys v0.0.0-20211205182925-97ca703d548d/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= ++golang.org/x/sys v0.0.0-20220325203850-36772127a21f h1:TrmogKRsSOxRMJbLYGrB4SBbW+LJcEllYBLME5Zk5pU= ++golang.org/x/sys v0.0.0-20220325203850-36772127a21f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= + golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= + golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= + golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= + golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= + golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= +-golang.org/x/text v0.3.6 h1:aRYxNxv6iGQlyVaZmk6ZgYEDa+Jg18DxebPSrd6bg1M= + golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= ++golang.org/x/text v0.3.7 h1:olpwvP2KacW1ZWvsR7uQhoyTYvKAupfQrRGBFM352Gk= ++golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= + golang.org/x/time v0.0.0-20180412165947-fbb02b2291d2/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= + golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= + golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= +@@ -602,8 +602,8 @@ google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlba + google.golang.org/protobuf v1.25.1-0.20200805231151-a709e31e5d12/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c= + google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= + google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= +-google.golang.org/protobuf v1.27.1 h1:SnqbnDw1V7RiZcXPx5MEeqPv2s79L9i7BJUlG/+RurQ= +-google.golang.org/protobuf v1.27.1/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= ++google.golang.org/protobuf v1.28.0 h1:w43yiav+6bVFTBQFZX0r7ipe9JQ1QsbMgHwbBziscLw= ++google.golang.org/protobuf v1.28.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= + gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= + gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= + gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +-- +2.35.1 + diff --git a/v2ray-core/patches/0002-Feat-use-different-qtls-modules-for-different-Go-ver.patch b/v2ray-core/patches/0002-Feat-use-different-qtls-modules-for-different-Go-ver.patch new file mode 100644 index 000000000..02a84435c --- /dev/null +++ b/v2ray-core/patches/0002-Feat-use-different-qtls-modules-for-different-Go-ver.patch @@ -0,0 +1,152 @@ +From 691abd3fdd0ec526dac81fcea81723f74f6cef46 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?=E7=A7=8B=E3=81=AE=E3=81=8B=E3=81=88=E3=81=A7?= + +Date: Tue, 5 Apr 2022 14:17:19 +0800 +Subject: [PATCH 2/2] Feat: use different qtls modules for different Go version + +--- + common/protocol/quic/qtls_go116.go | 19 +++++++++++++++++++ + common/protocol/quic/qtls_go117.go | 19 +++++++++++++++++++ + common/protocol/quic/qtls_go118.go | 19 +++++++++++++++++++ + common/protocol/quic/sniff.go | 7 +++---- + go.mod | 4 ++-- + 5 files changed, 62 insertions(+), 6 deletions(-) + create mode 100644 common/protocol/quic/qtls_go116.go + create mode 100644 common/protocol/quic/qtls_go117.go + create mode 100644 common/protocol/quic/qtls_go118.go + +diff --git a/common/protocol/quic/qtls_go116.go b/common/protocol/quic/qtls_go116.go +new file mode 100644 +index 00000000..da849ea3 +--- /dev/null ++++ b/common/protocol/quic/qtls_go116.go +@@ -0,0 +1,19 @@ ++//go:build go1.16 && !go1.17 ++// +build go1.16,!go1.17 ++ ++package quic ++ ++import ( ++ "crypto/cipher" ++ ++ "github.com/marten-seemann/qtls-go1-16" ++) ++ ++type ( ++ // A CipherSuiteTLS13 is a cipher suite for TLS 1.3 ++ CipherSuiteTLS13 = qtls.CipherSuiteTLS13 ++) ++ ++func AEADAESGCMTLS13(key, fixedNonce []byte) cipher.AEAD { ++ return qtls.AEADAESGCMTLS13(key, fixedNonce) ++} +diff --git a/common/protocol/quic/qtls_go117.go b/common/protocol/quic/qtls_go117.go +new file mode 100644 +index 00000000..08e8d483 +--- /dev/null ++++ b/common/protocol/quic/qtls_go117.go +@@ -0,0 +1,19 @@ ++//go:build go1.17 && !go1.18 ++// +build go1.17,!go1.18 ++ ++package quic ++ ++import ( ++ "crypto/cipher" ++ ++ "github.com/marten-seemann/qtls-go1-17" ++) ++ ++type ( ++ // A CipherSuiteTLS13 is a cipher suite for TLS 1.3 ++ CipherSuiteTLS13 = qtls.CipherSuiteTLS13 ++) ++ ++func AEADAESGCMTLS13(key, fixedNonce []byte) cipher.AEAD { ++ return qtls.AEADAESGCMTLS13(key, fixedNonce) ++} +diff --git a/common/protocol/quic/qtls_go118.go b/common/protocol/quic/qtls_go118.go +new file mode 100644 +index 00000000..0bcacff2 +--- /dev/null ++++ b/common/protocol/quic/qtls_go118.go +@@ -0,0 +1,19 @@ ++//go:build go1.18 ++// +build go1.18 ++ ++package quic ++ ++import ( ++ "crypto/cipher" ++ ++ "github.com/marten-seemann/qtls-go1-18" ++) ++ ++type ( ++ // A CipherSuiteTLS13 is a cipher suite for TLS 1.3 ++ CipherSuiteTLS13 = qtls.CipherSuiteTLS13 ++) ++ ++func AEADAESGCMTLS13(key, fixedNonce []byte) cipher.AEAD { ++ return qtls.AEADAESGCMTLS13(key, fixedNonce) ++} +diff --git a/common/protocol/quic/sniff.go b/common/protocol/quic/sniff.go +index 0a78050b..d0421309 100644 +--- a/common/protocol/quic/sniff.go ++++ b/common/protocol/quic/sniff.go +@@ -8,7 +8,6 @@ import ( + "io" + + "github.com/lucas-clemente/quic-go/quicvarint" +- "github.com/marten-seemann/qtls-go1-17" + "golang.org/x/crypto/hkdf" + + "github.com/v2fly/v2ray-core/v5/common" +@@ -37,10 +36,10 @@ const ( + var ( + quicSaltOld = []byte{0xaf, 0xbf, 0xec, 0x28, 0x99, 0x93, 0xd2, 0x4c, 0x9e, 0x97, 0x86, 0xf1, 0x9c, 0x61, 0x11, 0xe0, 0x43, 0x90, 0xa8, 0x99} + quicSalt = []byte{0x38, 0x76, 0x2c, 0xf7, 0xf5, 0x59, 0x34, 0xb3, 0x4d, 0x17, 0x9a, 0xe6, 0xa4, 0xc8, 0x0c, 0xad, 0xcc, 0xbb, 0x7f, 0x0a} +- initialSuite = &qtls.CipherSuiteTLS13{ ++ initialSuite = &CipherSuiteTLS13{ + ID: tls.TLS_AES_128_GCM_SHA256, + KeyLen: 16, +- AEAD: qtls.AEADAESGCMTLS13, ++ AEAD: AEADAESGCMTLS13, + Hash: crypto.SHA256, + } + errNotQuic = errors.New("not quic") +@@ -153,7 +152,7 @@ func SniffQUIC(b []byte) (*SniffHeader, error) { + + key := hkdfExpandLabel(crypto.SHA256, secret, []byte{}, "quic key", 16) + iv := hkdfExpandLabel(crypto.SHA256, secret, []byte{}, "quic iv", 12) +- cipher := qtls.AEADAESGCMTLS13(key, iv) ++ cipher := AEADAESGCMTLS13(key, iv) + nonce := cache.Extend(int32(cipher.NonceSize())) + binary.BigEndian.PutUint64(nonce[len(nonce)-8:], uint64(packetNumber)) + decrypted, err := cipher.Open(b[extHdrLen:extHdrLen], nonce, data, b[:extHdrLen]) +diff --git a/go.mod b/go.mod +index 87752bac..46a525bd 100644 +--- a/go.mod ++++ b/go.mod +@@ -12,7 +12,9 @@ require ( + github.com/gorilla/websocket v1.4.2 + github.com/jhump/protoreflect v1.10.1 + github.com/lucas-clemente/quic-go v0.26.0 ++ github.com/marten-seemann/qtls-go1-16 v0.1.5 + github.com/marten-seemann/qtls-go1-17 v0.1.1 ++ github.com/marten-seemann/qtls-go1-18 v0.1.1 + github.com/miekg/dns v1.1.45 + github.com/pelletier/go-toml v1.9.4 + github.com/pires/go-proxyproto v0.6.1 +@@ -44,8 +46,6 @@ require ( + github.com/go-task/slim-sprig v0.0.0-20210107165309-348f09dbbbc0 // indirect + github.com/leodido/go-urn v1.2.1 // indirect + github.com/lunixbochs/struc v0.0.0-20200707160740-784aaebc1d40 // indirect +- github.com/marten-seemann/qtls-go1-16 v0.1.5 // indirect +- github.com/marten-seemann/qtls-go1-18 v0.1.1 // indirect + github.com/nxadm/tail v1.4.8 // indirect + github.com/onsi/ginkgo v1.16.4 // indirect + github.com/pmezard/go-difflib v1.0.0 // indirect +-- +2.35.1 + diff --git a/v2ray-core/patches/010-go-1.18.patch b/v2ray-core/patches/010-go-1.18.patch deleted file mode 100644 index 53ea65bf4..000000000 --- a/v2ray-core/patches/010-go-1.18.patch +++ /dev/null @@ -1,64 +0,0 @@ ---- a/common/protocol/quic/sniff.go -+++ b/common/protocol/quic/sniff.go -@@ -8,7 +8,7 @@ import ( - "io" - - "github.com/lucas-clemente/quic-go/quicvarint" -- "github.com/marten-seemann/qtls-go1-17" -+ "github.com/marten-seemann/qtls-go1-18" - "golang.org/x/crypto/hkdf" - - "github.com/v2fly/v2ray-core/v5/common" ---- a/go.mod -+++ b/go.mod -@@ -11,8 +11,8 @@ require ( - github.com/google/go-cmp v0.5.6 - github.com/gorilla/websocket v1.4.2 - github.com/jhump/protoreflect v1.10.1 -- github.com/lucas-clemente/quic-go v0.24.0 -- github.com/marten-seemann/qtls-go1-17 v0.1.0 -+ github.com/lucas-clemente/quic-go v0.26.0 -+ github.com/marten-seemann/qtls-go1-18 v0.1.1 - github.com/miekg/dns v1.1.45 - github.com/pelletier/go-toml v1.9.4 - github.com/pires/go-proxyproto v0.6.1 -@@ -44,7 +44,8 @@ require ( - github.com/go-task/slim-sprig v0.0.0-20210107165309-348f09dbbbc0 // indirect - github.com/leodido/go-urn v1.2.1 // indirect - github.com/lunixbochs/struc v0.0.0-20200707160740-784aaebc1d40 // indirect -- github.com/marten-seemann/qtls-go1-16 v0.1.4 // indirect -+ github.com/marten-seemann/qtls-go1-16 v0.1.5 // indirect -+ github.com/marten-seemann/qtls-go1-17 v0.1.1 // indirect - github.com/nxadm/tail v1.4.8 // indirect - github.com/onsi/ginkgo v1.16.4 // indirect - github.com/pmezard/go-difflib v1.0.0 // indirect ---- a/go.sum -+++ b/go.sum -@@ -209,19 +209,20 @@ github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2 - github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= - github.com/leodido/go-urn v1.2.1 h1:BqpAaACuzVSgi/VLzGZIobT2z4v53pjosyNd9Yv6n/w= - github.com/leodido/go-urn v1.2.1/go.mod h1:zt4jvISO2HfUBqxjfIshjdMTYS56ZS/qv49ictyFfxY= --github.com/lucas-clemente/quic-go v0.24.0 h1:ToR7SIIEdrgOhgVTHvPgdVRJfgVy+N0wQAagH7L4d5g= --github.com/lucas-clemente/quic-go v0.24.0/go.mod h1:paZuzjXCE5mj6sikVLMvqXk8lJV2AsqtJ6bDhjEfxx0= -+github.com/lucas-clemente/quic-go v0.26.0 h1:ALBQXr9UJ8A1LyzvceX4jd9QFsHvlI0RR6BkV16o00A= -+github.com/lucas-clemente/quic-go v0.26.0/go.mod h1:AzgQoPda7N+3IqMMMkywBKggIFo2KT6pfnlrQ2QieeI= - github.com/lunixbochs/struc v0.0.0-20200707160740-784aaebc1d40 h1:EnfXoSqDfSNJv0VBNqY/88RNnhSGYkrHaO0mmFGbVsc= - github.com/lunixbochs/struc v0.0.0-20200707160740-784aaebc1d40/go.mod h1:vy1vK6wD6j7xX6O6hXe621WabdtNkou2h7uRtTfRMyg= - github.com/lunixbochs/vtclean v1.0.0/go.mod h1:pHhQNgMf3btfWnGBVipUOjRYhoOsdGqdm/+2c2E2WMI= - github.com/magiconair/properties v1.8.1/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= - github.com/mailru/easyjson v0.0.0-20190312143242-1de009706dbe/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= - github.com/marten-seemann/qpack v0.2.1/go.mod h1:F7Gl5L1jIgN1D11ucXefiuJS9UMVP2opoCp2jDKb7wc= --github.com/marten-seemann/qtls-go1-15 v0.1.4/go.mod h1:GyFwywLKkRt+6mfU99csTEY1joMZz5vmB1WNZH3P81I= --github.com/marten-seemann/qtls-go1-16 v0.1.4 h1:xbHbOGGhrenVtII6Co8akhLEdrawwB2iHl5yhJRpnco= --github.com/marten-seemann/qtls-go1-16 v0.1.4/go.mod h1:gNpI2Ol+lRS3WwSOtIUUtRwZEQMXjYK+dQSBFbethAk= --github.com/marten-seemann/qtls-go1-17 v0.1.0 h1:P9ggrs5xtwiqXv/FHNwntmuLMNq3KaSIG93AtAZ48xk= --github.com/marten-seemann/qtls-go1-17 v0.1.0/go.mod h1:fz4HIxByo+LlWcreM4CZOYNuz3taBQ8rN2X6FqvaWo8= -+github.com/marten-seemann/qtls-go1-16 v0.1.5 h1:o9JrYPPco/Nukd/HpOHMHZoBDXQqoNtUCmny98/1uqQ= -+github.com/marten-seemann/qtls-go1-16 v0.1.5/go.mod h1:gNpI2Ol+lRS3WwSOtIUUtRwZEQMXjYK+dQSBFbethAk= -+github.com/marten-seemann/qtls-go1-17 v0.1.1 h1:DQjHPq+aOzUeh9/lixAGunn6rIOQyWChPSI4+hgW7jc= -+github.com/marten-seemann/qtls-go1-17 v0.1.1/go.mod h1:C2ekUKcDdz9SDWxec1N/MvcXBpaX9l3Nx67XaR84L5s= -+github.com/marten-seemann/qtls-go1-18 v0.1.1 h1:qp7p7XXUFL7fpBvSS1sWD+uSqPvzNQK43DH+/qEkj0Y= -+github.com/marten-seemann/qtls-go1-18 v0.1.1/go.mod h1:mJttiymBAByA49mhlNZZGrH5u1uXYZJ+RW28Py7f4m4= - github.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU= - github.com/mattn/go-isatty v0.0.3/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4= - github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= diff --git a/v2ray-plugin/patches/010-go-1.18.patch b/v2ray-plugin/patches/010-go-1.18.patch index 3dfd496b7..c0a9c1614 100644 --- a/v2ray-plugin/patches/010-go-1.18.patch +++ b/v2ray-plugin/patches/010-go-1.18.patch @@ -7,7 +7,7 @@ - github.com/lucas-clemente/quic-go v0.24.0 // indirect - github.com/marten-seemann/qtls-go1-16 v0.1.4 // indirect - github.com/marten-seemann/qtls-go1-17 v0.1.0 // indirect -+ github.com/lucas-clemente/quic-go v0.25.0 // indirect ++ github.com/lucas-clemente/quic-go v0.26.0 // indirect + github.com/marten-seemann/qtls-go1-16 v0.1.5 // indirect + github.com/marten-seemann/qtls-go1-17 v0.1.1 // indirect + github.com/marten-seemann/qtls-go1-18 v0.1.1 // indirect @@ -22,8 +22,8 @@ github.com/leodido/go-urn v1.2.1/go.mod h1:zt4jvISO2HfUBqxjfIshjdMTYS56ZS/qv49ictyFfxY= -github.com/lucas-clemente/quic-go v0.24.0 h1:ToR7SIIEdrgOhgVTHvPgdVRJfgVy+N0wQAagH7L4d5g= github.com/lucas-clemente/quic-go v0.24.0/go.mod h1:paZuzjXCE5mj6sikVLMvqXk8lJV2AsqtJ6bDhjEfxx0= -+github.com/lucas-clemente/quic-go v0.25.0 h1:K+X9Gvd7JXsOHtU0N2icZ2Nw3rx82uBej3mP4CLgibc= -+github.com/lucas-clemente/quic-go v0.25.0/go.mod h1:YtzP8bxRVCBlO77yRanE264+fY/T2U9ZlW1AaHOsMOg= ++github.com/lucas-clemente/quic-go v0.26.0 h1:ALBQXr9UJ8A1LyzvceX4jd9QFsHvlI0RR6BkV16o00A= ++github.com/lucas-clemente/quic-go v0.26.0/go.mod h1:AzgQoPda7N+3IqMMMkywBKggIFo2KT6pfnlrQ2QieeI= github.com/lunixbochs/struc v0.0.0-20200707160740-784aaebc1d40 h1:EnfXoSqDfSNJv0VBNqY/88RNnhSGYkrHaO0mmFGbVsc= github.com/lunixbochs/struc v0.0.0-20200707160740-784aaebc1d40/go.mod h1:vy1vK6wD6j7xX6O6hXe621WabdtNkou2h7uRtTfRMyg= github.com/lunixbochs/vtclean v1.0.0/go.mod h1:pHhQNgMf3btfWnGBVipUOjRYhoOsdGqdm/+2c2E2WMI=