]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
sd-login,test-login: return -ENODATA from sd_pid_get_unit too
authorZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
Fri, 19 May 2017 02:32:19 +0000 (22:32 -0400)
committerZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
Fri, 19 May 2017 02:32:19 +0000 (22:32 -0400)
After all, we might be running on a non-systemd system.

src/libsystemd/sd-login/sd-login.c
src/libsystemd/sd-login/test-login.c

index cd844b3105b389137a7e009be876c1321edd1727..82a94bfd5c279ac57402e80ae4ccb337701effd0 100644 (file)
@@ -66,11 +66,13 @@ _public_ int sd_pid_get_session(pid_t pid, char **session) {
 }
 
 _public_ int sd_pid_get_unit(pid_t pid, char **unit) {
+        int r;
 
         assert_return(pid >= 0, -EINVAL);
         assert_return(unit, -EINVAL);
 
-        return cg_pid_get_unit(pid, unit);
+        r = cg_pid_get_unit(pid, unit);
+        return r == -ENXIO ? -ENODATA : r;
 }
 
 _public_ int sd_pid_get_user_unit(pid_t pid, char **unit) {
index fb7d4e2ece9f13e26e9051858b03deab2084596c..6889d2f0b40a1b3bce9a802b036a3284281f03e0 100644 (file)
@@ -59,7 +59,8 @@ static void test_login(void) {
         uid_t u, u2;
         char *t, **seats, **sessions;
 
-        assert_se(sd_pid_get_unit(0, &unit) >= 0);
+        r = sd_pid_get_unit(0, &unit);
+        assert_se(r >= 0 || r == -ENODATA);
         log_info("sd_pid_get_unit(0, …) → \"%s\"", unit);
 
         r = sd_pid_get_user_unit(0, &user_unit);