Skip to content

Commit 56aeb6b

Browse files
committed
TUN-8224: Fix safety of TCP stream logging, separate connect and ack log messages
1 parent a9aa48d commit 56aeb6b

File tree

1 file changed

+16
-15
lines changed

1 file changed

+16
-15
lines changed

proxy/proxy.go

Lines changed: 16 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -140,11 +140,12 @@ func (p *Proxy) ProxyHTTP(
140140
return fmt.Errorf("response writer is not a flusher")
141141
}
142142
rws := connection.NewHTTPResponseReadWriterAcker(w, flusher, req)
143-
connectedLogger := p.log.Debug().
143+
logger := p.log.With().
144144
Int(management.EventTypeKey, int(management.HTTP)).
145145
Str(LogFieldDestAddr, dest).
146-
Uint8(LogFieldConnIndex, tr.ConnIndex)
147-
if err := p.proxyStream(tr.ToTracedContext(), rws, dest, originProxy, connectedLogger); err != nil {
146+
Uint8(LogFieldConnIndex, tr.ConnIndex).
147+
Logger()
148+
if err := p.proxyStream(tr.ToTracedContext(), rws, dest, originProxy, logger); err != nil {
148149
rule, srv := ruleField(p.ingressRules, ruleNum)
149150
p.logRequestError(err, cfRay, "", rule, srv)
150151
return err
@@ -178,22 +179,21 @@ func (p *Proxy) ProxyTCP(
178179

179180
tracedCtx := tracing.NewTracedContext(serveCtx, req.CfTraceID, p.log)
180181

181-
debugLogger := func() *zerolog.Event {
182-
return p.log.Debug().
183-
Int(management.EventTypeKey, int(management.TCP)).
184-
Str(LogFieldFlowID, req.FlowID).
185-
Str(LogFieldDestAddr, req.Dest).
186-
Uint8(LogFieldConnIndex, req.ConnIndex)
187-
}
182+
logger := p.log.With().
183+
Int(management.EventTypeKey, int(management.TCP)).
184+
Str(LogFieldFlowID, req.FlowID).
185+
Str(LogFieldDestAddr, req.Dest).
186+
Uint8(LogFieldConnIndex, req.ConnIndex).
187+
Logger()
188188

189-
debugLogger().Msg("tcp proxy stream started")
189+
logger.Debug().Msg("tcp proxy stream started")
190190

191-
if err := p.proxyStream(tracedCtx, rwa, req.Dest, p.warpRouting.Proxy, debugLogger()); err != nil {
191+
if err := p.proxyStream(tracedCtx, rwa, req.Dest, p.warpRouting.Proxy, logger); err != nil {
192192
p.logRequestError(err, req.CFRay, req.FlowID, "", ingress.ServiceWarpRouting)
193193
return err
194194
}
195195

196-
debugLogger().Msg("tcp proxy stream finished successfully")
196+
logger.Debug().Msg("tcp proxy stream finished successfully")
197197

198198
return nil
199199
}
@@ -303,7 +303,7 @@ func (p *Proxy) proxyStream(
303303
rwa connection.ReadWriteAcker,
304304
dest string,
305305
connectionProxy ingress.StreamBasedOriginProxy,
306-
connectedLogger *zerolog.Event,
306+
logger zerolog.Logger,
307307
) error {
308308
ctx := tr.Context
309309
_, connectSpan := tr.Tracer().Start(ctx, "stream-connect")
@@ -317,6 +317,7 @@ func (p *Proxy) proxyStream(
317317
}
318318
connectSpan.End()
319319
defer originConn.Close()
320+
logger.Debug().Msg("origin connection established")
320321

321322
encodedSpans := tr.GetSpans()
322323

@@ -326,7 +327,7 @@ func (p *Proxy) proxyStream(
326327
}
327328

328329
connectLatency.Observe(float64(time.Since(start).Milliseconds()))
329-
connectedLogger.Msg("proxy stream established")
330+
logger.Debug().Msg("proxy stream acknowledged")
330331

331332
originConn.Stream(ctx, rwa, p.log)
332333
return nil

0 commit comments

Comments
 (0)