diff --git a/tap/api/api.go b/tap/api/api.go index 483a78800..036684b3e 100644 --- a/tap/api/api.go +++ b/tap/api/api.go @@ -41,16 +41,18 @@ type TcpID struct { Ident string } -func (t *TcpID) Swap() { +func (t *TcpID) Swap() *TcpID { srcIP := t.SrcIP dstIP := t.DstIP srcPort := t.SrcPort dstPort := t.DstPort - t.SrcIP = dstIP - t.SrcPort = dstPort - t.DstIP = srcIP - t.DstPort = srcPort + return &TcpID{ + SrcIP: dstIP, + SrcPort: dstPort, + DstIP: srcIP, + DstPort: srcPort, + } } type GenericMessage struct { diff --git a/tap/extensions/http/main.go b/tap/extensions/http/main.go index d09f6acda..c82fccee2 100644 --- a/tap/extensions/http/main.go +++ b/tap/extensions/http/main.go @@ -89,8 +89,7 @@ func (d dissecting) Dissect(b *bufio.Reader, isClient bool, tcpID *api.TcpID, em } success = true } else if isClient { - tcpID.Swap() - err = handleHTTP1ClientStream(b, tcpID, emitter) + err = handleHTTP1ClientStream(b, tcpID.Swap(), emitter) if err == io.EOF || err == io.ErrUnexpectedEOF { break } else if err != nil {