mirror of
https://github.com/systemd/systemd
synced 2024-10-02 22:37:25 +00:00
logs-show: make output_timestamp_realtime() only take realtime timestamp
No functional change, just refactoring and preparation for later commits.
This commit is contained in:
parent
c9df471428
commit
6ed286d2cf
|
@ -364,39 +364,37 @@ static int output_timestamp_realtime(
|
||||||
sd_journal *j,
|
sd_journal *j,
|
||||||
OutputMode mode,
|
OutputMode mode,
|
||||||
OutputFlags flags,
|
OutputFlags flags,
|
||||||
const dual_timestamp *display_ts) {
|
usec_t usec) {
|
||||||
|
|
||||||
char buf[CONST_MAX(FORMAT_TIMESTAMP_MAX, 64U)];
|
char buf[CONST_MAX(FORMAT_TIMESTAMP_MAX, 64U)];
|
||||||
int r;
|
|
||||||
|
|
||||||
assert(f);
|
assert(f);
|
||||||
assert(j);
|
assert(j);
|
||||||
assert(display_ts);
|
|
||||||
|
|
||||||
if (!VALID_REALTIME(display_ts->realtime))
|
if (!VALID_REALTIME(usec))
|
||||||
return log_error_errno(SYNTHETIC_ERRNO(EINVAL), "No valid realtime timestamp available");
|
return log_error_errno(SYNTHETIC_ERRNO(EINVAL), "No valid realtime timestamp available.");
|
||||||
|
|
||||||
if (IN_SET(mode, OUTPUT_SHORT_FULL, OUTPUT_WITH_UNIT)) {
|
if (IN_SET(mode, OUTPUT_SHORT_FULL, OUTPUT_WITH_UNIT)) {
|
||||||
const char *k;
|
const char *k;
|
||||||
|
|
||||||
if (flags & OUTPUT_UTC)
|
if (flags & OUTPUT_UTC)
|
||||||
k = format_timestamp_style(buf, sizeof(buf), display_ts->realtime, TIMESTAMP_UTC);
|
k = format_timestamp_style(buf, sizeof(buf), usec, TIMESTAMP_UTC);
|
||||||
else
|
else
|
||||||
k = format_timestamp(buf, sizeof(buf), display_ts->realtime);
|
k = format_timestamp(buf, sizeof(buf), usec);
|
||||||
if (!k)
|
if (!k)
|
||||||
return log_error_errno(SYNTHETIC_ERRNO(EINVAL),
|
return log_error_errno(SYNTHETIC_ERRNO(EINVAL),
|
||||||
"Failed to format timestamp: %" PRIu64, display_ts->realtime);
|
"Failed to format timestamp: %" PRIu64, usec);
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
struct tm tm;
|
struct tm tm;
|
||||||
time_t t;
|
time_t t;
|
||||||
|
|
||||||
t = (time_t) (display_ts->realtime / USEC_PER_SEC);
|
t = (time_t) (usec / USEC_PER_SEC);
|
||||||
|
|
||||||
switch (mode) {
|
switch (mode) {
|
||||||
|
|
||||||
case OUTPUT_SHORT_UNIX:
|
case OUTPUT_SHORT_UNIX:
|
||||||
xsprintf(buf, "%10"PRI_TIME".%06"PRIu64, t, display_ts->realtime % USEC_PER_SEC);
|
xsprintf(buf, "%10"PRI_TIME".%06"PRIu64, t, usec % USEC_PER_SEC);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case OUTPUT_SHORT_ISO:
|
case OUTPUT_SHORT_ISO:
|
||||||
|
@ -404,13 +402,11 @@ static int output_timestamp_realtime(
|
||||||
size_t tail = strftime(buf, sizeof(buf), "%Y-%m-%dT%H:%M:%S",
|
size_t tail = strftime(buf, sizeof(buf), "%Y-%m-%dT%H:%M:%S",
|
||||||
localtime_or_gmtime_r(&t, &tm, flags & OUTPUT_UTC));
|
localtime_or_gmtime_r(&t, &tm, flags & OUTPUT_UTC));
|
||||||
if (tail == 0)
|
if (tail == 0)
|
||||||
return log_error_errno(SYNTHETIC_ERRNO(EINVAL),
|
return log_error_errno(SYNTHETIC_ERRNO(EINVAL), "Failed to format ISO time.");
|
||||||
"Failed to format ISO time");
|
|
||||||
|
|
||||||
/* No usec in strftime, need to append */
|
/* No usec in strftime, need to append */
|
||||||
if (mode == OUTPUT_SHORT_ISO_PRECISE) {
|
if (mode == OUTPUT_SHORT_ISO_PRECISE) {
|
||||||
assert(ELEMENTSOF(buf) - tail >= 7);
|
assert_se(snprintf_ok(buf + tail, ELEMENTSOF(buf) - tail, ".%06"PRI_USEC, usec % USEC_PER_SEC));
|
||||||
snprintf(buf + tail, ELEMENTSOF(buf) - tail, ".%06"PRI_USEC, display_ts->realtime % USEC_PER_SEC);
|
|
||||||
tail += 7;
|
tail += 7;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -425,19 +421,12 @@ static int output_timestamp_realtime(
|
||||||
|
|
||||||
if (strftime(buf, sizeof(buf), "%b %d %H:%M:%S",
|
if (strftime(buf, sizeof(buf), "%b %d %H:%M:%S",
|
||||||
localtime_or_gmtime_r(&t, &tm, flags & OUTPUT_UTC)) <= 0)
|
localtime_or_gmtime_r(&t, &tm, flags & OUTPUT_UTC)) <= 0)
|
||||||
return log_error_errno(SYNTHETIC_ERRNO(EINVAL),
|
return log_error_errno(SYNTHETIC_ERRNO(EINVAL), "Failed to format syslog time.");
|
||||||
"Failed to format syslog time");
|
|
||||||
|
|
||||||
if (mode == OUTPUT_SHORT_PRECISE) {
|
if (mode == OUTPUT_SHORT_PRECISE) {
|
||||||
size_t k;
|
|
||||||
|
|
||||||
assert(sizeof(buf) > strlen(buf));
|
assert(sizeof(buf) > strlen(buf));
|
||||||
k = sizeof(buf) - strlen(buf);
|
if (!snprintf_ok(buf + strlen(buf), sizeof(buf) - strlen(buf), ".%06"PRIu64, usec % USEC_PER_SEC))
|
||||||
|
return log_error_errno(SYNTHETIC_ERRNO(EINVAL), "Failed to format precise time.");
|
||||||
r = snprintf(buf + strlen(buf), k, ".%06"PRIu64, display_ts->realtime % USEC_PER_SEC);
|
|
||||||
if (r <= 0 || (size_t) r >= k) /* too long? */
|
|
||||||
return log_error_errno(SYNTHETIC_ERRNO(EINVAL),
|
|
||||||
"Failed to format precise time");
|
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
@ -573,7 +562,7 @@ static int output_short(
|
||||||
if (IN_SET(mode, OUTPUT_SHORT_MONOTONIC, OUTPUT_SHORT_DELTA))
|
if (IN_SET(mode, OUTPUT_SHORT_MONOTONIC, OUTPUT_SHORT_DELTA))
|
||||||
r = output_timestamp_monotonic(f, mode, &display_ts, &boot_id, previous_display_ts, previous_boot_id);
|
r = output_timestamp_monotonic(f, mode, &display_ts, &boot_id, previous_display_ts, previous_boot_id);
|
||||||
else
|
else
|
||||||
r = output_timestamp_realtime(f, j, mode, flags, &display_ts);
|
r = output_timestamp_realtime(f, j, mode, flags, display_ts.realtime);
|
||||||
if (r < 0)
|
if (r < 0)
|
||||||
return r;
|
return r;
|
||||||
n += r;
|
n += r;
|
||||||
|
|
Loading…
Reference in a new issue