syslogd: Only log INTERNAL_MARK every MarkInterval

Internal log messages of INTERNAL_MARK time were created every 30
seconds (TIMERINTVL) instead of every MarkInterval (default 20 min).

Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
This commit is contained in:
Joachim Nilsson 2019-12-09 13:52:51 +01:00
parent 7ee7df058b
commit e0c2d3ad0d
2 changed files with 17 additions and 6 deletions

View File

@ -401,9 +401,14 @@ int main(int argc, char *argv[])
/* /*
* Set up timer callbacks for -- MARK -- et al * Set up timer callbacks for -- MARK -- et al
*/ */
if (MarkInterval > 0) if (MarkInterval > 0) {
timer_add(TIMERINTVL, domark, NULL); int interval = MarkInterval / 2;
timer_add(FLUSHINTVL, doflush, NULL);
if (interval < 30)
interval = 30;
timer_add(interval, domark, NULL);
}
timer_add(TIMERINTVL, doflush, NULL);
/* Start 'em */ /* Start 'em */
timer_start(); timer_start();
@ -1896,7 +1901,14 @@ static void forw_lookup(struct filed *f)
void domark(void *arg) void domark(void *arg)
{ {
static time_t t_last = 0;
time_t t_now;
t_now = timer_now();
if (t_now >= t_last + MarkInterval) {
flog(INTERNAL_MARK | LOG_INFO, "-- MARK --"); flog(INTERNAL_MARK | LOG_INFO, "-- MARK --");
t_last = t_now;
}
} }
void doflush(void *arg) void doflush(void *arg)

View File

@ -51,8 +51,7 @@
#define MAXSVLINE MAXLINE /* maximum saved line length */ #define MAXSVLINE MAXLINE /* maximum saved line length */
#define DEFUPRI (LOG_USER | LOG_NOTICE) #define DEFUPRI (LOG_USER | LOG_NOTICE)
#define DEFSPRI (LOG_KERN | LOG_CRIT) #define DEFSPRI (LOG_KERN | LOG_CRIT)
#define TIMERINTVL 30 /* interval for checking flush, mark */ #define TIMERINTVL 30 /* interval for checking flush/nslookip */
#define FLUSHINTVL 10 /* interval for checking flush, mark */
#define RCVBUF_MINSIZE (80 * MAXLINE) /* minimum size of dgram rcv buffer */ #define RCVBUF_MINSIZE (80 * MAXLINE) /* minimum size of dgram rcv buffer */
/* /*