@@ -3551,27 +3551,13 @@ end
35513551-- Message
35523552finra_finraorf_tdds_dfi_v2_1 .message = {}
35533553
3554- -- Calculate size of: Message
3555- finra_finraorf_tdds_dfi_v2_1 .message .size = function (buffer , offset )
3556- local index = 0
3557-
3558- index = index + finra_finraorf_tdds_dfi_v2_1 .mold_udp64 .size
3559-
3560- -- Calculate runtime size of Payload field
3561- local payload_offset = offset + index
3562- local payload_type = buffer (payload_offset - 1 , 1 ):string ()
3563- index = index + finra_finraorf_tdds_dfi_v2_1 .payload .size (buffer , payload_offset , payload_type )
3564-
3565- return index
3566- end
3567-
35683554-- Display: Message
35693555finra_finraorf_tdds_dfi_v2_1 .message .display = function (packet , parent , length )
35703556 return " "
35713557end
35723558
35733559-- Dissect Fields: Message
3574- finra_finraorf_tdds_dfi_v2_1 .message .fields = function (buffer , offset , packet , parent , message_index )
3560+ finra_finraorf_tdds_dfi_v2_1 .message .fields = function (buffer , offset , packet , parent , size_of_message , message_index )
35753561 local index = offset
35763562
35773563 -- Implicit Message Index
@@ -3593,20 +3579,23 @@ finra_finraorf_tdds_dfi_v2_1.message.fields = function(buffer, offset, packet, p
35933579end
35943580
35953581-- Dissect: Message
3596- finra_finraorf_tdds_dfi_v2_1 .message .dissect = function (buffer , offset , packet , parent , message_index )
3582+ finra_finraorf_tdds_dfi_v2_1 .message .dissect = function (buffer , offset , packet , parent , size_of_message , message_index )
3583+ local index = offset + size_of_message
3584+
3585+ -- Optionally add group/struct element to protocol tree
35973586 if show .message then
3598- -- Optionally add element to protocol tree
35993587 parent = parent :add (omi_finra_finraorf_tdds_dfi_v2_1 .fields .message , buffer (offset , 0 ))
3600- local index = finra_finraorf_tdds_dfi_v2_1 .message .fields (buffer , offset , packet , parent , message_index )
3601- local length = index - offset
3602- parent :set_len (length )
3603- local display = finra_finraorf_tdds_dfi_v2_1 .message .display (packet , parent , length )
3588+ local current = finra_finraorf_tdds_dfi_v2_1 .message .fields (buffer , offset , packet , parent , size_of_message , message_index )
3589+ parent :set_len (size_of_message )
3590+ local display = finra_finraorf_tdds_dfi_v2_1 .message .display (buffer , packet , parent )
36043591 parent :append_text (display )
36053592
36063593 return index , parent
36073594 else
36083595 -- Skip element, add fields directly
3609- return finra_finraorf_tdds_dfi_v2_1 .message .fields (buffer , offset , packet , parent , message_index )
3596+ finra_finraorf_tdds_dfi_v2_1 .message .fields (buffer , offset , packet , parent , size_of_message , message_index )
3597+
3598+ return index
36103599 end
36113600end
36123601
@@ -3673,14 +3662,20 @@ finra_finraorf_tdds_dfi_v2_1.packet.dissect = function(buffer, packet, parent)
36733662 -- Packet Header: Struct of 3 fields
36743663 index , packet_header = finra_finraorf_tdds_dfi_v2_1 .packet_header .dissect (buffer , index , packet , parent )
36753664
3676- -- Dependency for Message
3677- local end_of_payload = buffer :len ()
3665+ -- Dependency element: Count
3666+ local count = buffer (index - 2 , 2 ):uint ()
3667+
3668+ -- Repeating: Message
3669+ for message_index = 1 , count do
3670+
3671+ -- Dependency element: Length
3672+ local length = buffer (index , 2 ):uint ()
3673+
3674+ -- Runtime Size Of: Message
3675+ local size_of_message = length + 2
36783676
3679- -- Message: Struct of 2 fields
3680- local message_index = 0
3681- while index < end_of_payload do
3682- message_index = message_index + 1
3683- index , message = finra_finraorf_tdds_dfi_v2_1 .message .dissect (buffer , index , packet , parent , message_index )
3677+ -- Message: Struct of 2 fields
3678+ index , message = finra_finraorf_tdds_dfi_v2_1 .message .dissect (buffer , index , packet , parent , size_of_message , message_index )
36843679 end
36853680
36863681 return index
0 commit comments