summaryrefslogtreecommitdiffstats
path: root/omshell.c
diff options
context:
space:
mode:
authorRainer Gerhards <rgerhards@adiscon.com>2007-07-20 15:40:01 +0000
committerRainer Gerhards <rgerhards@adiscon.com>2007-07-20 15:40:01 +0000
commit4d53a1e6a3519b6fb7f1bb201a8a735a8e73218f (patch)
tree83b2a87e0987ea0363cb0272e4510fce493ad1d0 /omshell.c
parent66214d45c76220ceb2d76ff1881baf79bee147a3 (diff)
downloadrsyslog-4d53a1e6a3519b6fb7f1bb201a8a735a8e73218f.tar.gz
rsyslog-4d53a1e6a3519b6fb7f1bb201a8a735a8e73218f.tar.xz
rsyslog-4d53a1e6a3519b6fb7f1bb201a8a735a8e73218f.zip
moved part of the shell action to its own module
Diffstat (limited to 'omshell.c')
-rw-r--r--omshell.c66
1 files changed, 66 insertions, 0 deletions
diff --git a/omshell.c b/omshell.c
new file mode 100644
index 00000000..fb49e964
--- /dev/null
+++ b/omshell.c
@@ -0,0 +1,66 @@
+/* omshell.c
+ * This is the implementation of the build-in shell output module.
+ *
+ * shell support was initially written by bkalkbrenner 2005-09-20
+ *
+ * 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"
+#include <stdio.h>
+#include <stdarg.h>
+#include <stdlib.h>
+#include <string.h>
+#include <assert.h>
+#include "rsyslog.h"
+#include "syslogd.h"
+#include "syslogd-types.h"
+#include "srUtils.h"
+#include "omshell.h"
+
+
+/* call the shell action
+ * returns 0 if it succeeds, something else otherwise
+ */
+int doActionShell(selector_t *f, time_t now)
+{
+ uchar *psz;
+
+ /* TODO: using f->f_un.f_file.f_name is not clean from the point of
+ * modularization. We'll change that as we go ahead with modularization.
+ * rgerhards, 2007-07-20
+ */
+ f->f_time = now; /* TODO: find out, if we can not simply replace this with time(NULL) */
+ dprintf("\n");
+ iovCreate(f);
+ psz = (uchar*) iovAsString(f);
+ if(execProg((uchar*) f->f_un.f_file.f_fname, 1, (uchar*) psz) == 0)
+ logerrorSz("Executing program '%s' failed", f->f_un.f_file.f_fname);
+
+ return 0;
+}
+
+/*
+ * vi:set ai:
+ */