如果从另一个解剖器调用Wireshark解剖器成功,如何获得指示

时间:2017-01-24 19:57:08

标签: tcp lua wireshark lua-table wireshark-dissector

我有2个tcp解析器,它们监听同一个端口 因此,我选择了一个基础解剖器来监听该端口,这个基础解剖器保存了2个tcp解剖器的信息。
当一个数据包到达该端口时,基础解剖器会进行一个foreach循环并尝试依次调用2个tcp解析器中的每一个。

我正在使用代码行:

res = Dissector.get("first_tcp_dissector"):call(buffer, pinfo, tree)

我期待如果被叫解剖器成功解析了数据包,它将返回一个数字(如果该数据包不适合它,则返回0)。

但是dissector:call(tvb, pinfo, tree)没有返回任何内容,如果解析成功,我没有任何迹象。

如果解析成功,我如何获得first_tcp_dissector的真实返回值或相当一些指示?
(顺便说一下,我不想使用启发式......)

1 个答案:

答案 0 :(得分:0)

dissector:call(tvb, pinfo, tree)不会返回任何内容

你确定吗?因为如果您查看源代码,Dissector_call()会返回Number of bytes dissected.

也许您在2014年6月17日由Anders Broman承诺的StigBjørlykke所做的this更改之前运行旧版本的Wireshark?