const char *src, *dst;
_cleanup_free_ char *src_instance = NULL, *dst_instance = NULL;
UnitType src_unit_type, dst_unit_type;
- int src_name_type, dst_name_type;
+ UnitNameFlags src_name_type, dst_name_type;
/* Check if the *alias* symlink is valid. This applies to symlinks like
* /etc/systemd/system/dbus.service → dbus-broker.service, but not to .wants or .requires symlinks
bool unit_suffix_is_valid(const char *s) _pure_;
int unit_name_to_prefix(const char *n, char **ret);
-int unit_name_to_instance(const char *n, char **ret);
-static inline int unit_name_classify(const char *n) {
+UnitNameFlags unit_name_to_instance(const char *n, char **ret);
+static inline UnitNameFlags unit_name_classify(const char *n) {
return unit_name_to_instance(n, NULL);
}
int unit_name_to_prefix_and_instance(const char *n, char **ret);
"Invalid path \"%s\" in alias.", dir);
*p = '\0'; /* dir should now be a unit name */
- r = unit_name_classify(dir);
- if (r < 0)
+ UnitNameFlags type = unit_name_classify(dir);
+ if (type < 0)
return log_warning_errno(SYNTHETIC_ERRNO(EXDEV),
"Invalid unit name component \"%s\" in alias.", dir);
- const bool instance_propagation = r == UNIT_NAME_TEMPLATE;
+ const bool instance_propagation = type == UNIT_NAME_TEMPLATE;
/* That's the name we want to use for verification. */
r = unit_symlink_name_compatible(path_alias, i->name, instance_propagation);
if (unit_name_is_valid(dst, UNIT_NAME_TEMPLATE)) {
_cleanup_free_ char *inst = NULL;
- r = unit_name_to_instance(i->name, &inst);
- if (r < 0)
- return log_error_errno(r, "Failed to extract instance name from %s: %m", i->name);
+ UnitNameFlags type = unit_name_to_instance(i->name, &inst);
+ if (type < 0)
+ return log_error_errno(type, "Failed to extract instance name from %s: %m", i->name);
- if (r == UNIT_NAME_INSTANCE) {
+ if (type == UNIT_NAME_INSTANCE) {
r = unit_name_replace_instance(dst, inst, &dst_updated);
if (r < 0)
return log_error_errno(r, "Failed to build unit name from %s+%s: %m",