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;
}
if (n > 0) {
r = mkdir_p("/var/lib/systemd/backlight", 0755);
if (r < 0) {
- log_error("Failed to create backlight directory /var/lib/systemd/backlight: %s",
- strerror(-r));
+ log_error_errno(r, "Failed to create backlight directory /var/lib/systemd/backlight: %m");
return EXIT_FAILURE;
}
r = udev_device_set_sysattr_value(device, "brightness", value);
if (r < 0) {
- log_error("Failed to write system 'brightness' attribute: %s",
- strerror(-r));
+ log_error_errno(r, "Failed to write system 'brightness' attribute: %m");
return EXIT_FAILURE;
}
case 'f':
r = safe_atod(optarg, &arg_hz);
if (r < 0)
- log_warning("failed to parse --freq/-f argument '%s': %s",
- optarg, strerror(-r));
+ log_warning_errno(r, "failed to parse --freq/-f argument '%s': %m",
+ optarg);
break;
case 'F':
arg_filter = false;
case 'n':
r = safe_atoi(optarg, &arg_samples_len);
if (r < 0)
- log_warning("failed to parse --samples/-n argument '%s': %s",
- optarg, strerror(-r));
+ log_warning_errno(r, "failed to parse --samples/-n argument '%s': %m",
+ optarg);
break;
case 'o':
path_kill_slashes(optarg);
case 'x':
r = safe_atod(optarg, &arg_scale_x);
if (r < 0)
- log_warning("failed to parse --scale-x/-x argument '%s': %s",
- optarg, strerror(-r));
+ log_warning_errno(r, "failed to parse --scale-x/-x argument '%s': %m",
+ optarg);
break;
case 'y':
r = safe_atod(optarg, &arg_scale_y);
if (r < 0)
- log_warning("failed to parse --scale-y/-y argument '%s': %s",
- optarg, strerror(-r));
+ log_warning_errno(r, "failed to parse --scale-y/-y argument '%s': %m",
+ optarg);
break;
case 'e':
arg_entropy = true;
} else
r = cg_get_root_path(&root);
if (r < 0) {
- log_error("Failed to get %s path: %s",
- arg_machine ? "machine" : "root", strerror(-r));
+ log_error_errno(r, "Failed to get %s path: %m",
+ arg_machine ? "machine" : "root");
goto finish;
}
r = sysview_session_take_control(session);
if (r < 0) {
- log_error("Cannot request session control on '%s': %s",
- sysview_session_get_name(session), strerror(-r));
+ log_error_errno(r, "Cannot request session control on '%s': %m",
+ sysview_session_get_name(session));
return r;
}
r = session_new(&s, m, session);
if (r < 0) {
- log_error("Cannot create session on '%s': %s",
- sysview_session_get_name(session), strerror(-r));
+ log_error_errno(r, "Cannot create session on '%s': %m",
+ sysview_session_get_name(session));
sysview_session_release_control(session);
return r;
}
return 0;
if (error < 0) {
- log_error("Cannot take session control on '%s': %s",
- sysview_session_get_name(session), strerror(-error));
+ log_error_errno(error, "Cannot take session control on '%s': %m",
+ sysview_session_get_name(session));
session_free(s);
sysview_session_set_userdata(session, NULL);
return -error;
r = display_new(&d, s, display);
if (r < 0) {
- log_error("Cannot create display '%s' on '%s': %s",
- grdev_display_get_name(display), sysview_session_get_name(s->sysview), strerror(-r));
+ log_error_errno(r, "Cannot create display '%s' on '%s': %m",
+ grdev_display_get_name(display), sysview_session_get_name(s->sysview));
break;
}
kdata->codepoints,
kdata->mods);
if (r < 0)
- log_error("Cannot feed keyboard data to screen: %s",
- strerror(-r));
+ log_error_errno(r, "Cannot feed keyboard data to screen: %m");
}
}
r = start_loopback(rtnl);
if (r == -EPERM) {
if (check_loopback() < 0) {
- log_warning("Failed to configure loopback device: %s",
- strerror(EPERM));
+ log_warning_errno(EPERM, "Failed to configure loopback device: %m");
return -EPERM;
}
} else if (r < 0) {
- log_warning("Failed to configure loopback device: %s",
- strerror(-r));
+ log_warning_errno(r, "Failed to configure loopback device: %m");
return r;
}
if (r < 0)
log_error("Failed to load default target: %s", bus_error_message(&error, r));
else if (target->load_state == UNIT_ERROR || target->load_state == UNIT_NOT_FOUND)
- log_error("Failed to load default target: %s", strerror(-target->load_error));
+ log_error_errno(target->load_error, "Failed to load default target: %m");
else if (target->load_state == UNIT_MASKED)
log_error("Default target masked.");
error_message = "Failed to load rescue target";
goto finish;
} else if (target->load_state == UNIT_ERROR || target->load_state == UNIT_NOT_FOUND) {
- log_emergency("Failed to load rescue target: %s", strerror(-target->load_error));
+ log_emergency_errno(target->load_error, "Failed to load rescue target: %m");
error_message = "Failed to load rescue target";
goto finish;
} else if (target->load_state == UNIT_MASKED) {
if (m->have_ask_password < 0)
/* Log error but continue. Negative have_ask_password
* is treated as unknown status. */
- log_error("Failed to list /run/systemd/ask-password: %s", strerror(m->have_ask_password));
+ log_error_errno(m->have_ask_password, "Failed to list /run/systemd/ask-password: %m");
return 0;
}
m->running_as == SYSTEMD_SYSTEM, &p);
if (m->kdbus_fd < 0) {
- log_debug("Failed to set up kdbus: %s", strerror(-m->kdbus_fd));
+ log_debug_errno(m->kdbus_fd, "Failed to set up kdbus: %m");
return m->kdbus_fd;
}
r = mkdir_p_label(p, 0755);
if (r < 0) {
- log_error("Failed to create generator directory %s: %s",
- p, strerror(-r));
+ log_error_errno(r, "Failed to create generator directory %s: %m", p);
free(p);
return r;
}
r = mkdir_p_label(p, 0755);
if (r < 0) {
- log_error("Failed to create generator directory %s: %s",
- p, strerror(-r));
+ log_error_errno(r, "Failed to create generator directory %s: %m", p);
free(p);
return r;
}
return;
fail:
- log_warning("%s failed to enter waiting state: %s",
- UNIT(p)->id, strerror(-r));
+ log_warning_errno(r, "%s failed to enter waiting state: %m", UNIT(p)->id);
path_enter_dead(p, PATH_FAILURE_RESOURCES);
}
r = sd_is_fifo(fd, NULL);
if (r < 0) {
- log_error("Failed to determine file descriptor type: %s",
- strerror(-r));
+ log_error_errno(r, "Failed to determine file descriptor type: %m");
goto fail;
}
r = writer_write(source->writer, &source->iovw, &source->ts, compress, seal);
if (r < 0)
- log_error("Failed to write entry of %zu bytes: %s",
- iovw_size(&source->iovw), strerror(-r));
+ log_error_errno(r, "Failed to write entry of %zu bytes: %m",
+ iovw_size(&source->iovw));
else
r = 1;
int r = journal_file_rotate(f, compress, seal);
if (r < 0) {
if (*f)
- log_error("Failed to rotate %s: %s", (*f)->path,
- strerror(-r));
+ log_error_errno(r, "Failed to rotate %s: %m", (*f)->path);
else
- log_error("Failed to create rotated journal: %s",
- strerror(-r));
+ log_error_errno(r, "Failed to create rotated journal: %m");
}
return r;
w->mmap,
NULL, &w->journal);
if (r < 0)
- log_error("Failed to open output journal %s: %s",
- output, strerror(-r));
+ log_error_errno(r, "Failed to open output journal %s: %m",
+ output);
else
log_info("Opened output file %s", w->journal->path);
return r;
r = get_writer(s, name, &writer);
if (r < 0) {
- log_warning("Failed to get writer for source %s: %s",
- name, strerror(-r));
+ log_warning_errno(r, "Failed to get writer for source %s: %m",
+ name);
return r;
}
r = get_source_for_fd(s, fd, name, &source);
if (r < 0) {
- log_error("Failed to create source for fd:%d (%s): %s",
- fd, name, strerror(-r));
+ log_error_errno(r, "Failed to create source for fd:%d (%s): %m",
+ fd, name);
free(name);
return r;
}
sd_event_source_set_enabled(source->event, SD_EVENT_ON);
}
if (r < 0) {
- log_error("Failed to register event source for fd:%d: %s",
- fd, strerror(-r));
+ log_error_errno(r, "Failed to register event source for fd:%d: %m",
+ fd);
goto error;
}
r = get_writer(server, hostname, &writer);
if (r < 0) {
- log_warning("Failed to get writer for source %s: %s",
- hostname, strerror(-r));
+ log_warning_errno(r, "Failed to get writer for source %s: %m",
+ hostname);
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;
} else
log_info("Received %d descriptors", n);
}
if(r < 0) {
- log_error("Failed to register socket (fd:%d): %s",
- fd, strerror(-r));
+ log_error_errno(r, "Failed to register socket (fd:%d): %m",
+ fd);
return r;
}
}
r = read_full_file(arg_key ?: PRIV_KEY_FILE, key, NULL);
if (r < 0) {
- log_error("Failed to read key from file '%s': %s",
- arg_key ?: PRIV_KEY_FILE, strerror(-r));
+ log_error_errno(r, "Failed to read key from file '%s': %m",
+ arg_key ?: PRIV_KEY_FILE);
return r;
}
r = read_full_file(arg_cert ?: CERT_FILE, cert, NULL);
if (r < 0) {
- log_error("Failed to read certificate from file '%s': %s",
- arg_cert ?: CERT_FILE, strerror(-r));
+ log_error_errno(r, "Failed to read certificate from file '%s': %m",
+ arg_cert ?: CERT_FILE);
return r;
}
else {
r = read_full_file(arg_trust ?: TRUST_FILE, trust, NULL);
if (r < 0) {
- log_error("Failed to read CA certificate file '%s': %s",
- arg_trust ?: TRUST_FILE, strerror(-r));
+ log_error_errno(r, "Failed to read CA certificate file '%s': %m",
+ arg_trust ?: TRUST_FILE);
return r;
}
}
&u->field_data,
&u->field_length);
if (r < 0) {
- log_error("Failed to move to next field in entry: %s",
- strerror(-r));
+ log_error_errno(r, "Failed to move to next field in entry: %m");
return r;
} else if (r == 0) {
u->entry_state = ENTRY_OUTRO;
if (u->entry_state == ENTRY_DONE) {
r = sd_journal_next(j);
if (r < 0) {
- log_error("Failed to move to next entry in journal: %s",
- strerror(-r));
+ log_error_errno(r, "Failed to move to next entry in journal: %m");
return CURL_READFUNC_ABORT;
} else if (r == 0) {
if (u->input_event)
if (cursor) {
r = sd_journal_seek_cursor(j, cursor);
if (r < 0) {
- log_error("Failed to seek to cursor %s: %s",
- cursor, strerror(-r));
+ log_error_errno(r, "Failed to seek to cursor %s: %m",
+ cursor);
return r;
}
}
if (nmemb && !u->answer) {
u->answer = strndup(buf, size*nmemb);
if (!u->answer)
- log_warning("Failed to store server answer (%zu bytes): %s",
- size*nmemb, strerror(ENOMEM));
+ log_warning_errno(ENOMEM, "Failed to store server answer (%zu bytes): %m",
+ size*nmemb);
}
return size * nmemb;
r = mkdir_parents(u->state_file, 0755);
if (r < 0) {
- log_error("Cannot create parent directory of state file %s: %s",
- u->state_file, strerror(-r));
+ log_error_errno(r, "Cannot create parent directory of state file %s: %m",
+ u->state_file);
return r;
}
r = fopen_temporary(u->state_file, &f, &temp_path);
if (r < 0) {
- log_error("Cannot save state to %s: %s",
- u->state_file, strerror(-r));
+ log_error_errno(r, "Cannot save state to %s: %m",
+ u->state_file);
return r;
}
unlink(temp_path);
if (r == -ENOENT)
log_debug("State file %s is not present.", u->state_file);
else if (r < 0) {
- log_error("Failed to read state file %s: %s",
- u->state_file, strerror(-r));
+ log_error_errno(r, "Failed to read state file %s: %m",
+ u->state_file);
return r;
} else
log_debug("Last cursor was %s", u->last_cursor);
else
r = sd_journal_open(j, !arg_merge*SD_JOURNAL_LOCAL_ONLY + arg_journal_type);
if (r < 0)
- log_error("Failed to open %s: %s",
- arg_directory ? arg_directory : arg_file ? "files" : "journal",
- strerror(-r));
+ log_error_errno(r, "Failed to open %s: %m",
+ arg_directory ? arg_directory : arg_file ? "files" : "journal");
return r;
}
r = fopen_temporary(database, &w, &p);
if (r < 0) {
- log_error("Failed to open database for writing: %s: %s",
- database, strerror(-r));
+ log_error_errno(r, "Failed to open database for writing: %s: %m",
+ database);
return r;
}
k = sd_id128_from_string(*item, &id);
if (k < 0) {
- log_error("Failed to parse id128 '%s': %s",
- *item, strerror(-k));
+ log_error_errno(k, "Failed to parse id128 '%s': %m",
+ *item);
if (r == 0)
r = k;
continue;
SET_FOREACH(match, matches, it) {
r = sd_journal_add_match(j, match, strlen(match));
if (r != 0) {
- log_error("Failed to add match '%s': %s",
- match, strerror(-r));
+ log_error_errno(r, "Failed to add match '%s': %m",
+ match);
goto end;
}
}
assert(err > 0);
if (err != EACCES)
- log_warning("Error was encountered while opening journal files: %s",
- strerror(err));
+ log_warning_errno(err, "Error was encountered while opening journal files: %m");
}
return r;
else
r = sd_journal_open(&j, !arg_merge*SD_JOURNAL_LOCAL_ONLY + arg_journal_type);
if (r < 0) {
- log_error("Failed to open %s: %s",
- arg_directory ? arg_directory : arg_file ? "files" : "journal",
- strerror(-r));
+ log_error_errno(r, "Failed to open %s: %m",
+ arg_directory ? arg_directory : arg_file ? "files" : "journal");
return EXIT_FAILURE;
}
r = journal_file_rotate(f, s->compress, seal);
if (r < 0)
if (*f)
- log_error("Failed to rotate %s: %s",
- (*f)->path, strerror(-r));
+ log_error_errno(r, "Failed to rotate %s: %m",
+ (*f)->path);
else
- log_error("Failed to create new %s journal: %s",
- name, strerror(-r));
+ log_error_errno(r, "Failed to create new %s journal: %m",
+ name);
else
server_fix_perms(s, *f, uid);
return r;
dirent_is_file_with_suffix(de, ".journal~")) {
r = add_file(j, m->path, de->d_name);
if (r < 0) {
- log_debug("Failed to add file %s/%s: %s",
- m->path, de->d_name, strerror(-r));
+ log_debug_errno(r, "Failed to add file %s/%s: %m",
+ m->path, de->d_name);
r = set_put_error(j, r);
if (r < 0)
return r;
dirent_is_file_with_suffix(de, ".journal~")) {
r = add_file(j, m->path, de->d_name);
if (r < 0) {
- log_debug("Failed to add file %s/%s: %s",
- m->path, de->d_name, strerror(-r));
+ log_debug_errno(r, "Failed to add file %s/%s: %m",
+ m->path, de->d_name);
r = set_put_error(j, r);
if (r < 0)
return r;
if (e->mask & (IN_CREATE|IN_MOVED_TO|IN_MODIFY|IN_ATTRIB)) {
r = add_file(j, d->path, e->name);
if (r < 0) {
- log_debug("Failed to add file %s/%s: %s",
- d->path, e->name, strerror(-r));
+ log_debug_errno(r, "Failed to add file %s/%s: %m",
+ d->path, e->name);
set_put_error(j, r);
}
card->ready = false;
r = grdrm_card_resync(card);
if (r < 0) {
- log_debug("grdrm: %s/%s: cannot re-sync card: %s",
- card->base.session->name, card->base.name, strerror(-r));
+ log_debug_errno(r, "grdrm: %s/%s: cannot re-sync card: %m",
+ card->base.session->name, card->base.name);
return;
}
r = ioctl(card->fd, DRM_IOCTL_GET_CAP, &cap);
card->cap_dumb = r >= 0 && cap.value;
if (r < 0)
- log_debug("grdrm: %s/%s: cannot retrieve DUMB_BUFFER capability: %s",
- card->base.session->name, card->base.name, strerror(-r));
+ log_debug_errno(r, "grdrm: %s/%s: cannot retrieve DUMB_BUFFER capability: %m",
+ card->base.session->name, card->base.name);
else if (!card->cap_dumb)
log_debug("grdrm: %s/%s: DUMB_BUFFER capability not supported",
card->base.session->name, card->base.name);
r = ioctl(card->fd, DRM_IOCTL_GET_CAP, &cap);
card->cap_monotonic = r >= 0 && cap.value;
if (r < 0)
- log_debug("grdrm: %s/%s: cannot retrieve TIMESTAMP_MONOTONIC capability: %s",
- card->base.session->name, card->base.name, strerror(-r));
+ log_debug_errno(r, "grdrm: %s/%s: cannot retrieve TIMESTAMP_MONOTONIC capability: %m",
+ card->base.session->name, card->base.name);
else if (!card->cap_monotonic)
log_debug("grdrm: %s/%s: TIMESTAMP_MONOTONIC is disabled globally, fix this NOW!",
card->base.session->name, card->base.name);
r = grdrm_card_open(&cu->card, fd);
if (r < 0) {
- log_debug("grdrm: %s/%s: cannot open: %s",
- basecard->session->name, basecard->name, strerror(-r));
+ log_debug_errno(r, "grdrm: %s/%s: cannot open: %m",
+ basecard->session->name, basecard->name);
return;
}
}
r = grdrm_card_open(&cu->card, fd);
if (r < 0)
- log_debug("grdrm: %s/%s: cannot open: %s",
- basecard->session->name, basecard->name, strerror(-r));
+ log_debug_errno(r, "grdrm: %s/%s: cannot open: %m",
+ basecard->session->name, basecard->name);
}
if (out)
}
if (r < 0)
- log_debug("grdrm: %s/%s: cannot send PauseDeviceComplete: %s",
- session->name, cm->card.base.name, strerror(-r));
+ log_debug_errno(r, "grdrm: %s/%s: cannot send PauseDeviceComplete: %m",
+ session->name, cm->card.base.name);
}
return 0;
r = grdrm_card_open(&cm->card, fd);
if (r < 0) {
- log_debug("grdrm: %s/%s: cannot open: %s",
- session->name, cm->card.base.name, strerror(-r));
+ log_debug_errno(r, "grdrm: %s/%s: cannot open: %m",
+ session->name, cm->card.base.name);
return 0;
}
}
r = grdrm_card_open(&cm->card, fd);
if (r < 0) {
- log_debug("grdrm: %s/%s: cannot open: %s",
- session->name, cm->card.base.name, strerror(-r));
+ log_debug_errno(r, "grdrm: %s/%s: cannot open: %m",
+ session->name, cm->card.base.name);
return 0;
}
return;
error:
- log_debug("grdrm: %s/%s: cannot send TakeDevice request: %s",
- session->name, cm->card.base.name, strerror(-r));
+ log_debug_errno(r, "grdrm: %s/%s: cannot send TakeDevice request: %m",
+ session->name, cm->card.base.name);
}
static void managed_card_release_device(managed_card *cm) {
}
if (r < 0 && r != -ENOTCONN)
- log_debug("grdrm: %s/%s: cannot send ReleaseDevice: %s",
- session->name, cm->card.base.name, strerror(-r));
+ log_debug_errno(r, "grdrm: %s/%s: cannot send ReleaseDevice: %m",
+ session->name, cm->card.base.name);
}
static int managed_card_new(grdev_card **out, grdev_session *session, struct udev_device *ud) {
out:
if (r < 0)
- log_debug("grdev: %s/%s: cannot cache pipes: %s",
- display->session->name, display->name, strerror(-r));
+ log_debug_errno(r, "grdev: %s/%s: cannot cache pipes: %m",
+ display->session->name, display->name);
return true;
}
return;
error:
- log_debug("grdev: %s/%s/%s: cannot schedule vsync timer: %s",
- pipe->card->session->name, pipe->card->name, pipe->name, strerror(-r));
+ log_debug_errno(r, "grdev: %s/%s/%s: cannot schedule vsync timer: %m",
+ pipe->card->session->name, pipe->card->name, pipe->name);
}
/*
r = grdev_drm_card_new(&card, session, ud);
if (r < 0) {
- log_debug("grdev: %s: cannot add DRM device for %s: %s",
- session->name, udev_device_get_syspath(ud), strerror(-r));
+ log_debug_errno(r, "grdev: %s: cannot add DRM device for %s: %m",
+ session->name, udev_device_get_syspath(ud));
return;
}
} else if (!display) {
r = grdev_display_new(&display, session, pipe->name);
if (r < 0) {
- log_debug("grdev: %s/%s: cannot create display for pipe %s: %s",
- session->name, card->name, pipe->name, strerror(-r));
+ log_debug_errno(r, "grdev: %s/%s: cannot create display for pipe %s: %m",
+ session->name, card->name, pipe->name);
continue;
}
}
}
if (error < 0)
- log_debug("idev-evdev: %s/%s: error on data event: %s",
- e->session->name, e->name, strerror(-error));
+ log_debug_errno(error, "idev-evdev: %s/%s: error on data event: %m",
+ e->session->name, e->name);
return error;
error:
r = idev_evdev_resume(&eu->evdev, fd);
if (r < 0)
- log_debug("idev-evdev: %s/%s: cannot resume: %s",
- e->session->name, e->name, strerror(-r));
+ log_debug_errno(r, "idev-evdev: %s/%s: cannot resume: %m",
+ e->session->name, e->name);
}
static void unmanaged_evdev_pause(idev_element *e) {
r = idev_evdev_resume(&em->evdev, fd);
if (r < 0)
- log_debug("idev-evdev: %s/%s: cannot resume: %s",
- s->name, e->name, strerror(-r));
+ log_debug_errno(r, "idev-evdev: %s/%s: cannot resume: %m",
+ s->name, e->name);
return 0;
}
return;
error:
- log_debug("idev-evdev: %s/%s: cannot send TakeDevice request: %s",
- s->name, e->name, strerror(-r));
+ log_debug_errno(r, "idev-evdev: %s/%s: cannot send TakeDevice request: %m",
+ s->name, e->name);
}
static void managed_evdev_disable(idev_element *e) {
}
if (r < 0 && r != -ENOTCONN)
- log_debug("idev-evdev: %s/%s: cannot send ReleaseDevice: %s",
- s->name, e->name, strerror(-r));
+ log_debug_errno(r, "idev-evdev: %s/%s: cannot send ReleaseDevice: %m",
+ s->name, e->name);
}
static void managed_evdev_resume(idev_element *e, int fd) {
r = idev_evdev_resume(&em->evdev, fd);
if (r < 0)
- log_debug("idev-evdev: %s/%s: cannot resume: %s",
- s->name, e->name, strerror(-r));
+ log_debug_errno(r, "idev-evdev: %s/%s: cannot resume: %m",
+ s->name, e->name);
return;
}
}
if (r < 0)
- log_debug("idev-evdev: %s/%s: cannot send PauseDeviceComplete: %s",
- s->name, e->name, strerror(-r));
+ log_debug_errno(r, "idev-evdev: %s/%s: cannot send PauseDeviceComplete: %m",
+ s->name, e->name);
}
}
* it as a hard-failure but just continue. Preferably, we want
* xkb to tell us exactly whether compilation failed or whether
* there is no compose file available for this locale. */
- log_debug("idev-keyboard: cannot load compose-table for '%s': %s",
- lang, strerror(-r));
+ log_debug_errno(r, "idev-keyboard: cannot load compose-table for '%s': %m",
+ lang);
r = 0;
kt = NULL;
}
r = kbdmap_new_from_names(&km, kc, kc->last_x11_model, kc->last_x11_layout,
kc->last_x11_variant, kc->last_x11_options);
if (r < 0) {
- log_debug("idev-keyboard: cannot create keymap from locale1: %s",
- strerror(-r));
+ log_debug_errno(r, "idev-keyboard: cannot create keymap from locale1: %m");
return r;
}
r = idev_session_raise_device_data(d->session, d, data);
if (r < 0)
- log_debug("idev-keyboard: %s/%s: error while raising data event: %s",
- d->session->name, d->name, strerror(-r));
+ log_debug_errno(r, "idev-keyboard: %s/%s: error while raising data event: %m",
+ d->session->name, d->name);
return r;
}
r = keyboard_fill(k, repdata, false, evkbd->keycode, KBDKEY_REPEAT, num, keysyms);
if (r < 0) {
- log_debug("idev-keyboard: %s/%s: cannot set key-repeat: %s",
- d->session->name, d->name, strerror(-r));
+ log_debug_errno(r, "idev-keyboard: %s/%s: cannot set key-repeat: %m",
+ d->session->name, d->name);
k->repeating = false;
keyboard_arm(k, 0);
} else {
r = keyboard_fill(k, repdata, false, repkbd->keycode, KBDKEY_REPEAT, num, keysyms);
if (r < 0) {
- log_debug("idev-keyboard: %s/%s: cannot update key-repeat: %s",
- d->session->name, d->name, strerror(-r));
+ log_debug_errno(r, "idev-keyboard: %s/%s: cannot update key-repeat: %m",
+ d->session->name, d->name);
k->repeating = false;
keyboard_arm(k, 0);
}
return keyboard_raise_data(k, &k->evdata);
error:
- log_debug("idev-keyboard: %s/%s: cannot handle event: %s",
- d->session->name, d->name, strerror(-r));
+ log_debug_errno(r, "idev-keyboard: %s/%s: cannot handle event: %m",
+ d->session->name, d->name);
k->repeating = false;
keyboard_arm(k, 0);
return 0;
return 0;
error:
- log_debug("idev-keyboard: %s/%s: cannot adopt new keymap: %s",
- d->session->name, d->name, strerror(-r));
+ log_debug_errno(r, "idev-keyboard: %s/%s: cannot adopt new keymap: %m",
+ d->session->name, d->name);
return r;
}
return 0;
error:
- log_debug("idev-keyboard: %s/%s: cannot adopt new compose table: %s",
- d->session->name, d->name, strerror(-r));
+ log_debug_errno(r, "idev-keyboard: %s/%s: cannot adopt new compose table: %m",
+ d->session->name, d->name);
return r;
}
error:
if (r < 0)
- log_debug("idev: %s: error while adding device '%s': %s",
- s->name, d->name, strerror(-r));
+ log_debug_errno(r, "idev: %s: error while adding device '%s': %m",
+ s->name, d->name);
return r;
}
idev_device_disable(d);
if (error < 0)
- log_debug("idev: %s: error while removing device '%s': %s",
- s->name, d->name, strerror(-error));
+ log_debug_errno(error, "idev: %s: error while removing device '%s': %m",
+ s->name, d->name);
idev_device_free(d);
return error;
}
element_disable(e);
if (error < 0)
- log_debug("idev: %s: error while removing element '%s': %s",
- s->name, e->name, strerror(-r));
+ log_debug_errno(r, "idev: %s: error while removing element '%s': %m",
+ s->name, e->name);
idev_element_free(e);
return error;
}
r = context_raise_session_control(session->seat->context, session, error);
if (r < 0)
- log_debug("sysview: callback failed while signalling session control '%d' on session '%s': %s",
- error, session->name, strerror(-r));
+ log_debug_errno(r, "sysview: callback failed while signalling session control '%d' on session '%s': %m",
+ error, session->name);
return 0;
}
r = sd_bus_send(session->seat->context->sysbus, m, NULL);
if (r < 0 && r != -ENOTCONN)
- log_debug("sysview: %s: cannot send ReleaseControl: %s",
- session->name, strerror(-r));
+ log_debug_errno(r, "sysview: %s: cannot send ReleaseControl: %m",
+ session->name);
}
/*
r = context_raise_session_attach(c, session, device);
if (r < 0)
- log_debug("sysview: callback failed while attaching device '%s' to session '%s': %s",
- device->name, session->name, strerror(-r));
+ log_debug_errno(r, "sysview: callback failed while attaching device '%s' to session '%s': %m",
+ device->name, session->name);
}
}
r = context_raise_session_detach(c, session, device);
if (r < 0)
- log_debug("sysview: callback failed while detaching device '%s' from session '%s': %s",
- device->name, session->name, strerror(-r));
+ log_debug_errno(r, "sysview: callback failed while detaching device '%s' from session '%s': %m",
+ device->name, session->name);
}
sysview_device_free(device);
r = context_raise_session_refresh(c, session, device, ud);
if (r < 0)
- log_debug("sysview: callback failed while changing device '%s' on session '%s': %s",
- device->name, session->name, strerror(-r));
+ log_debug_errno(r, "sysview: callback failed while changing device '%s' on session '%s': %m",
+ device->name, session->name);
}
}
session->public = true;
r = context_raise_session_add(c, session);
if (r < 0) {
- log_debug("sysview: callback failed while adding session '%s': %s",
- session->name, strerror(-r));
+ log_debug_errno(r, "sysview: callback failed while adding session '%s': %m",
+ session->name);
session->public = false;
goto error;
}
HASHMAP_FOREACH(device, seat->device_map, i) {
r = context_raise_session_attach(c, session, device);
if (r < 0)
- log_debug("sysview: callback failed while attaching device '%s' to new session '%s': %s",
- device->name, session->name, strerror(-r));
+ log_debug_errno(r, "sysview: callback failed while attaching device '%s' to new session '%s': %m",
+ device->name, session->name);
}
}
error:
if (r < 0)
- log_debug("sysview: error while adding session '%s': %s",
- id, strerror(-r));
+ log_debug_errno(r, "sysview: error while adding session '%s': %m",
+ id);
}
static void context_remove_session(sysview_context *c, sysview_session *session) {
HASHMAP_FOREACH(device, session->seat->device_map, i) {
r = context_raise_session_detach(c, session, device);
if (r < 0)
- log_debug("sysview: callback failed while detaching device '%s' from old session '%s': %s",
- device->name, session->name, strerror(-r));
+ log_debug_errno(r, "sysview: callback failed while detaching device '%s' from old session '%s': %m",
+ device->name, session->name);
}
session->public = false;
r = context_raise_session_remove(c, session);
if (r < 0)
- log_debug("sysview: callback failed while removing session '%s': %s",
- session->name, strerror(-r));
+ log_debug_errno(r, "sysview: callback failed while removing session '%s': %m",
+ session->name);
}
if (!session->custom)
seat->public = true;
r = context_raise_seat_add(c, seat);
if (r < 0) {
- log_debug("sysview: callback failed while adding seat '%s': %s",
- seat->name, strerror(-r));
+ log_debug_errno(r, "sysview: callback failed while adding seat '%s': %m",
+ seat->name);
seat->public = false;
}
error:
if (r < 0)
- log_debug("sysview: error while adding seat '%s': %s",
- id, strerror(-r));
+ log_debug_errno(r, "sysview: error while adding seat '%s': %m",
+ id);
}
static void context_remove_seat(sysview_context *c, sysview_seat *seat) {
seat->public = false;
r = context_raise_seat_remove(c, seat);
if (r < 0)
- log_debug("sysview: callback failed while removing seat '%s': %s",
- seat->name, strerror(-r));
+ log_debug_errno(r, "sysview: callback failed while removing seat '%s': %m",
+ seat->name);
}
sysview_seat_free(seat);
r = device_new_ud(&device, seat, type, d);
if (r < 0) {
- log_debug("sysview: cannot create device for udev-device '%s': %s",
- syspath, strerror(-r));
+ log_debug_errno(r, "sysview: cannot create device for udev-device '%s': %m",
+ syspath);
return r;
}
d = udev_device_new_from_syspath(c->ud, name);
if (!d) {
r = errno > 0 ? -errno : -EFAULT;
- log_debug("sysview: cannot create udev-device for %s: %s",
- name, strerror(-r));
+ log_debug_errno(r, "sysview: cannot create udev-device for %s: %m",
+ name);
continue;
}
r = sd_bus_message_read(signal, "so", &id, &path);
if (r < 0) {
- log_debug("sysview: cannot parse SeatNew from logind: %s",
- strerror(-r));
+ log_debug_errno(r, "sysview: cannot parse SeatNew from logind: %m");
return r;
}
r = sd_bus_message_read(signal, "so", &id, &path);
if (r < 0) {
- log_debug("sysview: cannot parse SeatRemoved from logind: %s",
- strerror(-r));
+ log_debug_errno(r, "sysview: cannot parse SeatRemoved from logind: %m");
return r;
}
r = sd_bus_message_read(signal, "so", &id, &path);
if (r < 0) {
- log_debug("sysview: cannot parse SessionNew from logind: %s",
- strerror(-r));
+ log_debug_errno(r, "sysview: cannot parse SessionNew from logind: %m");
return r;
}
r = context_raise_session_filter(c, id, seatid, username, uid);
if (r < 0)
- log_debug("sysview: callback failed while filtering session '%s': %s",
- id, strerror(-r));
+ log_debug_errno(r, "sysview: callback failed while filtering session '%s': %m",
+ id);
else if (r > 0)
context_add_session(c, seat, id);
return 0;
error:
- log_debug("sysview: failed retrieving information for new session '%s': %s",
- id, strerror(-r));
+ log_debug_errno(r, "sysview: failed retrieving information for new session '%s': %m",
+ id);
return r;
}
r = sd_bus_message_read(signal, "so", &id, &path);
if (r < 0) {
- log_debug("sysview: cannot parse SessionRemoved from logind: %s",
- strerror(-r));
+ log_debug_errno(r, "sysview: cannot parse SessionRemoved from logind: %m");
return r;
}
return 0;
error:
- log_debug("sysview: erroneous ListSeats response from logind: %s",
- strerror(-r));
+ log_debug_errno(r, "sysview: erroneous ListSeats response from logind: %m");
return r;
}
if (seat) {
r = context_raise_session_filter(c, id, seatid, username, uid);
if (r < 0)
- log_debug("sysview: callback failed while filtering session '%s': %s",
- id, strerror(-r));
+ log_debug_errno(r, "sysview: callback failed while filtering session '%s': %m",
+ id);
else if (r > 0)
context_add_session(c, seat, id);
}
return 0;
error:
- log_debug("sysview: erroneous ListSessions response from logind: %s",
- strerror(-r));
+ log_debug_errno(r, "sysview: erroneous ListSessions response from logind: %m");
return r;
}
r = verify_xkb_rmlvo(model, layout, variant, options);
if (r < 0)
- log_warning("Cannot compile XKB keymap for new x11 keyboard layout ('%s' / '%s' / '%s' / '%s'): %s",
- strempty(model), strempty(layout), strempty(variant), strempty(options), strerror(-r));
+ log_warning_errno(r, "Cannot compile XKB keymap for new x11 keyboard layout ('%s' / '%s' / '%s' / '%s'): %m",
+ strempty(model), strempty(layout), strempty(variant), strempty(options));
if (free_and_strdup(&c->x11_layout, layout) < 0 ||
free_and_strdup(&c->x11_model, model) < 0 ||
else if (err == KMOD_PROBE_APPLY_BLACKLIST)
log_info("Module '%s' is blacklisted", kmod_module_get_name(mod));
else {
- log_error("Failed to insert '%s': %s", kmod_module_get_name(mod),
- strerror(-err));
+ log_error_errno(err, "Failed to insert '%s': %m", kmod_module_get_name(mod));
r = err;
}
}
r = sd_rtnl_message_new_addr(link->manager->rtnl, &req, RTM_DELADDR,
link->ifindex, address->family);
if (r < 0) {
- log_error("Could not allocate RTM_DELADDR message: %s",
- strerror(-r));
+ log_error_errno(r, "Could not allocate RTM_DELADDR message: %m");
return r;
}
else if (address->family == AF_INET6)
r = sd_rtnl_message_append_in6_addr(req, IFA_LOCAL, &address->in_addr.in6);
if (r < 0) {
- log_error("Could not append IFA_LOCAL attribute: %s",
- strerror(-r));
+ log_error_errno(r, "Could not append IFA_LOCAL attribute: %m");
return r;
}
r = sd_rtnl_message_new_addr_update(link->manager->rtnl, &req,
link->ifindex, address->family);
if (r < 0) {
- log_error("Could not allocate RTM_NEWADDR message: %s",
- strerror(-r));
+ log_error_errno(r, "Could not allocate RTM_NEWADDR message: %m");
return r;
}
else if (address->family == AF_INET6)
r = sd_rtnl_message_append_in6_addr(req, IFA_LOCAL, &address->in_addr.in6);
if (r < 0) {
- log_error("Could not append IFA_LOCAL attribute: %s",
- strerror(-r));
+ log_error_errno(r, "Could not append IFA_LOCAL attribute: %m");
return r;
}
if (address->family == AF_INET) {
r = sd_rtnl_message_append_in_addr(req, IFA_BROADCAST, &address->broadcast);
if (r < 0) {
- log_error("Could not append IFA_BROADCAST attribute: %s",
- strerror(-r));
+ log_error_errno(r, "Could not append IFA_BROADCAST attribute: %m");
return r;
}
}
if (address->label) {
r = sd_rtnl_message_append_string(req, IFA_LABEL, address->label);
if (r < 0) {
- log_error("Could not append IFA_LABEL attribute: %s",
- strerror(-r));
+ log_error_errno(r, "Could not append IFA_LABEL attribute: %m");
return r;
}
}
r = sd_rtnl_message_append_cache_info(req, IFA_CACHEINFO, &address->cinfo);
if (r < 0) {
- log_error("Could not append IFA_CACHEINFO attribute: %s",
- strerror(-r));
+ log_error_errno(r, "Could not append IFA_CACHEINFO attribute: %m");
return r;
}
r = sd_rtnl_message_new_addr(link->manager->rtnl, &req, RTM_NEWADDR,
link->ifindex, address->family);
if (r < 0) {
- log_error("Could not allocate RTM_NEWADDR message: %s",
- strerror(-r));
+ log_error_errno(r, "Could not allocate RTM_NEWADDR message: %m");
return r;
}
else if (address->family == AF_INET6)
r = sd_rtnl_message_append_in6_addr(req, IFA_LOCAL, &address->in_addr.in6);
if (r < 0) {
- log_error("Could not append IFA_LOCAL attribute: %s",
- strerror(-r));
+ log_error_errno(r, "Could not append IFA_LOCAL attribute: %m");
return r;
}
else if (address->family == AF_INET6)
r = sd_rtnl_message_append_in6_addr(req, IFA_ADDRESS, &address->in_addr_peer.in6);
if (r < 0) {
- log_error("Could not append IFA_ADDRESS attribute: %s",
- strerror(-r));
+ log_error_errno(r, "Could not append IFA_ADDRESS attribute: %m");
return r;
}
} else {
if (address->family == AF_INET) {
r = sd_rtnl_message_append_in_addr(req, IFA_BROADCAST, &address->broadcast);
if (r < 0) {
- log_error("Could not append IFA_BROADCAST attribute: %s",
- strerror(-r));
+ log_error_errno(r, "Could not append IFA_BROADCAST attribute: %m");
return r;
}
}
if (address->label) {
r = sd_rtnl_message_append_string(req, IFA_LABEL, address->label);
if (r < 0) {
- log_error("Could not append IFA_LABEL attribute: %s",
- strerror(-r));
+ log_error_errno(r, "Could not append IFA_LABEL attribute: %m");
return r;
}
}
r = sd_rtnl_message_append_cache_info(req, IFA_CACHEINFO,
&address->cinfo);
if (r < 0) {
- log_error("Could not append IFA_CACHEINFO attribute: %s",
- strerror(-r));
+ log_error_errno(r, "Could not append IFA_CACHEINFO attribute: %m");
return r;
}
/* link is new, so add it */
r = link_add(m, message, &link);
if (r < 0) {
- log_debug("could not add new link: %s",
- strerror(-r));
+ log_debug_errno(r, "could not add new link: %m");
return 0;
}
}
r = get_user_creds(&user, &uid, NULL, NULL, NULL);
if (r < 0) {
- log_error("Cannot resolve user name %s: %s",
- t->user_name, strerror(-r));
+ log_error_errno(r, "Cannot resolve user name %s: %m",
+ t->user_name);
return 0;
}
r = get_group_creds(&group, &gid);
if (r < 0) {
- log_error("Cannot resolve group name %s: %s",
- t->group_name, strerror(-r));
+ log_error_errno(r, "Cannot resolve group name %s: %m",
+ t->group_name);
return 0;
}
* watches in. */
r = mkdir_safe_label("/run/systemd/netif", 0755, uid, gid);
if (r < 0)
- log_error("Could not create runtime directory: %s",
- strerror(-r));
+ log_error_errno(r, "Could not create runtime directory: %m");
r = mkdir_safe_label("/run/systemd/netif/links", 0755, uid, gid);
if (r < 0)
- log_error("Could not create runtime directory 'links': %s",
- strerror(-r));
+ log_error_errno(r, "Could not create runtime directory 'links': %m");
r = mkdir_safe_label("/run/systemd/netif/leases", 0755, uid, gid);
if (r < 0)
- log_error("Could not create runtime directory 'leases': %s",
- strerror(-r));
+ log_error_errno(r, "Could not create runtime directory 'leases': %m");
r = drop_privileges(uid, gid,
(1ULL << CAP_NET_ADMIN) |
r = find_binary(argv[optind], arg_transport == BUS_TRANSPORT_LOCAL, &command);
if (r < 0) {
- log_error("Failed to find executable %s%s: %s",
- argv[optind],
- arg_transport == BUS_TRANSPORT_LOCAL ? "" : " on local system",
- strerror(-r));
+ log_error_errno(r, "Failed to find executable %s%s: %m",
+ argv[optind],
+ arg_transport == BUS_TRANSPORT_LOCAL ? "" : " on local system");
goto finish;
}
argv[optind] = command;
if (r == -ENOMEM) {
return r;
} else if (r < 0)
- log_debug("Failed to search for files in %s: %s",
- *p, strerror(-r));
+ log_debug_errno(r, "Failed to search for files in %s: %m",
+ *p);
}
files = hashmap_get_strv(fh);
if (r < 0) {
if (warn)
- log_warning("Failed to parse file '%s': %s",
- filename, strerror(-r));
+ log_warning_errno(r, "Failed to parse file '%s': %m",
+ filename);
return r;
}
}
else {
r = safe_atou64(value, &realtime);
if (r < 0)
- log_debug("Failed to parse realtime timestamp: %s",
- strerror(-r));
+ log_debug_errno(r, "Failed to parse realtime timestamp: %m");
}
}
r = safe_atollu(active, &act);
if (r < 0) {
- log_error("Failed to parse Active(anon) from /proc/meminfo: %s: %s",
- active, strerror(-r));
+ log_error_errno(r, "Failed to parse Active(anon) from /proc/meminfo: %s: %m",
+ active);
return false;
}
if (k == 0)
return 0;
- log_debug("Failed to write '%s' to /sys/power/disk: %s",
- *mode, strerror(-k));
+ log_debug_errno(k, "Failed to write '%s' to /sys/power/disk: %m",
+ *mode);
if (r == 0)
r = k;
}
if (r < 0)
- log_error("Failed to write mode to /sys/power/disk: %s",
- strerror(-r));
+ log_error_errno(r, "Failed to write mode to /sys/power/disk: %m");
return r;
}
k = write_string_stream(*f, *state);
if (k == 0)
return 0;
- log_debug("Failed to write '%s' to /sys/power/state: %s",
- *state, strerror(-k));
+ log_debug_errno(k, "Failed to write '%s' to /sys/power/state: %m",
+ *state);
if (r == 0)
r = k;