]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
nsresource: turn feature absence error into EOPNOTSUPP
authorLennart Poettering <lennart@poettering.net>
Wed, 12 Mar 2025 17:00:57 +0000 (18:00 +0100)
committerLennart Poettering <lennart@poettering.net>
Mon, 17 Mar 2025 15:03:18 +0000 (16:03 +0100)
Let's make it easy for local clients to treat feature absence as a
simple EOPNOTSUPP check.

src/shared/nsresource.c

index 2652d2a62458e2cc7adadf550559906c3cf83ddc..0255a6860cf9480adefaaf53c98ea9ef3c8e05d7 100644 (file)
@@ -144,6 +144,8 @@ int nsresource_register_userns(const char *name, int userns_fd) {
                         SD_JSON_BUILD_PAIR("userNamespaceFileDescriptor", SD_JSON_BUILD_UNSIGNED(userns_fd_idx)));
         if (r < 0)
                 return log_debug_errno(r, "Failed to call RegisterUserNamespace() varlink call: %m");
+        if (streq_ptr(error_id, "io.systemd.NamespaceResource.UserNamespaceInterfaceNotSupported"))
+                return log_debug_errno(SYNTHETIC_ERRNO(EOPNOTSUPP), "Unprivileged user namespace delegation is not supported on this system.");
         if (error_id)
                 return log_debug_errno(sd_varlink_error_to_errno(error_id, reply), "Failed to register user namespace: %s", error_id);