summaryrefslogtreecommitdiff
path: root/modules/caddyhttp/reverseproxy/streaming.go
diff options
context:
space:
mode:
authorMatthew Holt <mholt@users.noreply.github.com>2021-05-05 14:52:18 -0600
committerMatthew Holt <mholt@users.noreply.github.com>2021-05-05 14:52:24 -0600
commita17c3b568d635ea45deb204d06e251810e94a7d6 (patch)
tree1625eda0514d8924c4993303ee9a8f93c16e3455 /modules/caddyhttp/reverseproxy/streaming.go
parent74f5d66c4826e177123859abae3981bd196bfdcf (diff)
reverseproxy: Minor logging improvements
Diffstat (limited to 'modules/caddyhttp/reverseproxy/streaming.go')
-rw-r--r--modules/caddyhttp/reverseproxy/streaming.go12
1 files changed, 10 insertions, 2 deletions
diff --git a/modules/caddyhttp/reverseproxy/streaming.go b/modules/caddyhttp/reverseproxy/streaming.go
index f108a97..285c04b 100644
--- a/modules/caddyhttp/reverseproxy/streaming.go
+++ b/modules/caddyhttp/reverseproxy/streaming.go
@@ -29,7 +29,7 @@ import (
"go.uber.org/zap"
)
-func (h Handler) handleUpgradeResponse(rw http.ResponseWriter, req *http.Request, res *http.Response) {
+func (h Handler) handleUpgradeResponse(logger *zap.Logger, rw http.ResponseWriter, req *http.Request, res *http.Response) {
reqUpType := upgradeType(req.Header)
resUpType := upgradeType(res.Header)
if reqUpType != resUpType {
@@ -65,12 +65,19 @@ func (h Handler) handleUpgradeResponse(rw http.ResponseWriter, req *http.Request
}()
defer close(backConnCloseCh)
+ logger.Debug("upgrading connection")
conn, brw, err := hj.Hijack()
if err != nil {
- h.logger.Error("Hijack failed on protocol switch", zap.Error(err))
+ h.logger.Error("hijack failed on protocol switch", zap.Error(err))
return
}
defer conn.Close()
+
+ start := time.Now()
+ defer func() {
+ logger.Debug("connection closed", zap.Duration("duration", time.Since(start)))
+ }()
+
res.Body = nil // so res.Write only writes the headers; we have res.Body in backConn above
if err := res.Write(brw); err != nil {
h.logger.Debug("response write", zap.Error(err))
@@ -80,6 +87,7 @@ func (h Handler) handleUpgradeResponse(rw http.ResponseWriter, req *http.Request
h.logger.Debug("response flush", zap.Error(err))
return
}
+
errc := make(chan error, 1)
spc := switchProtocolCopier{user: conn, backend: backConn}
go spc.copyToBackend(errc)