From db58c9cd814267e403aa1aadb2e7ca973b25c2a6 Mon Sep 17 00:00:00 2001 From: Eric Fahlgren Date: Wed, 7 Feb 2024 15:09:37 -0800 Subject: [PATCH] snort3: clean up ucode usage - Add missing 'ucode' package dependency - Proto-ify the ConfigItem objects - Fix indentation and tab usage Signed-off-by: Eric Fahlgren --- net/snort3/Makefile | 5 +-- net/snort3/files/main.uc | 76 +++++++++++++++++++++------------------- 2 files changed, 42 insertions(+), 39 deletions(-) diff --git a/net/snort3/Makefile b/net/snort3/Makefile index 87500abfe0..4886fd5d36 100644 --- a/net/snort3/Makefile +++ b/net/snort3/Makefile @@ -7,7 +7,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=snort3 PKG_VERSION:=3.1.78.0 -PKG_RELEASE:=3 +PKG_RELEASE:=4 PKG_SOURCE:=$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://github.com/snort3/snort3/archive/refs/tags/ @@ -25,7 +25,8 @@ define Package/snort3 SUBMENU:=Firewall SECTION:=net CATEGORY:=Network - DEPENDS:=+libstdcpp +libdaq3 +libdnet +libopenssl +libpcap +libpcre +libpthread +libuuid +zlib +libhwloc +libtirpc @HAS_LUAJIT_ARCH +luajit +libatomic +kmod-nft-queue +liblzma + DEPENDS:=+libstdcpp +libdaq3 +libdnet +libopenssl +libpcap +libpcre +libpthread +libuuid +zlib +libhwloc +libtirpc @HAS_LUAJIT_ARCH +luajit +libatomic +kmod-nft-queue +liblzma \ + +ucode +ucode-mod-fs +ucode-mod-uci TITLE:=Lightweight Network Intrusion Detection System URL:=http://www.snort.org/ MENU:=1 diff --git a/net/snort3/files/main.uc b/net/snort3/files/main.uc index 4f2a63ca88..8e33f9e5d2 100644 --- a/net/snort3/files/main.uc +++ b/net/snort3/files/main.uc @@ -30,15 +30,46 @@ function wrn(fmt, ...args) { function rpad(str, fill, len) { - str = rtrim(str) + ' '; - while (length(str) < len) { - str += fill; - } - return str; + str = rtrim(str) + ' '; + while (length(str) < len) { + str += fill; + } + return str; } //------------------------------------------------------------------------------ +const ConfigItem = { + contains: function(value) { + // Check if the value is contained in the listed values, + // depending on the item type. + switch (this.type) { + case "enum": + return value in this.values; + case "range": + return value >= this.values[0] && value <= this.values[1]; + default: + return true; + } + }, + + allowed: function() { + // Show a pretty version of the possible values, for error messages. + switch (this.type) { + case "enum": + return "one of [" + join(", ", this.values) + "]"; + case "range": + return `${this.values[0]} <= x <= ${this.values[1]}`; + case "path": + return "a path string"; + case "str": + return "a string"; + default: + return "???"; + } + }, +}; + function config_item(type, values, def) { // If no default value is provided explicity, then values[0] is used as default. if (! type in [ "enum", "range", "path", "str" ]) { @@ -49,42 +80,13 @@ function config_item(type, values, def) { wrn(`A 'range' type item must have exactly 2 values in ascending order.`); return; } - // Maybe check paths for existence??? + // Maybe check 'path' values for existence??? - return { + return proto({ type: type, values: values, default: def ?? values[0], - - contains: function(value) { - // Check if the value is contained in the listed values, - // depending on the item type. - switch (this.type) { - case "enum": - return value in this.values; - case "range": - return value >= this.values[0] && value <= this.values[1]; - default: - return true; - } - }, - - allowed: function() { - // Show a pretty version of the possible values, for error messages. - switch (this.type) { - case "enum": - return "one of [" + join(", ", this.values) + "]"; - case "range": - return `${this.values[0]} <= x <= ${this.values[1]}`; - case "path": - return "a path string"; - case "str": - return "a string"; - default: - return "???"; - } - }, - } + }, ConfigItem); }; const snort_config = {