From 73e65c8bf1df2a20763bf83cacc5d82dc9cab7c6 Mon Sep 17 00:00:00 2001 From: laforge Date: Wed, 28 Aug 2002 09:37:20 +0000 Subject: rename ulogd_LOCALTIME into ulogd_LOCAL, add local.hostname tag MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit (Martin Kähmer) --- Rules.make.in | 3 +- extensions/ulogd_LOCAL.c | 99 ++++++++++++++++++++++++++++++++++++++++++++ extensions/ulogd_LOCALTIME.c | 76 ---------------------------------- ulogd.spec | 2 +- 4 files changed, 102 insertions(+), 78 deletions(-) create mode 100644 extensions/ulogd_LOCAL.c diff --git a/Rules.make.in b/Rules.make.in index 0f9c937..428b81f 100644 --- a/Rules.make.in +++ b/Rules.make.in @@ -3,6 +3,7 @@ prefix=@prefix@ exec_prefix=@exec_prefix@ sysconfdir=@sysconfdir@ +sbindir=@sbindir@ ULOGD_CONFIGFILE=@sysconfdir@/ulogd.conf @@ -26,7 +27,7 @@ LIBS=@LIBS@ # Names of the plugins to be compiled -ULOGD_SL:=BASE OPRINT PWSNIFF LOGEMU LOCALTIME +ULOGD_SL:=BASE OPRINT PWSNIFF LOGEMU LOCAL # mysql output support #ULOGD_SL+=MYSQL diff --git a/extensions/ulogd_LOCAL.c b/extensions/ulogd_LOCAL.c new file mode 100644 index 0000000..3ecf2b5 --- /dev/null +++ b/extensions/ulogd_LOCAL.c @@ -0,0 +1,99 @@ +/* ulogd_LOCAL.c, Version 0.3 + * + * ulogd interpreter plugin for: - local time of packet + * - hostname of localhost + * + * (C) 2001-2002 by Florent AIDE + * with the help of Moez MKADMI + * shamelessly ripped from Harald Welte + * + * 2002 extended by Martin Kaehmer + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 + * as published by the Free Software Foundation + * + * 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 + * + * + */ + +#include +#include +#include +#include + +#ifdef DEBUG_LOCAL +#define DEBUGP(x) ulogd_log(ULOGD_DEBUG, x) +#else +#define DEBUGP(format, args...) +#endif + + +static char hostname[255]; + + +static ulog_iret_t *_interp_local(ulog_interpreter_t *ip, + ulog_packet_msg_t *pkt) +{ + struct timeval tv; + ulog_iret_t *ret = ip->result; + + /* Get date */ + gettimeofday(&tv, NULL); + + /* put date */ + ret[0].value.ui32 = (unsigned long) tv.tv_sec; + ret[0].flags |= ULOGD_RETF_VALID; + + ret[1].value.ptr = hostname; + ret[1].flags |= ULOGD_RETF_VALID; + + return ret; +} + +static ulog_iret_t local_rets[] = { + { NULL, NULL, 0, ULOGD_RET_UINT32, ULOGD_RETF_NONE, "local.time", + { ui32: 0 } }, + { NULL, NULL, 0, ULOGD_RET_STRING, ULOGD_RETF_NONE, "local.hostname", + { ptr: NULL } }, +}; + +static ulog_interpreter_t local_ip[] = { + + { NULL, "local", 0, &_interp_local, 2, &local_rets }, + { NULL, "", 0, NULL, 0, NULL }, +}; + +void _local_reg_ip(void) +{ + ulog_interpreter_t *ip = local_ip; + ulog_interpreter_t *p; + + for (p = ip; p->interp; p++) + register_interpreter(p); + +} + +void _init(void) +{ + /* get hostname */ + char *tmp; + if (gethostname(hostname, sizeof(hostname)) < 0) { + ulogd_log(ULOGD_FATAL, "can't gethostname(): %s\n", + strerror(errno)); + exit(2); + } + /* strip off everything after first '.' */ + if (tmp = strchr(hostname, '.')) + *tmp = '\0'; + + _local_reg_ip(); +} diff --git a/extensions/ulogd_LOCALTIME.c b/extensions/ulogd_LOCALTIME.c index d1a40ce..e69de29 100644 --- a/extensions/ulogd_LOCALTIME.c +++ b/extensions/ulogd_LOCALTIME.c @@ -1,76 +0,0 @@ -/* ulogd_LOCALTIME.c, Version 0.2 - * - * ulogd locatime logger for each and every packet we see ;) - * - * (C) 2001-2002 by Florent AIDE - * with the help of Moez MKADMI - * shamelessly ripped from Harald Welte - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2 - * as published by the Free Software Foundation - * - * 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 - * - * - */ - -#include -#include -#include -#include - -#ifdef DEBUG_LOCALTIME -#define DEBUGP(x) ulogd_log(ULOGD_DEBUG, x) -#else -#define DEBUGP(format, args...) -#endif - -static ulog_iret_t *_interp_localtime(ulog_interpreter_t *ip, - ulog_packet_msg_t *pkt) -{ - struct timeval tv; - ulog_iret_t *ret = ip->result; - - /* Get date */ - gettimeofday(&tv, NULL); - - /* put date */ - ret[0].value.ui32 = (unsigned long) tv.tv_sec; - ret[0].flags |= ULOGD_RETF_VALID; - - return ret; -} - -static ulog_iret_t localtime_rets[] = { - { NULL, NULL, 0, ULOGD_RET_UINT32, ULOGD_RETF_NONE, "local.time", - { ui32: 0 } }, -}; - -static ulog_interpreter_t localtime_ip[] = { - - { NULL, "local", 0, &_interp_localtime, 1, &localtime_rets }, - { NULL, "", 0, NULL, 0, NULL }, -}; - -void _localtime_reg_ip(void) -{ - ulog_interpreter_t *ip = localtime_ip; - ulog_interpreter_t *p; - - for (p = ip; p->interp; p++) - register_interpreter(p); - -} - -void _init(void) -{ - _localtime_reg_ip(); -} diff --git a/ulogd.spec b/ulogd.spec index c29e1f3..045cec4 100644 --- a/ulogd.spec +++ b/ulogd.spec @@ -59,7 +59,7 @@ rm -rf %{buildroot} %{_sysconfdir}/rc.d/init.d/ulogd %dir %{_libdir}/ulogd %{_libdir}/ulogd/ulogd_BASE.so -%{_libdir}/ulogd/ulogd_LOCALTIME.so +%{_libdir}/ulogd/ulogd_LOCAL.so %{_libdir}/ulogd/ulogd_LOGEMU.so %{_libdir}/ulogd/ulogd_OPRINT.so %{_libdir}/ulogd/ulogd_PWSNIFF.so -- cgit v1.2.3