diff options
author | Lennart Poettering <lennart@poettering.net> | 2010-10-06 02:33:40 +0200 |
---|---|---|
committer | Lennart Poettering <lennart@poettering.net> | 2010-10-06 02:33:40 +0200 |
commit | 71fad6751434f06485a744d41be2d807303c1184 (patch) | |
tree | 27723f8bbab9a2a808e0beab10c6e2605f74f1de /src/unit.c | |
parent | 647f1fafb5f456b80bb799d07d345ce7fd2308ee (diff) |
systemctl: require correctly formed unit names when enabling units
Diffstat (limited to 'src/unit.c')
-rw-r--r-- | src/unit.c | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/src/unit.c b/src/unit.c index fefa0eb516..71ef2a706d 100644 --- a/src/unit.c +++ b/src/unit.c @@ -2207,6 +2207,28 @@ bool unit_pending_active(Unit *u) { return false; } +UnitType unit_name_to_type(const char *n) { + UnitType t; + + assert(n); + + for (t = 0; t < _UNIT_TYPE_MAX; t++) + if (endswith(n, unit_vtable[t]->suffix)) + return t; + + return _UNIT_TYPE_INVALID; +} + +bool unit_name_is_valid(const char *n) { + UnitType t; + + t = unit_name_to_type(n); + if (t < 0 || t >= _UNIT_TYPE_MAX) + return false; + + return unit_name_is_valid_no_type(n); +} + static const char* const unit_load_state_table[_UNIT_LOAD_STATE_MAX] = { [UNIT_STUB] = "stub", [UNIT_LOADED] = "loaded", |