forked from Ivasoft/traefik
Includes the headers in the HTTP response of a websocket request
This commit is contained in:
committed by
Traefiker Bot
parent
b2cf03fa5c
commit
6bc59f8b33
2
Gopkg.lock
generated
2
Gopkg.lock
generated
@@ -1217,7 +1217,7 @@
|
|||||||
"roundrobin",
|
"roundrobin",
|
||||||
"utils"
|
"utils"
|
||||||
]
|
]
|
||||||
revision = "6956548a7fa4272adeadf828455109c53933ea86"
|
revision = "7a2284ad8d6f4d362a6b38f3cdcc812291dce293"
|
||||||
|
|
||||||
[[projects]]
|
[[projects]]
|
||||||
name = "github.com/vulcand/predicate"
|
name = "github.com/vulcand/predicate"
|
||||||
|
|||||||
2
vendor/github.com/vulcand/oxy/buffer/buffer.go
generated
vendored
2
vendor/github.com/vulcand/oxy/buffer/buffer.go
generated
vendored
@@ -199,7 +199,7 @@ func (b *Buffer) ServeHTTP(w http.ResponseWriter, req *http.Request) {
|
|||||||
if log.GetLevel() >= log.DebugLevel {
|
if log.GetLevel() >= log.DebugLevel {
|
||||||
logEntry := log.WithField("Request", utils.DumpHttpRequest(req))
|
logEntry := log.WithField("Request", utils.DumpHttpRequest(req))
|
||||||
logEntry.Debug("vulcand/oxy/buffer: begin ServeHttp on request")
|
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 {
|
if err := b.checkLimit(req); err != nil {
|
||||||
|
|||||||
2
vendor/github.com/vulcand/oxy/cbreaker/cbreaker.go
generated
vendored
2
vendor/github.com/vulcand/oxy/cbreaker/cbreaker.go
generated
vendored
@@ -103,7 +103,7 @@ func (c *CircuitBreaker) ServeHTTP(w http.ResponseWriter, req *http.Request) {
|
|||||||
if log.GetLevel() >= log.DebugLevel {
|
if log.GetLevel() >= log.DebugLevel {
|
||||||
logEntry := log.WithField("Request", utils.DumpHttpRequest(req))
|
logEntry := log.WithField("Request", utils.DumpHttpRequest(req))
|
||||||
logEntry.Debug("vulcand/oxy/circuitbreaker: begin ServeHttp on request")
|
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) {
|
if c.activateFallback(w, req) {
|
||||||
c.fallback.ServeHTTP(w, req)
|
c.fallback.ServeHTTP(w, req)
|
||||||
|
|||||||
4
vendor/github.com/vulcand/oxy/cbreaker/fallback.go
generated
vendored
4
vendor/github.com/vulcand/oxy/cbreaker/fallback.go
generated
vendored
@@ -31,7 +31,7 @@ func (f *ResponseFallback) ServeHTTP(w http.ResponseWriter, req *http.Request) {
|
|||||||
if log.GetLevel() >= log.DebugLevel {
|
if log.GetLevel() >= log.DebugLevel {
|
||||||
logEntry := log.WithField("Request", utils.DumpHttpRequest(req))
|
logEntry := log.WithField("Request", utils.DumpHttpRequest(req))
|
||||||
logEntry.Debug("vulcand/oxy/fallback/response: begin ServeHttp on request")
|
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 != "" {
|
if f.r.ContentType != "" {
|
||||||
@@ -67,7 +67,7 @@ func (f *RedirectFallback) ServeHTTP(w http.ResponseWriter, req *http.Request) {
|
|||||||
if log.GetLevel() >= log.DebugLevel {
|
if log.GetLevel() >= log.DebugLevel {
|
||||||
logEntry := log.WithField("Request", utils.DumpHttpRequest(req))
|
logEntry := log.WithField("Request", utils.DumpHttpRequest(req))
|
||||||
logEntry.Debug("vulcand/oxy/fallback/redirect: begin ServeHttp on request")
|
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()
|
location := f.u.String()
|
||||||
|
|||||||
2
vendor/github.com/vulcand/oxy/connlimit/connlimit.go
generated
vendored
2
vendor/github.com/vulcand/oxy/connlimit/connlimit.go
generated
vendored
@@ -110,7 +110,7 @@ func (e *ConnErrHandler) ServeHTTP(w http.ResponseWriter, req *http.Request, err
|
|||||||
if log.GetLevel() >= log.DebugLevel {
|
if log.GetLevel() >= log.DebugLevel {
|
||||||
logEntry := log.WithField("Request", utils.DumpHttpRequest(req))
|
logEntry := log.WithField("Request", utils.DumpHttpRequest(req))
|
||||||
logEntry.Debug("vulcand/oxy/connlimit: begin ServeHttp on request")
|
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 {
|
if _, ok := err.(*MaxConnError); ok {
|
||||||
|
|||||||
16
vendor/github.com/vulcand/oxy/forward/fwd.go
generated
vendored
16
vendor/github.com/vulcand/oxy/forward/fwd.go
generated
vendored
@@ -302,7 +302,7 @@ func (f *httpForwarder) serveWebSocket(w http.ResponseWriter, req *http.Request,
|
|||||||
if f.log.GetLevel() >= log.DebugLevel {
|
if f.log.GetLevel() >= log.DebugLevel {
|
||||||
logEntry := f.log.WithField("Request", utils.DumpHttpRequest(req))
|
logEntry := f.log.WithField("Request", utils.DumpHttpRequest(req))
|
||||||
logEntry.Debug("vulcand/oxy/forward/websocket: begin ServeHttp on request")
|
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)
|
outReq := f.copyWebSocketRequest(req)
|
||||||
@@ -351,6 +351,7 @@ func (f *httpForwarder) serveWebSocket(w http.ResponseWriter, req *http.Request,
|
|||||||
}}
|
}}
|
||||||
|
|
||||||
utils.RemoveHeaders(resp.Header, WebsocketUpgradeHeaders...)
|
utils.RemoveHeaders(resp.Header, WebsocketUpgradeHeaders...)
|
||||||
|
utils.CopyHeaders(resp.Header, w.Header())
|
||||||
|
|
||||||
underlyingConn, err := upgrader.Upgrade(w, req, resp.Header)
|
underlyingConn, err := upgrader.Upgrade(w, req, resp.Header)
|
||||||
if err != nil {
|
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))
|
m := websocket.FormatCloseMessage(websocket.CloseNormalClosure, fmt.Sprintf("%v", err))
|
||||||
if e, ok := err.(*websocket.CloseError); ok {
|
if e, ok := err.(*websocket.CloseError); ok {
|
||||||
if e.Code != websocket.CloseNoStatusReceived {
|
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
|
errc <- err
|
||||||
dst.WriteMessage(websocket.CloseMessage, m)
|
if m != nil {
|
||||||
|
dst.WriteMessage(websocket.CloseMessage, m)
|
||||||
|
}
|
||||||
break
|
break
|
||||||
}
|
}
|
||||||
err = dst.WriteMessage(msgType, msg)
|
err = dst.WriteMessage(msgType, msg)
|
||||||
|
|||||||
2
vendor/github.com/vulcand/oxy/roundrobin/rebalancer.go
generated
vendored
2
vendor/github.com/vulcand/oxy/roundrobin/rebalancer.go
generated
vendored
@@ -145,7 +145,7 @@ func (rb *Rebalancer) ServeHTTP(w http.ResponseWriter, req *http.Request) {
|
|||||||
if log.GetLevel() >= log.DebugLevel {
|
if log.GetLevel() >= log.DebugLevel {
|
||||||
logEntry := log.WithField("Request", utils.DumpHttpRequest(req))
|
logEntry := log.WithField("Request", utils.DumpHttpRequest(req))
|
||||||
logEntry.Debug("vulcand/oxy/roundrobin/rebalancer: begin ServeHttp on request")
|
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)
|
pw := utils.NewSimpleProxyWriter(w)
|
||||||
|
|||||||
2
vendor/github.com/vulcand/oxy/roundrobin/rr.go
generated
vendored
2
vendor/github.com/vulcand/oxy/roundrobin/rr.go
generated
vendored
@@ -84,7 +84,7 @@ func (r *RoundRobin) ServeHTTP(w http.ResponseWriter, req *http.Request) {
|
|||||||
if log.GetLevel() >= log.DebugLevel {
|
if log.GetLevel() >= log.DebugLevel {
|
||||||
logEntry := log.WithField("Request", utils.DumpHttpRequest(req))
|
logEntry := log.WithField("Request", utils.DumpHttpRequest(req))
|
||||||
logEntry.Debug("vulcand/oxy/roundrobin/rr: begin ServeHttp on request")
|
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
|
// make shallow copy of request before chaning anything to avoid side effects
|
||||||
|
|||||||
Reference in New Issue
Block a user