From 31b5239a2f9fa46c036cc2a614de9c59885e6ee3 Mon Sep 17 00:00:00 2001 From: Maisem Ali Date: Sat, 24 Aug 2024 11:36:59 -0700 Subject: [PATCH] tstest/natlab/vnet: flush and sync pcap file after every packet So that we can view the pcap as we debug interactively. Updates #13038 Signed-off-by: Maisem Ali --- tstest/natlab/vnet/pcap.go | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/tstest/natlab/vnet/pcap.go b/tstest/natlab/vnet/pcap.go index fa1904667..41a443e30 100644 --- a/tstest/natlab/vnet/pcap.go +++ b/tstest/natlab/vnet/pcap.go @@ -21,6 +21,15 @@ type pcapWriter struct { w *pcapgo.NgWriter } +func do(fs ...func() error) error { + for _, f := range fs { + if err := f(); err != nil { + return err + } + } + return nil +} + func (p *pcapWriter) WritePacket(ci gopacket.CaptureInfo, data []byte) error { if p == nil { return nil @@ -30,7 +39,11 @@ func (p *pcapWriter) WritePacket(ci gopacket.CaptureInfo, data []byte) error { if p.w == nil { return io.ErrClosedPipe } - return p.w.WritePacket(ci, data) + return do( + func() error { return p.w.WritePacket(ci, data) }, + p.w.Flush, + p.f.Sync, + ) } func (p *pcapWriter) AddInterface(i pcapgo.NgInterface) (int, error) {