2017-04-11 113 views
0

我有一个Lua Wireshark的解剖,其构造像这样:在Lua Wireshark解剖器中执行解剖功能?

-- Initialize Protocol 
-- Initialize Protocol Fields 
-- Register Protocol Fields 

-- DissectionFunction(tvbuf, pktinfo, root) 

-- Initialize Protocol 

-- Function definitions. 

我有一个函数写的,我想用来计算一些数值,然后在解剖使用这些值。所以我在解剖函数和函数定义部分之外写了我的函数。

但是函数调用也可以在解析函数内工作,如果在解析函数之外调用Wireshark不会识别它。在解析函数中调用它是非常低效的,因为它只需要执行一次,而不是每个帧执行一次。

有没有办法在解剖功能之外调用它一次?

回答

1

我不太清楚的问题是什么,但你可以做在Lua

local function calculate_constant_value() 
    return a * b + c 
end 
local my_constant_value = calculate_constant_value() 

function proto.dissector() 
    -- use my_constant_value here 
end 
+0

完美的作品下面!不知道为什么我没有尝试之前大声笑。谢谢! :) –