]> git.ipfire.org Git - thirdparty/suricata.git/commit
detect/lua: add support for datasets
authorVictor Julien <vjulien@oisf.net>
Thu, 11 Apr 2024 14:10:34 +0000 (16:10 +0200)
committerVictor Julien <victor@inliniac.net>
Sun, 12 Jan 2025 19:02:35 +0000 (20:02 +0100)
commitccebae6ec0fad570412ada758981e5f2b14c15e4
tree5042397e0ef21e8bb4be466baee6bf0f28d35173
parente89ab4f88a0dbec01c2700f7ccbcedc33377e5f0
detect/lua: add support for datasets

dataset.new
  create a dataset object in lua

<dataset>:get
  gets a reference to an existing dataset

<dataset>:add
  returns 1 if a new entry was added
  returns 0 if entry was already in the set

Example:
```
function init (args)
    local needs = {}
    needs["packet"] = tostring(true)
    return needs
end

function thread_init (args)
    conn_new, dataset.new()
    ret, err conn_new:get("conn-seen")
    if err ~= nil then
        SCLogWarning("dataset warning: " .. err)
        return 0
    end
end

function match (args)
    ipver, srcip, dstip, proto, sp, dp = SCFlowTuple()
    str = ipver .. ":<" .. srcip .. ">:<" .. dstip .. ">:" .. dp

    ret, err = conn_new:add(str, #str);
    if ret == 1 then
        SCLogInfo(str .. " => " .. ret)
    end
    return ret
end
```

Ticket: #7243.
src/detect-lua-extensions.c