tstest/natlab/vnet: capture network wan/lan interfaces
Updates #13038 Signed-off-by: Maisem Ali <maisem@tailscale.com>
This commit is contained in:
@@ -12,6 +12,8 @@ import (
|
||||
"github.com/google/gopacket/pcapgo"
|
||||
)
|
||||
|
||||
// pcapWriter is a pcapgo.NgWriter that writes to a file.
|
||||
// It is safe for concurrent use. The nil value is a no-op.
|
||||
type pcapWriter struct {
|
||||
f *os.File
|
||||
|
||||
@@ -20,6 +22,9 @@ type pcapWriter struct {
|
||||
}
|
||||
|
||||
func (p *pcapWriter) WritePacket(ci gopacket.CaptureInfo, data []byte) error {
|
||||
if p == nil {
|
||||
return nil
|
||||
}
|
||||
p.mu.Lock()
|
||||
defer p.mu.Unlock()
|
||||
if p.w == nil {
|
||||
@@ -28,7 +33,19 @@ func (p *pcapWriter) WritePacket(ci gopacket.CaptureInfo, data []byte) error {
|
||||
return p.w.WritePacket(ci, data)
|
||||
}
|
||||
|
||||
func (p *pcapWriter) AddInterface(i pcapgo.NgInterface) (int, error) {
|
||||
if p == nil {
|
||||
return 0, nil
|
||||
}
|
||||
p.mu.Lock()
|
||||
defer p.mu.Unlock()
|
||||
return p.w.AddInterface(i)
|
||||
}
|
||||
|
||||
func (p *pcapWriter) Close() error {
|
||||
if p == nil {
|
||||
return nil
|
||||
}
|
||||
p.mu.Lock()
|
||||
defer p.mu.Unlock()
|
||||
if p.w != nil {
|
||||
|
||||
Reference in New Issue
Block a user