--- ./syslogd.c.orig 2014-10-04 14:47:18.000000000 -0500 +++ ./syslogd.c 2016-06-29 01:46:39.355541929 -0500 @@ -776,6 +776,7 @@ }; int Debug; /* debug flag */ +int Compress = 1; /* compress repeated messages flag */ char LocalHostName[MAXHOSTNAMELEN+1]; /* our hostname */ char *LocalDomain; /* our local domain name */ char *emptystring = ""; @@ -888,7 +889,7 @@ funix[i] = -1; } - while ((ch = getopt(argc, argv, "a:dhf:l:m:np:rs:v")) != EOF) + while ((ch = getopt(argc, argv, "a:cdhf:l:m:np:rs:v")) != EOF) switch((char)ch) { case 'a': if (nfunix < MAXFUNIX) @@ -896,6 +897,9 @@ else fprintf(stderr, "Out of descriptors, ignoring %s\n", optarg); break; + case 'c': /* don't compress repeated messages */ + Compress = 0; + break; case 'd': /* debug */ Debug = 1; break; @@ -1240,7 +1244,7 @@ int usage() { - fprintf(stderr, "usage: syslogd [-drvh] [-l hostlist] [-m markinterval] [-n] [-p path]\n" \ + fprintf(stderr, "usage: syslogd [-cdrvh] [-l hostlist] [-m markinterval] [-n] [-p path]\n" \ " [-s domainlist] [-f conffile]\n"); exit(1); } @@ -1703,7 +1707,7 @@ /* * suppress duplicate lines to this file */ - if ((flags & MARK) == 0 && msglen == f->f_prevlen && + if (Compress && (flags & MARK) == 0 && msglen == f->f_prevlen && !strcmp(msg, f->f_prevline) && !strcmp(from, f->f_prevhost)) { (void) strncpy(f->f_lasttime, timestamp, 15); --- ./sysklogd.8.orig 2014-10-04 14:47:18.000000000 -0500 +++ ./sysklogd.8 2016-06-29 01:59:45.311525189 -0500 @@ -10,6 +10,7 @@ .RB [ " \-a " .I socket ] +.RB [ " \-c " ] .RB [ " \-d " ] .RB [ " \-f " .I config file @@ -83,6 +84,11 @@ described by the people from OpenBSD at . .TP +.B "\-c" +Disable the repeating line compression that normally suppresses the +repeated lines and logs a message such as 'last message repeated 124 +times'. With this option, all repeated lines will be logged. +.TP .B "\-d" Turns on debug mode. Using this the daemon will not proceed a .BR fork (2)