Thanks for this submission!
Few remarks after a very brief look at the patch:
* global variables must be declared in a .c file and the .h file has to list them with `external`, otherwise they get defined in each .c file where the .h file is included * it is recommended to use a prefix for all global variables and functions (which are not declared static) in order to avoid symbol conflicts. It can be the module name or a short form of it (e.g., `sec`)
One thing that is not something critical, but maybe worth discussing it before merging: is the name of the module `security` too generic for what the modules does? It does mainly filters, so eventually can be named `secfilter` (from security filter) in order to suggest better its purpose... I would like to avoid very generic names that can induce the perception it does everything expected in the scope of that name.