return -errno;
r = connect(fd, &sa.sa, offsetof(struct sockaddr_un, sun_path) + 1 + strlen(sa.un.sun_path+1));
- if (r < 0) {
- log_error("Failed to connect to Plymouth: %m");
- return -errno;
- }
+ if (r < 0)
+ return log_error_errno(errno, "Failed to connect to Plymouth: %m");
if (accept_cached) {
packet = strdup("c");
uint32_t size;
char **l;
- /* One ore more answers */
+ /* One or more answers */
if (p < 5)
continue;
_cleanup_free_ char *socket_name = NULL, *message = NULL, *packet = NULL;
uint64_t not_after = 0;
unsigned pid = 0;
- bool accept_cached = false;
+ bool accept_cached = false, echo = false;
const ConfigTableItem items[] = {
{ "Ask", "Socket", config_parse_string, 0, &socket_name },
{ "Ask", "Message", config_parse_string, 0, &message },
{ "Ask", "PID", config_parse_unsigned, 0, &pid },
{ "Ask", "AcceptCached", config_parse_bool, 0, &accept_cached },
+ { "Ask", "Echo", config_parse_bool, 0, &echo },
{}
};
return tty_fd;
}
- r = ask_password_tty(message, not_after, filename, &password);
+ r = ask_password_tty(message, not_after, echo, filename, &password);
if (arg_console) {
safe_close(tty_fd);
/* If the query went away, that's OK */
return 0;
- if (r < 0) {
- log_error("Failed to query password: %s", strerror(-r));
- return r;
- }
+ if (r < 0)
+ return log_error_errno(r, "Failed to query password: %m");
socket_fd = socket(AF_UNIX, SOCK_DGRAM|SOCK_CLOEXEC, 0);
- if (socket_fd < 0) {
- log_error("socket(): %m");
- return -errno;
- }
+ if (socket_fd < 0)
+ return log_error_errno(errno, "socket(): %m");
sa.un.sun_family = AF_UNIX;
strncpy(sa.un.sun_path, socket_name, sizeof(sa.un.sun_path));
r = sendto(socket_fd, packet, packet_length, MSG_NOSIGNAL, &sa.sa,
offsetof(struct sockaddr_un, sun_path) + strlen(socket_name));
if (r < 0) {
- log_error("Failed to send: %m");
+ log_error_errno(errno, "Failed to send: %m");
return r;
}
}
if (errno == ENOENT)
return 0;
- log_error("opendir(/run/systemd/ask-password): %m");
+ log_error_errno(errno, "opendir(/run/systemd/ask-password): %m");
return -errno;
}
for (;;) {
r = show_passwords();
if (r < 0)
- log_error("Failed to show password: %s", strerror(-r));
+ log_error_errno(r, "Failed to show password: %m");
if (poll(pollfd, _FD_MAX, -1) < 0) {
if (errno == EINTR)
r = show_passwords();
if (r < 0)
- log_error("Error: %s", strerror(-r));
+ log_error_errno(r, "Error: %m");
finish:
return r < 0 ? EXIT_FAILURE : EXIT_SUCCESS;