Compare commits

...

10 Commits

Author SHA1 Message Date
Michael Biebl ac741c10e2 test: remove executable bit from testsuite-52.service 2020-08-27 12:13:16 +02:00
Zbigniew Jędrzejewski-Szmek 67165f7630
Merge pull request #16860 from poettering/tty-ask-pw-agent-list-fix
tty-ask-password-agent: three fixes
2020-08-27 10:58:13 +02:00
Njibhu c7300fa44f Add sensor configuration for Acer SW5-017-17BU 2020-08-27 10:30:49 +02:00
Zbigniew Jędrzejewski-Szmek baeec61b2c
Merge pull request #16847 from olivierlemoal/master
shell-completion/zsh: add missing verbs for networkctl
2020-08-27 10:27:01 +02:00
Olivier Le Moal 50574ed1ac add "list" verb to autocompleted commands 2020-08-27 10:01:36 +02:00
Lennart Poettering 25f3b27270 udev: use path_startswith() instead of startswith() in two more cases 2020-08-27 16:16:43 +09:00
Lennart Poettering a4fd6cd3f5 tty-ask-pw-agent: properly propagate error 2020-08-26 23:10:50 +02:00
Lennart Poettering 66bff73b4f tty-ask-pw-agent: the message string might not be set 2020-08-26 23:10:05 +02:00
Lennart Poettering 4c4a018cab tty-ask-pw-agent: make sure "--list" works correctly
Fixes: #16836
2020-08-26 23:02:13 +02:00
Olivier Le Moal 6ff45bc1a1 shell-completion/zsh: add missing verbs for networkctl 2020-08-26 16:03:35 +02:00
7 changed files with 40 additions and 26 deletions

View File

@ -78,6 +78,9 @@ sensor:modalias:acpi:INVN6500*:dmi:*svn*Acer*:*pn*AspireSW5-011*
sensor:modalias:acpi:INVN6500*:dmi:*svn*Acer*:*pn*AspireSW5-012* sensor:modalias:acpi:INVN6500*:dmi:*svn*Acer*:*pn*AspireSW5-012*
ACCEL_MOUNT_MATRIX=0, 1, 0; 1, 0, 0; 0, 0, 1 ACCEL_MOUNT_MATRIX=0, 1, 0; 1, 0, 0; 0, 0, 1
sensor:modalias:acpi:BOSC0200*:dmi:*svnAcer*:*TP-SW5-017-17BU*
ACCEL_MOUNT_MATRIX=0, 1, 0; 1, 0, 0; 0, 0, -1
sensor:modalias:acpi:BMA250E*:dmi:*:svnAcer:pnIconiaW1-810:* sensor:modalias:acpi:BMA250E*:dmi:*:svnAcer:pnIconiaW1-810:*
ACCEL_MOUNT_MATRIX=1, 0, 0; 0, -1, 0; 0, 0, 1 ACCEL_MOUNT_MATRIX=1, 0, 0; 0, -1, 0; 0, 0, 1

View File

@ -6,9 +6,16 @@
local -a _networkctl_cmds local -a _networkctl_cmds
_networkctl_cmds=( _networkctl_cmds=(
'list:List existing links' 'list:List existing links'
'status:Show information about the specified links' 'status:Show information about the specified links'
'lldp:Show Link Layer Discovery Protocol status' 'lldp:Show Link Layer Discovery Protocol status'
'label:Show address labels' 'label:Show address labels'
'delete:Delete virtual netdevs'
'up:Bring devices up'
'down:Bring devices down'
'renew:Renew dynamic configurations'
'forcerenew:Trigger DHCP reconfiguration of all connected clients'
'reconfigure:Reconfigure interfaces'
'reload:Reload .network and .netdev files'
) )
if (( CURRENT == 1 )); then if (( CURRENT == 1 )); then
_describe -t commands 'networkctl command' _networkctl_cmds _describe -t commands 'networkctl command' _networkctl_cmds
@ -16,16 +23,19 @@
local curcontext="$curcontext" local curcontext="$curcontext"
local -a _links local -a _links
cmd="${${_networkctl_cmds[(r)$words[1]:*]%%:*}}" cmd="${${_networkctl_cmds[(r)$words[1]:*]%%:*}}"
if [ $cmd = "status" ]; then case $cmd in
_links=( "${(foa)$(networkctl list --no-legend | awk 'BEGIN{OFS=":"} {sub(/[[ \t]+/, ""); print $2,$0}' 2>/dev/null)}" ) (list|status|up|down|lldp|delete|renew|forcerenew|reconfigure)
if [[ -n "$_links" ]]; then _links=( "${(foa)$(networkctl list --no-legend | awk 'BEGIN{OFS=":"} {sub(/[[ \t]+/, ""); print $2,$0}' 2>/dev/null)}" )
_describe -t links 'links' _links if [[ -n "$_links" ]]; then
else _describe -t links 'links' _links
_message "no links" else
fi _message "no links"
else fi
_message "no more options" ;;
fi *)
_message "no more options"
;;
esac
fi fi
} }

View File

