1
1
using System ;
2
+ using System . Collections . Generic ;
2
3
using System . Linq ;
3
4
using MQTTnet . Adapter ;
4
5
using MQTTnet . Exceptions ;
@@ -117,7 +118,7 @@ private static MqttBasePacket DecodeConnectPacket(IMqttPacketBodyReader body)
117
118
}
118
119
else if ( propertiesReader . CurrentPropertyId == MqttPropertyId . UserProperty )
119
120
{
120
- propertiesReader . FillUserProperties ( packet . Properties . UserProperties ) ;
121
+ propertiesReader . AddUserPropertyTo ( packet . Properties . UserProperties ) ;
121
122
}
122
123
else
123
124
{
@@ -155,7 +156,12 @@ private static MqttBasePacket DecodeConnectPacket(IMqttPacketBodyReader body)
155
156
}
156
157
else if ( willPropertiesReader . CurrentPropertyId == MqttPropertyId . SubscriptionIdentifier )
157
158
{
158
- packet . WillMessage . SubscriptionIdentifier = propertiesReader . ReadSubscriptionIdentifier ( ) ;
159
+ if ( packet . WillMessage . SubscriptionIdentifiers == null )
160
+ {
161
+ packet . WillMessage . SubscriptionIdentifiers = new List < uint > ( ) ;
162
+ }
163
+
164
+ packet . WillMessage . SubscriptionIdentifiers . Add ( propertiesReader . ReadSubscriptionIdentifier ( ) ) ;
159
165
}
160
166
else if ( willPropertiesReader . CurrentPropertyId == MqttPropertyId . ContentType )
161
167
{
@@ -168,7 +174,12 @@ private static MqttBasePacket DecodeConnectPacket(IMqttPacketBodyReader body)
168
174
}
169
175
else if ( willPropertiesReader . CurrentPropertyId == MqttPropertyId . UserProperty )
170
176
{
171
- propertiesReader . FillUserProperties ( packet . Properties . UserProperties ) ;
177
+ if ( packet . WillMessage . UserProperties == null )
178
+ {
179
+ packet . WillMessage . UserProperties = new List < MqttUserProperty > ( ) ;
180
+ }
181
+
182
+ propertiesReader . AddUserPropertyTo ( packet . Properties . UserProperties ) ;
172
183
}
173
184
else
174
185
{
@@ -271,7 +282,7 @@ private static MqttBasePacket DecodeConnAckPacket(IMqttPacketBodyReader body)
271
282
}
272
283
else if ( propertiesReader . CurrentPropertyId == MqttPropertyId . UserProperty )
273
284
{
274
- propertiesReader . FillUserProperties ( packet . Properties . UserProperties ) ;
285
+ propertiesReader . AddUserPropertyTo ( packet . Properties . UserProperties ) ;
275
286
}
276
287
else
277
288
{
@@ -309,7 +320,7 @@ private static MqttBasePacket DecodeDisconnectPacket(IMqttPacketBodyReader body)
309
320
}
310
321
else if ( propertiesReader . CurrentPropertyId == MqttPropertyId . UserProperty )
311
322
{
312
- propertiesReader . FillUserProperties ( packet . Properties . UserProperties ) ;
323
+ propertiesReader . AddUserPropertyTo ( packet . Properties . UserProperties ) ;
313
324
}
314
325
else
315
326
{
@@ -339,7 +350,7 @@ private static MqttBasePacket DecodeSubscribePacket(IMqttPacketBodyReader body)
339
350
}
340
351
else if ( propertiesReader . CurrentPropertyId == MqttPropertyId . UserProperty )
341
352
{
342
- propertiesReader . FillUserProperties ( packet . Properties . UserProperties ) ;
353
+ propertiesReader . AddUserPropertyTo ( packet . Properties . UserProperties ) ;
343
354
}
344
355
else
345
356
{
@@ -389,7 +400,7 @@ private static MqttBasePacket DecodeSubAckPacket(IMqttPacketBodyReader body)
389
400
}
390
401
else if ( propertiesReader . CurrentPropertyId == MqttPropertyId . UserProperty )
391
402
{
392
- propertiesReader . FillUserProperties ( packet . Properties . UserProperties ) ;
403
+ propertiesReader . AddUserPropertyTo ( packet . Properties . UserProperties ) ;
393
404
}
394
405
else
395
406
{
@@ -421,7 +432,7 @@ private static MqttBasePacket DecodeUnsubscribePacket(IMqttPacketBodyReader body
421
432
{
422
433
if ( propertiesReader . CurrentPropertyId == MqttPropertyId . UserProperty )
423
434
{
424
- propertiesReader . FillUserProperties ( packet . Properties . UserProperties ) ;
435
+ propertiesReader . AddUserPropertyTo ( packet . Properties . UserProperties ) ;
425
436
}
426
437
else
427
438
{
@@ -456,7 +467,7 @@ private static MqttBasePacket DecodeUnsubAckPacket(IMqttPacketBodyReader body)
456
467
}
457
468
else if ( propertiesReader . CurrentPropertyId == MqttPropertyId . UserProperty )
458
469
{
459
- propertiesReader . FillUserProperties ( packet . Properties . UserProperties ) ;
470
+ propertiesReader . AddUserPropertyTo ( packet . Properties . UserProperties ) ;
460
471
}
461
472
else
462
473
{
@@ -530,15 +541,25 @@ private static MqttBasePacket DecodePublishPacket(byte header, IMqttPacketBodyRe
530
541
}
531
542
else if ( propertiesReader . CurrentPropertyId == MqttPropertyId . SubscriptionIdentifier )
532
543
{
533
- packet . Properties . SubscriptionIdentifier = propertiesReader . ReadSubscriptionIdentifier ( ) ;
544
+ if ( packet . Properties . SubscriptionIdentifiers == null )
545
+ {
546
+ packet . Properties . SubscriptionIdentifiers = new List < uint > ( ) ;
547
+ }
548
+
549
+ packet . Properties . SubscriptionIdentifiers . Add ( propertiesReader . ReadSubscriptionIdentifier ( ) ) ;
534
550
}
535
551
else if ( propertiesReader . CurrentPropertyId == MqttPropertyId . ContentType )
536
552
{
537
553
packet . Properties . ContentType = propertiesReader . ReadContentType ( ) ;
538
554
}
539
555
else if ( propertiesReader . CurrentPropertyId == MqttPropertyId . UserProperty )
540
556
{
541
- propertiesReader . FillUserProperties ( packet . Properties . UserProperties ) ;
557
+ if ( packet . Properties . UserProperties == null )
558
+ {
559
+ packet . Properties . UserProperties = new List < MqttUserProperty > ( ) ;
560
+ }
561
+
562
+ propertiesReader . AddUserPropertyTo ( packet . Properties . UserProperties ) ;
542
563
}
543
564
else
544
565
{
@@ -581,7 +602,7 @@ private static MqttBasePacket DecodePubAckPacket(IMqttPacketBodyReader body)
581
602
}
582
603
else if ( propertiesReader . CurrentPropertyId == MqttPropertyId . UserProperty )
583
604
{
584
- propertiesReader . FillUserProperties ( packet . Properties . UserProperties ) ;
605
+ propertiesReader . AddUserPropertyTo ( packet . Properties . UserProperties ) ;
585
606
}
586
607
else
587
608
{
@@ -619,7 +640,7 @@ private static MqttBasePacket DecodePubRecPacket(IMqttPacketBodyReader body)
619
640
}
620
641
else if ( propertiesReader . CurrentPropertyId == MqttPropertyId . UserProperty )
621
642
{
622
- propertiesReader . FillUserProperties ( packet . Properties . UserProperties ) ;
643
+ propertiesReader . AddUserPropertyTo ( packet . Properties . UserProperties ) ;
623
644
}
624
645
else
625
646
{
@@ -657,7 +678,7 @@ private static MqttBasePacket DecodePubRelPacket(IMqttPacketBodyReader body)
657
678
}
658
679
else if ( propertiesReader . CurrentPropertyId == MqttPropertyId . UserProperty )
659
680
{
660
- propertiesReader . FillUserProperties ( packet . Properties . UserProperties ) ;
681
+ propertiesReader . AddUserPropertyTo ( packet . Properties . UserProperties ) ;
661
682
}
662
683
else
663
684
{
@@ -695,7 +716,7 @@ private static MqttBasePacket DecodePubCompPacket(IMqttPacketBodyReader body)
695
716
}
696
717
else if ( propertiesReader . CurrentPropertyId == MqttPropertyId . UserProperty )
697
718
{
698
- propertiesReader . FillUserProperties ( packet . Properties . UserProperties ) ;
719
+ propertiesReader . AddUserPropertyTo ( packet . Properties . UserProperties ) ;
699
720
}
700
721
else
701
722
{
@@ -740,7 +761,7 @@ private static MqttBasePacket DecodeAuthPacket(IMqttPacketBodyReader body)
740
761
}
741
762
else if ( propertiesReader . CurrentPropertyId == MqttPropertyId . UserProperty )
742
763
{
743
- propertiesReader . FillUserProperties ( packet . Properties . UserProperties ) ;
764
+ propertiesReader . AddUserPropertyTo ( packet . Properties . UserProperties ) ;
744
765
}
745
766
else
746
767
{
0 commit comments