summaryrefslogtreecommitdiffstats
path: root/plugins
diff options
context:
space:
mode:
authorRainer Gerhards <rgerhards@adiscon.com>2007-12-20 09:49:09 +0000
committerRainer Gerhards <rgerhards@adiscon.com>2007-12-20 09:49:09 +0000
commit8f193966ccd2fe4d9e8eff0aefda35399bdc6e74 (patch)
treef6d90256d58b81532a69b99a957dd6d854ba9f39 /plugins
parent18c5b53fb88fd4ac35053a16d2d42517cc3baad8 (diff)
downloadrsyslog-8f193966ccd2fe4d9e8eff0aefda35399bdc6e74.tar.gz
rsyslog-8f193966ccd2fe4d9e8eff0aefda35399bdc6e74.tar.xz
rsyslog-8f193966ccd2fe4d9e8eff0aefda35399bdc6e74.zip
begun moving unix socket code to its own module
Diffstat (limited to 'plugins')
-rw-r--r--plugins/imuxsock/.cvsignore6
-rw-r--r--plugins/imuxsock/Makefile.am8
-rw-r--r--plugins/imuxsock/imuxsock.c128
3 files changed, 142 insertions, 0 deletions
diff --git a/plugins/imuxsock/.cvsignore b/plugins/imuxsock/.cvsignore
new file mode 100644
index 00000000..9730646f
--- /dev/null
+++ b/plugins/imuxsock/.cvsignore
@@ -0,0 +1,6 @@
+.deps
+.libs
+Makefile
+Makefile.in
+*.la
+*.lo
diff --git a/plugins/imuxsock/Makefile.am b/plugins/imuxsock/Makefile.am
new file mode 100644
index 00000000..4b885090
--- /dev/null
+++ b/plugins/imuxsock/Makefile.am
@@ -0,0 +1,8 @@
+pkglib_LTLIBRARIES = imuxsock.la
+
+imuxsock_la_SOURCES = imuxsock.c ../../module-template.h
+imuxsock_la_CPPFLAGS = -I$(srcdir)/../.. $(pthreads_cflags)
+imuxsock_la_LDFLAGS = -module -avoid-version
+imuxsock_la_LIBADD =
+
+EXTRA_DIST =
diff --git a/plugins/imuxsock/imuxsock.c b/plugins/imuxsock/imuxsock.c
new file mode 100644
index 00000000..cde1a8bc
--- /dev/null
+++ b/plugins/imuxsock/imuxsock.c
@@ -0,0 +1,128 @@
+/* imuxsock.c
+ * This is the implementation of the Unix sockets input module.
+ *
+ * NOTE: read comments in module-template.h to understand how this file
+ * works!
+ *
+ * File begun on 2007-12-20 by RGerhards (extracted from syslogd.c)
+ *
+ * Copyright 2007 Rainer Gerhards and Adiscon GmbH.
+ *
+ * This file is part of rsyslog.
+ *
+ * Rsyslog is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Rsyslog is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Rsyslog. If not, see <http://www.gnu.org/licenses/>.
+ *
+ * A copy of the GPL can be found in the file "COPYING" in this distribution.
+ */
+#include "config.h"
+#include "rsyslog.h"
+#include <stdlib.h>
+#include <stdio.h>
+#include <assert.h>
+#include <signal.h>
+#include <string.h>
+#include <pthread.h>
+#include "syslogd.h"
+#include "cfsysline.h"
+#include "module-template.h"
+
+MODULE_TYPE_INPUT
+TERM_SYNC_TYPE(eTermSync_SIGNAL)
+
+/* defines */
+
+/* Module static data */
+DEF_IMOD_STATIC_DATA
+
+typedef struct _instanceData {
+} instanceData;
+
+/* This function is called to gather input. It must terminate only
+ * a) on failure (iRet set accordingly)
+ * b) on termination of the input module (as part of the unload process)
+ * Code begun 2007-12-12 rgerhards
+ *
+ * This code must simply spawn emit a mark message at each mark interval.
+ * We are running on our own thread, so this is extremely easy: we just
+ * sleep MarkInterval seconds and each time we awake, we inject the message.
+ * Please note that we do not do the other fancy things that sysklogd
+ * (and pre 1.20.2 releases of rsyslog) did in mark procesing. They simply
+ * do not belong here.
+ */
+BEGINrunInput
+CODESTARTrunInput
+ /* this is an endless loop - it is terminated when the thread is
+ * signalled to do so. This, however, is handled by the framework,
+ * right into the sleep below.
+ */
+ while(1) {
+ /* we do not need to handle the RS_RET_TERMINATE_NOW case any
+ * special because we just need to terminate. Cleanup is done
+ * during afterRun(). -- rgerhards 2007-12-20
+ */
+ /* select() here */
+ }
+finalize_it:
+ return iRet;
+ENDrunInput
+
+
+BEGINwillRun
+CODESTARTwillRun
+ /* initialize and return if will run or not */
+ return RS_RET_OK;
+ENDwillRun
+
+
+BEGINafterRun
+CODESTARTafterRun
+ /* do cleanup here */
+ENDafterRun
+
+
+BEGINfreeInstance
+CODESTARTfreeInstance
+ENDfreeInstance
+
+
+BEGINdbgPrintInstInfo
+CODESTARTdbgPrintInstInfo
+ENDdbgPrintInstInfo
+
+
+BEGINmodExit
+CODESTARTmodExit
+ENDmodExit
+
+
+BEGINqueryEtryPt
+CODESTARTqueryEtryPt
+CODEqueryEtryPt_STD_IMOD_QUERIES
+ENDqueryEtryPt
+
+static rsRetVal resetConfigVariables(uchar __attribute__((unused)) *pp, void __attribute__((unused)) *pVal)
+{
+ return RS_RET_OK;
+}
+
+BEGINmodInit()
+CODESTARTmodInit
+ *ipIFVersProvided = 1; /* so far, we only support the initial definition */
+CODEmodInit_QueryRegCFSLineHdlr
+ //CHKiRet(omsdRegCFSLineHdlr((uchar *)"markmessageperiod", 0, eCmdHdlrInt, NULL, &iMarkMessagePeriod, STD_LOADABLE_MODULE_ID));
+ CHKiRet(omsdRegCFSLineHdlr((uchar *)"resetconfigvariables", 1, eCmdHdlrCustomHandler, resetConfigVariables, NULL, STD_LOADABLE_MODULE_ID));
+ENDmodInit
+/*
+ * vi:set ai:
+ */