summaryrefslogtreecommitdiffstats
path: root/usb/ncr-dispenser.lua
diff options
context:
space:
mode:
Diffstat (limited to 'usb/ncr-dispenser.lua')
-rw-r--r--usb/ncr-dispenser.lua20
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