[VOL-4291] Rw-core updates for gRPC migration
Change-Id: I8d5a554409115b29318089671ca4e1ab3fa98810
diff --git a/vendor/github.com/soheilhy/cmux/.travis.yml b/vendor/github.com/soheilhy/cmux/.travis.yml
index 4bc48e0..4d78a51 100644
--- a/vendor/github.com/soheilhy/cmux/.travis.yml
+++ b/vendor/github.com/soheilhy/cmux/.travis.yml
@@ -14,7 +14,7 @@
before_install:
- if [[ $TRAVIS_GO_VERSION == 1.6* ]]; then go get -u github.com/kisielk/errcheck; fi
- - if [[ $TRAVIS_GO_VERSION == 1.6* ]]; then go get -u github.com/golang/lint/golint; fi
+ - if [[ $TRAVIS_GO_VERSION == 1.6* ]]; then go get -u golang.org/x/lint/golint; fi
before_script:
- '! gofmt -s -l . | read'
diff --git a/vendor/github.com/soheilhy/cmux/README.md b/vendor/github.com/soheilhy/cmux/README.md
index 70306e6..c4191b7 100644
--- a/vendor/github.com/soheilhy/cmux/README.md
+++ b/vendor/github.com/soheilhy/cmux/README.md
@@ -25,7 +25,7 @@
// Create your protocol servers.
grpcS := grpc.NewServer()
-grpchello.RegisterGreeterServer(grpcs, &server{})
+grpchello.RegisterGreeterServer(grpcS, &server{})
httpS := &http.Server{
Handler: &helloHTTP1Handler{},
diff --git a/vendor/github.com/soheilhy/cmux/cmux.go b/vendor/github.com/soheilhy/cmux/cmux.go
index 8040342..5ba921e 100644
--- a/vendor/github.com/soheilhy/cmux/cmux.go
+++ b/vendor/github.com/soheilhy/cmux/cmux.go
@@ -15,6 +15,7 @@
package cmux
import (
+ "errors"
"fmt"
"io"
"net"
@@ -61,6 +62,9 @@
// listener is closed.
var ErrListenerClosed = errListenerClosed("mux: listener closed")
+// ErrServerClosed is returned from muxListener.Accept when mux server is closed.
+var ErrServerClosed = errors.New("mux: server closed")
+
// for readability of readTimeout
var noTimeout time.Duration
@@ -93,6 +97,8 @@
// Serve starts multiplexing the listener. Serve blocks and perhaps
// should be invoked concurrently within a go routine.
Serve() error
+ // Closes cmux server and stops accepting any connections on listener
+ Close()
// HandleError registers an error handler that handles listener errors.
HandleError(ErrorHandler)
// sets a timeout for the read of matchers
@@ -108,9 +114,10 @@
root net.Listener
bufLen int
errh ErrorHandler
- donec chan struct{}
sls []matchersListener
readTimeout time.Duration
+ donec chan struct{}
+ mu sync.Mutex
}
func matchersToMatchWriters(matchers []Matcher) []MatchWriter {
@@ -133,6 +140,7 @@
ml := muxListener{
Listener: m.root,
connc: make(chan net.Conn, m.bufLen),
+ donec: make(chan struct{}),
}
m.sls = append(m.sls, matchersListener{ss: matchers, l: ml})
return ml
@@ -146,7 +154,7 @@
var wg sync.WaitGroup
defer func() {
- close(m.donec)
+ m.closeDoneChans()
wg.Wait()
for _, sl := range m.sls {
@@ -204,6 +212,30 @@
}
}
+func (m *cMux) Close() {
+ m.closeDoneChans()
+}
+
+func (m *cMux) closeDoneChans() {
+ m.mu.Lock()
+ defer m.mu.Unlock()
+
+ select {
+ case <-m.donec:
+ // Already closed. Don't close again
+ default:
+ close(m.donec)
+ }
+ for _, sl := range m.sls {
+ select {
+ case <-sl.l.donec:
+ // Already closed. Don't close again
+ default:
+ close(sl.l.donec)
+ }
+ }
+}
+
func (m *cMux) HandleError(h ErrorHandler) {
m.errh = h
}
@@ -223,14 +255,19 @@
type muxListener struct {
net.Listener
connc chan net.Conn
+ donec chan struct{}
}
func (l muxListener) Accept() (net.Conn, error) {
- c, ok := <-l.connc
- if !ok {
- return nil, ErrListenerClosed
+ select {
+ case c, ok := <-l.connc:
+ if !ok {
+ return nil, ErrListenerClosed
+ }
+ return c, nil
+ case <-l.donec:
+ return nil, ErrServerClosed
}
- return c, nil
}
// MuxConn wraps a net.Conn and provides transparent sniffing of connection data.
diff --git a/vendor/github.com/soheilhy/cmux/go.mod b/vendor/github.com/soheilhy/cmux/go.mod
new file mode 100644
index 0000000..2be915f
--- /dev/null
+++ b/vendor/github.com/soheilhy/cmux/go.mod
@@ -0,0 +1,5 @@
+module github.com/soheilhy/cmux
+
+go 1.11
+
+require golang.org/x/net v0.0.0-20201202161906-c7110b5ffcbb
diff --git a/vendor/github.com/soheilhy/cmux/go.sum b/vendor/github.com/soheilhy/cmux/go.sum
new file mode 100644
index 0000000..bfa1676
--- /dev/null
+++ b/vendor/github.com/soheilhy/cmux/go.sum
@@ -0,0 +1,12 @@
+golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
+golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
+golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
+golang.org/x/net v0.0.0-20201202161906-c7110b5ffcbb h1:eBmm0M9fYhWpKZLjQUUKka/LtIxf46G4fxeEz5KJr9U=
+golang.org/x/net v0.0.0-20201202161906-c7110b5ffcbb/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU=
+golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
+golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
+golang.org/x/text v0.3.3 h1:cokOdA+Jmi5PJGXLlLllQSgYigAEfHXJAERHVMaCc2k=
+golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
+golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=