length_octect=tvb_get_guint8(tvb,2)&0x3FF;(last ten bits offset value) ti = proto_tree_add_text(data_tree, tvb, offset, length_octect, "data"); I used the above function in c for the offset length.How to get the length_octect in lua script I tried something like this: local length_octect=(buffer((offset,2) or 0x3FF):unit() data=subtree:add(F.data,buffer(offset,length_octect)) but it is giving error as: Lua Error: C:\Program Files\Wireshark1\myproto.lua:104: No such 'unit' function/method/field for object type 'TvbRange' asked 20 Apr '15, 23:22 lakshmi edited 20 Apr '15, 23:31 |
One Answer:
You've got typo in your function name. Try uint() not unit(). answered 20 Apr '15, 23:44 izopizo |
yes, i changed that . Now iam getting the following error:
Expert Info (Warn/Malformed): Trying to fetch an unsigned integer with length 18
Expert Info (Warn/Malformed): Trying to fetch an unsigned integer with length 18
This warning I am getting for every length greater than 4.
This seems to be expected, pr the Lua reference manual found here: https://www.wireshark.org/docs/wsdg_html_chunked/lua_module_Tvb.html
11.8.3.3. tvbrange:uint()
Get a Big Endian (network order) unsigned integer from a TvbRange. The range must be 1, 2, 3 or 4 octets long. Returns
The unsigned integer value.