diff --git a/tap/extensions/amqp/main.go b/tap/extensions/amqp/main.go index c08264611..6d024287d 100644 --- a/tap/extensions/amqp/main.go +++ b/tap/extensions/amqp/main.go @@ -82,7 +82,7 @@ func (d dissecting) Dissect(b *bufio.Reader, reader api.TcpReader, options *api. frame, err := r.ReadFrame() if err == io.EOF { // We must read until we see an EOF... very important! - return nil + return err } switch f := frame.(type) { diff --git a/tap/tcp_reader.go b/tap/tcp_reader.go index ba40cbf2f..902a88f04 100644 --- a/tap/tcp_reader.go +++ b/tap/tcp_reader.go @@ -54,8 +54,8 @@ func (reader *tcpReader) run(options *api.TrafficFilteringOptions, wg *sync.Wait reader.reqResMatcher = reader.parent.reqResMatchers[i] reader.counterPair = reader.parent.counterPairs[i] b := bufio.NewReader(reader) - extension.Dissector.Dissect(b, reader, options) - if reader.parent.protocol != nil { + err := extension.Dissector.Dissect(b, reader, options) + if err == nil || reader.parent.protocol != nil { break } reader.exhaustBuffer = true