r = on_ac_power();
if (r < 0) {
- log_error("Failed to read AC status: %s", strerror(-r));
+ log_error_errno(-r, "Failed to read AC status: %m");
return EXIT_FAILURE;
}
fd = make_socket_fd(LOG_DEBUG, *address, SOCK_STREAM | (arg_accept*SOCK_CLOEXEC));
if (fd < 0) {
log_open();
- log_error("Failed to open '%s': %s", *address, strerror(-fd));
+ log_error_errno(-fd, "Failed to open '%s': %m", *address);
return fd;
}
/* set the path */
r = generate_path(&var, filenames);
if (r < 0) {
- log_error("Failed to generate unit load path: %s", strerror(-r));
+ log_error_errno(-r, "Failed to generate unit load path: %m");
return r;
}
r = manager_new(running_as, true, &m);
if (r < 0) {
- log_error("Failed to initalize manager: %s", strerror(-r));
+ log_error_errno(-r, "Failed to initalize manager: %m");
return r;
}
r = manager_startup(m, serial, fdset);
if (r < 0) {
- log_error("Failed to start manager: %s", strerror(-r));
+ log_error_errno(-r, "Failed to start manager: %m");
goto finish;
}
} else
k = manager_load_unit(m, NULL, *filename, &err, &units[count]);
if (k < 0) {
- log_error("Failed to load %s: %s", *filename, strerror(-k));
+ log_error_errno(-k, "Failed to load %s: %m", *filename);
if (r == 0)
r = k;
} else
r = bus_open_transport_systemd(arg_transport, arg_host, arg_user, &bus);
if (r < 0) {
- log_error("Failed to create bus connection: %s", strerror(-r));
+ log_error_errno(-r, "Failed to create bus connection: %m");
goto finish;
}
r = safe_atou(max_brightness_str, &max_brightness);
if (r < 0) {
- log_warning("Failed to parse 'max_brightness' \"%s\": %s", max_brightness_str, strerror(-r));
+ log_warning_errno(-r, "Failed to parse 'max_brightness' \"%s\": %m", max_brightness_str);
return 0;
}
r = safe_atou(*value, &brightness);
if (r < 0) {
- log_warning("Failed to parse brightness \"%s\": %s", *value, strerror(-r));
+ log_warning_errno(-r, "Failed to parse brightness \"%s\": %m", *value);
return;
}
if (r == -ENOENT)
return EXIT_SUCCESS;
- log_error("Failed to read %s: %s", saved, strerror(-r));
+ log_error_errno(-r, "Failed to read %s: %m", saved);
return EXIT_FAILURE;
}
r = write_string_file(saved, value);
if (r < 0) {
- log_error("Failed to write %s: %s", saved, strerror(-r));
+ log_error_errno(-r, "Failed to write %s: %m", saved);
return EXIT_FAILURE;
}
r = write_string_file("/proc/sys/fs/binfmt_misc/register", rule);
if (r < 0) {
- log_error("Failed to add binary format: %s", strerror(-r));
+ log_error_errno(-r, "Failed to add binary format: %m");
return r;
}
if (ignore_enoent && r == -ENOENT)
return 0;
- log_error("Failed to open file '%s', ignoring: %s", path, strerror(-r));
+ log_error_errno(-r, "Failed to open file '%s', ignoring: %m", path);
return r;
}
r = conf_files_list_nulstr(&files, ".conf", NULL, conf_file_dirs);
if (r < 0) {
- log_error("Failed to enumerate binfmt.d files: %s", strerror(-r));
+ log_error_errno(-r, "Failed to enumerate binfmt.d files: %m");
goto finish;
}
}
n = loop_read(f, p + 10, BOOTCHART_MAX, false);
if (n < 0) {
- log_error("Failed to read bootchart data: %s", strerror(-n));
+ log_error_errno(-n, "Failed to read bootchart data: %m");
close(f);
return;
}
r = sd_journal_sendv(iovec, j);
if (r < 0)
- log_error("Failed to send bootchart: %s", strerror(-r));
+ log_error_errno(-r, "Failed to send bootchart: %m");
}
int main(int argc, char *argv[]) {
if (r == -EISDIR)
return r;
- log_error("Failed to load %s: %s", path, strerror(-r));
+ log_error_errno(-r, "Failed to load %s: %m", path);
return r;
}
t = xml_tokenize(&q, &name, &xml_state, &line);
if (t < 0) {
- log_error("XML parse failure in %s: %s", path, strerror(-t));
+ log_error_errno(-t, "XML parse failure in %s: %m", path);
return t;
}
r = get_user_creds(&u, &i->uid, NULL, NULL, NULL);
if (r < 0) {
- log_error("Failed to resolve user %s, ignoring policy: %s", u, strerror(-r));
+ log_error_errno(-r, "Failed to resolve user %s, ignoring policy: %m", u);
free(i);
} else {
PolicyItem *first;
r = get_group_creds(&g, &i->gid);
if (r < 0) {
- log_error("Failed to resolve group %s, ignoring policy: %s", g, strerror(-r));
+ log_error_errno(-r, "Failed to resolve group %s, ignoring policy: %m", g);
free(i);
} else {
PolicyItem *first;
r = get_user_creds(&u, &i->uid, NULL, NULL, NULL);
if (r < 0)
- log_error("Failed to resolve user %s: %s", name, strerror(-r));
+ log_error_errno(-r, "Failed to resolve user %s: %m", name);
else
i->uid_valid = true;
}
r = get_group_creds(&g, &i->gid);
if (r < 0)
- log_error("Failed to resolve group %s: %s", name, strerror(-r));
+ log_error_errno(-r, "Failed to resolve group %s: %m", name);
else
i->gid_valid = true;
}
r = conf_files_list(&l, ".conf", NULL, *i, NULL);
if (r < 0) {
- log_error("Failed to get configuration file list: %s", strerror(-r));
+ log_error_errno(-r, "Failed to get configuration file list: %m");
return r;
}
r = sd_bus_message_new_method_return(m, &n);
if (r < 0) {
- log_error("Failed to generate HELLO reply: %s", strerror(-r));
+ log_error_errno(-r, "Failed to generate HELLO reply: %m");
return r;
}
r = sd_bus_message_append(n, "s", a->unique_name);
if (r < 0) {
- log_error("Failed to append unique name to HELLO reply: %s", strerror(-r));
+ log_error_errno(-r, "Failed to append unique name to HELLO reply: %m");
return r;
}
r = bus_message_append_sender(n, "org.freedesktop.DBus");
if (r < 0) {
- log_error("Failed to append sender to HELLO reply: %s", strerror(-r));
+ log_error_errno(-r, "Failed to append sender to HELLO reply: %m");
return r;
}
r = bus_seal_synthetic_message(b, n);
if (r < 0) {
- log_error("Failed to seal HELLO reply: %s", strerror(-r));
+ log_error_errno(-r, "Failed to seal HELLO reply: %m");
return r;
}
r = sd_bus_send(b, n, NULL);
if (r < 0) {
- log_error("Failed to send HELLO reply: %s", strerror(-r));
+ log_error_errno(-r, "Failed to send HELLO reply: %m");
return r;
}
"org.freedesktop.DBus",
"NameAcquired");
if (r < 0) {
- log_error("Failed to allocate initial NameAcquired message: %s", strerror(-r));
+ log_error_errno(-r, "Failed to allocate initial NameAcquired message: %m");
return r;
}
r = sd_bus_message_append(n, "s", a->unique_name);
if (r < 0) {
- log_error("Failed to append unique name to NameAcquired message: %s", strerror(-r));
+ log_error_errno(-r, "Failed to append unique name to NameAcquired message: %m");
return r;
}
r = bus_message_append_sender(n, "org.freedesktop.DBus");
if (r < 0) {
- log_error("Failed to append sender to NameAcquired message: %s", strerror(-r));
+ log_error_errno(-r, "Failed to append sender to NameAcquired message: %m");
return r;
}
r = bus_seal_synthetic_message(b, n);
if (r < 0) {
- log_error("Failed to seal NameAcquired message: %s", strerror(-r));
+ log_error_errno(-r, "Failed to seal NameAcquired message: %m");
return r;
}
r = sd_bus_send(b, n, NULL);
if (r < 0) {
- log_error("Failed to send NameAcquired message: %s", strerror(-r));
+ log_error_errno(-r, "Failed to send NameAcquired message: %m");
return r;
}
r = get_user_creds(&user, &uid, &gid, NULL, NULL);
if (r < 0) {
- log_error("Cannot resolve user name %s: %s", user, strerror(-r));
+ log_error_errno(-r, "Cannot resolve user name %s: %m", user);
goto finish;
}
r = sd_bus_new(&a);
if (r < 0) {
- log_error("Failed to allocate bus: %s", strerror(-r));
+ log_error_errno(-r, "Failed to allocate bus: %m");
goto finish;
}
r = sd_bus_set_description(a, "sd-proxy");
if (r < 0) {
- log_error("Failed to set bus name: %s", strerror(-r));
+ log_error_errno(-r, "Failed to set bus name: %m");
goto finish;
}
r = sd_bus_set_address(a, arg_address);
if (r < 0) {
- log_error("Failed to set address to connect to: %s", strerror(-r));
+ log_error_errno(-r, "Failed to set address to connect to: %m");
goto finish;
}
r = sd_bus_negotiate_fds(a, is_unix);
if (r < 0) {
- log_error("Failed to set FD negotiation: %s", strerror(-r));
+ log_error_errno(-r, "Failed to set FD negotiation: %m");
goto finish;
}
r = sd_bus_negotiate_creds(a, true, SD_BUS_CREDS_UID|SD_BUS_CREDS_PID|SD_BUS_CREDS_GID|SD_BUS_CREDS_SELINUX_CONTEXT);
if (r < 0) {
- log_error("Failed to set credential negotiation: %s", strerror(-r));
+ log_error_errno(-r, "Failed to set credential negotiation: %m");
goto finish;
}
r = sd_bus_start(a);
if (r < 0) {
- log_error("Failed to start bus client: %s", strerror(-r));
+ log_error_errno(-r, "Failed to start bus client: %m");
goto finish;
}
r = sd_bus_get_owner_id(a, &server_id);
if (r < 0) {
- log_error("Failed to get server ID: %s", strerror(-r));
+ log_error_errno(-r, "Failed to get server ID: %m");
goto finish;
}
r = sd_bus_get_owner_creds(a, SD_BUS_CREDS_UID, &bus_creds);
if (r < 0) {
- log_error("Failed to get bus creds: %s", strerror(-r));
+ log_error_errno(-r, "Failed to get bus creds: %m");
goto finish;
}
r = sd_bus_creds_get_uid(bus_creds, &bus_uid);
if (r < 0) {
- log_error("Failed to get bus owner UID: %s", strerror(-r));
+ log_error_errno(-r, "Failed to get bus owner UID: %m");
goto finish;
}
r = policy_load(&policy_buffer, arg_configuration);
if (r < 0) {
- log_error("Failed to load policy: %s", strerror(-r));
+ log_error_errno(-r, "Failed to load policy: %m");
goto finish;
}
r = sd_bus_new(&b);
if (r < 0) {
- log_error("Failed to allocate bus: %s", strerror(-r));
+ log_error_errno(-r, "Failed to allocate bus: %m");
goto finish;
}
r = sd_bus_set_fd(b, in_fd, out_fd);
if (r < 0) {
- log_error("Failed to set fds: %s", strerror(-r));
+ log_error_errno(-r, "Failed to set fds: %m");
goto finish;
}
r = sd_bus_set_server(b, 1, server_id);
if (r < 0) {
- log_error("Failed to set server mode: %s", strerror(-r));
+ log_error_errno(-r, "Failed to set server mode: %m");
goto finish;
}
r = sd_bus_negotiate_fds(b, is_unix);
if (r < 0) {
- log_error("Failed to set FD negotiation: %s", strerror(-r));
+ log_error_errno(-r, "Failed to set FD negotiation: %m");
goto finish;
}
r = sd_bus_negotiate_creds(b, true, SD_BUS_CREDS_UID|SD_BUS_CREDS_PID|SD_BUS_CREDS_GID|SD_BUS_CREDS_SELINUX_CONTEXT);
if (r < 0) {
- log_error("Failed to set credential negotiation: %s", strerror(-r));
+ log_error_errno(-r, "Failed to set credential negotiation: %m");
goto finish;
}
r = sd_bus_set_anonymous(b, true);
if (r < 0) {
- log_error("Failed to set anonymous authentication: %s", strerror(-r));
+ log_error_errno(-r, "Failed to set anonymous authentication: %m");
goto finish;
}
r = sd_bus_start(b);
if (r < 0) {
- log_error("Failed to start bus client: %s", strerror(-r));
+ log_error_errno(-r, "Failed to start bus client: %m");
goto finish;
}
r = rename_service(a, b);
if (r < 0)
- log_debug("Failed to rename process: %s", strerror(-r));
+ log_debug_errno(-r, "Failed to rename process: %m");
if (a->is_kernel) {
_cleanup_free_ char *match = NULL;
r = sd_bus_get_unique_name(a, &unique);
if (r < 0) {
- log_error("Failed to get unique name: %s", strerror(-r));
+ log_error_errno(-r, "Failed to get unique name: %m");
goto finish;
}
r = sd_bus_add_match(a, NULL, match, NULL, NULL);
if (r < 0) {
- log_error("Failed to add match for NameLost: %s", strerror(-r));
+ log_error_errno(-r, "Failed to add match for NameLost: %m");
goto finish;
}
r = sd_bus_add_match(a, NULL, match, NULL, NULL);
if (r < 0) {
- log_error("Failed to add match for NameAcquired: %s", strerror(-r));
+ log_error_errno(-r, "Failed to add match for NameAcquired: %m");
goto finish;
}
}
if (r == -ECONNRESET)
r = 0;
else
- log_error("Failed to process bus a: %s", strerror(-r));
+ log_error_errno(-r, "Failed to process bus a: %m");
goto finish;
}
k = synthesize_name_acquired(a, b, m);
if (k < 0) {
r = k;
- log_error("Failed to synthesize message: %s", strerror(-r));
+ log_error_errno(-r, "Failed to synthesize message: %m");
goto finish;
}
k = process_policy(a, b, m, policy, &ucred, owned_names);
if (k < 0) {
r = k;
- log_error("Failed to process policy: %s", strerror(-r));
+ log_error_errno(-r, "Failed to process policy: %m");
goto finish;
} else if (k > 0) {
r = 1;
r = 0;
else {
r = k;
- log_error("Failed to send message to client: %s", strerror(-r));
+ log_error_errno(-r, "Failed to send message to client: %m");
}
goto finish;
if (r == -ECONNRESET)
r = 0;
else
- log_error("Failed to process bus b: %s", strerror(-r));
+ log_error_errno(-r, "Failed to process bus b: %m");
goto finish;
}
k = process_hello(a, b, m, &got_hello);
if (k < 0) {
r = k;
- log_error("Failed to process HELLO: %s", strerror(-r));
+ log_error_errno(-r, "Failed to process HELLO: %m");
goto finish;
} else if (k > 0) {
processed = true;
k = process_driver(a, b, m, policy, &ucred, owned_names);
if (k < 0) {
r = k;
- log_error("Failed to process driver calls: %s", strerror(-r));
+ log_error_errno(-r, "Failed to process driver calls: %m");
goto finish;
} else if (k > 0) {
processed = true;
k = process_policy(b, a, m, policy, &ucred, owned_names);
if (k < 0) {
r = k;
- log_error("Failed to process policy: %s", strerror(-r));
+ log_error_errno(-r, "Failed to process policy: %m");
goto finish;
} else if (k > 0) {
processed = true;
r = 0;
else {
r = k;
- log_error("Failed to send message to bus: %s", strerror(-r));
+ log_error_errno(-r, "Failed to send message to bus: %m");
}
goto finish;
fd = sd_bus_get_fd(a);
if (fd < 0) {
- log_error("Failed to get fd: %s", strerror(-r));
+ log_error_errno(-r, "Failed to get fd: %m");
goto finish;
}
events_a = sd_bus_get_events(a);
if (events_a < 0) {
- log_error("Failed to get events mask: %s", strerror(-r));
+ log_error_errno(-r, "Failed to get events mask: %m");
goto finish;
}
r = sd_bus_get_timeout(a, &timeout_a);
if (r < 0) {
- log_error("Failed to get timeout: %s", strerror(-r));
+ log_error_errno(-r, "Failed to get timeout: %m");
goto finish;
}
events_b = sd_bus_get_events(b);
if (events_b < 0) {
- log_error("Failed to get events mask: %s", strerror(-r));
+ log_error_errno(-r, "Failed to get events mask: %m");
goto finish;
}
r = sd_bus_get_timeout(b, &timeout_b);
if (r < 0) {
- log_error("Failed to get timeout: %s", strerror(-r));
+ log_error_errno(-r, "Failed to get timeout: %m");
goto finish;
}
r = bus_open_transport(BUS_TRANSPORT_LOCAL, NULL, false, &bus);
if (r < 0) {
- log_error("Failed to create bus connection: %s", strerror(-r));
+ log_error_errno(-r, "Failed to create bus connection: %m");
goto finish;
}
m = strappenda("/run/systemd/machines/", arg_machine);
r = parse_env_file(m, NEWLINE, "SCOPE", &scope, NULL);
if (r < 0) {
- log_error("Failed to get machine path: %s", strerror(-r));
+ log_error_errno(-r, "Failed to get machine path: %m");
goto finish;
}
}
if (r < 0) {
- log_error("Failed to list cgroup tree %s: %s", root, strerror(-r));
+ log_error_errno(-r, "Failed to list cgroup tree %s: %m", root);
retval = EXIT_FAILURE;
} else
retval = EXIT_SUCCESS;
/* If we couldn't connect we assume this was triggered
* while systemd got restarted/transitioned from
* initrd to the system, so let's ignore this */
- log_debug("Failed to get D-Bus connection: %s", strerror(-r));
+ log_debug_errno(-r, "Failed to get D-Bus connection: %m");
return EXIT_FAILURE;
}
"Released",
"s", argv[1]);
if (r < 0) {
- log_debug("Failed to send signal message on private connection: %s", strerror(-r));
+ log_debug_errno(-r, "Failed to send signal message on private connection: %m");
return EXIT_FAILURE;
}
if (r == -ETIMEDOUT)
continue;
if (r < 0) {
- log_error("Couldn't read key: %s", strerror(-r));
+ log_error_errno(-r, "Couldn't read key: %m");
goto finish;
}
}
group_hashmap_free(b);
if (r < 0) {
- log_error("Exiting with failure: %s", strerror(-r));
+ log_error_errno(-r, "Exiting with failure: %m");
return EXIT_FAILURE;
}
r = sd_event_source_set_enabled(s->redraw_src, SD_EVENT_ONESHOT);
if (r < 0)
- log_error("Cannot enable redraw-source: %s", strerror(-r));
+ log_error_errno(-r, "Cannot enable redraw-source: %m");
}
void session_add_device(Session *s, sysview_device *device) {
case PTY_DATA:
r = term_screen_feed_text(t->screen, ptr, size);
if (r < 0)
- log_error("Cannot update screen state: %s", strerror(-r));
+ log_error_errno(-r, "Cannot update screen state: %m");
workspace_dirty(t->workspace);
break;
if (t->pty) {
r = pty_resize(t->pty, width, height);
if (r < 0)
- log_error("Cannot resize pty: %s", strerror(-r));
+ log_error_errno(-r, "Cannot resize pty: %m");
}
r = term_screen_resize(t->screen, width, height);
if (r < 0)
- log_error("Cannot resize screen: %s", strerror(-r));
+ log_error_errno(-r, "Cannot resize screen: %m");
}
void terminal_run(Terminal *t) {
term_screen_get_width(t->screen),
term_screen_get_height(t->screen));
if (pid < 0) {
- log_error("Cannot fork PTY: %s", strerror(-pid));
+ log_error_errno(-pid, "Cannot fork PTY: %m");
return;
} else if (pid == 0) {
/* child */
r = manager_new(&m);
if (r < 0) {
- log_error("Could not create manager: %s", strerror(-r));
+ log_error_errno(-r, "Could not create manager: %m");
goto out;
}
r = manager_run(m);
if (r < 0) {
- log_error("Cannot run manager: %s", strerror(-r));
+ log_error_errno(-r, "Cannot run manager: %m");
goto out;
}
fail_child:
log_open();
- log_error("Failed to create starter connection at step %s: %s", exit_status_to_string(ret, EXIT_STATUS_SYSTEMD), strerror(-r));
+ log_error_errno(-r, "Failed to create starter connection at step %s: %m", exit_status_to_string(ret, EXIT_STATUS_SYSTEMD));
_exit(ret);
}
/* First, create our own group */
r = cg_create_everywhere(u->manager->cgroup_supported, mask, u->cgroup_path);
if (r < 0) {
- log_error("Failed to create cgroup %s: %s", u->cgroup_path, strerror(-r));
+ log_error_errno(-r, "Failed to create cgroup %s: %m", u->cgroup_path);
return r;
}
/* Then, possibly move things over */
r = cg_migrate_everywhere(u->manager->cgroup_supported, u->cgroup_path, u->cgroup_path, migrate_callback, u);
if (r < 0)
- log_warning("Failed to migrate cgroup from to %s: %s", u->cgroup_path, strerror(-r));
+ log_warning_errno(-r, "Failed to migrate cgroup from to %s: %m", u->cgroup_path);
return 0;
}
r = unit_realize_cgroup_now(i, state);
if (r < 0)
- log_warning("Failed to realize cgroups for queued unit %s: %s", i->id, strerror(-r));
+ log_warning_errno(-r, "Failed to realize cgroups for queued unit %s: %m", i->id);
n++;
}
r = cg_trim_everywhere(u->manager->cgroup_supported, u->cgroup_path, !unit_has_name(u, SPECIAL_ROOT_SLICE));
if (r < 0)
- log_debug("Failed to destroy cgroup %s: %s", u->cgroup_path, strerror(-r));
+ log_debug_errno(-r, "Failed to destroy cgroup %s: %m", u->cgroup_path);
hashmap_remove(u->manager->cgroup_unit, u->cgroup_path);
r = cg_pid_get_path(SYSTEMD_CGROUP_CONTROLLER, 0, &m->cgroup_root);
if (r < 0) {
- log_error("Cannot determine cgroup we are running in: %s", strerror(-r));
+ log_error_errno(-r, "Cannot determine cgroup we are running in: %m");
return r;
}
/* 2. Show data */
r = cg_get_path(SYSTEMD_CGROUP_CONTROLLER, m->cgroup_root, NULL, &path);
if (r < 0) {
- log_error("Cannot find cgroup mount point: %s", strerror(-r));
+ log_error_errno(-r, "Cannot find cgroup mount point: %m");
return r;
}
if (m->running_as == SYSTEMD_SYSTEM) {
r = cg_install_release_agent(SYSTEMD_CGROUP_CONTROLLER, SYSTEMD_CGROUP_AGENT_PATH);
if (r < 0)
- log_warning("Failed to install release agent, ignoring: %s", strerror(-r));
+ log_warning_errno(-r, "Failed to install release agent, ignoring: %m");
else if (r > 0)
log_debug("Installed release agent.");
else
/* 4. Make sure we are in the root cgroup */
r = cg_create_and_attach(SYSTEMD_CGROUP_CONTROLLER, m->cgroup_root, 0);
if (r < 0) {
- log_error("Failed to create root cgroup hierarchy: %s", strerror(-r));
+ log_error_errno(-r, "Failed to create root cgroup hierarchy: %m");
return r;
}
r = bus_foreach_bus(j->manager, j->clients, j->sent_dbus_new_signal ? send_changed_signal : send_new_signal, j);
if (r < 0)
- log_debug("Failed to send job change signal for %u: %s", j->id, strerror(-r));
+ log_debug_errno(-r, "Failed to send job change signal for %u: %m", j->id);
j->sent_dbus_new_signal = true;
}
r = bus_foreach_bus(j->manager, j->clients, send_removed_signal, j);
if (r < 0)
- log_debug("Failed to send job remove signal for %u: %s", j->id, strerror(-r));
+ log_debug_errno(-r, "Failed to send job remove signal for %u: %m", j->id);
}
if (n_changes > 0) {
r = bus_foreach_bus(m, NULL, send_unit_files_changed, NULL);
if (r < 0)
- log_debug("Failed to send UnitFilesChanged signal: %s", strerror(-r));
+ log_debug_errno(-r, "Failed to send UnitFilesChanged signal: %m");
}
r = sd_bus_message_new_method_return(message, &reply);
total_usec
});
if (r < 0)
- log_debug("Failed to send finished signal: %s", strerror(-r));
+ log_debug_errno(-r, "Failed to send finished signal: %m");
}
static int send_reloading(sd_bus *bus, void *userdata) {
r = bus_foreach_bus(m, NULL, send_reloading, INT_TO_PTR(active));
if (r < 0)
- log_debug("Failed to send reloading signal: %s", strerror(-r));
+ log_debug_errno(-r, "Failed to send reloading signal: %m");
}
r = bus_foreach_bus(u->manager, NULL, u->sent_dbus_new_signal ? send_changed_signal : send_new_signal, u);
if (r < 0)
- log_debug("Failed to send unit change signal for %s: %s", u->id, strerror(-r));
+ log_debug_errno(-r, "Failed to send unit change signal for %s: %m", u->id);
u->sent_dbus_new_signal = true;
}
r = bus_foreach_bus(u->manager, NULL, send_removed_signal, u);
if (r < 0)
- log_debug("Failed to send unit remove signal for %s: %s", u->id, strerror(-r));
+ log_debug_errno(-r, "Failed to send unit remove signal for %s: %m", u->id);
}
int bus_unit_queue_job(
r = sd_bus_send(m->queued_message_bus, m->queued_message, NULL);
if (r < 0)
- log_warning("Failed to send queued message: %s", strerror(-r));
+ log_warning_errno(-r, "Failed to send queued message: %m");
m->queued_message = sd_bus_message_unref(m->queued_message);
m->queued_message_bus = sd_bus_unref(m->queued_message_bus);
r = sd_bus_send(m->system_bus, message, NULL);
if (r < 0)
- log_warning("Failed to forward Released message: %s", strerror(-r));
+ log_warning_errno(-r, "Failed to forward Released message: %m");
}
return 0;
r = sd_bus_send_to(bus, reply, "org.freedesktop.DBus", NULL);
if (r < 0) {
- log_error("Failed to respond with to bus activation request: %s", strerror(-r));
+ log_error_errno(-r, "Failed to respond with to bus activation request: %m");
return r;
}
#ifdef HAVE_SELINUX
r = sd_bus_add_filter(bus, NULL, mac_selinux_filter, m);
if (r < 0) {
- log_error("Failed to add SELinux access filter: %s", strerror(-r));
+ log_error_errno(-r, "Failed to add SELinux access filter: %m");
return r;
}
#endif
r = sd_bus_add_object_vtable(bus, NULL, "/org/freedesktop/systemd1", "org.freedesktop.systemd1.Manager", bus_manager_vtable, m);
if (r < 0) {
- log_error("Failed to register Manager vtable: %s", strerror(-r));
+ log_error_errno(-r, "Failed to register Manager vtable: %m");
return r;
}
r = sd_bus_add_fallback_vtable(bus, NULL, "/org/freedesktop/systemd1/job", "org.freedesktop.systemd1.Job", bus_job_vtable, bus_job_find, m);
if (r < 0) {
- log_error("Failed to register Job vtable: %s", strerror(-r));
+ log_error_errno(-r, "Failed to register Job vtable: %m");
return r;
}
r = sd_bus_add_node_enumerator(bus, NULL, "/org/freedesktop/systemd1/job", bus_job_enumerate, m);
if (r < 0) {
- log_error("Failed to add job enumerator: %s", strerror(-r));
+ log_error_errno(-r, "Failed to add job enumerator: %m");
return r;
}
r = sd_bus_add_fallback_vtable(bus, NULL, "/org/freedesktop/systemd1/unit", "org.freedesktop.systemd1.Unit", bus_unit_vtable, bus_unit_find, m);
if (r < 0) {
- log_error("Failed to register Unit vtable: %s", strerror(-r));
+ log_error_errno(-r, "Failed to register Unit vtable: %m");
return r;
}
r = sd_bus_add_node_enumerator(bus, NULL, "/org/freedesktop/systemd1/unit", bus_unit_enumerate, m);
if (r < 0) {
- log_error("Failed to add job enumerator: %s", strerror(-r));
+ log_error_errno(-r, "Failed to add job enumerator: %m");
return r;
}
for (t = 0; t < _UNIT_TYPE_MAX; t++) {
r = sd_bus_add_fallback_vtable(bus, NULL, "/org/freedesktop/systemd1/unit", unit_vtable[t]->bus_interface, unit_vtable[t]->bus_vtable, bus_unit_interface_find, m);
if (r < 0) {
- log_error("Failed to register type specific vtable for %s: %s", unit_vtable[t]->bus_interface, strerror(-r));
+ log_error_errno(-r, "Failed to register type specific vtable for %s: %m", unit_vtable[t]->bus_interface);
return r;
}
if (unit_vtable[t]->cgroup_context_offset > 0) {
r = sd_bus_add_fallback_vtable(bus, NULL, "/org/freedesktop/systemd1/unit", unit_vtable[t]->bus_interface, bus_unit_cgroup_vtable, bus_unit_cgroup_find, m);
if (r < 0) {
- log_error("Failed to register control group unit vtable for %s: %s", unit_vtable[t]->bus_interface, strerror(-r));
+ log_error_errno(-r, "Failed to register control group unit vtable for %s: %m", unit_vtable[t]->bus_interface);
return r;
}
r = sd_bus_add_fallback_vtable(bus, NULL, "/org/freedesktop/systemd1/unit", unit_vtable[t]->bus_interface, bus_cgroup_vtable, bus_cgroup_context_find, m);
if (r < 0) {
- log_error("Failed to register control group vtable for %s: %s", unit_vtable[t]->bus_interface, strerror(-r));
+ log_error_errno(-r, "Failed to register control group vtable for %s: %m", unit_vtable[t]->bus_interface);
return r;
}
}
if (unit_vtable[t]->exec_context_offset > 0) {
r = sd_bus_add_fallback_vtable(bus, NULL, "/org/freedesktop/systemd1/unit", unit_vtable[t]->bus_interface, bus_exec_vtable, bus_exec_context_find, m);
if (r < 0) {
- log_error("Failed to register execute vtable for %s: %s", unit_vtable[t]->bus_interface, strerror(-r));
+ log_error_errno(-r, "Failed to register execute vtable for %s: %m", unit_vtable[t]->bus_interface);
return r;
}
}
if (unit_vtable[t]->kill_context_offset > 0) {
r = sd_bus_add_fallback_vtable(bus, NULL, "/org/freedesktop/systemd1/unit", unit_vtable[t]->bus_interface, bus_kill_vtable, bus_kill_context_find, m);
if (r < 0) {
- log_error("Failed to register kill vtable for %s: %s", unit_vtable[t]->bus_interface, strerror(-r));
+ log_error_errno(-r, "Failed to register kill vtable for %s: %m", unit_vtable[t]->bus_interface);
return r;
}
}
signal_disconnected, m);
if (r < 0) {
- log_error("Failed to register match for Disconnected message: %s", strerror(-r));
+ log_error_errno(-r, "Failed to register match for Disconnected message: %m");
return r;
}
r = sd_bus_new(&bus);
if (r < 0) {
- log_warning("Failed to allocate new private connection bus: %s", strerror(-r));
+ log_warning_errno(-r, "Failed to allocate new private connection bus: %m");
return 0;
}
r = sd_bus_set_fd(bus, nfd, nfd);
if (r < 0) {
- log_warning("Failed to set fd on new connection bus: %s", strerror(-r));
+ log_warning_errno(-r, "Failed to set fd on new connection bus: %m");
return 0;
}
r = bus_check_peercred(bus);
if (r < 0) {
- log_warning("Incoming private connection from unprivileged client, refusing: %s", strerror(-r));
+ log_warning_errno(-r, "Incoming private connection from unprivileged client, refusing: %m");
return 0;
}
r = sd_bus_set_server(bus, 1, id);
if (r < 0) {
- log_warning("Failed to enable server support for new connection bus: %s", strerror(-r));
+ log_warning_errno(-r, "Failed to enable server support for new connection bus: %m");
return 0;
}
r = sd_bus_start(bus);
if (r < 0) {
- log_warning("Failed to start new connection bus: %s", strerror(-r));
+ log_warning_errno(-r, "Failed to start new connection bus: %m");
return 0;
}
r = sd_bus_attach_event(bus, m->event, SD_EVENT_PRIORITY_NORMAL);
if (r < 0) {
- log_warning("Failed to attach new connection bus to event loop: %s", strerror(-r));
+ log_warning_errno(-r, "Failed to attach new connection bus to event loop: %m");
return 0;
}
signal_agent_released, m);
if (r < 0) {
- log_warning("Failed to register Released match on new connection bus: %s", strerror(-r));
+ log_warning_errno(-r, "Failed to register Released match on new connection bus: %m");
return 0;
}
}
r = bus_setup_api_vtables(m, bus);
if (r < 0) {
- log_warning("Failed to set up API vtables on new connection bus: %s", strerror(-r));
+ log_warning_errno(-r, "Failed to set up API vtables on new connection bus: %m");
return 0;
}
r = set_put(m->private_buses, bus);
if (r < 0) {
- log_warning("Failed to add new conenction bus to set: %s", strerror(-r));
+ log_warning_errno(-r, "Failed to add new conenction bus to set: %m");
return 0;
}
r = sd_bus_list_names(bus, &names, NULL);
if (r < 0) {
- log_error("Failed to get initial list of names: %s", strerror(-r));
+ log_error_errno(-r, "Failed to get initial list of names: %m");
return r;
}
SD_BUS_CREDS_EUID|SD_BUS_CREDS_EFFECTIVE_CAPS|
SD_BUS_CREDS_SELINUX_CONTEXT);
if (r < 0)
- log_warning("Failed to enable credential passing, ignoring: %s", strerror(-r));
+ log_warning_errno(-r, "Failed to enable credential passing, ignoring: %m");
r = bus_setup_api_vtables(m, bus);
if (r < 0)
"member='NameOwnerChanged'",
signal_name_owner_changed, m);
if (r < 0)
- log_warning("Failed to subscribe to NameOwnerChanged signal: %s", strerror(-r));
+ log_warning_errno(-r, "Failed to subscribe to NameOwnerChanged signal: %m");
r = sd_bus_add_match(
bus,
"member='ActivationRequest'",
signal_activation_request, m);
if (r < 0)
- log_warning("Failed to subscribe to activation signal: %s", strerror(-r));
+ log_warning_errno(-r, "Failed to subscribe to activation signal: %m");
/* Allow replacing of our name, to ease implementation of
* reexecution, where we keep the old connection open until
* finish */
r = sd_bus_request_name(bus,"org.freedesktop.systemd1", SD_BUS_NAME_REPLACE_EXISTING|SD_BUS_NAME_ALLOW_REPLACEMENT);
if (r < 0) {
- log_error("Failed to register name: %s", strerror(-r));
+ log_error_errno(-r, "Failed to register name: %m");
return r;
}
r = sd_bus_attach_event(bus, m->event, SD_EVENT_PRIORITY_NORMAL);
if (r < 0) {
- log_error("Failed to attach API bus to event loop: %s", strerror(-r));
+ log_error_errno(-r, "Failed to attach API bus to event loop: %m");
return 0;
}
r = bus_setup_api(m, bus);
if (r < 0) {
- log_error("Failed to set up API bus: %s", strerror(-r));
+ log_error_errno(-r, "Failed to set up API bus: %m");
return 0;
}
signal_agent_released, m);
if (r < 0)
- log_warning("Failed to register Released match on system bus: %s", strerror(-r));
+ log_warning_errno(-r, "Failed to register Released match on system bus: %m");
log_debug("Successfully connected to system bus.");
return 0;
r = sd_bus_attach_event(bus, m->event, SD_EVENT_PRIORITY_NORMAL);
if (r < 0) {
- log_error("Failed to attach system bus to event loop: %s", strerror(-r));
+ log_error_errno(-r, "Failed to attach system bus to event loop: %m");
return 0;
}
r = bus_setup_system(m, bus);
if (r < 0) {
- log_error("Failed to set up system bus: %s", strerror(-r));
+ log_error_errno(-r, "Failed to set up system bus: %m");
return 0;
}
r = sd_event_add_io(m->event, &s, fd, EPOLLIN, bus_on_connection, m);
if (r < 0) {
- log_error("Failed to allocate event source: %s", strerror(-r));
+ log_error_errno(-r, "Failed to allocate event source: %m");
return r;
}
return 0;
fail:
- log_warning("Failed to load device unit: %s", strerror(-r));
+ log_warning_errno(-r, "Failed to load device unit: %m");
if (delete && u)
unit_free(u);
if (streq(action, "remove") || !device_is_ready(dev)) {
r = device_process_removed_device(m, dev);
if (r < 0)
- log_error("Failed to process device remove event: %s", strerror(-r));
+ log_error_errno(-r, "Failed to process device remove event: %m");
r = swap_process_removed_device(m, dev);
if (r < 0)
- log_error("Failed to process swap device remove event: %s", strerror(-r));
+ log_error_errno(-r, "Failed to process swap device remove event: %m");
} else {
r = device_process_new_device(m, dev);
if (r < 0)
- log_error("Failed to process device new event: %s", strerror(-r));
+ log_error_errno(-r, "Failed to process device new event: %m");
r = swap_process_new_device(m, dev);
if (r < 0)
- log_error("Failed to process swap device new event: %s", strerror(-r));
+ log_error_errno(-r, "Failed to process swap device new event: %m");
manager_dispatch_load_queue(m);
* If this fails, ignore the error - but expect sd-pam threads
* to fail to exit normally */
if (setresuid(uid, uid, uid) < 0)
- log_error("Error: Failed to setresuid() in sd-pam: %s", strerror(-r));
+ log_error_errno(-r, "Error: Failed to setresuid() in sd-pam: %m");
/* Wait until our parent died. This will only work if
* the above setresuid() succeeds, otherwise the kernel
r = asynchronous_job(remove_tmpdir_thread, rt->tmp_dir);
if (r < 0) {
- log_warning("Failed to nuke %s: %s", rt->tmp_dir, strerror(-r));
+ log_warning_errno(-r, "Failed to nuke %s: %m", rt->tmp_dir);
free(rt->tmp_dir);
}
r = asynchronous_job(remove_tmpdir_thread, rt->var_tmp_dir);
if (r < 0) {
- log_warning("Failed to nuke %s: %s", rt->var_tmp_dir, strerror(-r));
+ log_warning_errno(-r, "Failed to nuke %s: %m", rt->var_tmp_dir);
free(rt->var_tmp_dir);
}
if (r == -ENOENT)
enoent = true;
else
- log_warning("Failed to read configured hostname: %s", strerror(-r));
+ log_warning_errno(-r, "Failed to read configured hostname: %m");
hn = NULL;
} else
j->begin_usec + j->unit->job_timeout, 0,
job_dispatch_timer, j);
if (r < 0)
- log_debug("Failed to restart timeout for job: %s", strerror(-r));
+ log_debug_errno(-r, "Failed to restart timeout for job: %m");
return r;
}
r = unit_add_dependency_by_name(u, dependency, de->d_name, f, true);
if (r < 0)
- log_error("Cannot add dependency %s to %s, ignoring: %s", de->d_name, u->id, strerror(-r));
+ log_error_errno(-r, "Cannot add dependency %s to %s, ignoring: %m", de->d_name, u->id);
}
return 0;
r = conf_files_list_strv(&configs, ".conf", NULL, (const char**) strv);
if (r < 0) {
- log_error("Failed to get list of configuration files: %s", strerror(-r));
+ log_error_errno(-r, "Failed to get list of configuration files: %m");
strv_free(configs);
return NULL;
}
NULL);
if (r < 0 && r != -ENOENT)
- log_warning("Failed to read /proc/cmdline: %s", strerror(-r));
+ log_warning_errno(-r, "Failed to read /proc/cmdline: %m");
}
/* Hmm, nothing set on the kernel cmd line? Then let's
NULL);
if (r < 0 && r != -ENOENT)
- log_warning("Failed to read /etc/locale.conf: %s", strerror(-r));
+ log_warning_errno(-r, "Failed to read /etc/locale.conf: %m");
}
add = NULL;
/* If that didn't work, generate a random machine id */
r = sd_id128_randomize(&buf);
if (r < 0) {
- log_error("Failed to open /dev/urandom: %s", strerror(-r));
+ log_error_errno(-r, "Failed to open /dev/urandom: %m");
return r;
}
r = write_string_file(run_machine_id, id);
}
if (r < 0) {
- log_error("Cannot write %s: %s", run_machine_id, strerror(-r));
+ log_error_errno(-r, "Cannot write %s: %m", run_machine_id);
unlink(run_machine_id);
return r;
}
/* Order things nicely. */
r = wait_for_terminate(pid, &status);
if (r < 0)
- log_emergency("Caught <%s>, waitpid() failed: %s", signal_to_string(sig), strerror(-r));
+ log_emergency_errno(-r, "Caught <%s>, waitpid() failed: %m", signal_to_string(sig));
else if (status.si_code != CLD_DUMPED)
log_emergency("Caught <%s>, core dump failed.", signal_to_string(sig));
else
tty_fd = open_terminal("/dev/console", O_WRONLY|O_NOCTTY|O_CLOEXEC);
if (tty_fd < 0) {
- log_error("Failed to open /dev/console: %s", strerror(-tty_fd));
+ log_error_errno(-tty_fd, "Failed to open /dev/console: %m");
return tty_fd;
}
* pictures already from initrd. */
r = reset_terminal_fd(tty_fd, false);
if (r < 0) {
- log_error("Failed to reset /dev/console: %s", strerror(-r));
+ log_error_errno(-r, "Failed to reset /dev/console: %m");
return r;
}
r = set_default_unit(optarg);
if (r < 0) {
- log_error("Failed to set default unit %s: %s", optarg, strerror(-r));
+ log_error_errno(-r, "Failed to set default unit %s: %m", optarg);
return r;
}
r = manager_open_serialization(m, &f);
if (r < 0) {
- log_error("Failed to create serialization file: %s", strerror(-r));
+ log_error_errno(-r, "Failed to create serialization file: %m");
goto fail;
}
fds = fdset_new();
if (!fds) {
r = -ENOMEM;
- log_error("Failed to allocate fd set: %s", strerror(-r));
+ log_error_errno(-r, "Failed to allocate fd set: %m");
goto fail;
}
r = manager_serialize(m, f, fds, switching_root);
if (r < 0) {
- log_error("Failed to serialize state: %s", strerror(-r));
+ log_error_errno(-r, "Failed to serialize state: %m");
goto fail;
}
r = fd_cloexec(fileno(f), false);
if (r < 0) {
- log_error("Failed to disable O_CLOEXEC for serialization: %s", strerror(-r));
+ log_error_errno(-r, "Failed to disable O_CLOEXEC for serialization: %m");
goto fail;
}
r = fdset_cloexec(fds, false);
if (r < 0) {
- log_error("Failed to disable O_CLOEXEC for serialization fds: %s", strerror(-r));
+ log_error_errno(-r, "Failed to disable O_CLOEXEC for serialization fds: %m");
goto fail;
}
nl.rlim_cur = nl.rlim_max = 64*1024;
r = setrlimit_closest(RLIMIT_NOFILE, &nl);
if (r < 0) {
- log_error("Setting RLIMIT_NOFILE failed: %s", strerror(-r));
+ log_error_errno(-r, "Setting RLIMIT_NOFILE failed: %m");
return r;
}
if (r == -EEXIST)
continue;
if (r < 0) {
- log_error("Failed to add architecture to seccomp: %s", strerror(-r));
+ log_error_errno(-r, "Failed to add architecture to seccomp: %m");
goto finish;
}
}
r = seccomp_attr_set(seccomp, SCMP_FLTATR_CTL_NNP, 0);
if (r < 0) {
- log_error("Failed to unset NO_NEW_PRIVS: %s", strerror(-r));
+ log_error_errno(-r, "Failed to unset NO_NEW_PRIVS: %m");
goto finish;
}
r = seccomp_load(seccomp);
if (r < 0)
- log_error("Failed to add install architecture seccomp: %s", strerror(-r));
+ log_error_errno(-r, "Failed to add install architecture seccomp: %m");
finish:
seccomp_release(seccomp);
}
if (r < 0 && r != -ENOENT)
- log_warning("Failed to read os-release file: %s", strerror(-r));
+ log_warning_errno(-r, "Failed to read os-release file: %m");
return status_printf(NULL, false, false,
"\nWelcome to \x1B[%sm%s\x1B[0m!\n",
*/
r = clock_set_timezone(&min);
if (r < 0)
- log_error("Failed to apply local time delta, ignoring: %s", strerror(-r));
+ log_error_errno(-r, "Failed to apply local time delta, ignoring: %m");
else
log_info("RTC configured in localtime, applying delta of %i minutes to system time.", min);
} else if (!in_initrd()) {
/* Initialize default unit */
r = set_default_unit(SPECIAL_DEFAULT_TARGET);
if (r < 0) {
- log_emergency("Failed to set default unit %s: %s", SPECIAL_DEFAULT_TARGET, strerror(-r));
+ log_emergency_errno(-r, "Failed to set default unit %s: %m", SPECIAL_DEFAULT_TARGET);
error_message = "Failed to set default unit";
goto finish;
}
if (arg_running_as == SYSTEMD_SYSTEM) {
r = parse_proc_cmdline(parse_proc_cmdline_item);
if (r < 0)
- log_warning("Failed to parse kernel command line, ignoring: %s", strerror(-r));
+ log_warning_errno(-r, "Failed to parse kernel command line, ignoring: %m");
}
/* Note that this also parses bits from the kernel command
/* Remember open file descriptors for later deserialization */
r = fdset_new_fill(&fds);
if (r < 0) {
- log_emergency("Failed to allocate fd set: %s", strerror(-r));
+ log_emergency_errno(-r, "Failed to allocate fd set: %m");
error_message = "Failed to allocate fd set";
goto finish;
} else
if (arg_capability_bounding_set_drop) {
r = capability_bounding_set_drop_usermode(arg_capability_bounding_set_drop);
if (r < 0) {
- log_emergency("Failed to drop capability bounding set of usermode helpers: %s", strerror(-r));
+ log_emergency_errno(-r, "Failed to drop capability bounding set of usermode helpers: %m");
error_message = "Failed to drop capability bounding set of usermode helpers";
goto finish;
}
r = capability_bounding_set_drop(arg_capability_bounding_set_drop, true);
if (r < 0) {
- log_emergency("Failed to drop capability bounding set: %s", strerror(-r));
+ log_emergency_errno(-r, "Failed to drop capability bounding set: %m");
error_message = "Failed to drop capability bounding set";
goto finish;
}
if (empty_etc) {
r = unit_file_preset_all(UNIT_FILE_SYSTEM, false, NULL, UNIT_FILE_PRESET_FULL, false, NULL, 0);
if (r < 0)
- log_warning("Failed to populate /etc with preset unit settings, ignoring: %s", strerror(-r));
+ log_warning_errno(-r, "Failed to populate /etc with preset unit settings, ignoring: %m");
else
log_info("Populated /etc with preset unit settings.");
}
r = manager_new(arg_running_as, arg_action == ACTION_TEST, &m);
if (r < 0) {
- log_emergency("Failed to allocate manager object: %s", strerror(-r));
+ log_emergency_errno(-r, "Failed to allocate manager object: %m");
error_message = "Failed to allocate manager object";
goto finish;
}
r = manager_startup(m, arg_serialization, fds);
if (r < 0)
- log_error("Failed to fully start up daemon: %s", strerror(-r));
+ log_error_errno(-r, "Failed to fully start up daemon: %m");
/* This will close all file descriptors that were opened, but
* not claimed by any unit. */
for (;;) {
r = manager_loop(m);
if (r < 0) {
- log_emergency("Failed to run main loop: %s", strerror(-r));
+ log_emergency_errno(-r, "Failed to run main loop: %m");
error_message = "Failed to run main loop";
goto finish;
}
log_info("Reloading.");
r = manager_reload(m);
if (r < 0)
- log_error("Failed to reload: %s", strerror(-r));
+ log_error_errno(-r, "Failed to reload: %m");
break;
case MANAGER_REEXECUTE:
/* And switch root with MS_MOVE, because we remove the old directory afterwards and detach it. */
r = switch_root(switch_root_dir, "/mnt", true, MS_MOVE);
if (r < 0)
- log_error("Failed to switch root, trying to continue: %s", strerror(-r));
+ log_error_errno(-r, "Failed to switch root, trying to continue: %m");
}
args_size = MAX(6, argc+1);
r = sd_event_add_io(m->event, &m->idle_pipe_event_source, m->idle_pipe[2], EPOLLIN, manager_dispatch_idle_pipe_fd, m);
if (r < 0) {
- log_error("Failed to watch idle pipe: %s", strerror(-r));
+ log_error_errno(-r, "Failed to watch idle pipe: %m");
return r;
}
r = sd_event_add_io(m->event, &m->time_change_event_source, m->time_change_fd, EPOLLIN, manager_dispatch_time_change_fd, m);
if (r < 0) {
- log_error("Failed to create time change event source: %s", strerror(-r));
+ log_error_errno(-r, "Failed to create time change event source: %m");
return r;
}
if (!m->notify_event_source) {
r = sd_event_add_io(m->event, &m->notify_event_source, m->notify_fd, EPOLLIN, manager_dispatch_notify_fd, m);
if (r < 0) {
- log_error("Failed to allocate notify event source: %s", strerror(-r));
+ log_error_errno(-r, "Failed to allocate notify event source: %m");
return -errno;
}
* still identify to which service an exit message belongs */
r = sd_event_source_set_priority(m->notify_event_source, -7);
if (r < 0) {
- log_error("Failed to set priority of notify event source: %s", strerror(-r));
+ log_error_errno(-r, "Failed to set priority of notify event source: %m");
return r;
}
}
return;
fail:
- log_error("Failed to build unit path cache: %s", strerror(-r));
+ log_error_errno(-r, "Failed to build unit path cache: %m");
set_free_free(m->unit_path_cache);
m->unit_path_cache = NULL;
r = sd_event_run(m->event, wait_usec);
if (r < 0) {
- log_error("Failed to run event loop: %s", strerror(-r));
+ log_error_errno(-r, "Failed to run event loop: %m");
return r;
}
}
r = mount_load_proc_self_mountinfo(m, true);
if (r < 0) {
- log_error("Failed to reread /proc/self/mountinfo: %s", strerror(-r));
+ log_error_errno(-r, "Failed to reread /proc/self/mountinfo: %m");
/* Reset flags, just in case, for later calls */
LIST_FOREACH(units_by_type, u, m->units_by_type[UNIT_MOUNT]) {
r = mkdir_p_label(s->path, mode);
if (r < 0)
- log_warning("mkdir(%s) failed: %s", s->path, strerror(-r));
+ log_warning_errno(-r, "mkdir(%s) failed: %m", s->path);
}
static void path_spec_dump(PathSpec *s, FILE *f, const char *prefix) {
r = unit_realize_cgroup(u);
if (r < 0) {
- log_error("Failed to realize cgroup: %s", strerror(-r));
+ log_error_errno(-r, "Failed to realize cgroup: %m");
return r;
}
} else if (r > 0)
log_info("Not all file systems unmounted, %d left.", r);
else
- log_error("Failed to unmount file systems: %s", strerror(-r));
+ log_error_errno(-r, "Failed to unmount file systems: %m");
}
if (need_swapoff) {
} else if (r > 0)
log_info("Not all swaps deactivated, %d left.", r);
else
- log_error("Failed to deactivate swaps: %s", strerror(-r));
+ log_error_errno(-r, "Failed to deactivate swaps: %m");
}
if (need_loop_detach) {
} else if (r > 0)
log_info("Not all loop devices detached, %d left.", r);
else
- log_error("Failed to detach loop devices: %s", strerror(-r));
+ log_error_errno(-r, "Failed to detach loop devices: %m");
}
if (need_dm_detach) {
} else if (r > 0)
log_info("Not all DM devices detached, %d left.", r);
else
- log_error("Failed to detach DM devices: %s", strerror(-r));
+ log_error_errno(-r, "Failed to detach DM devices: %m");
}
if (!need_umount && !need_swapoff && !need_loop_detach && !need_dm_detach) {
execv("/shutdown", argv);
log_error("Failed to execute shutdown binary: %m");
} else
- log_error("Failed to switch root to \"/run/initramfs\": %s", strerror(-r));
+ log_error_errno(-r, "Failed to switch root to \"/run/initramfs\": %m");
}
r = -errno;
error:
- log_emergency("Critical error while doing system shutdown: %s", strerror(-r));
+ log_emergency_errno(-r, "Critical error while doing system shutdown: %m");
freeze();
}
fail_child:
log_open();
- log_error("Failed to chown socket at step %s: %s", exit_status_to_string(ret, EXIT_STATUS_SYSTEMD), strerror(-r));
+ log_error_errno(-r, "Failed to chown socket at step %s: %m", exit_status_to_string(ret, EXIT_STATUS_SYSTEMD));
_exit(ret);
}
r = swap_load_proc_swaps(m, true);
if (r < 0) {
- log_error("Failed to reread /proc/swaps: %s", strerror(-r));
+ log_error_errno(-r, "Failed to reread /proc/swaps: %m");
/* Reset flags, just in case, for late calls */
LIST_FOREACH(units_by_type, u, m->units_by_type[UNIT_SWAP]) {
r = get_home_dir(&h);
if (r < 0) {
- log_error("Failed to determine home directory: %s", strerror(-r));
+ log_error_errno(-r, "Failed to determine home directory: %m");
return r;
}
/* Tenth step: apply changes */
r = transaction_apply(tr, m, mode);
if (r < 0) {
- log_warning("Failed to apply transaction: %s", strerror(-r));
+ log_warning_errno(-r, "Failed to apply transaction: %m");
return r;
}
"# Automatically generated by systemd-cryptsetup-generator \n\n"
"[Unit]\nJobTimeoutSec=0");
if (r < 0) {
- log_error("Failed to write device drop-in: %s", strerror(-r));
+ log_error_errno(-r, "Failed to write device drop-in: %m");
return r;
}
}
z = parse_proc_cmdline(parse_proc_cmdline_item);
if (z < 0)
- log_warning("Failed to parse kernel command line, ignoring: %s", strerror(-z));
+ log_warning_errno(-z, "Failed to parse kernel command line, ignoring: %m");
if (!arg_enabled) {
r = r2 = EXIT_SUCCESS;
r = ask_password_auto(text, "drive-harddisk", id, until, accept_cached, passwords);
if (r < 0) {
- log_error("Failed to query password: %s", strerror(-r));
+ log_error_errno(-r, "Failed to query password: %m");
return r;
}
r = ask_password_auto(text, "drive-harddisk", id, until, false, &passwords2);
if (r < 0) {
- log_error("Failed to query verification password: %s", strerror(-r));
+ log_error_errno(-r, "Failed to query verification password: %m");
return r;
}
if (key_file) {
r = read_one_line_file(key_file, &passphrase);
if (r < 0) {
- log_error("Failed to read password file '%s': %s", key_file, strerror(-r));
+ log_error_errno(-r, "Failed to read password file '%s': %m", key_file);
return -EAGAIN;
}
}
if (r < 0) {
- log_error("Loading of cryptographic parameters failed: %s", strerror(-r));
+ log_error_errno(-r, "Loading of cryptographic parameters failed: %m");
return r;
}
key_file, arg_keyfile_size,
arg_keyfile_offset, flags);
if (r < 0) {
- log_error("Failed to activate with key file '%s': %s", key_file, strerror(-r));
+ log_error_errno(-r, "Failed to activate with key file '%s': %m", key_file);
return -EAGAIN;
}
} else {
k = crypt_init(&cd, argv[3]);
if (k) {
- log_error("crypt_init() failed: %s", strerror(-k));
+ log_error_errno(-k, "crypt_init() failed: %m");
goto finish;
}
key_file = NULL;
continue;
} else if (k != -EPERM) {
- log_error("Failed to activate: %s", strerror(-k));
+ log_error_errno(-k, "Failed to activate: %m");
goto finish;
}
k = crypt_init_by_name(&cd, argv[2]);
if (k) {
- log_error("crypt_init() failed: %s", strerror(-k));
+ log_error_errno(-k, "crypt_init() failed: %m");
goto finish;
}
k = crypt_deactivate(cd, argv[2]);
if (k < 0) {
- log_error("Failed to deactivate: %s", strerror(-k));
+ log_error_errno(-k, "Failed to deactivate: %m");
goto finish;
}
r = fflush_and_check(f);
if (r < 0) {
- log_error("Failed to write %s: %s", a, strerror(-r));
+ log_error_errno(-r, "Failed to write %s: %m", a);
return r;
}
r = fflush_and_check(f);
if (r < 0) {
- log_error("Failed to write %s: %s", b, strerror(-r));
+ log_error_errno(-r, "Failed to write %s: %m", b);
return r;
}
type = "system";
units = SYSTEM_DATA_UNIT_PATH;
} else {
- log_error("Failed to determine whether we are running as user or system instance: %s", strerror(-r));
+ log_error_errno(-r, "Failed to determine whether we are running as user or system instance: %m");
return r;
}
r = parse_proc_cmdline(parse_proc_cmdline_item);
if (r < 0)
- log_warning("Failed to parse kernel command line, ignoring: %s", strerror(-r));
+ log_warning_errno(-r, "Failed to parse kernel command line, ignoring: %m");
if (arg_debug_shell) {
r = strv_extend(&arg_wants, "debug-shell.service");
r = get_files_in_directory(path, &list);
if (r < 0){
- log_error("Failed to enumerate %s: %s", path, strerror(-r));
+ log_error_errno(-r, "Failed to enumerate %s: %m", path);
return r;
}
v = detect_virtualization(&id);
if (v < 0) {
- log_error("Failed to check for virtualization: %s", strerror(-v));
+ log_error_errno(-v, "Failed to check for virtualization: %m");
return EXIT_FAILURE;
}
case ONLY_CONTAINER:
r = detect_container(&id);
if (r < 0) {
- log_error("Failed to check for container: %s", strerror(-r));
+ log_error_errno(-r, "Failed to check for container: %m");
return EXIT_FAILURE;
}
case ONLY_VM:
r = detect_vm(&id);
if (r < 0) {
- log_error("Failed to check for vm: %s", strerror(-r));
+ log_error_errno(-r, "Failed to check for vm: %m");
return EXIT_FAILURE;
}
log_debug("EFI loader partition unknown, exiting.");
return EXIT_SUCCESS;
} else if (r < 0) {
- log_error("Failed to read ESP partition UUID: %s", strerror(-r));
+ log_error_errno(-r, "Failed to read ESP partition UUID: %m");
return EXIT_FAILURE;
}
}
if (r < 0 && r != -ENOENT)
- log_warning("Failed to read os-release file: %s", strerror(-r));
+ log_warning_errno(-r, "Failed to read os-release file: %m");
printf("\nWelcome to your new installation of %s!\nPlease configure a few basic system settings:\n\n",
isempty(pretty_name) ? "Linux" : pretty_name);
r = ask_string(&p, "%s %s (empty to skip): ", draw_special_char(DRAW_TRIANGULAR_BULLET), text);
if (r < 0) {
- log_error("Failed to query user: %s", strerror(-r));
+ log_error_errno(-r, "Failed to query user: %m");
return r;
}
r = get_locales(&locales);
if (r < 0) {
- log_error("Cannot query locales list: %s", strerror(-r));
+ log_error_errno(-r, "Cannot query locales list: %m");
return r;
}
r = copy_file("/etc/locale.conf", etc_localeconf, 0, 0644);
if (r != -ENOENT) {
if (r < 0) {
- log_error("Failed to copy %s: %s", etc_localeconf, strerror(-r));
+ log_error_errno(-r, "Failed to copy %s: %m", etc_localeconf);
return r;
}
mkdir_parents(etc_localeconf, 0755);
r = write_env_file(etc_localeconf, locales);
if (r < 0) {
- log_error("Failed to write %s: %s", etc_localeconf, strerror(-r));
+ log_error_errno(-r, "Failed to write %s: %m", etc_localeconf);
return r;
}
r = get_timezones(&zones);
if (r < 0) {
- log_error("Cannot query timezone list: %s", strerror(-r));
+ log_error_errno(-r, "Cannot query timezone list: %m");
return r;
}
r = readlink_malloc("/etc/localtime", &p);
if (r != -ENOENT) {
if (r < 0) {
- log_error("Failed to read host timezone: %s", strerror(-r));
+ log_error_errno(-r, "Failed to read host timezone: %m");
return r;
}
r = ask_string(&h, "%s Please enter hostname for new system (empty to skip): ", draw_special_char(DRAW_TRIANGULAR_BULLET));
if (r < 0) {
- log_error("Failed to query hostname: %s", strerror(-r));
+ log_error_errno(-r, "Failed to query hostname: %m");
return r;
}
mkdir_parents(etc_hostname, 0755);
r = write_string_file(etc_hostname, arg_hostname);
if (r < 0) {
- log_error("Failed to write %s: %s", etc_hostname, strerror(-r));
+ log_error_errno(-r, "Failed to write %s: %m", etc_hostname);
return r;
}
mkdir_parents(etc_machine_id, 0755);
r = write_string_file(etc_machine_id, sd_id128_to_string(arg_machine_id, id));
if (r < 0) {
- log_error("Failed to write machine id: %s", strerror(-r));
+ log_error_errno(-r, "Failed to write machine id: %m");
return r;
}
r = ask_password_tty(msg1, 0, false, NULL, &a);
if (r < 0) {
- log_error("Failed to query root password: %s", strerror(-r));
+ log_error_errno(-r, "Failed to query root password: %m");
return r;
}
r = ask_password_tty(msg2, 0, false, NULL, &b);
if (r < 0) {
- log_error("Failed to query root password: %s", strerror(-r));
+ log_error_errno(-r, "Failed to query root password: %m");
clear_string(a);
return r;
}
r = write_root_shadow(etc_shadow, p);
if (r < 0) {
- log_error("Failed to write %s: %s", etc_shadow, strerror(-r));
+ log_error_errno(-r, "Failed to write %s: %m", etc_shadow);
return r;
}
r = dev_urandom(raw, 16);
if (r < 0) {
- log_error("Failed to get salt: %s", strerror(-r));
+ log_error_errno(-r, "Failed to get salt: %m");
return r;
}
r = write_root_shadow(etc_shadow, &item);
if (r < 0) {
- log_error("Failed to write %s: %s", etc_shadow, strerror(-r));
+ log_error_errno(-r, "Failed to write %s: %m", etc_shadow);
return r;
}
r = read_one_line_file(optarg, &arg_root_password);
if (r < 0) {
- log_error("Failed to read %s: %s", optarg, strerror(-r));
+ log_error_errno(-r, "Failed to read %s: %m", optarg);
return r;
}
r = sd_id128_randomize(&arg_machine_id);
if (r < 0) {
- log_error("Failed to generate randomized machine ID: %s", strerror(-r));
+ log_error_errno(-r, "Failed to generate randomized machine ID: %m");
return r;
}
r = bus_open_system_systemd(&bus);
if (r < 0) {
- log_error("Failed to get D-Bus connection: %s", strerror(-r));
+ log_error_errno(-r, "Failed to get D-Bus connection: %m");
return;
}
q = parse_proc_cmdline(parse_proc_cmdline_item);
if (q < 0)
- log_warning("Failed to parse kernel command line, ignoring: %s", strerror(-q));
+ log_warning_errno(-q, "Failed to parse kernel command line, ignoring: %m");
test_files();
log_info("fsck.%s doesn't exist, not checking file system on %s", type, device);
return EXIT_SUCCESS;
} else if (r < 0)
- log_warning("fsck.%s cannot be used for %s: %s", type, device, strerror(-r));
+ log_warning_errno(-r, "fsck.%s cannot be used for %s: %m", type, device);
}
if (arg_show_progress)
q = wait_for_terminate(pid, &status);
if (q < 0) {
- log_error("waitid(): %s", strerror(-q));
+ log_error_errno(-q, "waitid(): %m");
goto finish;
}
r = fflush_and_check(f);
if (r < 0) {
- log_error("Failed to write unit file %s: %s", unit, strerror(-r));
+ log_error_errno(-r, "Failed to write unit file %s: %m", unit);
return r;
}
r = parse_proc_cmdline(parse_proc_cmdline_item);
if (r < 0)
- log_warning("Failed to parse kernel command line, ignoring: %s", strerror(-r));
+ log_warning_errno(-r, "Failed to parse kernel command line, ignoring: %m");
/* Always honour root= and usr= in the kernel command line if we are in an initrd */
if (in_initrd()) {
"[Unit]\n"
"JobTimeoutSec=0\n"); /* the binary handles timeouts anyway */
if (r < 0) {
- log_error("Failed to write device drop-in: %s", strerror(-r));
+ log_error_errno(-r, "Failed to write device drop-in: %m");
return r;
}
r = udev_enumerate_scan_devices(e);
if (r < 0) {
- log_error("Failed to enumerate partitions on %s: %s", node, strerror(-r));
+ log_error_errno(-r, "Failed to enumerate partitions on %s: %m", node);
return r;
}
log_debug("EFI loader partition unknown, exiting.");
return 0;
} else if (r < 0) {
- log_error("Failed to read ESP partition UUID: %s", strerror(-r));
+ log_error_errno(-r, "Failed to read ESP partition UUID: %m");
return r;
}
r = get_block_device("/", &devno);
if (r < 0) {
- log_error("Failed to determine block device of root file system: %s", strerror(-r));
+ log_error_errno(-r, "Failed to determine block device of root file system: %m");
return r;
} else if (r == 0) {
log_debug("Root file system not on a (single) block device.");
r = parse_proc_cmdline(parse_proc_cmdline_item);
if (r < 0)
- log_warning("Failed to parse kernel command line, ignoring: %s", strerror(-r));
+ log_warning_errno(-r, "Failed to parse kernel command line, ignoring: %m");
if (!arg_enabled) {
log_debug("Disabled, exiting.");
r = parse_proc_cmdline(parse_proc_cmdline_item);
if (r < 0)
- log_warning("Failed to parse kernel command line, ignoring: %s", strerror(-r));
+ log_warning_errno(-r, "Failed to parse kernel command line, ignoring: %m");
r = process_resume();
free(arg_resume_dev);
r = write_string_file("/sys/power/resume", major_minor);
if (r < 0) {
- log_error("Failed to write '%s' to /sys/power/resume: %s", major_minor, strerror(-r));
+ log_error_errno(-r, "Failed to write '%s' to /sys/power/resume: %m", major_minor);
return EXIT_FAILURE;
}
r = bus_open_transport(arg_transport, arg_host, false, &bus);
if (r < 0) {
- log_error("Failed to create bus connection: %s", strerror(-r));
+ log_error_errno(-r, "Failed to create bus connection: %m");
goto finish;
}
r = context_update_kernel_hostname(c);
if (r < 0) {
- log_error("Failed to set host name: %s", strerror(-r));
+ log_error_errno(-r, "Failed to set host name: %m");
return sd_bus_error_set_errnof(error, r, "Failed to set hostname: %s", strerror(-r));
}
r = context_update_kernel_hostname(c);
if (r < 0) {
- log_error("Failed to set host name: %s", strerror(-r));
+ log_error_errno(-r, "Failed to set host name: %m");
return sd_bus_error_set_errnof(error, r, "Failed to set hostname: %s", strerror(-r));
}
r = context_write_data_static_hostname(c);
if (r < 0) {
- log_error("Failed to write static host name: %s", strerror(-r));
+ log_error_errno(-r, "Failed to write static host name: %m");
return sd_bus_error_set_errnof(error, r, "Failed to set static hostname: %s", strerror(-r));
}
r = context_write_data_machine_info(c);
if (r < 0) {
- log_error("Failed to write machine info: %s", strerror(-r));
+ log_error_errno(-r, "Failed to write machine info: %m");
return sd_bus_error_set_errnof(error, r, "Failed to write machine info: %s", strerror(-r));
}
r = sd_bus_default_system(&bus);
if (r < 0) {
- log_error("Failed to get system bus connection: %s", strerror(-r));
+ log_error_errno(-r, "Failed to get system bus connection: %m");
return r;
}
r = sd_bus_add_object_vtable(bus, NULL, "/org/freedesktop/hostname1", "org.freedesktop.hostname1", hostname_vtable, c);
if (r < 0) {
- log_error("Failed to register object: %s", strerror(-r));
+ log_error_errno(-r, "Failed to register object: %m");
return r;
}
r = sd_bus_request_name(bus, "org.freedesktop.hostname1", 0);
if (r < 0) {
- log_error("Failed to register name: %s", strerror(-r));
+ log_error_errno(-r, "Failed to register name: %m");
return r;
}
r = sd_bus_attach_event(bus, event, 0);
if (r < 0) {
- log_error("Failed to attach bus to event loop: %s", strerror(-r));
+ log_error_errno(-r, "Failed to attach bus to event loop: %m");
return r;
}
r = sd_event_default(&event);
if (r < 0) {
- log_error("Failed to allocate event loop: %s", strerror(-r));
+ log_error_errno(-r, "Failed to allocate event loop: %m");
goto finish;
}
r = context_read_data(&context);
if (r < 0) {
- log_error("Failed to read hostname and machine information: %s", strerror(-r));
+ log_error_errno(-r, "Failed to read hostname and machine information: %m");
goto finish;
}
r = bus_event_loop_with_idle(event, bus, "org.freedesktop.hostname1", DEFAULT_EXIT_USEC, NULL, NULL);
if (r < 0) {
- log_error("Failed to run event loop: %s", strerror(-r));
+ log_error_errno(-r, "Failed to run event loop: %m");
goto finish;
}
r = bus_open_system_systemd(&s->bus);
if (r < 0) {
- log_error("Failed to get D-Bus connection: %s", strerror(-r));
+ log_error_errno(-r, "Failed to get D-Bus connection: %m");
r = -EIO;
goto fail;
}
f = (Fifo*) ev->data.ptr;
r = fifo_process(f);
if (r < 0) {
- log_info("Got error on fifo: %s", strerror(-r));
+ log_info_errno(-r, "Got error on fifo: %m");
fifo_free(f);
return r;
}
n = sd_listen_fds(true);
if (n < 0) {
- log_error("Failed to read listening file descriptors from environment: %s", strerror(-r));
+ log_error_errno(-r, "Failed to read listening file descriptors from environment: %m");
return EXIT_FAILURE;
}
r = sd_journal_next(m->journal);
if (r < 0) {
- log_error("Failed to advance journal pointer: %s", strerror(-r));
+ log_error_errno(-r, "Failed to advance journal pointer: %m");
return MHD_CONTENT_READER_END_WITH_ERROR;
} else if (r == 0) {
if (m->follow) {
r = sd_journal_wait(m->journal, (uint64_t) -1);
if (r < 0) {
- log_error("Couldn't wait for journal event: %s", strerror(-r));
+ log_error_errno(-r, "Couldn't wait for journal event: %m");
return MHD_CONTENT_READER_END_WITH_ERROR;
}
r = sd_journal_test_cursor(m->journal, m->cursor);
if (r < 0) {
- log_error("Failed to test cursor: %s", strerror(-r));
+ log_error_errno(-r, "Failed to test cursor: %m");
return MHD_CONTENT_READER_END_WITH_ERROR;
}
r = output_journal(m->tmp, m->journal, m->mode, 0, OUTPUT_FULL_WIDTH, NULL);
if (r < 0) {
- log_error("Failed to serialize item: %s", strerror(-r));
+ log_error_errno(-r, "Failed to serialize item: %m");
return MHD_CONTENT_READER_END_WITH_ERROR;
}
r = sd_id128_get_boot(&bid);
if (r < 0) {
- log_error("Failed to get boot ID: %s", strerror(-r));
+ log_error_errno(-r, "Failed to get boot ID: %m");
return MHD_NO;
}
r = sd_journal_enumerate_unique(m->journal, &d, &l);
if (r < 0) {
- log_error("Failed to advance field index: %s", strerror(-r));
+ log_error_errno(-r, "Failed to advance field index: %m");
return MHD_CONTENT_READER_END_WITH_ERROR;
} else if (r == 0)
return MHD_CONTENT_READER_END_OF_STREAM;
r = output_field(m->tmp, m->mode, d, l);
if (r < 0) {
- log_error("Failed to serialize item: %s", strerror(-r));
+ log_error_errno(-r, "Failed to serialize item: %m");
return MHD_CONTENT_READER_END_WITH_ERROR;
}
}
r = read_full_file(optarg, &key_pem, NULL);
if (r < 0) {
- log_error("Failed to read key file: %s", strerror(-r));
+ log_error_errno(-r, "Failed to read key file: %m");
return r;
}
assert(key_pem);
}
r = read_full_file(optarg, &cert_pem, NULL);
if (r < 0) {
- log_error("Failed to read certificate file: %s", strerror(-r));
+ log_error_errno(-r, "Failed to read certificate file: %m");
return r;
}
assert(cert_pem);
}
r = read_full_file(optarg, &trust_pem, NULL);
if (r < 0) {
- log_error("Failed to read CA certificate file: %s", strerror(-r));
+ log_error_errno(-r, "Failed to read CA certificate file: %m");
return r;
}
assert(trust_pem);
n = sd_listen_fds(1);
if (n < 0) {
- log_error("Failed to determine passed sockets: %s", strerror(-n));
+ log_error_errno(-n, "Failed to determine passed sockets: %m");
goto finish;
} else if (n > 1) {
log_error("Can't listen on more than one socket.");
return 1;
}
- log_debug("%s: Write failed, rotating: %s", w->journal->path, strerror(-r));
+ log_debug_errno(-r, "%s: Write failed, rotating: %m", w->journal->path);
r = do_rotate(&w->journal, compress, seal);
if (r < 0)
return r;
assert(getter);
r = strv_split_quoted(&words, getter, false);
if (r < 0) {
- log_error("Failed to split getter option: %s", strerror(-r));
+ log_error_errno(-r, "Failed to split getter option: %m");
return r;
}
r = strv_extend(&words, url);
if (r < 0) {
- log_error("Failed to create command line: %s", strerror(-r));
+ log_error_errno(-r, "Failed to create command line: %m");
return r;
}
r = sd_event_source_set_description(source->event, name);
if (r < 0) {
- log_error("Failed to set source name for fd:%d: %s", fd, strerror(-r));
+ log_error_errno(-r, "Failed to set source name for fd:%d: %m", fd);
goto error;
}
r = fd_nonblock(fd, true);
if (r < 0) {
- log_error("Failed to make fd:%d nonblocking: %s", fd, strerror(-r));
+ log_error_errno(-r, "Failed to make fd:%d nonblocking: %m", fd);
return r;
}
epoll_fd, EPOLLIN,
dispatch_http_event, d);
if (r < 0) {
- log_error("Failed to add event callback: %s", strerror(-r));
+ log_error_errno(-r, "Failed to add event callback: %m");
goto error;
}
r = sd_event_source_set_description(d->event, "epoll-fd");
if (r < 0) {
- log_error("Failed to set source name: %s", strerror(-r));
+ log_error_errno(-r, "Failed to set source name: %m");
goto error;
}
r = hashmap_put(s->daemons, &d->fd, d);
if (r < 0) {
- log_error("Failed to add daemon to hashmap: %s", strerror(-r));
+ log_error_errno(-r, "Failed to add daemon to hashmap: %m");
goto error;
}
r = sd_event_default(&s->events);
if (r < 0) {
- log_error("Failed to allocate event loop: %s", strerror(-r));
+ log_error_errno(-r, "Failed to allocate event loop: %m");
return r;
}
r = getnameinfo_pretty(fd, &hostname);
if (r < 0) {
- log_error("Failed to retrieve remote name: %s", strerror(-r));
+ log_error_errno(-r, "Failed to retrieve remote name: %m");
return r;
}
} else if (r == -EAGAIN) {
return 0;
} else if (r < 0) {
- log_info("Closing connection: %s", strerror(-r));
+ log_info_errno(-r, "Closing connection: %m");
remove_source(server, fd);
return 0;
} else
r = socket_address_print(addr, &a);
if (r < 0) {
- log_error("socket_address_print(): %s", strerror(-r));
+ log_error_errno(-r, "socket_address_print(): %m");
close(fd2);
return r;
}
r = sd_event_set_watchdog(s.events, true);
if (r < 0)
- log_error("Failed to enable watchdog: %s", strerror(-r));
+ log_error_errno(-r, "Failed to enable watchdog: %m");
else
log_debug("Watchdog is %s.", r > 0 ? "enabled" : "disabled");
r = sd_event_run(s.events, -1);
if (r < 0) {
- log_error("Failed to run event loop: %s", strerror(-r));
+ log_error_errno(-r, "Failed to run event loop: %m");
break;
}
}
r = sd_journal_get_cursor(u->journal, &u->current_cursor);
if (r < 0) {
- log_error("Failed to get cursor: %s", strerror(-r));
+ log_error_errno(-r, "Failed to get cursor: %m");
return r;
}
r = sd_journal_get_realtime_usec(u->journal, &realtime);
if (r < 0) {
- log_error("Failed to get realtime timestamp: %s", strerror(-r));
+ log_error_errno(-r, "Failed to get realtime timestamp: %m");
return r;
}
r = sd_journal_get_monotonic_usec(u->journal, &monotonic, &boot_id);
if (r < 0) {
- log_error("Failed to get monotonic timestamp: %s", strerror(-r));
+ log_error_errno(-r, "Failed to get monotonic timestamp: %m");
return r;
}
r = sd_journal_get_monotonic_usec(u->journal, NULL, &boot_id);
if (r < 0) {
- log_error("Failed to get monotonic timestamp: %s", strerror(-r));
+ log_error_errno(-r, "Failed to get monotonic timestamp: %m");
return r;
}
r = sd_journal_next_skip(u->journal, skip);
if (r < 0) {
- log_error("Failed to skip to next entry: %s", strerror(-r));
+ log_error_errno(-r, "Failed to skip to next entry: %m");
return r;
} else if (r < skip)
return 0;
r = sd_journal_process(u->journal);
if (r < 0) {
- log_error("Failed to process journal: %s", strerror(-r));
+ log_error_errno(-r, "Failed to process journal: %m");
close_journal_input(u);
return r;
}
if (follow) {
fd = sd_journal_get_fd(j);
if (fd < 0) {
- log_error("sd_journal_get_fd failed: %s", strerror(-fd));
+ log_error_errno(-fd, "sd_journal_get_fd failed: %m");
return fd;
}
r = sd_event_add_io(u->events, &u->input_event,
fd, events, dispatch_journal_input, u);
if (r < 0) {
- log_error("Failed to register input event: %s", strerror(-r));
+ log_error_errno(-r, "Failed to register input event: %m");
return r;
}
finish:
if (r < 0)
- log_error("Failed to save state %s: %s", u->state_file, strerror(-r));
+ log_error_errno(-r, "Failed to save state %s: %m", u->state_file);
return r;
}
fd, EPOLLIN, dispatch_fd_input, u);
if (r < 0) {
if (r != -EPERM || arg_follow > 0) {
- log_error("Failed to register input event: %s", strerror(-r));
+ log_error_errno(-r, "Failed to register input event: %m");
return r;
}
r = sd_event_default(&u->events);
if (r < 0) {
- log_error("sd_event_default failed: %s", strerror(-r));
+ log_error_errno(-r, "sd_event_default failed: %m");
return r;
}
r = setup_signals(u);
if (r < 0) {
- log_error("Failed to set up signals: %s", strerror(-r));
+ log_error_errno(-r, "Failed to set up signals: %m");
return r;
}
case ARG_FILE:
r = glob_extend(&arg_file, optarg);
if (r < 0) {
- log_error("Failed to add paths: %s", strerror(-r));
+ log_error_errno(-r, "Failed to add paths: %m");
return r;
};
break;
r = sd_event_run(u.events, u.timeout);
if (r < 0) {
- log_error("Failed to run event loop: %s", strerror(-r));
+ log_error_errno(-r, "Failed to run event loop: %m");
break;
}
}
r = gnutls_certificate_verify_peers2(session, &status);
if (r < 0) {
- log_error("gnutls_certificate_verify_peers2 failed: %s", strerror(-r));
+ log_error_errno(-r, "gnutls_certificate_verify_peers2 failed: %m");
return r;
}
type = gnutls_certificate_type_get(session);
r = gnutls_certificate_verification_status_print(status, type, &out, 0);
if (r < 0) {
- log_error("gnutls_certificate_verification_status_print failed: %s", strerror(-r));
+ log_error_errno(-r, "gnutls_certificate_verification_status_print failed: %m");
return r;
}
fd = sd_journal_stream_fd(arg_identifier, arg_priority, arg_level_prefix);
if (fd < 0) {
- log_error("Failed to create stream fd: %s", strerror(-fd));
+ log_error_errno(-fd, "Failed to create stream fd: %m");
r = fd;
goto finish;
}
if (saved_stderr >= 0)
dup3(saved_stderr, STDERR_FILENO, 0);
- log_error("Failed to execute process: %s", strerror(-r));
+ log_error_errno(-r, "Failed to execute process: %m");
finish:
safe_close(fd);
r = mkdir_p(d, 0775);
if (r < 0) {
- log_error("Recursive mkdir %s: %s", d, strerror(-r));
+ log_error_errno(-r, "Recursive mkdir %s: %m", d);
return r;
}
r = conf_files_list_strv(&files, ".catalog", root, dirs);
if (r < 0) {
- log_error("Failed to get catalog files: %s", strerror(-r));
+ log_error_errno(-r, "Failed to get catalog files: %m");
goto finish;
}
r = write_catalog(database, h, sb, items, n);
if (r < 0)
- log_error("Failed to write %s: %s", database, strerror(-r));
+ log_error_errno(-r, "Failed to write %s: %m", database);
else
log_debug("%s: wrote %u items, with %zu bytes of strings, %ld total size.",
database, n, sb->len, r);
r = make_filename(info, &fn);
if (r < 0) {
- log_error("Failed to determine coredump file name: %s", strerror(-r));
+ log_error_errno(-r, "Failed to determine coredump file name: %m");
return r;
}
log_error("Not enough disk space for coredump of %s (%s), refusing.", info[INFO_PID], info[INFO_COMM]);
goto fail;
} else if (r < 0) {
- log_error("Failed to dump coredump to file: %s", strerror(-r));
+ log_error_errno(-r, "Failed to dump coredump to file: %m");
goto fail;
}
r = compress_stream(fd, fd_compressed, -1);
if (r < 0) {
- log_error("Failed to compress %s: %s", tmp_compressed, strerror(-r));
+ log_error_errno(-r, "Failed to compress %s: %m", tmp_compressed);
goto fail_compressed;
}
n = read(fd, field + 9, size);
if (n < 0) {
- log_error("Failed to read core data: %s", strerror(-n));
+ log_error_errno(-n, "Failed to read core data: %m");
return (int) n;
}
if ((size_t) n < size) {
else if (r == -EINVAL)
log_warning("Failed to generate stack trace: %s", dwfl_errmsg(dwfl_errno()));
else
- log_warning("Failed to generate stack trace: %s", strerror(-r));
+ log_warning_errno(-r, "Failed to generate stack trace: %m");
}
if (!core_message)
r = sd_journal_sendv(iovec, j);
if (r < 0)
- log_error("Failed to log coredump: %s", strerror(-r));
+ log_error_errno(-r, "Failed to log coredump: %m");
finish:
return r < 0 ? EXIT_FAILURE : EXIT_SUCCESS;
r = set_consume(set, tmp);
if (r < 0) {
- log_error("failed to add to set: %s", strerror(-r));
+ log_error_errno(-r, "failed to add to set: %m");
set_free(set);
return NULL;
}
log_debug("Adding pattern: %s", pattern);
r = set_consume(set, pattern);
if (r < 0) {
- log_error("Failed to add pattern: %s", strerror(-r));
+ log_error_errno(-r, "Failed to add pattern: %m");
goto fail;
}
return 0;
fail:
- log_error("Failed to add match: %s", strerror(-r));
+ log_error_errno(-r, "Failed to add match: %m");
return r;
}
r = sd_journal_get_realtime_usec(j, &t);
if (r < 0) {
- log_error("Failed to get realtime timestamp: %s", strerror(-r));
+ log_error_errno(-r, "Failed to get realtime timestamp: %m");
return r;
}
if (r == 0)
r = sd_journal_previous(j);
if (r < 0) {
- log_error("Failed to search journal: %s", strerror(-r));
+ log_error_errno(-r, "Failed to search journal: %m");
return r;
}
if (r == 0) {
* compressed file (probably uncached). */
r = sd_journal_get_data(j, "COREDUMP_FILENAME", (const void**) &data, &len);
if (r < 0 && r != -ENOENT)
- log_warning("Failed to retrieve COREDUMP_FILENAME: %s", strerror(-r));
+ log_warning_errno(-r, "Failed to retrieve COREDUMP_FILENAME: %m");
else if (r == 0)
retrieve(data, len, "COREDUMP_FILENAME", &filename);
r = decompress_stream(filename, fdf, fd, -1);
if (r < 0) {
- log_error("Failed to decompress %s: %s", filename, strerror(-r));
+ log_error_errno(-r, "Failed to decompress %s: %m", filename);
goto error;
}
#else
if (r == -ENOENT)
log_error("Cannot retrieve coredump from journal nor disk.");
else
- log_error("Failed to retrieve COREDUMP field: %s", strerror(-r));
+ log_error_errno(-r, "Failed to retrieve COREDUMP field: %m");
goto error;
}
r = save_core(j, output ? fileno(output) : STDOUT_FILENO, NULL, NULL);
if (r < 0) {
- log_error("Coredump retrieval failed: %s", strerror(-r));
+ log_error_errno(-r, "Coredump retrieval failed: %m");
return r;
}
r = sd_journal_get_data(j, "COREDUMP_EXE", (const void**) &data, &len);
if (r < 0) {
- log_error("Failed to retrieve COREDUMP_EXE field: %s", strerror(-r));
+ log_error_errno(-r, "Failed to retrieve COREDUMP_EXE field: %m");
return r;
}
r = save_core(j, -1, &path, &unlink_path);
if (r < 0) {
- log_error("Failed to retrieve core: %s", strerror(-r));
+ log_error_errno(-r, "Failed to retrieve core: %m");
return r;
}
r = sd_journal_open(&j, SD_JOURNAL_LOCAL_ONLY);
if (r < 0) {
- log_error("Failed to open journal: %s", strerror(-r));
+ log_error_errno(-r, "Failed to open journal: %m");
goto end;
}
case ARG_FILE:
r = glob_extend(&arg_file, optarg);
if (r < 0) {
- log_error("Failed to add paths: %s", strerror(-r));
+ log_error_errno(-r, "Failed to add paths: %m");
return r;
};
break;
r = sd_id128_randomize(&id);
if (r < 0) {
- log_error("Failed to generate ID: %s", strerror(-r));
+ log_error_errno(-r, "Failed to generate ID: %m");
return r;
}
}
if (r < 0) {
- log_error("Failed to add match '%s': %s", *i, strerror(-r));
+ log_error_errno(-r, "Failed to add match '%s': %m", *i);
return r;
}
}
r = get_boot_id_by_offset(j, &arg_boot_id, arg_boot_offset);
if (r < 0) {
if (sd_id128_equal(arg_boot_id, SD_ID128_NULL))
- log_error("Failed to look up boot %+i: %s", arg_boot_offset, strerror(-r));
+ log_error_errno(-r, "Failed to look up boot %+i: %m", arg_boot_offset);
else
log_error("Failed to look up boot ID "SD_ID128_FORMAT_STR"%+i: %s",
SD_ID128_FORMAT_VAL(arg_boot_id), arg_boot_offset, strerror(-r));
r = sd_journal_add_match(j, match, sizeof(match) - 1);
if (r < 0) {
- log_error("Failed to add match: %s", strerror(-r));
+ log_error_errno(-r, "Failed to add match: %m");
return r;
}
r = sd_journal_add_match(j, "_TRANSPORT=kernel", strlen("_TRANSPORT=kernel"));
if (r < 0) {
- log_error("Failed to add match: %s", strerror(-r));
+ log_error_errno(-r, "Failed to add match: %m");
return r;
}
r = sd_journal_add_match(j, match, strlen(match));
if (r < 0) {
- log_error("Failed to add match: %s", strerror(-r));
+ log_error_errno(-r, "Failed to add match: %m");
return r;
}
}
r = sd_id128_get_machine(&machine);
if (r < 0) {
- log_error("Failed to get machine ID: %s", strerror(-r));
+ log_error_errno(-r, "Failed to get machine ID: %m");
return r;
}
r = sd_id128_get_boot(&boot);
if (r < 0) {
- log_error("Failed to get boot ID: %s", strerror(-r));
+ log_error_errno(-r, "Failed to get boot ID: %m");
return r;
}
* daemon and set up inotify to wait for the flushed file to appear */
r = bus_open_system_systemd(&bus);
if (r < 0) {
- log_error("Failed to get D-Bus connection: %s", strerror(-r));
+ log_error_errno(-r, "Failed to get D-Bus connection: %m");
return r;
}
r = fd_wait_for_event(watch_fd, POLLIN, USEC_INFINITY);
if (r < 0) {
- log_error("Failed to wait for event: %s", strerror(-r));
+ log_error_errno(-r, "Failed to wait for event: %m");
return r;
}
r = flush_fd(watch_fd);
if (r < 0) {
- log_error("Failed to flush inotify events: %s", strerror(-r));
+ log_error_errno(-r, "Failed to flush inotify events: %m");
return r;
}
}
if (arg_action == ACTION_UPDATE_CATALOG) {
r = catalog_update(database, arg_root, catalog_file_dirs);
if (r < 0)
- log_error("Failed to list catalog: %s", strerror(-r));
+ log_error_errno(-r, "Failed to list catalog: %m");
} else {
bool oneline = arg_action == ACTION_LIST_CATALOG;
else
r = catalog_list(stdout, database, oneline);
if (r < 0)
- log_error("Failed to list catalog: %s", strerror(-r));
+ log_error_errno(-r, "Failed to list catalog: %m");
}
goto finish;
q = journal_directory_vacuum(d->path, arg_vacuum_size, arg_vacuum_time, NULL, true);
if (q < 0) {
- log_error("Failed to vacuum: %s", strerror(-q));
+ log_error_errno(-q, "Failed to vacuum: %m");
r = q;
}
}
strv_free(arg_user_units);
if (r < 0) {
- log_error("Failed to add filter for units: %s", strerror(-r));
+ log_error_errno(-r, "Failed to add filter for units: %m");
return EXIT_FAILURE;
}
r = add_syslog_identifier(j);
if (r < 0) {
- log_error("Failed to add filter for syslog identifiers: %s", strerror(-r));
+ log_error_errno(-r, "Failed to add filter for syslog identifiers: %m");
return EXIT_FAILURE;
}
r = add_priorities(j);
if (r < 0) {
- log_error("Failed to add filter for priorities: %s", strerror(-r));
+ log_error_errno(-r, "Failed to add filter for priorities: %m");
return EXIT_FAILURE;
}
r = add_matches(j, argv + optind);
if (r < 0) {
- log_error("Failed to add filters: %s", strerror(-r));
+ log_error_errno(-r, "Failed to add filters: %m");
return EXIT_FAILURE;
}
r = sd_journal_query_unique(j, arg_field);
if (r < 0) {
- log_error("Failed to query unique data objects: %s", strerror(-r));
+ log_error_errno(-r, "Failed to query unique data objects: %m");
return EXIT_FAILURE;
}
if (arg_cursor || arg_after_cursor) {
r = sd_journal_seek_cursor(j, arg_cursor ?: arg_after_cursor);
if (r < 0) {
- log_error("Failed to seek to cursor: %s", strerror(-r));
+ log_error_errno(-r, "Failed to seek to cursor: %m");
return EXIT_FAILURE;
}
if (!arg_reverse)
} else if (arg_since_set && !arg_reverse) {
r = sd_journal_seek_realtime_usec(j, arg_since);
if (r < 0) {
- log_error("Failed to seek to date: %s", strerror(-r));
+ log_error_errno(-r, "Failed to seek to date: %m");
return EXIT_FAILURE;
}
r = sd_journal_next(j);
} else if (arg_until_set && arg_reverse) {
r = sd_journal_seek_realtime_usec(j, arg_until);
if (r < 0) {
- log_error("Failed to seek to date: %s", strerror(-r));
+ log_error_errno(-r, "Failed to seek to date: %m");
return EXIT_FAILURE;
}
r = sd_journal_previous(j);
} else if (arg_lines >= 0) {
r = sd_journal_seek_tail(j);
if (r < 0) {
- log_error("Failed to seek to tail: %s", strerror(-r));
+ log_error_errno(-r, "Failed to seek to tail: %m");
return EXIT_FAILURE;
}
} else if (arg_reverse) {
r = sd_journal_seek_tail(j);
if (r < 0) {
- log_error("Failed to seek to tail: %s", strerror(-r));
+ log_error_errno(-r, "Failed to seek to tail: %m");
return EXIT_FAILURE;
}
} else {
r = sd_journal_seek_head(j);
if (r < 0) {
- log_error("Failed to seek to head: %s", strerror(-r));
+ log_error_errno(-r, "Failed to seek to head: %m");
return EXIT_FAILURE;
}
}
if (r < 0) {
- log_error("Failed to iterate through journal: %s", strerror(-r));
+ log_error_errno(-r, "Failed to iterate through journal: %m");
return EXIT_FAILURE;
}
r = sd_journal_get_cutoff_realtime_usec(j, &start, &end);
if (r < 0) {
- log_error("Failed to get cutoff: %s", strerror(-r));
+ log_error_errno(-r, "Failed to get cutoff: %m");
goto finish;
}
else
r = sd_journal_previous(j);
if (r < 0) {
- log_error("Failed to iterate through journal: %s", strerror(-r));
+ log_error_errno(-r, "Failed to iterate through journal: %m");
goto finish;
}
if (r == 0)
r = sd_journal_get_realtime_usec(j, &usec);
if (r < 0) {
- log_error("Failed to determine timestamp: %s", strerror(-r));
+ log_error_errno(-r, "Failed to determine timestamp: %m");
goto finish;
}
if (usec > arg_until)
r = sd_journal_get_realtime_usec(j, &usec);
if (r < 0) {
- log_error("Failed to determine timestamp: %s", strerror(-r));
+ log_error_errno(-r, "Failed to determine timestamp: %m");
goto finish;
}
if (usec < arg_since)
r = sd_journal_get_cursor(j, &cursor);
if (r < 0 && r != -EADDRNOTAVAIL)
- log_error("Failed to get cursor: %s", strerror(-r));
+ log_error_errno(-r, "Failed to get cursor: %m");
else if (r >= 0)
printf("-- cursor: %s\n", cursor);
}
r = sd_journal_wait(j, (uint64_t) -1);
if (r < 0) {
- log_error("Couldn't wait for journal event: %s", strerror(-r));
+ log_error_errno(-r, "Couldn't wait for journal event: %m");
goto finish;
}
r = m->map(m->journal_field, &v, iov, n_iov_allocated, n_iov);
if (r < 0) {
- log_debug("Failed to parse audit array: %s", strerror(-r));
+ log_debug_errno(-r, "Failed to parse audit array: %m");
return r;
}
if (!mapped) {
r = map_generic_field(prefix, &p, iov, n_iov_allocated, n_iov);
if (r < 0) {
- log_debug("Failed to parse audit array: %s", strerror(-r));
+ log_debug_errno(-r, "Failed to parse audit array: %m");
return r;
}
r = sd_event_add_io(s->event, &s->audit_event_source, s->audit_fd, EPOLLIN, process_datagram, s);
if (r < 0) {
- log_error("Failed to add audit fd to event loop: %s", strerror(-r));
+ log_error_errno(-r, "Failed to add audit fd to event loop: %m");
return r;
}
/* We are listening now, try to enable audit */
r = enable_audit(s->audit_fd, true);
if (r < 0)
- log_warning("Failed to issue audit enable call: %s", strerror(-r));
+ log_warning_errno(-r, "Failed to issue audit enable call: %m");
return 0;
}
goto fail;
}
- log_error("Failed to add /dev/kmsg fd to event loop: %s", strerror(-r));
+ log_error_errno(-r, "Failed to add /dev/kmsg fd to event loop: %m");
goto fail;
}
r = sd_event_source_set_priority(s->dev_kmsg_event_source, SD_EVENT_PRIORITY_IMPORTANT+10);
if (r < 0) {
- log_error("Failed to adjust priority of kmsg event source: %s", strerror(-r));
+ log_error_errno(-r, "Failed to adjust priority of kmsg event source: %m");
goto fail;
}
n = pread(fd, p, st.st_size, 0);
if (n < 0)
- log_error("Failed to read file, ignoring: %s", strerror(-n));
+ log_error_errno(-n, "Failed to read file, ignoring: %m");
else if (n > 0)
server_process_native_message(s, p, n, ucred, tv, label, label_len);
}
r = sd_event_add_io(s->event, &s->native_event_source, s->native_fd, EPOLLIN, process_datagram, s);
if (r < 0) {
- log_error("Failed to add native server fd to event loop: %s", strerror(-r));
+ log_error_errno(-r, "Failed to add native server fd to event loop: %m");
return r;
}
r = fchmod(f->fd, 0640);
if (r < 0)
- log_warning("Failed to fix access mode on %s, ignoring: %s", f->path, strerror(-r));
+ log_warning_errno(-r, "Failed to fix access mode on %s, ignoring: %m", f->path);
#ifdef HAVE_ACL
if (uid <= SYSTEM_UID_MAX)
if (s->system_journal) {
r = journal_file_set_offline(s->system_journal);
if (r < 0)
- log_error("Failed to sync system journal: %s", strerror(-r));
+ log_error_errno(-r, "Failed to sync system journal: %m");
}
ORDERED_HASHMAP_FOREACH_KEY(f, k, s->user_journals, i) {
r = journal_file_set_offline(f);
if (r < 0)
- log_error("Failed to sync user journal: %s", strerror(-r));
+ log_error_errno(-r, "Failed to sync user journal: %m");
}
if (s->sync_event_source) {
r = sd_event_source_set_enabled(s->sync_event_source, SD_EVENT_OFF);
if (r < 0)
- log_error("Failed to disable sync timer source: %s", strerror(-r));
+ log_error_errno(-r, "Failed to disable sync timer source: %m");
}
s->sync_scheduled = false;
p = strappenda(path, ids);
r = journal_directory_vacuum(p, metrics->max_use, s->max_retention_usec, &s->oldest_file_usec, false);
if (r < 0 && r != -ENOENT)
- log_error("Failed to vacuum %s: %s", p, strerror(-r));
+ log_error_errno(-r, "Failed to vacuum %s: %m", p);
}
void server_vacuum(Server *s) {
r = sd_id128_get_machine(&machine);
if (r < 0) {
- log_error("Failed to get machine ID: %s", strerror(-r));
+ log_error_errno(-r, "Failed to get machine ID: %m");
return;
}
sd_id128_to_string(machine, ids);
for (i = 0; i < n; i++)
size += iovec[i].iov_len;
- log_error("Failed to write entry (%d items, %zu bytes), ignoring: %s", n, size, strerror(-r));
+ log_error_errno(-r, "Failed to write entry (%d items, %zu bytes), ignoring: %m", n, size);
return;
}
for (i = 0; i < n; i++)
size += iovec[i].iov_len;
- log_error("Failed to write entry (%d items, %zu bytes) despite vacuuming, ignoring: %s", n, size, strerror(-r));
+ log_error_errno(-r, "Failed to write entry (%d items, %zu bytes) despite vacuuming, ignoring: %m", n, size);
} else
server_schedule_sync(s, priority);
}
r = sd_id128_get_machine(&machine);
if (r < 0) {
- log_error("Failed to get machine id: %s", strerror(-r));
+ log_error_errno(-r, "Failed to get machine id: %m");
return r;
}
server_fix_perms(s, s->system_journal, 0);
else if (r < 0) {
if (r != -ENOENT && r != -EROFS)
- log_warning("Failed to open system journal: %s", strerror(-r));
+ log_warning_errno(-r, "Failed to open system journal: %m");
r = 0;
}
if (r < 0) {
if (r != -ENOENT)
- log_warning("Failed to open runtime journal: %s", strerror(-r));
+ log_warning_errno(-r, "Failed to open runtime journal: %m");
r = 0;
}
free(fn);
if (r < 0) {
- log_error("Failed to open runtime journal: %s", strerror(-r));
+ log_error_errno(-r, "Failed to open runtime journal: %m");
return r;
}
}
r = sd_journal_open(&j, SD_JOURNAL_RUNTIME_ONLY);
if (r < 0) {
- log_error("Failed to read runtime journal: %s", strerror(-r));
+ log_error_errno(-r, "Failed to read runtime journal: %m");
return r;
}
r = journal_file_move_to_object(f, OBJECT_ENTRY, f->current_offset, &o);
if (r < 0) {
- log_error("Can't read entry: %s", strerror(-r));
+ log_error_errno(-r, "Can't read entry: %m");
goto finish;
}
continue;
if (!shall_try_append_again(s->system_journal, r)) {
- log_error("Can't write entry: %s", strerror(-r));
+ log_error_errno(-r, "Can't write entry: %m");
goto finish;
}
log_debug("Retrying write.");
r = journal_file_copy_entry(f, s->system_journal, o, f->current_offset, NULL, NULL, NULL);
if (r < 0) {
- log_error("Can't write entry: %s", strerror(-r));
+ log_error_errno(-r, "Can't write entry: %m");
goto finish;
}
}
r = proc_cmdline(&line);
if (r < 0) {
- log_warning("Failed to read /proc/cmdline, ignoring: %s", strerror(-r));
+ log_warning_errno(-r, "Failed to read /proc/cmdline, ignoring: %m");
return 0;
}
return 0;
}
- log_error("Failed to register hostname fd in event loop: %s", strerror(-r));
+ log_error_errno(-r, "Failed to register hostname fd in event loop: %m");
return r;
}
r = sd_event_source_set_priority(s->hostname_event_source, SD_EVENT_PRIORITY_IMPORTANT-10);
if (r < 0) {
- log_error("Failed to adjust priority of host name event source: %s", strerror(-r));
+ log_error_errno(-r, "Failed to adjust priority of host name event source: %m");
return r;
}
r = sd_event_default(&s->event);
if (r < 0) {
- log_error("Failed to create event loop: %s", strerror(-r));
+ log_error_errno(-r, "Failed to create event loop: %m");
return r;
}
n = sd_listen_fds(true);
if (n < 0) {
- log_error("Failed to read listening file descriptors from environment: %s", strerror(-n));
+ log_error_errno(-n, "Failed to read listening file descriptors from environment: %m");
return n;
}
r = sd_event_add_io(s->event, &stream->event_source, fd, EPOLLIN, stdout_stream_process, stream);
if (r < 0) {
- log_error("Failed to add stream to event loop: %s", strerror(-r));
+ log_error_errno(-r, "Failed to add stream to event loop: %m");
goto fail;
}
r = sd_event_source_set_priority(stream->event_source, SD_EVENT_PRIORITY_NORMAL+5);
if (r < 0) {
- log_error("Failed to adjust stdout event source priority: %s", strerror(-r));
+ log_error_errno(-r, "Failed to adjust stdout event source priority: %m");
goto fail;
}
r = sd_event_add_io(s->event, &s->stdout_event_source, s->stdout_fd, EPOLLIN, stdout_stream_new, s);
if (r < 0) {
- log_error("Failed to add stdout server fd to event source: %s", strerror(-r));
+ log_error_errno(-r, "Failed to add stdout server fd to event source: %m");
return r;
}
r = sd_event_source_set_priority(s->stdout_event_source, SD_EVENT_PRIORITY_NORMAL+10);
if (r < 0) {
- log_error("Failed to adjust priority of stdout server event source: %s", strerror(-r));
+ log_error_errno(-r, "Failed to adjust priority of stdout server event source: %m");
return r;
}
r = sd_event_add_io(s->event, &s->syslog_event_source, s->syslog_fd, EPOLLIN, process_datagram, s);
if (r < 0) {
- log_error("Failed to add syslog server fd to event loop: %s", strerror(-r));
+ log_error_errno(-r, "Failed to add syslog server fd to event loop: %m");
return r;
}
r = utmp_wall(l, "systemd-journald", NULL);
if (r < 0)
- log_debug("Failed to send wall message: %s", strerror(-r));
+ log_debug_errno(-r, "Failed to send wall message: %m");
}
r = sd_event_run(server.event, t);
if (r < 0) {
- log_error("Failed to run event loop: %s", strerror(-r));
+ log_error_errno(-r, "Failed to run event loop: %m");
goto finish;
}
r = next_beyond_location(j, f, direction, &o, &p);
if (r < 0) {
- log_debug("Can't iterate through %s, ignoring: %s", f->path, strerror(-r));
+ log_debug_errno(-r, "Can't iterate through %s, ignoring: %m", f->path);
remove_file_real(j, f);
continue;
} else if (r == 0)
r = add_directory(j, m->path, de->d_name);
if (r < 0)
- log_debug("Failed to add directory %s/%s: %s", m->path, de->d_name, strerror(-r));
+ log_debug_errno(-r, "Failed to add directory %s/%s: %m", m->path, de->d_name);
}
}
STRV_FOREACH(path, paths) {
r = add_any_file(j, *path);
if (r < 0) {
- log_error("Failed to open %s: %s", *path, strerror(-r));
+ log_error_errno(-r, "Failed to open %s: %m", *path);
goto fail;
}
}
r = remove_file(j, d->path, e->name);
if (r < 0)
- log_debug("Failed to remove file %s/%s: %s", d->path, e->name, strerror(-r));
+ log_debug_errno(-r, "Failed to remove file %s/%s: %m", d->path, e->name);
}
} else if (!d->is_root && e->len == 0) {
if (e->mask & (IN_DELETE_SELF|IN_MOVE_SELF|IN_UNMOUNT)) {
r = remove_directory(j, d);
if (r < 0)
- log_debug("Failed to remove directory %s: %s", d->path, strerror(-r));
+ log_debug_errno(-r, "Failed to remove directory %s: %m", d->path);
}
if (e->mask & (IN_CREATE|IN_MOVED_TO|IN_MODIFY|IN_ATTRIB)) {
r = add_directory(j, d->path, e->name);
if (r < 0)
- log_debug("Failed to add directory %s/%s: %s", d->path, e->name, strerror(-r));
+ log_debug_errno(-r, "Failed to add directory %s/%s: %m", d->path, e->name);
}
}
r = compress(data, data_len, compressed, &csize);
if (r == -ENOBUFS) {
- log_info("compression failed: %s", strerror(-r));
+ log_info_errno(-r, "compression failed: %m");
assert(may_fail);
} else {
assert(r == 0);
r = compress(data, data_len, compressed, &csize);
if (r == -ENOBUFS) {
- log_info("compression failed: %s", strerror(-r));
+ log_info_errno(-r, "compression failed: %m");
assert(may_fail);
return;
}
finish:
if (r < 0)
- log_error("Failed to save lease data %s: %s", lease_file, strerror(-r));
+ log_error_errno(-r, "Failed to save lease data %s: %m", lease_file);
return r;
}
if (r == -ENOENT)
return 0;
- log_error("Failed to read %s: %s", lease_file, strerror(-r));
+ log_error_errno(-r, "Failed to read %s: %m", lease_file);
return r;
}
case PPPOE_STATE_INITIALIZING:
r = pppoe_send_initiation(ppp);
if (r < 0)
- log_warning("PPPoE: sending PADI failed: %s", strerror(-r));
+ log_warning_errno(-r, "PPPoE: sending PADI failed: %m");
break;
case PPPOE_STATE_REQUESTING:
r = pppoe_send_initiation(ppp);
if (r < 0)
- log_warning("PPPoE: sending PADI failed: %s", strerror(-r));
+ log_warning_errno(-r, "PPPoE: sending PADI failed: %m");
ppp->padr_resend_count = PPPOE_MAX_PADR_RESEND;
ppp->state = PPPOE_STATE_INITIALIZING;
} else {
r = pppoe_send_request(ppp);
if (r < 0)
- log_warning("PPPoE: sending PADR failed: %s", strerror(-r));
+ log_warning_errno(-r, "PPPoE: sending PADR failed: %m");
}
break;
len = recvfrom(fd, packet, buflen, 0, &link.sa, &addrlen);
if (len < 0) {
- log_warning("PPPoE: could not receive message from raw socket: %s", strerror(-r));
+ log_warning_errno(-r, "PPPoE: could not receive message from raw socket: %m");
return 0;
} else if ((size_t)len < sizeof(struct pppoe_hdr))
return 0;
r = sd_pid_get_session(getpid(), &e->session);
if (r < 0) {
- log_error("Cannot retrieve logind session: %s", strerror(-r));
+ log_error_errno(-r, "Cannot retrieve logind session: %m");
return r;
}
r = sd_session_get_seat(e->session, &e->seat);
if (r < 0) {
- log_error("Cannot retrieve seat of logind session: %s", strerror(-r));
+ log_error_errno(-r, "Cannot retrieve seat of logind session: %m");
return r;
}
evcat_idev_fn,
e);
if (r < 0) {
- log_error("Cannot create idev session: %s", strerror(-r));
+ log_error_errno(-r, "Cannot create idev session: %m");
return r;
}
if (e->managed) {
r = sysview_session_take_control(ev->session_add.session);
if (r < 0) {
- log_error("Cannot request session control: %s", strerror(-r));
+ log_error_errno(-r, "Cannot request session control: %m");
return r;
}
}
if (type == SYSVIEW_DEVICE_EVDEV) {
r = idev_session_add_evdev(e->idev_session, sysview_device_get_ud(d));
if (r < 0) {
- log_error("Cannot add evdev device to idev: %s", strerror(-r));
+ log_error_errno(-r, "Cannot add evdev device to idev: %m");
return r;
}
}
if (type == SYSVIEW_DEVICE_EVDEV) {
r = idev_session_remove_evdev(e->idev_session, sysview_device_get_ud(d));
if (r < 0) {
- log_error("Cannot remove evdev device from idev: %s", strerror(-r));
+ log_error_errno(-r, "Cannot remove evdev device from idev: %m");
return r;
}
}
case SYSVIEW_EVENT_SESSION_CONTROL:
r = ev->session_control.error;
if (r < 0) {
- log_error("Cannot acquire session control: %s", strerror(-r));
+ log_error_errno(-r, "Cannot acquire session control: %m");
return r;
}
error:
if (r < 0)
- log_debug("idev-keyboard: cannot parse locale property from locale1: %s", strerror(-r));
+ log_debug_errno(-r, "idev-keyboard: cannot parse locale property from locale1: %m");
return r;
}
return 0;
error:
- log_debug("idev-keyboard: cannot send GetAll to locale1: %s", strerror(-r));
+ log_debug_errno(-r, "idev-keyboard: cannot send GetAll to locale1: %m");
return r;
}
return 0;
error:
- log_debug("idev-keyboard: cannot handle PropertiesChanged from locale1: %s", strerror(-r));
+ log_debug_errno(-r, "idev-keyboard: cannot handle PropertiesChanged from locale1: %m");
return r;
}
kbdctx_locale_props_changed_fn,
kc);
if (r < 0) {
- log_debug("idev-keyboard: cannot setup locale1 link: %s", strerror(-r));
+ log_debug_errno(-r, "idev-keyboard: cannot setup locale1 link: %m");
return r;
}
r = sd_pid_get_session(getpid(), &m->session);
if (r < 0) {
- log_error("Cannot retrieve logind session: %s", strerror(-r));
+ log_error_errno(-r, "Cannot retrieve logind session: %m");
return r;
}
r = sd_session_get_seat(m->session, &m->seat);
if (r < 0) {
- log_error("Cannot retrieve seat of logind session: %s", strerror(-r));
+ log_error_errno(-r, "Cannot retrieve seat of logind session: %m");
return r;
}
modeset_grdev_fn,
m);
if (r < 0) {
- log_error("Cannot create grdev session: %s", strerror(-r));
+ log_error_errno(-r, "Cannot create grdev session: %m");
return r;
}
if (m->managed) {
r = sysview_session_take_control(ev->session_add.session);
if (r < 0) {
- log_error("Cannot request session control: %s", strerror(-r));
+ log_error_errno(-r, "Cannot request session control: %m");
return r;
}
}
case SYSVIEW_EVENT_SESSION_CONTROL:
r = ev->session_control.error;
if (r < 0) {
- log_error("Cannot acquire session control: %s", strerror(-r));
+ log_error_errno(-r, "Cannot acquire session control: %m");
return r;
}
len = loop_write(o->fd, o->obuf, o->n_obuf, false);
if (len < 0) {
- log_error("error: cannot write to TTY (%zd): %s", len, strerror(-len));
+ log_error_errno(-len, "error: cannot write to TTY (%zd): %m", len);
return len;
}
len = loop_write(o->fd, buf, size, false);
if (len < 0) {
- log_error("error: cannot write to TTY (%zd): %s", len, strerror(-len));
+ log_error_errno(-len, "error: cannot write to TTY (%zd): %m", len);
return len;
}
if (t->pty) {
r = pty_resize(t->pty, t->output->in_width, t->output->in_height);
if (r < 0)
- log_error("error: pty_resize() (%d): %s", r, strerror(-r));
+ log_error_errno(-r, "error: pty_resize() (%d): %m", r);
}
r = term_screen_resize(t->screen, t->output->in_width, t->output->in_height);
if (r < 0)
- log_error("error: term_screen_resize() (%d): %s", r, strerror(-r));
+ log_error_errno(-r, "error: term_screen_resize() (%d): %m", r);
terminal_dirty(t);
for (i = 0; i < num; ++i) {
r = pty_write(t->pty, vec[i].iov_base, vec[i].iov_len);
if (r < 0) {
- log_error("error: cannot write to PTY (%d): %s", r, strerror(-r));
+ log_error_errno(-r, "error: cannot write to PTY (%d): %m", r);
return r;
}
}
for (j = 0; j < n_str; ++j) {
type = term_parser_feed(t->parser, &seq, str[j]);
if (type < 0) {
- log_error("error: term_parser_feed() (%d): %s", type, strerror(-type));
+ log_error_errno(-type, "error: term_parser_feed() (%d): %m", type);
return type;
}
case PTY_DATA:
r = term_screen_feed_text(t->screen, ptr, size);
if (r < 0) {
- log_error("error: term_screen_feed_text() (%d): %s", r, strerror(-r));
+ log_error_errno(-r, "error: term_screen_feed_text() (%d): %m", r);
return r;
}
r = tcsetattr(t->in_fd, TCSANOW, &in_attr);
if (r < 0) {
- log_error("error: tcsetattr() (%d): %s", r, strerror(-r));
+ log_error_errno(-r, "error: tcsetattr() (%d): %m", r);
goto error;
}
r = tcsetattr(t->out_fd, TCSANOW, &out_attr);
if (r < 0) {
- log_error("error: tcsetattr() (%d): %s", r, strerror(-r));
+ log_error_errno(-r, "error: tcsetattr() (%d): %m", r);
goto error;
}
r = sd_event_default(&t->event);
if (r < 0) {
- log_error("error: sd_event_default() (%d): %s", r, strerror(-r));
+ log_error_errno(-r, "error: sd_event_default() (%d): %m", r);
goto error;
}
r = sigprocmask_many(SIG_BLOCK, SIGINT, SIGQUIT, SIGTERM, SIGWINCH, SIGCHLD, -1);
if (r < 0) {
- log_error("error: sigprocmask_many() (%d): %s", r, strerror(-r));
+ log_error_errno(-r, "error: sigprocmask_many() (%d): %m", r);
goto error;
}
r = sd_event_add_signal(t->event, NULL, SIGINT, NULL, NULL);
if (r < 0) {
- log_error("error: sd_event_add_signal() (%d): %s", r, strerror(-r));
+ log_error_errno(-r, "error: sd_event_add_signal() (%d): %m", r);
goto error;
}
r = sd_event_add_signal(t->event, NULL, SIGQUIT, NULL, NULL);
if (r < 0) {
- log_error("error: sd_event_add_signal() (%d): %s", r, strerror(-r));
+ log_error_errno(-r, "error: sd_event_add_signal() (%d): %m", r);
goto error;
}
r = sd_event_add_signal(t->event, NULL, SIGTERM, NULL, NULL);
if (r < 0) {
- log_error("error: sd_event_add_signal() (%d): %s", r, strerror(-r));
+ log_error_errno(-r, "error: sd_event_add_signal() (%d): %m", r);
goto error;
}
r = sd_event_add_signal(t->event, NULL, SIGWINCH, terminal_winch_fn, t);
if (r < 0) {
- log_error("error: sd_event_add_signal() (%d): %s", r, strerror(-r));
+ log_error_errno(-r, "error: sd_event_add_signal() (%d): %m", r);
goto error;
}
t->is_dirty = true;
r = sd_event_add_time(t->event, &t->frame_timer, CLOCK_MONOTONIC, 0, 0, terminal_frame_timer_fn, t);
if (r < 0) {
- log_error("error: sd_event_add_time() (%d): %s", r, strerror(-r));
+ log_error_errno(-r, "error: sd_event_add_time() (%d): %m", r);
goto error;
}
r = term_screen_resize(t->screen, t->output->in_width, t->output->in_height);
if (r < 0) {
- log_error("error: term_screen_resize() (%d): %s", r, strerror(-r));
+ log_error_errno(-r, "error: term_screen_resize() (%d): %m", r);
goto error;
}
pid = pty_fork(&t->pty, t->event, terminal_pty_fn, t, t->output->in_width, t->output->in_height);
if (pid < 0) {
- log_error("error: cannot fork PTY (%d): %s", pid, strerror(-pid));
+ log_error_errno(-pid, "error: cannot fork PTY (%d): %m", pid);
return pid;
} else if (pid == 0) {
/* child */
out:
if (r < 0)
- log_error("error: terminal failed (%d): %s", r, strerror(-r));
+ log_error_errno(-r, "error: terminal failed (%d): %m", r);
terminal_free(t);
return -r;
}
if (!c->scanned) {
r = context_ld_scan(c);
if (r < 0) {
- log_debug("sysview: logind scan failed: %s", strerror(-r));
+ log_debug_errno(-r, "sysview: logind scan failed: %m");
return r;
}
}
if (hashmap_size(c->session_map) > 0) {
r = context_ud_scan(c);
if (r < 0) {
- log_debug("sysview: udev scan failed: %s", strerror(-r));
+ log_debug_errno(-r, "sysview: udev scan failed: %m");
return r;
}
r = sd_bus_message_rewind(m, !(flags & BUS_MESSAGE_DUMP_SUBTREE_ONLY));
if (r < 0) {
- log_error("Failed to rewind: %s", strerror(-r));
+ log_error_errno(-r, "Failed to rewind: %m");
return r;
}
r = sd_bus_message_peek_type(m, &type, &contents);
if (r < 0) {
- log_error("Failed to peek type: %s", strerror(-r));
+ log_error_errno(-r, "Failed to peek type: %m");
return r;
}
r = sd_bus_message_exit_container(m);
if (r < 0) {
- log_error("Failed to exit container: %s", strerror(-r));
+ log_error_errno(-r, "Failed to exit container: %m");
return r;
}
if (bus_type_is_container(type) > 0) {
r = sd_bus_message_enter_container(m, type, contents);
if (r < 0) {
- log_error("Failed to enter container: %s", strerror(-r));
+ log_error_errno(-r, "Failed to enter container: %m");
return r;
}
r = sd_bus_message_read_basic(m, type, &basic);
if (r < 0) {
- log_error("Failed to get basic: %s", strerror(-r));
+ log_error_errno(-r, "Failed to get basic: %m");
return r;
}
/* Anybody can send us invalid messages, let's just drop them. */
if (r == -EBADMSG || r == -EPROTOTYPE)
- log_debug("Ignoring invalid message: %s", strerror(-r));
+ &nb