chiark / gitweb /
systemctl: add add-wants and add-requires verbs
[elogind.git] / src / core / selinux-access.c
index 21c7a8c5bcadd562419a70e22926dc88f347ff68..184f202c1e698c43ed19bda1c5df9101fa7abe1b 100644 (file)
@@ -169,7 +169,6 @@ void selinux_access_free(void) {
    still be generated if the access would be denied in enforcing mode.
 */
 int selinux_generic_access_check(
-                sd_bus *bus,
                 sd_bus_message *message,
                 const char *path,
                 const char *permission,
@@ -183,7 +182,6 @@ int selinux_generic_access_check(
         char **cmdline = NULL;
         int r = 0;
 
-        assert(bus);
         assert(message);
         assert(permission);
         assert(error);
@@ -252,10 +250,30 @@ finish:
         return r;
 }
 
+int selinux_unit_access_check_strv(char **units,
+                                sd_bus_message *message,
+                                Manager *m,
+                                const char *permission,
+                                sd_bus_error *error) {
+        char **i;
+        Unit *u;
+        int r;
+
+        STRV_FOREACH(i, units) {
+                u = manager_get_unit(m, *i);
+                if (u) {
+                        r = selinux_unit_access_check(u, message, permission, error);
+                        if (r < 0)
+                                return r;
+                }
+        }
+
+        return 0;
+}
+
 #else
 
 int selinux_generic_access_check(
-                sd_bus *bus,
                 sd_bus_message *message,
                 const char *path,
                 const char *permission,
@@ -267,4 +285,12 @@ int selinux_generic_access_check(
 void selinux_access_free(void) {
 }
 
+int selinux_unit_access_check_strv(char **units,
+                                sd_bus_message *message,
+                                Manager *m,
+                                const char *permission,
+                                sd_bus_error *error) {
+        return 0;
+}
+
 #endif