chiark / gitweb /
treewide: a few more log_*_errno + return simplifications
[elogind.git] / src / shared / logs-show.c
index 5a7bbaf03a92fa08dea2310a406f48ba8cf657b4..98972eda3b08ef977ef245f6f2e8f868967c9f65 100644 (file)
@@ -295,10 +295,8 @@ static int output_short(
                 if (r < 0)
                         r = sd_journal_get_monotonic_usec(j, &t, &boot_id);
 
-                if (r < 0) {
-                        log_error("Failed to get monotonic timestamp: %s", strerror(-r));
-                        return r;
-                }
+                if (r < 0)
+                        return log_error_errno(r, "Failed to get monotonic timestamp: %m");
 
                 fprintf(f, "[%5llu.%06llu]",
                         (unsigned long long) (t / USEC_PER_SEC),
@@ -311,8 +309,10 @@ static int output_short(
                 uint64_t x;
                 time_t t;
                 struct tm tm;
+                struct tm *(*gettime_r)(const time_t *, struct tm *);
 
                 r = -ENOENT;
+                gettime_r = (flags & OUTPUT_UTC) ? gmtime_r : localtime_r;
 
                 if (realtime)
                         r = safe_atou64(realtime, &x);
@@ -320,26 +320,24 @@ static int output_short(
                 if (r < 0)
                         r = sd_journal_get_realtime_usec(j, &x);
 
-                if (r < 0) {
-                        log_error("Failed to get realtime timestamp: %s", strerror(-r));
-                        return r;
-                }
+                if (r < 0)
+                        return log_error_errno(r, "Failed to get realtime timestamp: %m");
 
                 t = (time_t) (x / USEC_PER_SEC);
 
                 switch(mode) {
                 case OUTPUT_SHORT_ISO:
-                        r = strftime(buf, sizeof(buf), "%Y-%m-%dT%H:%M:%S%z", localtime_r(&t, &tm));
+                        r = strftime(buf, sizeof(buf), "%Y-%m-%dT%H:%M:%S%z", gettime_r(&t, &tm));
                         break;
                 case OUTPUT_SHORT_PRECISE:
-                        r = strftime(buf, sizeof(buf), "%b %d %H:%M:%S", localtime_r(&t, &tm));
+                        r = strftime(buf, sizeof(buf), "%b %d %H:%M:%S", gettime_r(&t, &tm));
                         if (r > 0) {
                                 snprintf(buf + strlen(buf), sizeof(buf) - strlen(buf),
                                          ".%06llu", (unsigned long long) (x % USEC_PER_SEC));
                         }
                         break;
                 default:
-                        r = strftime(buf, sizeof(buf), "%b %d %H:%M:%S", localtime_r(&t, &tm));
+                        r = strftime(buf, sizeof(buf), "%b %d %H:%M:%S", gettime_r(&t, &tm));
                 }
 
                 if (r <= 0) {
@@ -363,7 +361,7 @@ static int output_short(
                 fprintf(f, " %.*s", (int) comm_len, comm);
                 n += comm_len + 1;
         } else
-                fputc(' ', f);
+                fputs(" unknown", f);
 
         if (pid && shall_print(pid, pid_len, flags)) {
                 fprintf(f, "[%.*s]", (int) pid_len, pid);
@@ -420,12 +418,11 @@ static int output_verbose(
 
                 r = parse_field(data, length, "_SOURCE_REALTIME_TIMESTAMP=", &value, &size);
                 if (r < 0)
-                        log_debug("_SOURCE_REALTIME_TIMESTAMP invalid: %s", strerror(-r));
+                        log_debug_errno(r, "_SOURCE_REALTIME_TIMESTAMP invalid: %m");
                 else {
                         r = safe_atou64(value, &realtime);
                         if (r < 0)
-                                log_debug("Failed to parse realtime timestamp: %s",
-                                          strerror(-r));
+                                log_debug_errno(r, "Failed to parse realtime timestamp: %m");
                 }
         }
 
@@ -439,12 +436,12 @@ static int output_verbose(
         }
 
         r = sd_journal_get_cursor(j, &cursor);
-        if (r < 0) {
-                log_error("Failed to get cursor: %s", strerror(-r));
-                return r;
-        }
+        if (r < 0)
+                return log_error_errno(r, "Failed to get cursor: %m");
 
         fprintf(f, "%s [%s]\n",
+                flags & OUTPUT_UTC ?
+                format_timestamp_us_utc(ts, sizeof(ts), realtime) :
                 format_timestamp_us(ts, sizeof(ts), realtime),
                 cursor);
 
@@ -512,22 +509,16 @@ static int output_export(
         sd_journal_set_data_threshold(j, 0);
 
         r = sd_journal_get_realtime_usec(j, &realtime);
-        if (r < 0) {
-                log_error("Failed to get realtime timestamp: %s", strerror(-r));
-                return r;
-        }
+        if (r < 0)
+                return log_error_errno(r, "Failed to get realtime timestamp: %m");
 
         r = sd_journal_get_monotonic_usec(j, &monotonic, &boot_id);
-        if (r < 0) {
-                log_error("Failed to get monotonic timestamp: %s", strerror(-r));
-                return r;
-        }
+        if (r < 0)
+                return log_error_errno(r, "Failed to get monotonic timestamp: %m");
 
         r = sd_journal_get_cursor(j, &cursor);
-        if (r < 0) {
-                log_error("Failed to get cursor: %s", strerror(-r));
-                return r;
-        }
+        if (r < 0)
+                return log_error_errno(r, "Failed to get cursor: %m");
 
         fprintf(f,
                 "__CURSOR=%s\n"
@@ -652,22 +643,16 @@ static int output_json(
         sd_journal_set_data_threshold(j, flags & OUTPUT_SHOW_ALL ? 0 : JSON_THRESHOLD);
 
         r = sd_journal_get_realtime_usec(j, &realtime);
-        if (r < 0) {
-                log_error("Failed to get realtime timestamp: %s", strerror(-r));
-                return r;
-        }
+        if (r < 0)
+                return log_error_errno(r, "Failed to get realtime timestamp: %m");
 
         r = sd_journal_get_monotonic_usec(j, &monotonic, &boot_id);
-        if (r < 0) {
-                log_error("Failed to get monotonic timestamp: %s", strerror(-r));
-                return r;
-        }
+        if (r < 0)
+                return log_error_errno(r, "Failed to get monotonic timestamp: %m");
 
         r = sd_journal_get_cursor(j, &cursor);
-        if (r < 0) {
-                log_error("Failed to get cursor: %s", strerror(-r));
-                return r;
-        }
+        if (r < 0)
+                return log_error_errno(r, "Failed to get cursor: %m");
 
         if (mode == OUTPUT_JSON_PRETTY)
                 fprintf(f,
@@ -873,8 +858,7 @@ static int output_cat(
                 if (r == -ENOENT)
                         return 0;
 
-                log_error("Failed to get data: %s", strerror(-r));
-                return r;
+                return log_error_errno(r, "Failed to get data: %m");
         }
 
         assert(l >= 8);
@@ -1151,7 +1135,7 @@ static int get_boot_id_for_machine(const char *machine, sd_id128_t *boot_id) {
         assert(machine);
         assert(boot_id);
 
-        if (!filename_is_safe(machine))
+        if (!machine_name_is_valid(machine))
                 return -EINVAL;
 
         r = container_get_leader(machine, &pid);
@@ -1221,24 +1205,18 @@ int add_match_this_boot(sd_journal *j, const char *machine) {
 
         if (machine) {
                 r = get_boot_id_for_machine(machine, &boot_id);
-                if (r < 0) {
-                        log_error("Failed to get boot id of container %s: %s", machine, strerror(-r));
-                        return r;
-                }
+                if (r < 0)
+                        return log_error_errno(r, "Failed to get boot id of container %s: %m", machine);
         } else {
                 r = sd_id128_get_boot(&boot_id);
-                if (r < 0) {
-                        log_error("Failed to get boot id: %s", strerror(-r));
-                        return r;
-                }
+                if (r < 0)
+                        return log_error_errno(r, "Failed to get boot id: %m");
         }
 
         sd_id128_to_string(boot_id, match + 9);
         r = sd_journal_add_match(j, match, strlen(match));
-        if (r < 0) {
-                log_error("Failed to add match: %s", strerror(-r));
-                return r;
-        }
+        if (r < 0)
+                return log_error_errno(r, "Failed to add match: %m");
 
         r = sd_journal_add_conjunction(j);
         if (r < 0)