1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
|
From 75dc0c6d4fffeac7a7b0461a6cdc6edd7a62c22c Mon Sep 17 00:00:00 2001
From: Benke Tibor <ihrwein@gmail.com>
Date: Wed, 27 May 2015 13:18:53 +0200
Subject: [PATCH] system: use keep-timestamp(no) in case of Linux kernel log
messages
Kernel messages read from /dev/kmsg may not have accurate timestamps.
The time source used for the logs is not updated after system
SUSPEND/RESUME. With this patch we ignore the original (and possibly
inaccurate) timestamp and use the time of reception.
Fixes #121
Signed-off-by: Tibor Benke <tibor.benke@balabit.com>
---
modules/system-source/system-source.c | 11 +++++++----
1 file changed, 7 insertions(+), 4 deletions(-)
diff --git a/modules/system-source/system-source.c b/modules/system-source/system-source.c
index 7228dd4..9e3de12 100644
--- a/modules/system-source/system-source.c
+++ b/modules/system-source/system-source.c
@@ -76,7 +76,8 @@ system_sysblock_add_unix_dgram(GString *sysblock, const gchar *path,
static void
system_sysblock_add_file(GString *sysblock, const gchar *path,
gint follow_freq, const gchar *prg_override,
- const gchar *flags, const gchar *format)
+ const gchar *flags, const gchar *format,
+ gboolean ignore_timestamp)
{
g_string_append_printf(sysblock, "file(\"%s\"", path);
if (follow_freq >= 0)
@@ -87,6 +88,8 @@ system_sysblock_add_file(GString *sysblock, const gchar *path,
g_string_append_printf(sysblock, " flags(%s)", flags);
if (format)
g_string_append_printf(sysblock, " format(%s)", format);
+ if (ignore_timestamp)
+ g_string_append_printf(sysblock, " keep-timestamp(no)");
g_string_append(sysblock, ");\n");
}
@@ -145,9 +148,9 @@ system_sysblock_add_freebsd_klog(GString *sysblock, const gchar *release)
if (strncmp(release, "7.", 2) == 0 ||
strncmp(release, "8.", 2) == 0 ||
strncmp(release, "9.0", 3) == 0)
- system_sysblock_add_file(sysblock, "/dev/klog", 1, "kernel", "no-parse", NULL);
+ system_sysblock_add_file(sysblock, "/dev/klog", 1, "kernel", "no-parse", NULL, FALSE);
else
- system_sysblock_add_file(sysblock, "/dev/klog", 0, "kernel", "no-parse", NULL);
+ system_sysblock_add_file(sysblock, "/dev/klog", 0, "kernel", "no-parse", NULL, FALSE);
}
static gboolean
@@ -200,7 +203,7 @@ system_sysblock_add_linux_kmsg(GString *sysblock)
}
else
system_sysblock_add_file(sysblock, kmsg, -1,
- "kernel", "kernel", format);
+ "kernel", "kernel", format, TRUE);
}
static gboolean
|