From 199a19e19cac9746d151e90dc8b5caeea81be8cd Mon Sep 17 00:00:00 2001 From: Nathan Brown Date: Thu, 11 Apr 2024 14:56:07 -0700 Subject: [PATCH] Skip over List and Map encountered by ReadAny --- .../AMQP/AmqpWireFormattingRead.cs | 29 +++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/RabbitMQ.Stream.Client/AMQP/AmqpWireFormattingRead.cs b/RabbitMQ.Stream.Client/AMQP/AmqpWireFormattingRead.cs index 06d765f5..d08648d1 100644 --- a/RabbitMQ.Stream.Client/AMQP/AmqpWireFormattingRead.cs +++ b/RabbitMQ.Stream.Client/AMQP/AmqpWireFormattingRead.cs @@ -148,6 +148,35 @@ internal static int ReadAny(ref SequenceReader reader, out object value) value = null; reader.Advance(1); return 1; + + case FormatCode.List0: + case FormatCode.List8: + case FormatCode.List32: + { + offset = ReadListHeader(ref reader, out var fields); + for (long i = 0; i < fields; i++) + { + offset += ReadAny(ref reader, out _); + } + + value = null; + return offset; + } + + case FormatCode.Map8: + case FormatCode.Map32: + { + offset = ReadMapHeader(ref reader, out var count); + var values = count / 2; + for (uint i = 0; i < values; i++) + { + offset += ReadAny(ref reader, out _); + offset += ReadAny(ref reader, out _); + } + + value = null; + return offset; + } } throw new AmqpParseException($"Read Any: Invalid type: {type}");