Re: [systemd-devel] [PATCH] journalctl: make --utc work everywhere

2014-10-08 Thread Lennart Poettering
On Fri, 03.10.14 09:51, Jan Synacek (jsyna...@redhat.com) wrote:

 The --utc option was introduced by commit
 9fd290443f5f99fca0dcd4216b1de70f7d3b8db1.
 Howerver, the implementation was incomplete.
 ---
  src/journal/journalctl.c | 14 +++---
  src/shared/logs-show.c   |  2 +-
  src/shared/time-util.c   | 19 +++
  src/shared/time-util.h   |  3 ++-
  4 files changed, 25 insertions(+), 13 deletions(-)
 
 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);
 -   

Re: [systemd-devel] [PATCH] journalctl: make --utc work everywhere

2014-10-08 Thread Jan Synacek
Lennart Poettering lenn...@poettering.net writes:
 On Fri, 03.10.14 09:51, Jan Synacek (jsyna...@redhat.com) wrote:

 The --utc option was introduced by commit
 9fd290443f5f99fca0dcd4216b1de70f7d3b8db1.
 Howerver, the implementation was incomplete.
 ---
  src/journal/journalctl.c | 14 +++---
  src/shared/logs-show.c   |  2 +-
  src/shared/time-util.c   | 19 +++
  src/shared/time-util.h   |  3 ++-
  4 files changed, 25 insertions(+), 13 deletions(-)
 
 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;
  
   

[systemd-devel] [PATCH] journalctl: make --utc work everywhere

2014-10-03 Thread Jan Synacek
The --utc option was introduced by commit
9fd290443f5f99fca0dcd4216b1de70f7d3b8db1.
Howerver, the implementation was incomplete.
---
 src/journal/journalctl.c | 14 +++---
 src/shared/logs-show.c   |  2 +-
 src/shared/time-util.c   | 19 +++
 src/shared/time-util.h   |  3 ++-
 4 files changed, 25 insertions(+), 13 deletions(-)

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)
  

Re: [systemd-devel] [PATCH] journalctl: make --utc work everywhere

2014-10-03 Thread Zbigniew Jędrzejewski-Szmek
On Fri, Oct 03, 2014 at 09:51:33AM +0200, Jan Synacek wrote:
 The --utc option was introduced by commit
 9fd290443f5f99fca0dcd4216b1de70f7d3b8db1.
 Howerver, the implementation was incomplete.
 ---
  src/journal/journalctl.c | 14 +++---
  src/shared/logs-show.c   |  2 +-
  src/shared/time-util.c   | 19 +++
  src/shared/time-util.h   |  3 ++-
  4 files changed, 25 insertions(+), 13 deletions(-)

Applied.

Zbyszek
___
systemd-devel mailing list
systemd-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/systemd-devel