diff options
author | Gerd Hoffmann <kraxel@redhat.com> | 2019-05-06 16:47:42 +0200 |
---|---|---|
committer | Gerd Hoffmann <kraxel@redhat.com> | 2019-05-06 16:47:42 +0200 |
commit | 9b486bd917c33aece058bcac3de064493c5051e3 (patch) | |
tree | d1b45034593151f5f49b13692d8da43f390ee5fe | |
parent | f4fc72e2a41ce5a4b71f9438bab62393b0cac432 (diff) | |
download | wireshark-dissectors-9b486bd917c33aece058bcac3de064493c5051e3.tar.gz |
handle usbpcap traces
-rw-r--r-- | usb/ncr-dispenser.lua | 20 |
1 files changed, 13 insertions, 7 deletions
diff --git a/usb/ncr-dispenser.lua b/usb/ncr-dispenser.lua index c81b085..8494b11 100644 --- a/usb/ncr-dispenser.lua +++ b/usb/ncr-dispenser.lua @@ -1,4 +1,5 @@ -- declare some Fields to be read +usb_hl_f = Field.new("usb.usbpcap_header_len") usb_tt_f = Field.new("usb.transfer_type") usb_dl_f = Field.new("usb.data_len") @@ -31,18 +32,23 @@ dispenser_proto.fields = { -- create a function to "postdissect" each frame function dispenser_proto.dissector(buffer,pinfo,tree) -- obtain the current values the protocol fields + local usb_hl = usb_hl_f() local usb_tt = usb_tt_f() local usb_dl = usb_dl_f() if usb_tt.value == 0x01 and usb_dl.value >= 63 then - local magic = buffer(64 + 8,2) + local off = 64 + if usb_hl then + off = usb_hl.value + end + local magic = buffer(off + 8,2) if magic:le_uint() == 0xbeef then local subtree = tree:add(dispenser_proto, "NCR S1 Dispenser") - subtree:add(u00_00_F, buffer(64 + 0x00,1)) - subtree:add(u01_07_F, buffer(64 + 0x01,7)) - subtree:add_le( magic_F, magic) - subtree:add(u0a_0f_F, buffer(64 + 0x0a,6)) - subtree:add(u10_17_F, buffer(64 + 0x10,8)) - subtree:add(u18_1f_F, buffer(64 + 0x18,8)) + subtree:add(u00_00_F, buffer(off + 0x00,1)) + subtree:add(u01_07_F, buffer(off + 0x01,7)) + subtree:add_le(magic_F, magic) + subtree:add(u0a_0f_F, buffer(off + 0x0a,6)) + subtree:add(u10_17_F, buffer(off + 0x10,8)) + subtree:add(u18_1f_F, buffer(off + 0x18,8)) end end end |