From b83a4c069dd583a354f26343530add665920e03c Mon Sep 17 00:00:00 2001 From: Marten Seemann Date: Tue, 1 May 2018 11:39:59 +0900 Subject: [PATCH] improve logging of ACK frames with ranges --- internal/wire/log.go | 15 ++++++++++++--- internal/wire/log_test.go | 2 +- 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/internal/wire/log.go b/internal/wire/log.go index 22a15e339..465e82ab9 100644 --- a/internal/wire/log.go +++ b/internal/wire/log.go @@ -1,6 +1,11 @@ package wire -import "github.com/lucas-clemente/quic-go/internal/utils" +import ( + "fmt" + "strings" + + "github.com/lucas-clemente/quic-go/internal/utils" +) // LogFrame logs a frame, either sent or received func LogFrame(logger utils.Logger, frame Frame, sent bool) { @@ -22,9 +27,13 @@ func LogFrame(logger utils.Logger, frame Frame, sent bool) { } case *AckFrame: if len(f.AckRanges) > 1 { - logger.Debugf("\t%s &wire.AckFrame{LargestAcked: 0x%x, LowestAcked: 0x%x, AckRanges: %#v, DelayTime: %s}", dir, f.LargestAcked(), f.LowestAcked(), f.AckRanges, f.DelayTime.String()) + ackRanges := make([]string, len(f.AckRanges)) + for i, r := range f.AckRanges { + ackRanges[i] = fmt.Sprintf("{Largest: %#x, Smallest: %#x}", r.Largest, r.Smallest) + } + logger.Debugf("\t%s &wire.AckFrame{LargestAcked: %#x, LowestAcked: %#x, AckRanges: {%s}, DelayTime: %s}", dir, f.LargestAcked(), f.LowestAcked(), strings.Join(ackRanges, ", "), f.DelayTime.String()) } else { - logger.Debugf("\t%s &wire.AckFrame{LargestAcked: 0x%x, LowestAcked: 0x%x, DelayTime: %s}", dir, f.LargestAcked(), f.LowestAcked(), f.DelayTime.String()) + logger.Debugf("\t%s &wire.AckFrame{LargestAcked: %#x, LowestAcked: %#x, DelayTime: %s}", dir, f.LargestAcked(), f.LowestAcked(), f.DelayTime.String()) } default: logger.Debugf("\t%s %#v", dir, frame) diff --git a/internal/wire/log_test.go b/internal/wire/log_test.go index 7d4ec3639..4b1078f85 100644 --- a/internal/wire/log_test.go +++ b/internal/wire/log_test.go @@ -74,7 +74,7 @@ var _ = Describe("Frame logging", func() { DelayTime: 12 * time.Millisecond, } LogFrame(logger, frame, false) - Expect(buf.String()).To(ContainSubstring("\t<- &wire.AckFrame{LargestAcked: 0x8, LowestAcked: 0x2, AckRanges: []wire.AckRange{wire.AckRange{Smallest:0x5, Largest:0x8}, wire.AckRange{Smallest:0x2, Largest:0x3}}, DelayTime: 12ms}\n")) + Expect(buf.String()).To(ContainSubstring("\t<- &wire.AckFrame{LargestAcked: 0x8, LowestAcked: 0x2, AckRanges: {{Largest: 0x8, Smallest: 0x5}, {Largest: 0x3, Smallest: 0x2}}, DelayTime: 12ms}\n")) }) It("logs incoming StopWaiting frames", func() {