summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/basic/cgroup-util.c13
-rw-r--r--src/basic/cgroup-util.h4
-rw-r--r--src/libelogind/libelogind.sym4
-rw-r--r--src/libelogind/sd-bus/bus-creds.c2
-rw-r--r--src/libelogind/sd-login/sd-login.c10
-rw-r--r--src/systemd/sd-bus.h4
6 files changed, 18 insertions, 19 deletions
diff --git a/src/basic/cgroup-util.c b/src/basic/cgroup-util.c
index d909e2990..41a33899f 100644
--- a/src/basic/cgroup-util.c
+++ b/src/basic/cgroup-util.c
@@ -1936,19 +1936,29 @@ int cg_pid_get_slice(pid_t pid, char **slice) {
return cg_path_get_slice(cgroup, slice);
}
-#if 0 /// UNNEEDED by elogind
int cg_path_get_user_slice(const char *p, char **slice) {
+#if 0 /// UNNEEDED by elogind
const char *t;
+#endif // 0
assert(p);
assert(slice);
+#if 0 // nothing to skip in elogind
t = skip_user_prefix(p);
if (!t)
return -ENXIO;
+#endif // 0
+#if 0 /// UNNEEDED by elogind
/* And now it looks pretty much the same as for a system
* slice, so let's just use the same parser from here on. */
return cg_path_get_slice(t, slice);
+#else
+ /* In elogind there is nothing to skip, we can use the path
+ * directly. Generally speaking this is always a session id
+ * to user mapping. */
+ return cg_path_get_slice(p, slice);
+#endif // 0
}
int cg_pid_get_user_slice(pid_t pid, char **slice) {
@@ -1963,7 +1973,6 @@ int cg_pid_get_user_slice(pid_t pid, char **slice) {
return cg_path_get_user_slice(cgroup, slice);
}
-#endif // 0
char *cg_escape(const char *p) {
bool need_prefix = false;
diff --git a/src/basic/cgroup-util.h b/src/basic/cgroup-util.h
index 419d5f4bd..8bf232c13 100644
--- a/src/basic/cgroup-util.h
+++ b/src/basic/cgroup-util.h
@@ -213,9 +213,7 @@ int cg_path_get_user_unit(const char *path, char **unit);
int cg_path_get_machine_name(const char *path, char **machine);
#endif // 0
int cg_path_get_slice(const char *path, char **slice);
-#if 0 /// UNNEEDED by elogind
int cg_path_get_user_slice(const char *path, char **slice);
-#endif // 0
int cg_shift_path(const char *cgroup, const char *cached_root, const char **shifted);
int cg_pid_get_path_shifted(pid_t pid, const char *cached_root, char **cgroup);
@@ -228,9 +226,9 @@ int cg_pid_get_user_unit(pid_t pid, char **unit);
int cg_pid_get_machine_name(pid_t pid, char **machine);
#endif // 0
int cg_pid_get_slice(pid_t pid, char **slice);
-#if 0 /// UNNEEDED by elogind
int cg_pid_get_user_slice(pid_t pid, char **slice);
+#if 0 /// UNNEEDED by elogind
int cg_path_decode_unit(const char *cgroup, char **unit);
#endif // 0
diff --git a/src/libelogind/libelogind.sym b/src/libelogind/libelogind.sym
index f1537d5e9..bc5a53daa 100644
--- a/src/libelogind/libelogind.sym
+++ b/src/libelogind/libelogind.sym
@@ -363,9 +363,9 @@ global:
sd_bus_creds_get_cmdline;
sd_bus_creds_get_cgroup;
/* sd_bus_creds_get_unit; */
- /* sd_bus_creds_get_slice; */
+ sd_bus_creds_get_slice;
/* sd_bus_creds_get_user_unit; */
- /* sd_bus_creds_get_user_slice; */
+ sd_bus_creds_get_user_slice;
sd_bus_creds_get_session;
sd_bus_creds_get_owner_uid;
sd_bus_creds_has_effective_cap;
diff --git a/src/libelogind/sd-bus/bus-creds.c b/src/libelogind/sd-bus/bus-creds.c
index 28bbdf0da..fcc3b5016 100644
--- a/src/libelogind/sd-bus/bus-creds.c
+++ b/src/libelogind/sd-bus/bus-creds.c
@@ -444,6 +444,7 @@ _public_ int sd_bus_creds_get_user_unit(sd_bus_creds *c, const char **ret) {
*ret = c->user_unit;
return 0;
}
+#endif // 0
_public_ int sd_bus_creds_get_slice(sd_bus_creds *c, const char **ret) {
int r;
@@ -498,7 +499,6 @@ _public_ int sd_bus_creds_get_user_slice(sd_bus_creds *c, const char **ret) {
*ret = c->user_slice;
return 0;
}
-#endif // 0
_public_ int sd_bus_creds_get_session(sd_bus_creds *c, const char **ret) {
int r;
diff --git a/src/libelogind/sd-login/sd-login.c b/src/libelogind/sd-login/sd-login.c
index 0900f0fe6..f7692cd82 100644
--- a/src/libelogind/sd-login/sd-login.c
+++ b/src/libelogind/sd-login/sd-login.c
@@ -124,19 +124,13 @@ _public_ int sd_pid_get_slice(pid_t pid, char **slice) {
}
_public_ int sd_pid_get_user_slice(pid_t pid, char **slice) {
-#if 0 /// UNNEEDED by elogind
int r;
-#endif // 0
assert_return(pid >= 0, -EINVAL);
assert_return(slice, -EINVAL);
-#if 0 /// elogind does not support systemd slices
r = cg_pid_get_user_slice(pid, slice);
return IN_SET(r, -ENXIO, -ENOMEDIUM) ? -ENODATA : r;
-#else
- return -ESRCH;
-#endif // 0
}
_public_ int sd_pid_get_owner_uid(pid_t pid, uid_t *uid) {
@@ -290,11 +284,7 @@ _public_ int sd_peer_get_user_slice(int fd, char **slice) {
if (r < 0)
return r;
-#if 0 /// elogind does not support systemd slices
return cg_pid_get_user_slice(ucred.pid, slice);
-#else
- return -ESRCH;
-#endif // 0
}
_public_ int sd_peer_get_cgroup(int fd, char **cgroup) {
diff --git a/src/systemd/sd-bus.h b/src/systemd/sd-bus.h
index e75374dbb..9b507eefb 100644
--- a/src/systemd/sd-bus.h
+++ b/src/systemd/sd-bus.h
@@ -360,10 +360,12 @@ int sd_bus_creds_get_cmdline(sd_bus_creds *c, char ***cmdline);
int sd_bus_creds_get_cgroup(sd_bus_creds *c, const char **cgroup);
#if 0 /** unsupported by elogind **/
int sd_bus_creds_get_unit(sd_bus_creds *c, const char **unit);
+#endif // 0
int sd_bus_creds_get_slice(sd_bus_creds *c, const char **slice);
+#if 0 /// UNNEEDED by elogind
int sd_bus_creds_get_user_unit(sd_bus_creds *c, const char **unit);
-int sd_bus_creds_get_user_slice(sd_bus_creds *c, const char **slice);
#endif /** 0 **/
+int sd_bus_creds_get_user_slice(sd_bus_creds *c, const char **slice);
int sd_bus_creds_get_session(sd_bus_creds *c, const char **session);
int sd_bus_creds_get_owner_uid(sd_bus_creds *c, uid_t *uid);
int sd_bus_creds_has_effective_cap(sd_bus_creds *c, int capability);