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) {
return cg_path_get_user_slice(cgroup, slice);
}
-#endif // 0
char *cg_escape(const char *p) {
bool need_prefix = false;
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);
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
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;
*ret = c->user_unit;
return 0;
}
+#endif // 0
_public_ int sd_bus_creds_get_slice(sd_bus_creds *c, const char **ret) {
int r;
*ret = c->user_slice;
return 0;
}
-#endif // 0
_public_ int sd_bus_creds_get_session(sd_bus_creds *c, const char **ret) {
int r;
}
_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) {
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) {
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);