From 8862388bcb44f634cbfc3e69f11ff4cb76590a4b Mon Sep 17 00:00:00 2001 From: Mark Andrews Date: Sat, 10 Apr 2004 04:33:36 +0000 Subject: [PATCH] 1602. [bug] Logging to a file failed unless a size was specified. [RT# 10925] --- CHANGES | 3 ++- lib/isc/include/isc/log.h | 4 +++- lib/isc/log.c | 6 +++--- 3 files changed, 8 insertions(+), 5 deletions(-) diff --git a/CHANGES b/CHANGES index ea2ef1214d..4b41979bc5 100644 --- a/CHANGES +++ b/CHANGES @@ -12,7 +12,8 @@ 1603. [bug] nsupdate: set interactive based on isatty(). [RT# 10929] -1602. [placeholder] rt10925. +1602. [bug] Logging to a file failed unless a size was specified. + [RT# 10925] 1601. [placeholder] rt10920. diff --git a/lib/isc/include/isc/log.h b/lib/isc/include/isc/log.h index 57714c0d36..96bcaf69ba 100644 --- a/lib/isc/include/isc/log.h +++ b/lib/isc/include/isc/log.h @@ -15,7 +15,7 @@ * PERFORMANCE OF THIS SOFTWARE. */ -/* $Id: log.h,v 1.47 2004/03/05 05:10:58 marka Exp $ */ +/* $Id: log.h,v 1.48 2004/04/10 04:33:36 marka Exp $ */ #ifndef ISC_LOG_H #define ISC_LOG_H 1 @@ -96,6 +96,8 @@ struct isc_logmodule { * channel the name, versions and maximum_size should be set before calling * isc_log_createchannel(). To define an ISC_LOG_TOFILEDESC channel set only * the stream before the call. + * + * Setting maximum_size to zero implies no maximum. */ typedef struct isc_logfile { FILE *stream; /* Initialized to NULL for ISC_LOG_TOFILE. */ diff --git a/lib/isc/log.c b/lib/isc/log.c index 4a98e46398..21dfffd48a 100644 --- a/lib/isc/log.c +++ b/lib/isc/log.c @@ -15,7 +15,7 @@ * PERFORMANCE OF THIS SOFTWARE. */ -/* $Id: log.c,v 1.84 2004/03/16 05:52:20 marka Exp $ */ +/* $Id: log.c,v 1.85 2004/04/10 04:33:36 marka Exp $ */ /* Principal Authors: DCL */ @@ -1317,7 +1317,7 @@ isc_log_open(isc_logchannel_t *channel) { if (stat(path, &statbuf) == 0) { regular_file = S_ISREG(statbuf.st_mode) ? ISC_TRUE : ISC_FALSE; /* XXXDCL if not regular_file complain? */ - roll = ISC_TF(regular_file && + roll = ISC_TF(regular_file && FILE_MAXSIZE(channel) > 0 && statbuf.st_size >= FILE_MAXSIZE(channel)); } else if (errno == ENOENT) regular_file = ISC_TRUE; @@ -1691,7 +1691,7 @@ isc_log_doit(isc_log_t *lctx, isc_logcategory_t *category, * threshold, note it so that it will not be logged * to any more. */ - if (FILE_MAXSIZE(channel) != 0) { + if (FILE_MAXSIZE(channel) > 0) { INSIST(channel->type == ISC_LOG_TOFILE); /* XXXDCL NT fstat/fileno */