diff --git a/logrotate.c b/logrotate.c index 4ef044e..9faf341 100644 --- a/logrotate.c +++ b/logrotate.c @@ -662,22 +662,20 @@ static int mailLog(struct logInfo *log, char *logFile, char *mailCommand, static int mailLogWrapper(char *mailFilename, char *mailCommand, int logNum, struct logInfo *log) { - /* if the log is compressed (and we're not mailing a - * file whose compression has been delayed), we need - * to uncompress it */ - if ((log->flags & LOG_FLAG_COMPRESS) && - !((log->flags & LOG_FLAG_DELAYCOMPRESS) && - (log->flags & LOG_FLAG_MAILFIRST))) { - if (mailLog(log, mailFilename, mailCommand, - log->uncompress_prog, log->logAddress, - log->files[logNum])) - return 1; - } else { - if (mailLog(log, mailFilename, mailCommand, NULL, - log->logAddress, mailFilename)) - return 1; - } - return 0; + /* if the log is compressed (and we're not mailing a + * file whose compression has been delayed), we need + * to uncompress it */ + if ((log->flags & LOG_FLAG_COMPRESS) && !(log->flags & LOG_FLAG_DELAYCOMPRESS)) { + if (mailLog(log, mailFilename, mailCommand, + log->uncompress_prog, log->logAddress, + (log->flags & LOG_FLAG_MAILFIRST) ? log->files[logNum] : mailFilename)) + return 1; + } else { + if (mailLog(log, mailFilename, mailCommand, NULL, + log->logAddress, mailFilename)) + return 1; + } + return 0; } static int copyTruncate(char *currLog, char *saveLog, struct stat *sb, diff --git a/test/test b/test/test index e9ce46f..f7f3cf4 100755 --- a/test/test +++ b/test/test @@ -132,6 +132,9 @@ createlogs() { checkmail() { (echo -s $PWD/$1 user@myhost.org; echo $2) | diff -u - mail-out + if [ $? != 0 ]; then + exit 5 + fi } checkoutput() { @@ -429,7 +432,7 @@ test.log 0 scriptout 0 foo EOF -checkmail test.log first +checkmail test.log.2.gz first # check rotation into a directory given as a relative pathname cleanup 12 @@ -1424,4 +1427,37 @@ fi rm -f *test.log* +cleanup 64 + +# ------------------------------- Test 64 ------------------------------------ +# filename in mail's subject with compress directive and maillast directive +# should be the name of the removed log +preptest test.log 64 1 0 + +DATESTRING=$(/bin/date +%Y%m%d) + +$RLR test-config.64 --force +checkoutput <