mirror of
https://github.com/systemd/systemd
synced 2026-03-15 17:44:49 +01:00
Compare commits
2 Commits
d57e871c60
...
7b5018ca9e
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
7b5018ca9e | ||
|
|
1fa94a3124 |
@ -528,6 +528,13 @@
|
|||||||
prevent typos.</para></listitem>
|
prevent typos.</para></listitem>
|
||||||
</varlistentry>
|
</varlistentry>
|
||||||
|
|
||||||
|
<varlistentry>
|
||||||
|
<term><option>silent</option></term>
|
||||||
|
|
||||||
|
<listitem><para>If the encryption password is read from console, no asterisks will be shown
|
||||||
|
while typing the password.</para></listitem>
|
||||||
|
</varlistentry>
|
||||||
|
|
||||||
<varlistentry>
|
<varlistentry>
|
||||||
<term><option>pkcs11-uri=</option></term>
|
<term><option>pkcs11-uri=</option></term>
|
||||||
|
|
||||||
|
|||||||
@ -57,6 +57,7 @@ static char *arg_header = NULL;
|
|||||||
static unsigned arg_tries = 3;
|
static unsigned arg_tries = 3;
|
||||||
static bool arg_readonly = false;
|
static bool arg_readonly = false;
|
||||||
static bool arg_verify = false;
|
static bool arg_verify = false;
|
||||||
|
static bool arg_silent = false;
|
||||||
static bool arg_discards = false;
|
static bool arg_discards = false;
|
||||||
static bool arg_same_cpu_crypt = false;
|
static bool arg_same_cpu_crypt = false;
|
||||||
static bool arg_submit_from_crypt_cpus = false;
|
static bool arg_submit_from_crypt_cpus = false;
|
||||||
@ -233,6 +234,8 @@ static int parse_one_option(const char *option) {
|
|||||||
arg_readonly = true;
|
arg_readonly = true;
|
||||||
else if (streq(option, "verify"))
|
else if (streq(option, "verify"))
|
||||||
arg_verify = true;
|
arg_verify = true;
|
||||||
|
else if (streq(option, "silent"))
|
||||||
|
arg_silent = true;
|
||||||
else if (STR_IN_SET(option, "allow-discards", "discard"))
|
else if (STR_IN_SET(option, "allow-discards", "discard"))
|
||||||
arg_discards = true;
|
arg_discards = true;
|
||||||
else if (streq(option, "same-cpu-crypt"))
|
else if (streq(option, "same-cpu-crypt"))
|
||||||
@ -539,6 +542,7 @@ static int get_password(
|
|||||||
_cleanup_strv_free_erase_ char **passwords = NULL;
|
_cleanup_strv_free_erase_ char **passwords = NULL;
|
||||||
char **p, *id;
|
char **p, *id;
|
||||||
int r = 0;
|
int r = 0;
|
||||||
|
AskPasswordFlags flags = ASK_PASSWORD_PUSH_CACHE | (arg_silent*ASK_PASSWORD_SILENT);
|
||||||
|
|
||||||
assert(vol);
|
assert(vol);
|
||||||
assert(src);
|
assert(src);
|
||||||
@ -561,7 +565,7 @@ static int get_password(
|
|||||||
id = strjoina("cryptsetup:", disk_path);
|
id = strjoina("cryptsetup:", disk_path);
|
||||||
|
|
||||||
r = ask_password_auto(text, "drive-harddisk", id, "cryptsetup", "cryptsetup.passphrase", until,
|
r = ask_password_auto(text, "drive-harddisk", id, "cryptsetup", "cryptsetup.passphrase", until,
|
||||||
ASK_PASSWORD_PUSH_CACHE | (accept_cached*ASK_PASSWORD_ACCEPT_CACHED),
|
flags | (accept_cached*ASK_PASSWORD_ACCEPT_CACHED),
|
||||||
&passwords);
|
&passwords);
|
||||||
if (r < 0)
|
if (r < 0)
|
||||||
return log_error_errno(r, "Failed to query password: %m");
|
return log_error_errno(r, "Failed to query password: %m");
|
||||||
@ -576,7 +580,7 @@ static int get_password(
|
|||||||
|
|
||||||
id = strjoina("cryptsetup-verification:", disk_path);
|
id = strjoina("cryptsetup-verification:", disk_path);
|
||||||
|
|
||||||
r = ask_password_auto(text, "drive-harddisk", id, "cryptsetup", "cryptsetup.passphrase", until, ASK_PASSWORD_PUSH_CACHE, &passwords2);
|
r = ask_password_auto(text, "drive-harddisk", id, "cryptsetup", "cryptsetup.passphrase", until, flags, &passwords2);
|
||||||
if (r < 0)
|
if (r < 0)
|
||||||
return log_error_errno(r, "Failed to query verification password: %m");
|
return log_error_errno(r, "Failed to query verification password: %m");
|
||||||
|
|
||||||
|
|||||||
@ -364,22 +364,24 @@ int dhcp4_server_configure(Link *link) {
|
|||||||
|
|
||||||
if (link->network->dhcp_server_emit_timezone) {
|
if (link->network->dhcp_server_emit_timezone) {
|
||||||
_cleanup_free_ char *buffer = NULL;
|
_cleanup_free_ char *buffer = NULL;
|
||||||
const char *tz;
|
const char *tz = NULL;
|
||||||
|
|
||||||
if (link->network->dhcp_server_timezone)
|
if (link->network->dhcp_server_timezone)
|
||||||
tz = link->network->dhcp_server_timezone;
|
tz = link->network->dhcp_server_timezone;
|
||||||
else {
|
else {
|
||||||
r = get_timezone(&buffer);
|
r = get_timezone(&buffer);
|
||||||
if (r < 0)
|
if (r < 0)
|
||||||
return log_link_error_errno(link, r, "Failed to determine timezone: %m");
|
log_link_warning_errno(link, r, "Failed to determine timezone, not sending timezone: %m");
|
||||||
|
else
|
||||||
tz = buffer;
|
tz = buffer;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (tz) {
|
||||||
r = sd_dhcp_server_set_timezone(link->dhcp_server, tz);
|
r = sd_dhcp_server_set_timezone(link->dhcp_server, tz);
|
||||||
if (r < 0)
|
if (r < 0)
|
||||||
return log_link_error_errno(link, r, "Failed to set timezone for DHCP server: %m");
|
return log_link_error_errno(link, r, "Failed to set timezone for DHCP server: %m");
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
ORDERED_HASHMAP_FOREACH(p, link->network->dhcp_server_send_options) {
|
ORDERED_HASHMAP_FOREACH(p, link->network->dhcp_server_send_options) {
|
||||||
r = sd_dhcp_server_add_option(link->dhcp_server, p);
|
r = sd_dhcp_server_add_option(link->dhcp_server, p);
|
||||||
|
|||||||
@ -799,12 +799,14 @@ int ask_password_agent(
|
|||||||
"Socket=%s\n"
|
"Socket=%s\n"
|
||||||
"AcceptCached=%i\n"
|
"AcceptCached=%i\n"
|
||||||
"Echo=%i\n"
|
"Echo=%i\n"
|
||||||
"NotAfter="USEC_FMT"\n",
|
"NotAfter="USEC_FMT"\n"
|
||||||
|
"Silent=%i\n",
|
||||||
getpid_cached(),
|
getpid_cached(),
|
||||||
socket_name,
|
socket_name,
|
||||||
(flags & ASK_PASSWORD_ACCEPT_CACHED) ? 1 : 0,
|
(flags & ASK_PASSWORD_ACCEPT_CACHED) ? 1 : 0,
|
||||||
(flags & ASK_PASSWORD_ECHO) ? 1 : 0,
|
(flags & ASK_PASSWORD_ECHO) ? 1 : 0,
|
||||||
until);
|
until,
|
||||||
|
(flags & ASK_PASSWORD_SILENT) ? 1 : 0);
|
||||||
|
|
||||||
if (message)
|
if (message)
|
||||||
fprintf(f, "Message=%s\n", message);
|
fprintf(f, "Message=%s\n", message);
|
||||||
|
|||||||
@ -169,7 +169,7 @@ static int agent_ask_password_tty(
|
|||||||
|
|
||||||
static int process_one_password_file(const char *filename) {
|
static int process_one_password_file(const char *filename) {
|
||||||
_cleanup_free_ char *socket_name = NULL, *message = NULL;
|
_cleanup_free_ char *socket_name = NULL, *message = NULL;
|
||||||
bool accept_cached = false, echo = false;
|
bool accept_cached = false, echo = false, silent = false;
|
||||||
uint64_t not_after = 0;
|
uint64_t not_after = 0;
|
||||||
unsigned pid = 0;
|
unsigned pid = 0;
|
||||||
|
|
||||||
@ -180,6 +180,7 @@ static int process_one_password_file(const char *filename) {
|
|||||||
{ "Ask", "PID", config_parse_unsigned, 0, &pid },
|
{ "Ask", "PID", config_parse_unsigned, 0, &pid },
|
||||||
{ "Ask", "AcceptCached", config_parse_bool, 0, &accept_cached },
|
{ "Ask", "AcceptCached", config_parse_bool, 0, &accept_cached },
|
||||||
{ "Ask", "Echo", config_parse_bool, 0, &echo },
|
{ "Ask", "Echo", config_parse_bool, 0, &echo },
|
||||||
|
{ "Ask", "Silent", config_parse_bool, 0, &silent },
|
||||||
{}
|
{}
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -239,6 +240,7 @@ static int process_one_password_file(const char *filename) {
|
|||||||
SET_FLAG(flags, ASK_PASSWORD_ACCEPT_CACHED, accept_cached);
|
SET_FLAG(flags, ASK_PASSWORD_ACCEPT_CACHED, accept_cached);
|
||||||
SET_FLAG(flags, ASK_PASSWORD_CONSOLE_COLOR, arg_console);
|
SET_FLAG(flags, ASK_PASSWORD_CONSOLE_COLOR, arg_console);
|
||||||
SET_FLAG(flags, ASK_PASSWORD_ECHO, echo);
|
SET_FLAG(flags, ASK_PASSWORD_ECHO, echo);
|
||||||
|
SET_FLAG(flags, ASK_PASSWORD_SILENT, silent);
|
||||||
|
|
||||||
if (arg_plymouth)
|
if (arg_plymouth)
|
||||||
r = ask_password_plymouth(message, not_after, flags, filename, &passwords);
|
r = ask_password_plymouth(message, not_after, flags, filename, &passwords);
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user