diff --git a/Gopkg.lock b/Gopkg.lock index 16942c8f3..2e75a2d6b 100644 --- a/Gopkg.lock +++ b/Gopkg.lock @@ -1217,7 +1217,7 @@ "roundrobin", "utils" ] - revision = "6956548a7fa4272adeadf828455109c53933ea86" + revision = "7a2284ad8d6f4d362a6b38f3cdcc812291dce293" [[projects]] name = "github.com/vulcand/predicate" diff --git a/vendor/github.com/vulcand/oxy/buffer/buffer.go b/vendor/github.com/vulcand/oxy/buffer/buffer.go index 6224fb8c7..e3ee40b33 100644 --- a/vendor/github.com/vulcand/oxy/buffer/buffer.go +++ b/vendor/github.com/vulcand/oxy/buffer/buffer.go @@ -199,7 +199,7 @@ func (b *Buffer) ServeHTTP(w http.ResponseWriter, req *http.Request) { if log.GetLevel() >= log.DebugLevel { logEntry := log.WithField("Request", utils.DumpHttpRequest(req)) logEntry.Debug("vulcand/oxy/buffer: begin ServeHttp on request") - defer logEntry.Debug("vulcand/oxy/buffer: competed ServeHttp on request") + defer logEntry.Debug("vulcand/oxy/buffer: completed ServeHttp on request") } if err := b.checkLimit(req); err != nil { diff --git a/vendor/github.com/vulcand/oxy/cbreaker/cbreaker.go b/vendor/github.com/vulcand/oxy/cbreaker/cbreaker.go index e97f69d56..e7f92f71f 100644 --- a/vendor/github.com/vulcand/oxy/cbreaker/cbreaker.go +++ b/vendor/github.com/vulcand/oxy/cbreaker/cbreaker.go @@ -103,7 +103,7 @@ func (c *CircuitBreaker) ServeHTTP(w http.ResponseWriter, req *http.Request) { if log.GetLevel() >= log.DebugLevel { logEntry := log.WithField("Request", utils.DumpHttpRequest(req)) logEntry.Debug("vulcand/oxy/circuitbreaker: begin ServeHttp on request") - defer logEntry.Debug("vulcand/oxy/circuitbreaker: competed ServeHttp on request") + defer logEntry.Debug("vulcand/oxy/circuitbreaker: completed ServeHttp on request") } if c.activateFallback(w, req) { c.fallback.ServeHTTP(w, req) diff --git a/vendor/github.com/vulcand/oxy/cbreaker/fallback.go b/vendor/github.com/vulcand/oxy/cbreaker/fallback.go index 2924b994f..a4fed70af 100644 --- a/vendor/github.com/vulcand/oxy/cbreaker/fallback.go +++ b/vendor/github.com/vulcand/oxy/cbreaker/fallback.go @@ -31,7 +31,7 @@ func (f *ResponseFallback) ServeHTTP(w http.ResponseWriter, req *http.Request) { if log.GetLevel() >= log.DebugLevel { logEntry := log.WithField("Request", utils.DumpHttpRequest(req)) logEntry.Debug("vulcand/oxy/fallback/response: begin ServeHttp on request") - defer logEntry.Debug("vulcand/oxy/fallback/response: competed ServeHttp on request") + defer logEntry.Debug("vulcand/oxy/fallback/response: completed ServeHttp on request") } if f.r.ContentType != "" { @@ -67,7 +67,7 @@ func (f *RedirectFallback) ServeHTTP(w http.ResponseWriter, req *http.Request) { if log.GetLevel() >= log.DebugLevel { logEntry := log.WithField("Request", utils.DumpHttpRequest(req)) logEntry.Debug("vulcand/oxy/fallback/redirect: begin ServeHttp on request") - defer logEntry.Debug("vulcand/oxy/fallback/redirect: competed ServeHttp on request") + defer logEntry.Debug("vulcand/oxy/fallback/redirect: completed ServeHttp on request") } location := f.u.String() diff --git a/vendor/github.com/vulcand/oxy/connlimit/connlimit.go b/vendor/github.com/vulcand/oxy/connlimit/connlimit.go index 8abf1c173..c7b392758 100644 --- a/vendor/github.com/vulcand/oxy/connlimit/connlimit.go +++ b/vendor/github.com/vulcand/oxy/connlimit/connlimit.go @@ -110,7 +110,7 @@ func (e *ConnErrHandler) ServeHTTP(w http.ResponseWriter, req *http.Request, err if log.GetLevel() >= log.DebugLevel { logEntry := log.WithField("Request", utils.DumpHttpRequest(req)) logEntry.Debug("vulcand/oxy/connlimit: begin ServeHttp on request") - defer logEntry.Debug("vulcand/oxy/connlimit: competed ServeHttp on request") + defer logEntry.Debug("vulcand/oxy/connlimit: completed ServeHttp on request") } if _, ok := err.(*MaxConnError); ok { diff --git a/vendor/github.com/vulcand/oxy/forward/fwd.go b/vendor/github.com/vulcand/oxy/forward/fwd.go index cf8f6eaef..ec3c4f8d4 100644 --- a/vendor/github.com/vulcand/oxy/forward/fwd.go +++ b/vendor/github.com/vulcand/oxy/forward/fwd.go @@ -302,7 +302,7 @@ func (f *httpForwarder) serveWebSocket(w http.ResponseWriter, req *http.Request, if f.log.GetLevel() >= log.DebugLevel { logEntry := f.log.WithField("Request", utils.DumpHttpRequest(req)) logEntry.Debug("vulcand/oxy/forward/websocket: begin ServeHttp on request") - defer logEntry.Debug("vulcand/oxy/forward/websocket: competed ServeHttp on request") + defer logEntry.Debug("vulcand/oxy/forward/websocket: completed ServeHttp on request") } outReq := f.copyWebSocketRequest(req) @@ -351,6 +351,7 @@ func (f *httpForwarder) serveWebSocket(w http.ResponseWriter, req *http.Request, }} utils.RemoveHeaders(resp.Header, WebsocketUpgradeHeaders...) + utils.CopyHeaders(resp.Header, w.Header()) underlyingConn, err := upgrader.Upgrade(w, req, resp.Header) if err != nil { @@ -370,11 +371,20 @@ func (f *httpForwarder) serveWebSocket(w http.ResponseWriter, req *http.Request, m := websocket.FormatCloseMessage(websocket.CloseNormalClosure, fmt.Sprintf("%v", err)) if e, ok := err.(*websocket.CloseError); ok { if e.Code != websocket.CloseNoStatusReceived { - m = websocket.FormatCloseMessage(e.Code, e.Text) + m = nil + // Following codes are not valid on the wire so just close the + // underlying TCP connection without sending a close frame. + if e.Code != websocket.CloseAbnormalClosure && + e.Code != websocket.CloseTLSHandshake { + + m = websocket.FormatCloseMessage(e.Code, e.Text) + } } } errc <- err - dst.WriteMessage(websocket.CloseMessage, m) + if m != nil { + dst.WriteMessage(websocket.CloseMessage, m) + } break } err = dst.WriteMessage(msgType, msg) diff --git a/vendor/github.com/vulcand/oxy/roundrobin/rebalancer.go b/vendor/github.com/vulcand/oxy/roundrobin/rebalancer.go index 9e574e8d8..81f916b74 100644 --- a/vendor/github.com/vulcand/oxy/roundrobin/rebalancer.go +++ b/vendor/github.com/vulcand/oxy/roundrobin/rebalancer.go @@ -145,7 +145,7 @@ func (rb *Rebalancer) ServeHTTP(w http.ResponseWriter, req *http.Request) { if log.GetLevel() >= log.DebugLevel { logEntry := log.WithField("Request", utils.DumpHttpRequest(req)) logEntry.Debug("vulcand/oxy/roundrobin/rebalancer: begin ServeHttp on request") - defer logEntry.Debug("vulcand/oxy/roundrobin/rebalancer: competed ServeHttp on request") + defer logEntry.Debug("vulcand/oxy/roundrobin/rebalancer: completed ServeHttp on request") } pw := utils.NewSimpleProxyWriter(w) diff --git a/vendor/github.com/vulcand/oxy/roundrobin/rr.go b/vendor/github.com/vulcand/oxy/roundrobin/rr.go index 137da6272..053773b7d 100644 --- a/vendor/github.com/vulcand/oxy/roundrobin/rr.go +++ b/vendor/github.com/vulcand/oxy/roundrobin/rr.go @@ -84,7 +84,7 @@ func (r *RoundRobin) ServeHTTP(w http.ResponseWriter, req *http.Request) { if log.GetLevel() >= log.DebugLevel { logEntry := log.WithField("Request", utils.DumpHttpRequest(req)) logEntry.Debug("vulcand/oxy/roundrobin/rr: begin ServeHttp on request") - defer logEntry.Debug("vulcand/oxy/roundrobin/rr: competed ServeHttp on request") + defer logEntry.Debug("vulcand/oxy/roundrobin/rr: completed ServeHttp on request") } // make shallow copy of request before chaning anything to avoid side effects