summaryrefslogtreecommitdiff
path: root/src/shared/condition.c
diff options
context:
space:
mode:
authorZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>2021-02-22 22:09:38 +0100
committerZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>2021-02-23 01:11:18 +0100
commit8ebfd50aaf5503de0e77e7786095760030458e67 (patch)
tree6003d3d8635f3b81087f0fad0c09cccebd499ed0 /src/shared/condition.c
parent6c3f7ca036829825f344ffb364354faee5db174e (diff)
downloadsystemd-8ebfd50aaf5503de0e77e7786095760030458e67.tar.gz
shared/condition: add ConditionControlGroupController=v1|v2
Before, we only allowed conditionalizing on controllers, not the hierarchy. This commit extends this to allow a simple check for v1 (i.e. classic or hybrid), and v2 (full unified). An alternative approach would be to add a separate Condition for this, but I'm not too keen on that, considering that v1 is already being deprecrecated (c.f. 82f3063218).
Diffstat (limited to 'src/shared/condition.c')
-rw-r--r--src/shared/condition.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/shared/condition.c b/src/shared/condition.c
index 1e63956c05..d84377c269 100644
--- a/src/shared/condition.c
+++ b/src/shared/condition.c
@@ -354,6 +354,15 @@ static int condition_test_control_group_controller(Condition *c, char **env) {
assert(c->parameter);
assert(c->type == CONDITION_CONTROL_GROUP_CONTROLLER);
+ if (streq(c->parameter, "v2"))
+ return cg_all_unified();
+ if (streq(c->parameter, "v1")) {
+ r = cg_all_unified();
+ if (r < 0)
+ return r;
+ return !r;
+ }
+
r = cg_mask_supported(&system_mask);
if (r < 0)
return log_debug_errno(r, "Failed to determine supported controllers: %m");