From 840c559490144619b5d212c369880dd52d1ee22d Mon Sep 17 00:00:00 2001 From: Darien Raymond Date: Thu, 17 Jan 2019 15:44:22 +0100 Subject: [PATCH] update dependencies --- .../lucas-clemente/quic-go/appveyor.yml | 34 ------------------- .../lucas-clemente/quic-go/codecov.yml | 18 ---------- .../internal/handshake/crypto_setup.go | 34 +++++++++++-------- external/update-deps.sh | 17 ++++++++-- 4 files changed, 35 insertions(+), 68 deletions(-) delete mode 100644 external/github.com/lucas-clemente/quic-go/appveyor.yml delete mode 100644 external/github.com/lucas-clemente/quic-go/codecov.yml mode change 100644 => 100755 external/update-deps.sh diff --git a/external/github.com/lucas-clemente/quic-go/appveyor.yml b/external/github.com/lucas-clemente/quic-go/appveyor.yml deleted file mode 100644 index e8bcf5c6..00000000 --- a/external/github.com/lucas-clemente/quic-go/appveyor.yml +++ /dev/null @@ -1,34 +0,0 @@ -version: "{build}" - -os: Windows Server 2012 R2 - -environment: - GOPATH: c:\gopath - CGO_ENABLED: 0 - TIMESCALE_FACTOR: 20 - matrix: - - GOARCH: 386 - - GOARCH: amd64 - -clone_folder: c:\gopath\src\v2ray.com/core/external/github.com\lucas-clemente\quic-go - -install: - - rmdir c:\go /s /q - - appveyor DownloadFile https://storage.googleapis.com/golang/go1.11.windows-amd64.zip - - 7z x go1.11.windows-amd64.zip -y -oC:\ > NUL - - set PATH=%PATH%;%GOPATH%\bin\windows_%GOARCH%;%GOPATH%\bin - - echo %PATH% - - echo %GOPATH% - - go get v2ray.com/core/external/github.com/onsi/ginkgo/ginkgo - - go get v2ray.com/core/external/github.com/onsi/gomega - - go version - - go env - - go get -v -t ./... - -build_script: - - ginkgo -r -v -randomizeAllSpecs -randomizeSuites -trace -skipPackage benchmark,integrationtests - - ginkgo -randomizeAllSpecs -randomizeSuites -trace benchmark -- -samples=1 - -test: off - -deploy: off diff --git a/external/github.com/lucas-clemente/quic-go/codecov.yml b/external/github.com/lucas-clemente/quic-go/codecov.yml deleted file mode 100644 index f077c1ad..00000000 --- a/external/github.com/lucas-clemente/quic-go/codecov.yml +++ /dev/null @@ -1,18 +0,0 @@ -coverage: - round: nearest - ignore: - - streams_map_incoming_bidi.go - - streams_map_incoming_uni.go - - streams_map_outgoing_bidi.go - - streams_map_outgoing_uni.go - - h2quic/gzipreader.go - - h2quic/response.go - - internal/ackhandler/packet_linkedlist.go - - internal/utils/byteinterval_linkedlist.go - - internal/utils/packetinterval_linkedlist.go - - internal/utils/linkedlist/linkedlist.go - status: - project: - default: - threshold: 0.5 - patch: false diff --git a/external/github.com/lucas-clemente/quic-go/internal/handshake/crypto_setup.go b/external/github.com/lucas-clemente/quic-go/internal/handshake/crypto_setup.go index b06306ac..bd0ef776 100644 --- a/external/github.com/lucas-clemente/quic-go/internal/handshake/crypto_setup.go +++ b/external/github.com/lucas-clemente/quic-go/internal/handshake/crypto_setup.go @@ -53,6 +53,7 @@ var ErrOpenerNotYetAvailable = errors.New("CryptoSetup: opener at this encryptio type cryptoSetup struct { tlsConf *qtls.Config + conn *qtls.Conn messageChan chan []byte @@ -124,7 +125,7 @@ func NewCryptoSetupClient( currentVersion, logger, ) - return newCryptoSetup( + cs, clientHelloWritten, err := newCryptoSetup( initialStream, handshakeStream, connID, @@ -135,6 +136,11 @@ func NewCryptoSetupClient( logger, perspective, ) + if err != nil { + return nil, nil, err + } + cs.conn = qtls.Client(nil, cs.tlsConf) + return cs, clientHelloWritten, nil } // NewCryptoSetupServer creates a new crypto setup for the server @@ -167,7 +173,11 @@ func NewCryptoSetupServer( logger, perspective, ) - return cs, err + if err != nil { + return nil, err + } + cs.conn = qtls.Server(nil, cs.tlsConf) + return cs, nil } func newCryptoSetup( @@ -180,7 +190,7 @@ func newCryptoSetup( tlsConf *tls.Config, logger utils.Logger, perspective protocol.Perspective, -) (CryptoSetup, <-chan struct{} /* ClientHello written */, error) { +) (*cryptoSetup, <-chan struct{} /* ClientHello written */, error) { initialSealer, initialOpener, err := NewInitialAEAD(connID, perspective) if err != nil { return nil, nil, err @@ -214,19 +224,12 @@ func newCryptoSetup( } func (h *cryptoSetup) RunHandshake() error { - var conn *qtls.Conn - switch h.perspective { - case protocol.PerspectiveClient: - conn = qtls.Client(nil, h.tlsConf) - case protocol.PerspectiveServer: - conn = qtls.Server(nil, h.tlsConf) - } // Handle errors that might occur when HandleData() is called. handshakeErrChan := make(chan error, 1) handshakeComplete := make(chan struct{}) go func() { defer close(h.handshakeDone) - if err := conn.Handshake(); err != nil { + if err := h.conn.Handshake(); err != nil { handshakeErrChan <- err return } @@ -327,7 +330,6 @@ func (h *cryptoSetup) handleMessageForServer(msgType messageType) bool { return false } // get the handshake read key - // TODO: check that the initial stream doesn't have any more data select { case <-h.receivedReadKey: case <-h.handshakeErrChan: @@ -526,6 +528,10 @@ func (h *cryptoSetup) GetOpener(level protocol.EncryptionLevel) (Opener, error) } func (h *cryptoSetup) ConnectionState() ConnectionState { - // TODO: return the connection state - return ConnectionState{} + connState := h.conn.ConnectionState() + return ConnectionState{ + HandshakeComplete: connState.HandshakeComplete, + ServerName: connState.ServerName, + PeerCertificates: connState.PeerCertificates, + } } diff --git a/external/update-deps.sh b/external/update-deps.sh old mode 100644 new mode 100755 index f1b9fec8..35555806 --- a/external/update-deps.sh +++ b/external/update-deps.sh @@ -17,9 +17,22 @@ rsync -rv "./github.com/lucas-clemente/quic-go/vendor/github.com/cloudflare/" ". rsync -rv "./github.com/lucas-clemente/quic-go/vendor/github.com/marten-seemann/" "./github.com/marten-seemann/" rm -rf "./github.com/lucas-clemente/quic-go/vendor/" -rsync -rv "$GOPATH/src/github.com/gorilla/websocket/" "$GOPATH/src/v2ray.com/core/external/github.com/gorilla/websocket/" +rsync -rv "$GOPATH/src/github.com/gorilla/websocket/" "./github.com/gorilla/websocket/" +rm -rf ./github.com/gorilla/websocket/\.* +rm -rf ./github.com/gorilla/websocket/examples +rm "./github.com/gorilla/websocket/.gitignore" +rm "./github.com/gorilla/websocket/client_clone_legacy.go" +rm "./github.com/gorilla/websocket/compression.go" +rm "./github.com/gorilla/websocket/conn_write_legacy.go" +rm "./github.com/gorilla/websocket/json.go" +rm "./github.com/gorilla/websocket/prepared.go" +rm "./github.com/gorilla/websocket/proxy.go" +rm "./github.com/gorilla/websocket/trace_17.go" +rm "./github.com/gorilla/websocket/trace.go" +rm "./github.com/gorilla/websocket/x_net_proxy.go" find . -name "*_test.go" -delete -find . -type f -print0 | LC_ALL=C xargs -0 sed -i '' 's#github\.com#v2ray\.com/core/external/github\.com#g' +find . -name "*.yml" -delete +find . -name "*.go" -type f -print0 | LC_ALL=C xargs -0 sed -i '' 's#github\.com#v2ray\.com/core/external/github\.com#g' popd