Project

General

Profile

Actions

Optimization #4753

open

lua: fix inconsistency in the init "needs" key

Added by Juliana Fajardini Reichow over 3 years ago. Updated 21 days ago.

Status:
Assigned
Priority:
Normal
Assignee:
Target version:
Effort:
Difficulty:
Label:

Description

In Suricata, there's a difference in the usage of needs key, depending on whether one is writing a match or a log function in the lua scripts.
It is better to have the same behavior for both use cases.

Current behavior:
If one wants to use the log ability, the usage is:

function init (args)
    local needs = {}
    needs["protocol"] = "tls" 
    return needs
end

If one wants to write a match function in Lua scripts, then it must be:

function init(args)
    local needs = {}
    needs["tls"] = "true" 
    return needs
end

Real-life examples:
Example for match: https://github.com/OISF/suricata-verify/blob/master/tests/dns-lua-rules/test-rrname.lua Example for log: https://github.com/OISF/suricata-verify/blob/master/tests/lua-output-dns/test.lua

Expected behavior:
regardless of what function is being written, users should be able to use needs in the same way.


Related issues 6 (4 open2 closed)

Related to Suricata - Documentation #4725: Inconsistent "needs" key documentation for Lua functionsClosedJuliana Fajardini ReichowActions
Related to Suricata - Feature #7485: rules: allow specifying explicit hooksIn ProgressVictor JulienActions
Related to Suricata - Task #7486: lua: turn flowvars into libNewOISF DevActions
Related to Suricata - Task #7487: lua: turn flowints into libNewOISF DevActions
Blocks Suricata - Story #7128: lua: sandboxed lua support with mimimum set of bindingsNewVictor JulienActions
Blocked by Suricata - Task #7492: lua: remove script_api_ver check from needs blockClosedVictor JulienActions
Actions

Also available in: Atom PDF