From: <al...@us...> - 2003-04-05 01:56:14
|
Update of /cvsroot/msyslog/syslog/src In directory sc8-pr-cvs1:/tmp/cvs-serv9518/src Modified Files: syslogd.c Log Message: -C option to avoid repeated msg to collapse by jkohen@ Index: syslogd.c =================================================================== RCS file: /cvsroot/msyslog/syslog/src/syslogd.c,v retrieving revision 1.238 retrieving revision 1.239 diff -u -d -r1.238 -r1.239 --- syslogd.c 4 Apr 2003 20:04:28 -0000 1.238 +++ syslogd.c 5 Apr 2003 01:56:11 -0000 1.239 @@ -186,6 +186,7 @@ #define SYSLOGD_MARK 0x02 /* call domark() */ #define SYSLOGD_DIE 0x04 /* call die() */ #define USE_LOCALDOMAIN 0x08 /* use hostname with local domain */ +#define DONT_COLLAPSE 0x10 char *libdir = NULL; struct global globals = {NULL, NULL, NULL}; @@ -277,20 +278,17 @@ * -c -noconsole * -A -uselocaldomain * -n -nodefault + * -C -nocollapse * * legacy options * -u -unix * -p -path -a [additional unix input module in /dev/log] */ - for (argcnt = 1; /* skip argv[0] getxopt() */ - ((ch = getxopt(argc, argv, - " l!list" - " d!debug: i!input: f!conf:" - " m!markinterval: P!pidfile: c!console A!localdomain" - " n!nodefault h!help" - " u!udp p!path a!add", &argcnt)) != -1); - argcnt++) { + for (argcnt = 1; (ch = getxopt(argc, argv, " l!list d!debug: i!input: " + "f!conf: m!markinterval: P!pidfile: c!console A!localdomain " + "n!nodefault C!nocollapse h!help u!udp p!path a!add", &argcnt)) + != -1; argcnt++) { char buf[512]; switch (ch) { @@ -347,6 +345,10 @@ case 'A': /* use local domain name too */ DaemonFlags |= USE_LOCALDOMAIN; break; + case 'C': + DaemonFlags |= DONT_COLLAPSE; + break; + case 'h': default: usage(); @@ -691,7 +693,7 @@ "Modular Syslog vesion " MSYSLOG_VERSION_STR "\n\n" "usage: syslogd [-d <debug_level>] [-u] [-f conffile] " "[-P pidfile] [-n] [-m markinterval] \\\n [-p logpath] " - "[-a logpath] -i input1 [-i input2] [-i inputn]\n %s\n" + "[-a logpath] [-C] -i input1 [-i input2] [-i inputn]\n %s\n" "%s\n\n", copyright, rcsid); exit(1); } @@ -905,9 +907,11 @@ /* * suppress duplicate lines to this file */ - if ((flags & MARK) == 0 && msglen == f->f_prevlen && + if (!(DaemonFlags & DONT_COLLAPSE) && + !(flags & MARK) && msglen == f->f_prevlen && !strcmp(msg, f->f_prevline) && !strcmp(from, f->f_prevhost)) { + memcpy(&f->f_tm, ×tamp, sizeof(f->f_tm)); f->f_prevcount++; m_dprintf(MSYSLOG_INFORMATIVE, "msg repeated %d times," |