| 1 | initial version |
You need to use a table then iterate through all the values. For example:
local subtype_f = Field.new("lldp.ieee.802_1.subtype")
local myproto = Proto("myproto", "My Proto")
function myproto.dissector(buf, pinfo, treeitem)
local subtype = {subtype_f()}
if subtype then
for i in pairs(subtype) do
if subtype[i].value == A_SUBTYPE then
-- do_something
elseif subtype[i].value == B_SUBTYPE then
-- do_something_else
end
end
end
end
register_postdissector(myproto)
| 2 | No.2 Revision |
You need to use a table then iterate through all the values. For example:
local subtype_f = Field.new("lldp.ieee.802_1.subtype")
local myproto = Proto("myproto", "My Proto")
function myproto.dissector(buf, pinfo, treeitem)
local subtype = {subtype_f()}
if subtype then
for i in pairs(subtype) do
if subtype[i].value == A_SUBTYPE then
-- do_something
elseif subtype[i].value == B_SUBTYPE then
-- do_something_else
end
end
end
end
register_postdissector(myproto)
And if you only want to deal with the last subtype, then of course you don't need to iterate though all subtypes, just check the last one, e.g.:
if subtype[#subtype].value == A_SUBTYPE then
-- do_something
end