]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
ask-password-agent: introduce ask_password_agent_open_if_enabled()
authorLennart Poettering <lennart@poettering.net>
Fri, 15 Nov 2019 10:11:52 +0000 (11:11 +0100)
committerLennart Poettering <lennart@poettering.net>
Fri, 15 Nov 2019 10:11:52 +0000 (11:11 +0100)
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().

src/shared/spawn-ask-password-agent.c
src/shared/spawn-ask-password-agent.h
src/systemctl/systemctl.c

index 309071c89dbc23f7df178e8c305ab11569180261..ddaebf0f61ad88eb2391ed819585e15453108728 100644 (file)
@@ -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();
+}
index 97e73bda44c1a0a0a0e4bca5ff0eab949efceecb..97b12fe2685f201b7c646598796ca9dd48babfea 100644 (file)
@@ -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);
index 4be695d5b648ab7000b15049e3b37d01382420b8..012867fbb0ee8c52ad4f62e5ad1dee03474ce5ff 100644 (file)
@@ -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) {