@ -237,6 +237,9 @@ int ask_password_plymouth(
assert(ret); assert(ret);
if (!message)
message = "Password:";
if (flag_file) { if (flag_file) {
notify = inotify_init1(IN_CLOEXEC|IN_NONBLOCK); notify = inotify_init1(IN_CLOEXEC|IN_NONBLOCK);
if (notify < 0) if (notify < 0)

View File

@ -47,7 +47,7 @@ static enum {
ACTION_LIST, ACTION_LIST,
ACTION_QUERY, ACTION_QUERY,
ACTION_WATCH, ACTION_WATCH,
ACTION_WALL ACTION_WALL,
} arg_action = ACTION_QUERY; } arg_action = ACTION_QUERY;
static bool arg_plymouth = false; static bool arg_plymouth = false;
@ -143,8 +143,7 @@ static int agent_ask_password_tty(
const char *flag_file, const char *flag_file,
char ***ret) { char ***ret) {
int tty_fd = -1; int tty_fd = -1, r;
int r;
if (arg_console) { if (arg_console) {
const char *con = arg_device ?: "/dev/console"; const char *con = arg_device ?: "/dev/console";
@ -166,7 +165,7 @@ static int agent_ask_password_tty(
release_terminal(); release_terminal();
} }
return 0; return r;
} }
static int process_one_password_file(const char *filename) { static int process_one_password_file(const char *filename) {
@ -210,7 +209,7 @@ static int process_one_password_file(const char *filename) {
switch (arg_action) { switch (arg_action) {
case ACTION_LIST: case ACTION_LIST:
printf("'%s' (PID %u)\n", message, pid); printf("'%s' (PID %u)\n", strna(message), pid);
return 0; return 0;
case ACTION_WALL: { case ACTION_WALL: {
@ -219,7 +218,7 @@ static int process_one_password_file(const char *filename) {
if (asprintf(&wall, if (asprintf(&wall,
"Password entry required for \'%s\' (PID %u).\r\n" "Password entry required for \'%s\' (PID %u).\r\n"
"Please enter password with the systemd-tty-ask-password-agent tool.", "Please enter password with the systemd-tty-ask-password-agent tool.",
message, strna(message),
pid) < 0) pid) < 0)
return log_oom(); return log_oom();
@ -233,7 +232,7 @@ static int process_one_password_file(const char *filename) {
if (access(socket_name, W_OK) < 0) { if (access(socket_name, W_OK) < 0) {
if (arg_action == ACTION_QUERY) if (arg_action == ACTION_QUERY)
log_info("Not querying '%s' (PID %u), lacking privileges.", message, pid); log_info("Not querying '%s' (PID %u), lacking privileges.", strna(message), pid);
return 0; return 0;
} }
@ -246,7 +245,6 @@ static int process_one_password_file(const char *filename) {
r = ask_password_plymouth(message, not_after, flags, filename, &passwords); r = ask_password_plymouth(message, not_after, flags, filename, &passwords);
else else
r = agent_ask_password_tty(message, not_after, flags, filename, &passwords); r = agent_ask_password_tty(message, not_after, flags, filename, &passwords);
if (r < 0) { if (r < 0) {
/* If the query went away, that's OK */ /* If the query went away, that's OK */
if (IN_SET(r, -ETIME, -ENOENT)) if (IN_SET(r, -ETIME, -ENOENT))
@ -262,8 +260,7 @@ static int process_one_password_file(const char *filename) {
if (r < 0) if (r < 0)
return log_error_errno(r, "Failed to send: %m"); return log_error_errno(r, "Failed to send: %m");
break; break;
} }}
}
return 0; return 0;
} }
@ -713,7 +710,7 @@ static int run(int argc, char *argv[]) {
(void) release_terminal(); (void) release_terminal();
} }
return process_and_watch_password_files(arg_action != ACTION_QUERY); return process_and_watch_password_files(!IN_SET(arg_action, ACTION_QUERY, ACTION_LIST));
} }
DEFINE_MAIN_FUNCTION(run); DEFINE_MAIN_FUNCTION(run);

View File

@ -2038,7 +2038,7 @@ static int udev_rule_apply_token_to_event(
} }
if (sd_device_get_devnum(dev, NULL) >= 0 && if (sd_device_get_devnum(dev, NULL) >= 0 &&
(sd_device_get_devname(dev, &val) < 0 || (sd_device_get_devname(dev, &val) < 0 ||
!streq_ptr(buf, startswith(val, "/dev/")))) { !streq_ptr(buf, path_startswith(val, "/dev/")))) {
log_rule_error(dev, rules, log_rule_error(dev, rules,
"Kernel device nodes cannot be renamed, ignoring NAME=\"%s\"; please fix it.", "Kernel device nodes cannot be renamed, ignoring NAME=\"%s\"; please fix it.",
token->value); token->value);

View File

@ -17,6 +17,7 @@
#include "device-private.h" #include "device-private.h"
#include "device-util.h" #include "device-util.h"
#include "libudev-util.h" #include "libudev-util.h"
#include "path-util.h"
#include "string-util.h" #include "string-util.h"
#include "strxcpyx.h" #include "strxcpyx.h"
#include "udev-builtin.h" #include "udev-builtin.h"
@ -90,7 +91,7 @@ static int parse_argv(int argc, char *argv[]) {
"syspath parameter missing."); "syspath parameter missing.");
/* add /sys if needed */ /* add /sys if needed */
if (!startswith(argv[optind], "/sys")) if (!path_startswith(argv[optind], "/sys"))
strscpyl(arg_syspath, sizeof(arg_syspath), "/sys", argv[optind], NULL); strscpyl(arg_syspath, sizeof(arg_syspath), "/sys", argv[optind], NULL);
else else
strscpy(arg_syspath, sizeof(arg_syspath), argv[optind]); strscpy(arg_syspath, sizeof(arg_syspath), argv[optind]);

0
test/testsuite-52.units/testsuite-52.service Executable file → Normal file
View File