[systemd-commits] 2 commits - src/bootchart src/journal src/shared
Zbigniew JÄdrzejewski-Szmek
zbyszek at kemper.freedesktop.org
Fri Oct 3 05:38:15 PDT 2014
src/bootchart/bootchart.c | 2 +-
src/journal/journalctl.c | 14 +++++++-------
src/shared/logs-show.c | 2 +-
src/shared/time-util.c | 19 +++++++++++++++----
src/shared/time-util.h | 3 ++-
5 files changed, 26 insertions(+), 14 deletions(-)
New commits:
commit a62e83b48cda6a709a796a361abaf6b129650b3c
Author: Jan Synacek <jsynacek at redhat.com>
Date: Fri Oct 3 09:51:33 2014 +0200
journalctl: make --utc work everywhere
The --utc option was introduced by commit
9fd290443f5f99fca0dcd4216b1de70f7d3b8db1.
Howerver, the implementation was incomplete.
diff --git a/src/journal/journalctl.c b/src/journal/journalctl.c
index 395f85c..816934e 100644
--- a/src/journal/journalctl.c
+++ b/src/journal/journalctl.c
@@ -890,8 +890,8 @@ static int list_boots(sd_journal *j) {
printf("% *i " SD_ID128_FORMAT_STR " %sâ%s\n",
w, i - count + 1,
SD_ID128_FORMAT_VAL(id->id),
- format_timestamp(a, sizeof(a), id->first),
- format_timestamp(b, sizeof(b), id->last));
+ format_timestamp_internal(a, sizeof(a), id->first, arg_utc),
+ format_timestamp_internal(b, sizeof(b), id->last, arg_utc));
}
return 0;
@@ -1502,8 +1502,8 @@ static int verify(sd_journal *j) {
if (arg_verify_key && JOURNAL_HEADER_SEALED(f->header)) {
if (validated > 0) {
log_info("=> Validated from %s to %s, final %s entries not sealed.",
- format_timestamp(a, sizeof(a), first),
- format_timestamp(b, sizeof(b), validated),
+ format_timestamp_internal(a, sizeof(a), first, arg_utc),
+ format_timestamp_internal(b, sizeof(b), validated, arg_utc),
format_timespan(c, sizeof(c), last > validated ? last - validated : 0, 0));
} else if (last > 0)
log_info("=> No sealing yet, %s of entries not sealed.",
@@ -1898,11 +1898,11 @@ int main(int argc, char *argv[]) {
if (r > 0) {
if (arg_follow)
printf("-- Logs begin at %s. --\n",
- format_timestamp(start_buf, sizeof(start_buf), start));
+ format_timestamp_internal(start_buf, sizeof(start_buf), start, arg_utc));
else
printf("-- Logs begin at %s, end at %s. --\n",
- format_timestamp(start_buf, sizeof(start_buf), start),
- format_timestamp(end_buf, sizeof(end_buf), end));
+ format_timestamp_internal(start_buf, sizeof(start_buf), start, arg_utc),
+ format_timestamp_internal(end_buf, sizeof(end_buf), end, arg_utc));
}
}
diff --git a/src/shared/logs-show.c b/src/shared/logs-show.c
index d5d9d09..e30e686 100644
--- a/src/shared/logs-show.c
+++ b/src/shared/logs-show.c
@@ -447,7 +447,7 @@ static int output_verbose(
}
fprintf(f, "%s [%s]\n",
- format_timestamp_us(ts, sizeof(ts), realtime),
+ format_timestamp_us(ts, sizeof(ts), realtime, flags & OUTPUT_UTC),
cursor);
JOURNAL_FOREACH_DATA_RETVAL(j, data, length, r) {
diff --git a/src/shared/time-util.c b/src/shared/time-util.c
index 066ef97..09f4a21 100644
--- a/src/shared/time-util.c
+++ b/src/shared/time-util.c
@@ -152,7 +152,7 @@ struct timeval *timeval_store(struct timeval *tv, usec_t u) {
return tv;
}
-char *format_timestamp(char *buf, size_t l, usec_t t) {
+char *format_timestamp_internal(char *buf, size_t l, usec_t t, bool utc) {
struct tm tm;
time_t sec;
@@ -164,13 +164,21 @@ char *format_timestamp(char *buf, size_t l, usec_t t) {
sec = (time_t) (t / USEC_PER_SEC);
- if (strftime(buf, l, "%a %Y-%m-%d %H:%M:%S %Z", localtime_r(&sec, &tm)) <= 0)
+ if (utc)
+ gmtime_r(&sec, &tm);
+ else
+ localtime_r(&sec, &tm);
+ if (strftime(buf, l, "%a %Y-%m-%d %H:%M:%S %Z", &tm) <= 0)
return NULL;
return buf;
}
-char *format_timestamp_us(char *buf, size_t l, usec_t t) {
+char *format_timestamp(char *buf, size_t l, usec_t t) {
+ return format_timestamp_internal(buf, l, t, false);
+}
+
+char *format_timestamp_us(char *buf, size_t l, usec_t t, bool utc) {
struct tm tm;
time_t sec;
@@ -181,7 +189,10 @@ char *format_timestamp_us(char *buf, size_t l, usec_t t) {
return NULL;
sec = (time_t) (t / USEC_PER_SEC);
- localtime_r(&sec, &tm);
+ if (utc)
+ gmtime_r(&sec, &tm);
+ else
+ localtime_r(&sec, &tm);
if (strftime(buf, l, "%a %Y-%m-%d %H:%M:%S", &tm) <= 0)
return NULL;
diff --git a/src/shared/time-util.h b/src/shared/time-util.h
index 8ba1cfe..16cc593 100644
--- a/src/shared/time-util.h
+++ b/src/shared/time-util.h
@@ -84,8 +84,9 @@ struct timespec *timespec_store(struct timespec *ts, usec_t u);
usec_t timeval_load(const struct timeval *tv) _pure_;
struct timeval *timeval_store(struct timeval *tv, usec_t u);
+char *format_timestamp_internal(char *buf, size_t l, usec_t t, bool utc);
char *format_timestamp(char *buf, size_t l, usec_t t);
-char *format_timestamp_us(char *buf, size_t l, usec_t t);
+char *format_timestamp_us(char *buf, size_t l, usec_t t, bool utc);
char *format_timestamp_relative(char *buf, size_t l, usec_t t);
char *format_timespan(char *buf, size_t l, usec_t t, usec_t accuracy);
commit 1c92ff85b786c423f4436ec26007e79369c9ac05
Author: Thomas Hindoe Paaboel Andersen <phomes at gmail.com>
Date: Fri Sep 26 22:01:32 2014 +0200
bootchart: use 'n/a' if PRETTY_NAME is not found
Spotted with coverity. If parsing both /etc/os-release and
/usr/lib/os-release fails then null would be passed on. The calls
to parse the two files are allowed to fail. A empty /etc may not
have had the /etc/os-release symlink restored yet and we just
try again in the loop. If for whatever reason that does not happen
then we now pass on 'n/a' instead of null.
diff --git a/src/bootchart/bootchart.c b/src/bootchart/bootchart.c
index 366a5ab..813e38d 100644
--- a/src/bootchart/bootchart.c
+++ b/src/bootchart/bootchart.c
@@ -471,7 +471,7 @@ int main(int argc, char *argv[]) {
exit (EXIT_FAILURE);
}
- svg_do(build);
+ svg_do(strna(build));
fprintf(stderr, "systemd-bootchart wrote %s\n", output_file);
More information about the systemd-commits
mailing list