>From ebd00704ba35adb15605c55b8819cce381726d96 Mon Sep 17 00:00:00 2001 From: Jiri Moskovcak Date: Fri, 12 Mar 2010 17:49:33 +0100 Subject: [PATCH] don't read syslog if it didn't change rhbz#573042 --- lib/Plugins/KerneloopsScanner.cpp | 12 ++++++++++-- 1 files changed, 10 insertions(+), 2 deletions(-) diff --git a/lib/Plugins/KerneloopsScanner.cpp b/lib/Plugins/KerneloopsScanner.cpp index fdcc3e5..71c4ebd 100644 --- a/lib/Plugins/KerneloopsScanner.cpp +++ b/lib/Plugins/KerneloopsScanner.cpp @@ -59,15 +59,23 @@ int scan_syslog_file(vector_string_t& oopsList, const char *filename) int fd; int cnt_FoundOopses; ssize_t sz; - + static time_t last_changed = 0; fd = open(filename, O_RDONLY); if (fd < 0) return 0; statb.st_size = 0; /* paranoia */ - if (fstat(fd, &statb) != 0 || statb.st_size < 1) { + if (fstat(fd, &statb) != 0 || statb.st_size < 1) + { close(fd); return 0; } + if (last_changed == statb.st_mtime) + { + VERB1 log("Syslog file '%s' haven't change since last scan, skipping", filename); + close(fd); + return 0; + } + last_changed = statb.st_mtime; /* * In theory we have a race here, since someone could spew -- 1.6.6.1