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/immark.c | |
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/immark.c')
-rw-r--r-- | plugins/immark/immark.c | 79 |
1 files changed, 79 insertions, 0 deletions
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: + */ |