2009-10-05 13:28:31 +00:00
|
|
|
--- a/logrotate.c
|
|
|
|
+++ b/logrotate.c
|
|
|
|
@@ -567,9 +567,14 @@ int findNeedRotating(struct logInfo *log
|
|
|
|
/* rotate if:
|
|
|
|
1) the current weekday is before the weekday of the
|
|
|
|
last rotation
|
|
|
|
+ 1) the day of the week is the same as the day of the week of
|
|
|
|
+ the previous rotation but not the same day of the year
|
|
|
|
+ this will rotate it on the same day every week, but not
|
|
|
|
+ twice a day.
|
|
|
|
2) more then a week has passed since the last
|
|
|
|
rotation */
|
|
|
|
- state->doRotate = ((now.tm_wday < state->lastRotated.tm_wday)
|
|
|
|
+ state->doRotate = ((now.tm_wday == state->lastRotated.tm_wday
|
|
|
|
+ && now.tm_yday != state->lastRotated.tm_yday)
|
|
|
|
||
|
|
|
|
((mktime(&now) -
|
|
|
|
mktime(&state->lastRotated)) >
|