ask-password-agent: introduce ask_password_agent_open_if_enabled()
This makes the ask-password agent handling more alike the polkit agent handling again, and introduces ask_password_agent_open_if_enabled() that works just like the already existing polkit_agent_open_if_enabled().
This commit is contained in:
parent
385d581b74
commit
c59e2ec696
|
@ -46,3 +46,16 @@ void ask_password_agent_close(void) {
|
|||
(void) wait_for_terminate(agent_pid, NULL);
|
||||
agent_pid = 0;
|
||||
}
|
||||
|
||||
int ask_password_agent_open_if_enabled(BusTransport transport, bool ask_password) {
|
||||
|
||||
/* Open the ask password agent as a child process if necessary */
|
||||
|
||||
if (transport != BUS_TRANSPORT_LOCAL)
|
||||
return 0;
|
||||
|
||||
if (!ask_password)
|
||||
return 0;
|
||||
|
||||
return ask_password_agent_open();
|
||||
}
|
||||
|
|
|
@ -1,5 +1,11 @@
|
|||
/* SPDX-License-Identifier: LGPL-2.1+ */
|
||||
#pragma once
|
||||
|
||||
#include <stdbool.h>
|
||||
|
||||
#include "bus-util.h"
|
||||
|
||||
int ask_password_agent_open(void);
|
||||
void ask_password_agent_close(void);
|
||||
|
||||
int ask_password_agent_open_if_enabled(BusTransport transport, bool ask_password);
|
||||
|
|
|
@ -236,22 +236,16 @@ static void release_busses(void) {
|
|||
buses[w] = sd_bus_flush_close_unref(buses[w]);
|
||||
}
|
||||
|
||||
static void ask_password_agent_open_if_enabled(void) {
|
||||
static void ask_password_agent_open_maybe(void) {
|
||||
/* Open the password agent as a child process if necessary */
|
||||
|
||||
if (arg_dry_run)
|
||||
return;
|
||||
|
||||
if (!arg_ask_password)
|
||||
return;
|
||||
|
||||
if (arg_scope != UNIT_FILE_SYSTEM)
|
||||
return;
|
||||
|
||||
if (arg_transport != BUS_TRANSPORT_LOCAL)
|
||||
return;
|
||||
|
||||
ask_password_agent_open();
|
||||
ask_password_agent_open_if_enabled(arg_transport, arg_ask_password);
|
||||
}
|
||||
|
||||
static void polkit_agent_open_maybe(void) {
|
||||
|
@ -3071,7 +3065,7 @@ static int start_unit(int argc, char *argv[], void *userdata) {
|
|||
if (r < 0)
|
||||
return r;
|
||||
|
||||
ask_password_agent_open_if_enabled();
|
||||
ask_password_agent_open_maybe();
|
||||
polkit_agent_open_maybe();
|
||||
|
||||
if (arg_action == ACTION_SYSTEMCTL) {
|
||||
|
|
Loading…
Reference in a new issue