summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRainer Gerhards <rgerhards@adiscon.com>2007-12-21 14:07:14 +0000
committerRainer Gerhards <rgerhards@adiscon.com>2007-12-21 14:07:14 +0000
commit783d2c0368b7992822bfea3a981e56bf063b188a (patch)
tree7622711e27b2e8cb15b140be56206e741468a7ea
parent6db6907c0ee87582845fd98932c22067a3b2b84f (diff)
downloadrsyslog-783d2c0368b7992822bfea3a981e56bf063b188a.tar.gz
rsyslog-783d2c0368b7992822bfea3a981e56bf063b188a.tar.xz
rsyslog-783d2c0368b7992822bfea3a981e56bf063b188a.zip
begun work on imtcp
-rw-r--r--Makefile.am2
-rw-r--r--configure.ac2
-rw-r--r--plugins/imtcp/.cvsignore6
-rw-r--r--plugins/imtcp/Makefile.am8
-rw-r--r--plugins/imtcp/imtcp.c148
5 files changed, 164 insertions, 2 deletions
diff --git a/Makefile.am b/Makefile.am
index e15b0f12..029b6dfe 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -74,7 +74,7 @@ EXTRA_DIST = \
SUBDIRS = doc
-SUBDIRS += plugins/immark plugins/imuxsock
+SUBDIRS += plugins/immark plugins/imuxsock plugins/imtcp
if ENABLE_IMKLOGD
SUBDIRS += plugins/imklog
diff --git a/configure.ac b/configure.ac
index 20e35e99..b398554b 100644
--- a/configure.ac
+++ b/configure.ac
@@ -350,7 +350,7 @@ AC_SUBST(pgsql_libs)
-AC_CONFIG_FILES([Makefile doc/Makefile plugins/imuxsock/Makefile plugins/immark/Makefile plugins/imklog/Makefile plugins/ommysql/Makefile plugins/ompgsql/Makefile])
+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_OUTPUT
echo "****************************************************"
diff --git a/plugins/imtcp/.cvsignore b/plugins/imtcp/.cvsignore
new file mode 100644
index 00000000..9730646f
--- /dev/null
+++ b/plugins/imtcp/.cvsignore
@@ -0,0 +1,6 @@
+.deps
+.libs
+Makefile
+Makefile.in
+*.la
+*.lo
diff --git a/plugins/imtcp/Makefile.am b/plugins/imtcp/Makefile.am
new file mode 100644
index 00000000..e6076cb9
--- /dev/null
+++ b/plugins/imtcp/Makefile.am
@@ -0,0 +1,8 @@
+pkglib_LTLIBRARIES = imtcp.la
+
+imtcp_la_SOURCES = imtcp.c ../../module-template.h
+imtcp_la_CPPFLAGS = -I$(srcdir)/../.. $(pthreads_cflags)
+imtcp_la_LDFLAGS = -module -avoid-version
+imtcp_la_LIBADD =
+
+EXTRA_DIST =
diff --git a/plugins/imtcp/imtcp.c b/plugins/imtcp/imtcp.c
new file mode 100644
index 00000000..96686811
--- /dev/null
+++ b/plugins/imtcp/imtcp.c
@@ -0,0 +1,148 @@
+/* imtcp.c
+ * This is the implementation of the TCP 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 "rsyslog.h"
+#include <stdlib.h>
+#include <stdio.h>
+#include <assert.h>
+#include <string.h>
+#include <errno.h>
+#include <unistd.h>
+#include <sys/stat.h>
+#include <sys/un.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;
+ int fd;
+ 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 */
+ /* select here */
+
+ }
+
+ 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)
+{
+ //bOmitLocalLogging = 0;
+ 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:
+ */