svn commit: r245360 - stable/9/usr.sbin/newsyslog

Mark Johnston markj at FreeBSD.org
Sun Jan 13 04:14:47 UTC 2013


Author: markj
Date: Sun Jan 13 04:14:46 2013
New Revision: 245360
URL: http://svnweb.freebsd.org/changeset/base/245360

Log:
  MFC r244995 r244996 r244997.
  
  MFC r244995:
    Fix a typo in an error message.
  
  MFC r244996:
    Have -n imply -r, since dry-run mode obviously doesn't require root
    privileges.
  
  MFC r244997:
    Make sure to update the mtime of a logfile after archiving it. This
    ensures that the next rotation happens at the correct time when using
    interval-based rotations.
  
  Approved by:	rstone (co-mentor)

Modified:
  stable/9/usr.sbin/newsyslog/newsyslog.8
  stable/9/usr.sbin/newsyslog/newsyslog.c
Directory Properties:
  stable/9/usr.sbin/newsyslog/   (props changed)

Modified: stable/9/usr.sbin/newsyslog/newsyslog.8
==============================================================================
--- stable/9/usr.sbin/newsyslog/newsyslog.8	Sun Jan 13 04:14:30 2013	(r245359)
+++ stable/9/usr.sbin/newsyslog/newsyslog.8	Sun Jan 13 04:14:46 2013	(r245360)
@@ -125,7 +125,9 @@ reasons for either trimming that log or 
 Cause
 .Nm
 not to trim the logs, but to print out what it would do if this option
-were not specified.
+were not specified. This option implies the
+.Fl r
+option.
 .It Fl r
 Remove the restriction that
 .Nm

Modified: stable/9/usr.sbin/newsyslog/newsyslog.c
==============================================================================
--- stable/9/usr.sbin/newsyslog/newsyslog.c	Sun Jan 13 04:14:30 2013	(r245359)
+++ stable/9/usr.sbin/newsyslog/newsyslog.c	Sun Jan 13 04:14:46 2013	(r245360)
@@ -642,7 +642,7 @@ parse_args(int argc, char **argv)
 			break;
 		case 'n':
 			noaction++;
-			break;
+			/* FALLTHROUGH */
 		case 'r':
 			needroot = 0;
 			break;
@@ -1580,7 +1580,7 @@ delete_oldest_timelog(const struct conf_
 				    oldlogs[i].fname);
 			else if (unlinkat(dirfd, oldlogs[i].fname, 0) != 0) {
 				snprintf(errbuf, sizeof(errbuf),
-				    "Could not delet old logfile '%s'",
+				    "Could not delete old logfile '%s'",
 				    oldlogs[i].fname);
 				perror(errbuf);
 			}
@@ -1812,12 +1812,21 @@ do_rotate(const struct conf_entry *ent)
 				printf("\tcp %s %s\n", ent->log, file1);
 			else
 				printf("\tln %s %s\n", ent->log, file1);
+			printf("\ttouch %s\t\t"
+			    "# Update mtime for 'when'-interval processing\n",
+			    file1);
 		} else {
 			if (!(flags & CE_BINARY)) {
 				/* Report the trimming to the old log */
 				log_trim(ent->log, ent);
 			}
 			savelog(ent->log, file1);
+			/*
+			 * Interval-based rotations are done using the mtime of
+			 * the most recently archived log, so make sure it gets
+			 * updated during a rotation.
+			 */
+			utimes(file1, NULL);
 		}
 		change_attrs(file1, ent);
 	}


More information about the svn-src-stable-9 mailing list