20.3.15. Flowint 库

suricata.flowint 库向 Lua 脚本公开了 flowint 变量。

20.3.15.1. 初始化

首先需要加载 flowint 模块:

local flowintlib = require("suricata.flowint")

然后在 init 方法中注册脚本中使用的所有流整数。此步骤是可选的,如果确定流整数会通过其他方式注册,可以跳过。

示例:

local flowintlib = require("suricata.flowint")

function init ()
    flowintlib.register("count")
    return {}
end

最后在 thread_init 函数中获取流整数的句柄并存储为全局变量:

function thread_init ()
    count_flow_int = flowintlib.get("count")
end

20.3.15.2. 流整数方法

20.3.15.2.1. decr()

flowint 的值减 1。返回新值。如果当前值为 0,则保持为 0。

20.3.15.2.2. incr()

flowint 的值加 1。返回新值。

20.3.15.2.3. value()

获取流整数的当前值。注意:如果流整数没有值,可能会返回 nil

20.3.15.2.4. set(value)

将 flowint 的值设置为指定值。