summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRainer Gerhards <rgerhards@adiscon.com>2007-12-21 15:51:59 +0000
committerRainer Gerhards <rgerhards@adiscon.com>2007-12-21 15:51:59 +0000
commite747f766c635e8edc1ccc9fc5cf97be234d3d1ef (patch)
tree4c54259ab0aef17688f96cf819a7417ee35e3d9d
parent9a72402b80c9b67abae090645ba30adf697f3025 (diff)
downloadrsyslog-e747f766c635e8edc1ccc9fc5cf97be234d3d1ef.tar.gz
rsyslog-e747f766c635e8edc1ccc9fc5cf97be234d3d1ef.tar.xz
rsyslog-e747f766c635e8edc1ccc9fc5cf97be234d3d1ef.zip
prepared for imudp
-rw-r--r--Makefile.am2
-rw-r--r--configure.ac3
-rw-r--r--plugins/imudp/.cvsignore6
-rw-r--r--plugins/imudp/Makefile.am8
-rw-r--r--plugins/imudp/imudp.c142
5 files changed, 158 insertions, 3 deletions
diff --git a/Makefile.am b/Makefile.am
index 029b6dfe..1e519a78 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -74,7 +74,7 @@ EXTRA_DIST = \
SUBDIRS = doc
-SUBDIRS += plugins/immark plugins/imuxsock plugins/imtcp
+SUBDIRS += plugins/immark plugins/imuxsock plugins/imtcp plugins/imudp
if ENABLE_IMKLOGD
SUBDIRS += plugins/imklog
diff --git a/configure.ac b/configure.ac
index b398554b..886a32d3 100644
--- a/configure.ac
+++ b/configure.ac
@@ -349,8 +349,7 @@ AC_SUBST(pgsql_cflags)
AC_SUBST(pgsql_libs)
-
-AC_CONFIG_FILES([Makefile doc/Makefile plugins/imtcp/Makefile plugins/imuxsock/Makefile plugins/immark/Makefile plugins/imklog/Makefile plugins/ommysql/Makefile plugins/ompgsql/Makefile])
+AC_CONFIG_FILES([Makefile doc/Makefile plugins/imudp/Makefile plugins/imtcp/Makefile plugins/imuxsock/Makefile plugins/immark/Makefile plugins/imklog/Makefile plugins/ommysql/Makefile plugins/ompgsql/Makefile])
AC_OUTPUT
echo "****************************************************"
diff --git a/plugins/imudp/.cvsignore b/plugins/imudp/.cvsignore
new file mode 100644
index 00000000..9730646f
--- /dev/null
+++ b/plugins/imudp/.cvsignore
@@ -0,0 +1,6 @@
+.deps
+.libs
+Makefile
+Makefile.in
+*.la
+*.lo
diff --git a/plugins/imudp/Makefile.am b/plugins/imudp/Makefile.am
new file mode 100644
index 00000000..6e83dc9f
--- /dev/null
+++ b/plugins/imudp/Makefile.am
@@ -0,0 +1,8 @@
+pkglib_LTLIBRARIES = imudp.la
+
+imudp_la_SOURCES = imudp.c ../../module-template.h
+imudp_la_CPPFLAGS = -I$(srcdir)/../.. $(pthreads_cflags)
+imudp_la_LDFLAGS = -module -avoid-version
+imudp_la_LIBADD =
+
+EXTRA_DIST =
diff --git a/plugins/imudp/imudp.c b/plugins/imudp/imudp.c
new file mode 100644
index 00000000..7d739de4
--- /dev/null
+++ b/plugins/imudp/imudp.c
@@ -0,0 +1,142 @@
+/* imudp.c
+ * This is the implementation of the UDP input module.
+ *
+ * NOTE: read comments in module-template.h to understand how this file
+ * works!
+ *
+ * File begun on 2007-12-21 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 <stdlib.h>
+#include <assert.h>
+#include <string.h>
+#include <errno.h>
+#include <unistd.h>
+#include "rsyslog.h"
+#include "syslogd.h"
+#include "cfsysline.h"
+#include "module-template.h"
+
+MODULE_TYPE_INPUT
+TERM_SYNC_TYPE(eTermSync_NONE)
+
+/* defines */
+
+/* Module static data */
+DEF_IMOD_STATIC_DATA
+
+typedef struct _instanceData {
+} instanceData;
+
+/* config settings */
+
+
+/* This function is called to gather input.
+ */
+BEGINrunInput
+ int maxfds;
+ int nfds;
+ int i;
+ fd_set readfds;
+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) {
+ /* Add the Unix Domain Sockets to the list of read
+ * descriptors.
+ * rgerhards 2005-08-01: we must now check if there are
+ * any local sockets to listen to at all. If the -o option
+ * is given without -a, we do not need to listen at all..
+ */
+ maxfds = 0;
+ FD_ZERO (&readfds);
+
+ if(Debug) {
+ dbgprintf("--------imTCP calling select, active file descriptors (max %d): ", maxfds);
+ for (nfds = 0; nfds <= maxfds; ++nfds)
+ if ( FD_ISSET(nfds, &readfds) )
+ dbgprintf("%d ", nfds);
+ dbgprintf("\n");
+ }
+
+ /* wait for io to become ready */
+ nfds = select(maxfds+1, (fd_set *) &readfds, NULL, NULL, NULL);
+ }
+
+ return iRet;
+ENDrunInput
+
+
+/* initialize and return if will run or not */
+BEGINwillRun
+CODESTARTwillRun
+ /* first apply some config settings */
+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
+ /* register config file handlers */
+ //CHKiRet(omsdRegCFSLineHdlr((uchar *)"omitlocallogging", 0, eCmdHdlrBinary,
+ // NULL, &bOmitLocalLogging, STD_LOADABLE_MODULE_ID));
+ CHKiRet(omsdRegCFSLineHdlr((uchar *)"resetconfigvariables", 1, eCmdHdlrCustomHandler,
+ resetConfigVariables, NULL, STD_LOADABLE_MODULE_ID));
+ENDmodInit
+/*
+ * vi:set ai:
+ */