changeset 428:09082b117b1a

Lets only rotate log if it exists
author mmj
date Tue, 18 Jan 2005 18:39:14 +1100
parents df8e1e2f0ff6
children 2e0ef09de41f
files src/log_oper.c
diffstat 1 files changed, 4 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/src/log_oper.c	Tue Jan 18 10:47:16 2005 +1100
+++ b/src/log_oper.c	Tue Jan 18 18:39:14 2005 +1100
@@ -42,7 +42,7 @@
 
 int log_oper(const char *prefix, const char *basename, const char *fmt, ...)
 {
-	int fd;
+	int fd, statres;
 	char ct[26], *logstr, *logfilename, *tmp, log_msg[256];
 	struct stat st;
 	time_t t;
@@ -50,13 +50,14 @@
 	size_t i;
 
 	logfilename = concatstr(2, prefix, basename);
-	if(lstat(logfilename, &st) < 0 && errno != ENOENT) {
+	statres = lstat(logfilename, &st);
+	if(statres < 0 && errno != ENOENT) {
 		log_error(LOG_ARGS, "Could not stat logfile %s", logfilename);
 		myfree(logfilename);
 		return -1;
 	}
 	
-	if(st.st_size > (off_t)OPLOGSIZE) {
+	if(statres >= 0 && st.st_size > (off_t)OPLOGSIZE) {
 		tmp = concatstr(2, logfilename, ".rotated");
 		if(rename(logfilename, tmp) < 0) {
 			log_error(LOG_ARGS, "Could not rename %s,%s",