diff options
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", |