diff options
author | Rainer Gerhards <rgerhards@adiscon.com> | 2007-12-14 10:42:30 +0000 |
---|---|---|
committer | Rainer Gerhards <rgerhards@adiscon.com> | 2007-12-14 10:42:30 +0000 |
commit | 119573816d447a78fee256d173704b673c356664 (patch) | |
tree | 336ccb6794a884b7dc547425fa439fb5e7feaf31 /plugins/immark | |
parent | 3f8f9f142c7bcc9c5dd97708b0611024037f2835 (diff) | |
download | rsyslog-119573816d447a78fee256d173704b673c356664.tar.gz rsyslog-119573816d447a78fee256d173704b673c356664.tar.xz rsyslog-119573816d447a78fee256d173704b673c356664.zip |
begin work on on immark, the first input module. In the long term this will
lead to a complete rewrite of the input system
Diffstat (limited to 'plugins/immark')
-rw-r--r-- | plugins/immark/.cvsignore | 6 | ||||
-rw-r--r-- | plugins/immark/Makefile.am | 8 | ||||
-rw-r--r-- | plugins/immark/immark.c | 79 | ||||
-rw-r--r-- | plugins/immark/immark.h | 34 |
4 files changed, 127 insertions, 0 deletions
diff --git a/plugins/immark/.cvsignore b/plugins/immark/.cvsignore new file mode 100644 index 00000000..d2a72d33 --- /dev/null +++ b/plugins/immark/.cvsignore @@ -0,0 +1,6 @@ +.deps +.libs +Makefile +Makefile.in +immark.la +immark_la-ommysql.lo diff --git a/plugins/immark/Makefile.am b/plugins/immark/Makefile.am new file mode 100644 index 00000000..7a53d594 --- /dev/null +++ b/plugins/immark/Makefile.am @@ -0,0 +1,8 @@ +pkglib_LTLIBRARIES = immark.la + +immark_la_SOURCES = immark.c immark.h ../../module-template.h +immark_la_CPPFLAGS = -I$(srcdir)/../.. $(pthreads_cflags) +immark_la_LDFLAGS = -module -avoid-version +immark_la_LIBADD = + +EXTRA_DIST = diff --git a/plugins/immark/immark.c b/plugins/immark/immark.c new file mode 100644 index 00000000..ca137f71 --- /dev/null +++ b/plugins/immark/immark.c @@ -0,0 +1,79 @@ +/* omfwd.c + * This is the implementation of the build-in mark message input module. + * + * NOTE: read comments in module-template.h to understand how this file + * works! + * + * File begun on 2007-07-20 by RGerhards (extracted from syslogd.c) + * This file is under development and has not yet arrived at being fully + * self-contained and a real object. So far, it is mostly an excerpt + * of the "old" message code without any modifications. However, it + * helps to have things at the right place one we go to the meat of it. + * + * Copyright 2007 Rainer Gerhards and Adiscon GmbH. + * + * This program 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 2 + * of the License, or (at your option) any later version. + * + * This program 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 this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + * + * A copy of the GPL can be found in the file "COPYING" in this distribution. + */ +#include "config.h" +#if 0 /* IMMARK */ +#include <stdlib.h> +#include <stdio.h> +#include <signal.h> +#include <pthread.h> +#include "rsyslog.h" +#include "syslogd.h" + +/* 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. + */ +rsRetVal +immark_runInput(void) +{ + struct timeval tvSelectTimeout; + sigset_t sigSet; + sigfillset(&sigSet); + pthread_sigmask(SIG_BLOCK, &sigSet, NULL); + sigemptyset(&sigSet); + sigaddset(&sigSet, SIGTERM); + sigaddset(&sigSet, SIGHUP); + pthread_sigmask(SIG_UNBLOCK, &sigSet, NULL); +dbgprintf("immark_runInput running!\n"); + while(!bFinished) { +dbgprintf("immark pre select\n"); + tvSelectTimeout.tv_sec = 500; + tvSelectTimeout.tv_usec = 0; + select(0, NULL, NULL, NULL, &tvSelectTimeout); +dbgprintf("immark post select, doing mark, bFinished: %d\n", bFinished); + logmsgInternal(LOG_INFO, "-- MARK --", ADDDATE); + //logmsgInternal(LOG_INFO, "-- MARK --", ADDDATE|MARK); + } +fprintf(stderr, "immark: finished!\n"); + return RS_RET_OK; +} +#endif /* #if 0 */ +/* + * vi:set ai: + */ diff --git a/plugins/immark/immark.h b/plugins/immark/immark.h new file mode 100644 index 00000000..7a125780 --- /dev/null +++ b/plugins/immark/immark.h @@ -0,0 +1,34 @@ +/* immark.h + * These are the definitions for the built-in mark message generation module. This + * file may disappear when this has become a loadable module. + * + * File begun on 2007-12-12 by RGerhards (extracted from syslogd.c) + * + * Copyright 2007 Rainer Gerhards and Adiscon GmbH. + * + * This program 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 2 + * of the License, or (at your option) any later version. + * + * This program 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 this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + * + * A copy of the GPL can be found in the file "COPYING" in this distribution. + */ +#ifndef IMMARK_H_INCLUDED +#define IMMARK_H_INCLUDED 1 + +/* prototypes */ +rsRetVal immark_runInput(void); + +#endif /* #ifndef IMMARK_H_INCLUDED */ +/* + * vi:set ai: + */ |