mirror of
https://git.kernel.org/pub/scm/network/wireless/iwd.git
synced 2024-11-22 14:49:24 +01:00
client: Cancel agent prompt with CTRL+D
Previously, CTRL+D used to cause termination of the client. Now, the command will cancel the agent’s prompts in agent mod. In regular mode the behavior is unchanged.
This commit is contained in:
parent
fea262c2aa
commit
37e6f6f08b
@ -366,14 +366,17 @@ static void process_input_username_password(const char *prompt)
|
|||||||
struct l_dbus_message *reply;
|
struct l_dbus_message *reply;
|
||||||
char *username;
|
char *username;
|
||||||
|
|
||||||
|
if (!prompt || !strlen(prompt)) {
|
||||||
|
reply = agent_reply_canceled(pending_message,
|
||||||
|
"Canceled by user");
|
||||||
|
|
||||||
|
l_queue_clear(pending_op.saved_input, l_free);
|
||||||
|
|
||||||
|
goto send_reply;
|
||||||
|
}
|
||||||
|
|
||||||
if (l_queue_isempty(pending_op.saved_input)) {
|
if (l_queue_isempty(pending_op.saved_input)) {
|
||||||
/* received username */
|
/* received username */
|
||||||
if (!strlen(prompt)) {
|
|
||||||
reply = agent_reply_canceled(pending_message,
|
|
||||||
"Canceled by user");
|
|
||||||
goto send_reply;
|
|
||||||
}
|
|
||||||
|
|
||||||
l_queue_push_tail(pending_op.saved_input, l_strdup(prompt));
|
l_queue_push_tail(pending_op.saved_input, l_strdup(prompt));
|
||||||
|
|
||||||
display_agent_prompt(PROMPT_PASSWORD, true);
|
display_agent_prompt(PROMPT_PASSWORD, true);
|
||||||
@ -397,7 +400,7 @@ static void process_input_passphrase(const char *prompt)
|
|||||||
{
|
{
|
||||||
struct l_dbus_message *reply;
|
struct l_dbus_message *reply;
|
||||||
|
|
||||||
if (!strlen(prompt)) {
|
if (!prompt || !strlen(prompt)) {
|
||||||
reply = agent_reply_canceled(pending_message,
|
reply = agent_reply_canceled(pending_message,
|
||||||
"Canceled by user");
|
"Canceled by user");
|
||||||
goto send_reply;
|
goto send_reply;
|
||||||
@ -412,11 +415,18 @@ send_reply:
|
|||||||
|
|
||||||
static void process_input_password(const char *prompt)
|
static void process_input_password(const char *prompt)
|
||||||
{
|
{
|
||||||
struct l_dbus_message *reply =
|
struct l_dbus_message *reply;
|
||||||
l_dbus_message_new_method_return(pending_message);
|
|
||||||
|
|
||||||
|
if (!prompt || !strlen(prompt)) {
|
||||||
|
reply = agent_reply_canceled(pending_message,
|
||||||
|
"Canceled by user");
|
||||||
|
goto send_reply;
|
||||||
|
}
|
||||||
|
|
||||||
|
reply = l_dbus_message_new_method_return(pending_message);
|
||||||
l_dbus_message_set_arguments(reply, "s", prompt);
|
l_dbus_message_set_arguments(reply, "s", prompt);
|
||||||
|
|
||||||
|
send_reply:
|
||||||
agent_send_reply(reply);
|
agent_send_reply(reply);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -465,6 +465,10 @@ static void readline_callback(char *prompt)
|
|||||||
|
|
||||||
HIST_ENTRY *previous_prompt;
|
HIST_ENTRY *previous_prompt;
|
||||||
|
|
||||||
|
if (agent_prompt(masked_input.use_mask ?
|
||||||
|
masked_input.passphrase : prompt))
|
||||||
|
goto done;
|
||||||
|
|
||||||
if (!prompt) {
|
if (!prompt) {
|
||||||
display_quit();
|
display_quit();
|
||||||
|
|
||||||
@ -473,10 +477,6 @@ static void readline_callback(char *prompt)
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (agent_prompt(masked_input.use_mask ?
|
|
||||||
masked_input.passphrase : prompt))
|
|
||||||
goto done;
|
|
||||||
|
|
||||||
if (!strlen(prompt))
|
if (!strlen(prompt))
|
||||||
goto done;
|
goto done;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user