>Number: 160432 >Category: kern >Synopsis: [patch] Allow both size and at-time specifications for log >rotation. >Confidential: no >Severity: non-critical >Priority: low >Responsible: freebsd-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: sw-bug >Submitter-Id: current-users >Arrival-Date: Sat Sep 03 17:50:08 UTC 2011 >Closed-Date: >Last-Modified: >Originator: Ian Lepore <free...@damnhippie.dyndns.org> >Release: FreeBSD 8.2-RC3 arm >Organization: none >Environment: FreeBSD dvb 8.2-RC3 FreeBSD 8.2-RC3 #49: Tue Feb 15 22:52:14 UTC 2011 r...@revolution.hippie.lan:/usr/obj/arm/usr/src/sys/DVB arm
>Description: If both size-based and time-based rotation parameters are specified for the same log file in newsyslog.conf, the size specification is effectively ignored because the rotation-decision logic returns early if the at-time test isn't satisfied. >How-To-Repeat: Specify both a size limit and a time specification for the same file. The log will not be rotated until the designated time regardless of how large it becomes before then. >Fix: This patch allows both size and time to be specified in a useful way. The log file will be rotated when either the size is exceeded or the designated time arrives. --- diff.tmp begins here --- --- newsyslog.c.orig 2011-09-03 11:26:46.000000000 -0600 +++ newsyslog.c 2011-08-31 16:06:09.000000000 -0600 @@ -516,7 +516,12 @@ do_entry(struct conf_entry * ent) printf("does not exist, skipped%s.\n", temp_reason); } } else { - if (ent->flags & CE_TRIMAT && !force && !rotatereq) { + if (ent->trsize > 0 && ent->fsize >= ent->trsize) { + if (verbose) { + printf("(size overrides at-time) "); + } + /* not returning here is how size overrides at-time */ + } else if (ent->flags & CE_TRIMAT && !force && !rotatereq) { diffsecs = ptimeget_diff(timenow, ent->trim_at); if (diffsecs < 0.0) { /* trim_at is some time in the future. */ --- diff.tmp ends here --- >Release-Note: >Audit-Trail: >Unformatted: _______________________________________________ freebsd-bugs@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-bugs To unsubscribe, send any mail to "freebsd-bugs-unsubscr...@freebsd.org"