summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorLennart Poettering <lennart@poettering.net>2013-02-13 22:56:43 +0100
committerLennart Poettering <lennart@poettering.net>2013-02-13 23:08:25 +0100
commit46ba8aae2b82bc5c87ba347e6bf914ecd5e9d51e (patch)
treede99190b0940c4afa83ead269cb52a3a6070512e /src
parentbuild-sys: fix build without -Wl,--gc-sections (diff)
downloadsystemd-46ba8aae2b82bc5c87ba347e6bf914ecd5e9d51e.tar.xz
systemd-46ba8aae2b82bc5c87ba347e6bf914ecd5e9d51e.zip
build-sys: make PolicyKit support compile-time optional (was runtime-optional already)
Diffstat (limited to 'src')
-rw-r--r--src/shared/polkit.c10
-rw-r--r--src/shared/spawn-polkit-agent.c12
2 files changed, 21 insertions, 1 deletions
diff --git a/src/shared/polkit.c b/src/shared/polkit.c
index 826944585c..cea7074ad3 100644
--- a/src/shared/polkit.c
+++ b/src/shared/polkit.c
@@ -35,9 +35,10 @@ int verify_polkit(
bool *_challenge,
DBusError *error) {
+
+#ifdef ENABLE_POLKIT
DBusMessage *m = NULL, *reply = NULL;
const char *unix_process = "unix-process", *pid = "pid", *starttime = "start-time", *cancel_id = "";
- const char *sender;
uint32_t flags = interactive ? 1 : 0;
pid_t pid_raw;
uint32_t pid_u32;
@@ -46,6 +47,8 @@ int verify_polkit(
DBusMessageIter iter_msg, iter_struct, iter_array, iter_dict, iter_variant;
int r;
dbus_bool_t authorized = FALSE, challenge = FALSE;
+#endif
+ const char *sender;
unsigned long ul;
assert(c);
@@ -63,6 +66,8 @@ int verify_polkit(
if (ul == 0)
return 1;
+#ifdef ENABLE_POLKIT
+
pid_raw = bus_get_unix_process_id(c, sender, error);
if (pid_raw == 0)
return -EINVAL;
@@ -163,4 +168,7 @@ finish:
dbus_message_unref(reply);
return r;
+#else
+ return -EPERM;
+#endif
}
diff --git a/src/shared/spawn-polkit-agent.c b/src/shared/spawn-polkit-agent.c
index fcb3722ddf..f9e52cdcbd 100644
--- a/src/shared/spawn-polkit-agent.c
+++ b/src/shared/spawn-polkit-agent.c
@@ -33,6 +33,7 @@
#include "util.h"
#include "spawn-polkit-agent.h"
+#ifdef ENABLE_POLKIT
static pid_t agent_pid = 0;
int polkit_agent_open(void) {
@@ -84,3 +85,14 @@ void polkit_agent_close(void) {
wait_for_terminate(agent_pid, NULL);
agent_pid = 0;
}
+
+#else
+
+int polkit_agent_open(void) {
+ return 0;
+}
+
+void polkit_agent_close(void) {
+}
+
+#endif