*/
_public_ int sd_pid_get_session(pid_t pid, char **session) {
+ int r;
assert_return(pid >= 0, -EINVAL);
assert_return(session, -EINVAL);
- return cg_pid_get_session(pid, session);
+ r = cg_pid_get_session(pid, session);
+ return IN_SET(r, -ENXIO, -ENOMEDIUM) ? -ENODATA : r;
}
_public_ int sd_pid_get_unit(pid_t pid, char **unit) {
+#if 0 /// UNNEEDED by elogind
+ int r;
+#endif // 0
assert_return(pid >= 0, -EINVAL);
assert_return(unit, -EINVAL);
#if 0 /// elogind does not support systemd units
- return cg_pid_get_unit(pid, unit);
+ r = cg_pid_get_unit(pid, unit);
+ return IN_SET(r, -ENXIO, -ENOMEDIUM) ? -ENODATA : r;
#else
return -ESRCH;
#endif // 0
}
_public_ int sd_pid_get_user_unit(pid_t pid, char **unit) {
+#if 0 /// UNNEEDED by elogind
+ int r;
+#endif // 0
assert_return(pid >= 0, -EINVAL);
assert_return(unit, -EINVAL);
#if 0 /// elogind does not support systemd units
- return cg_pid_get_user_unit(pid, unit);
+ r = cg_pid_get_user_unit(pid, unit);
+ return IN_SET(r, -ENXIO, -ENOMEDIUM) ? -ENODATA : r;
#else
return -ESRCH;
#endif // 0
}
_public_ int sd_pid_get_machine_name(pid_t pid, char **name) {
+#if 0 /// UNNEEDED by elogind
+ int r;
+#endif // 0
assert_return(pid >= 0, -EINVAL);
assert_return(name, -EINVAL);
#if 0 /// elogind does not support systemd units
- return cg_pid_get_machine_name(pid, name);
+ r = cg_pid_get_machine_name(pid, name);
+ return IN_SET(r, -ENXIO, -ENOMEDIUM) ? -ENODATA : r;
#else
return -ESRCH;
#endif // 0
}
_public_ int sd_pid_get_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
- return cg_pid_get_slice(pid, slice);
+ r = cg_pid_get_slice(pid, slice);
+ return IN_SET(r, -ENXIO, -ENOMEDIUM) ? -ENODATA : r;
#else
return -ESRCH;
#endif // 0
}
_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
- return cg_pid_get_user_slice(pid, slice);
+ 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 0 /// UNNEEDED by elogind
+ int r;
+#endif // 0
assert_return(pid >= 0, -EINVAL);
assert_return(uid, -EINVAL);
#if 0 /// elogind does not support systemd slices
- return cg_pid_get_owner_uid(pid, uid);
+ r = cg_pid_get_owner_uid(pid, uid);
+ return IN_SET(r, -ENXIO, -ENOMEDIUM) ? -ENODATA : r;
#else
return -ESRCH;
#endif // 0
r = parse_env_file(p, NEWLINE,
"SESSIONS", &s,
- "ACTIVE_SESSIONS", &t,
+ "UIDS", &t,
NULL);
if (r == -ENOENT)
return -ENXIO;
assert_return(machines, -EINVAL);
r = get_files_in_directory("/run/systemd/machines/", &l);
+ if (r == -ENOENT) {
+ *machines = NULL;
+ return 0;
+ }
if (r < 0)
return r;