From 18c5b53fb88fd4ac35053a16d2d42517cc3baad8 Mon Sep 17 00:00:00 2001
From: Rainer Gerhards <rgerhards@adiscon.com>
Date: Thu, 20 Dec 2007 09:15:30 +0000
Subject: - implemented $klogUseSyscallInterface config directive - implemented
 $klogSymbolLookup config directive

---
 plugins/imklog/imklog.c | 29 +++++++++++++++++++----------
 1 file changed, 19 insertions(+), 10 deletions(-)

(limited to 'plugins')

diff --git a/plugins/imklog/imklog.c b/plugins/imklog/imklog.c
index 1c3c79c3..c7868065 100644
--- a/plugins/imklog/imklog.c
+++ b/plugins/imklog/imklog.c
@@ -51,8 +51,18 @@ typedef struct _instanceData {
 } instanceData;
 
 /* configuration settings TODO: move to instance data? */
-int dbgPrintSymbols = 0;
-int symbols_twice = 0;
+int dbgPrintSymbols = 0; /* this one is extern so the helpers can access it! */
+static int symbols_twice = 0;
+static int use_syscall = 0;
+static int symbol_lookup = 1;
+/* TODO: configuration for the following directives must be implemented. It 
+ * was not done yet because we either do not yet have a config handler for
+ * that type or I thought it was acceptable to push it to a later stage when
+ * I gained more handson experience with the input module interface (and the
+ * changes resulting from that). -- rgerhards, 2007-12-20
+ */
+static char *symfile = NULL; 
+static int console_log_level = -1;
 
 
 /* Includes. */
@@ -84,14 +94,8 @@ _syscall3(int,ksyslog,int, type, char *, buf, int, len);
 #define LOG_BUFFER_SIZE 4096
 #define LOG_LINE_LENGTH 1000
 
-static int	kmsg,
-		console_log_level = -1;
-
-static int	use_syscall = 0,
-		symbol_lookup = 1;
-
-static char	*symfile = NULL,
-		log_buffer[LOG_BUFFER_SIZE];
+static int	kmsg;
+static char	log_buffer[LOG_BUFFER_SIZE];
 
 static enum LOGSRC {none, proc, kernel} logsrc;
 
@@ -681,6 +685,9 @@ static rsRetVal resetConfigVariables(uchar __attribute__((unused)) *pp, void __a
 {
 	dbgPrintSymbols = 0;
 	symbols_twice = 0;
+	use_syscall = 0;
+	symfile = NULL;
+	symbol_lookup = 1;
 	return RS_RET_OK;
 }
 
@@ -689,7 +696,9 @@ CODESTARTmodInit
 	*ipIFVersProvided = 1; /* so far, we only support the initial definition */
 CODEmodInit_QueryRegCFSLineHdlr
 	CHKiRet(omsdRegCFSLineHdlr((uchar *)"debugprintkernelsymbols", 0, eCmdHdlrBinary, NULL, &dbgPrintSymbols, STD_LOADABLE_MODULE_ID));
+	CHKiRet(omsdRegCFSLineHdlr((uchar *)"klogsymbollookup", 0, eCmdHdlrBinary, NULL, &symbol_lookup, STD_LOADABLE_MODULE_ID));
 	CHKiRet(omsdRegCFSLineHdlr((uchar *)"klogsymbolstwice", 0, eCmdHdlrBinary, NULL, &symbols_twice, STD_LOADABLE_MODULE_ID));
+	CHKiRet(omsdRegCFSLineHdlr((uchar *)"klogusesyscallinterface", 0, eCmdHdlrBinary, NULL, &use_syscall, STD_LOADABLE_MODULE_ID));
 	CHKiRet(omsdRegCFSLineHdlr((uchar *)"resetconfigvariables", 1, eCmdHdlrCustomHandler, resetConfigVariables, NULL, STD_LOADABLE_MODULE_ID));
 ENDmodInit
 /*
-- 
cgit