Merge pull request #19514 from keszybz/return-UnitNameFlags-more
Return UnitNameFlags from unit_name_to_instance()
This commit is contained in:
@@ -1278,8 +1278,8 @@ int get_timezones(char ***ret) {
|
||||
f = fopen("/usr/share/zoneinfo/zone1970.tab", "re");
|
||||
if (f) {
|
||||
for (;;) {
|
||||
_cleanup_free_ char *line = NULL;
|
||||
char *p, *w;
|
||||
_cleanup_free_ char *line = NULL, *w = NULL;
|
||||
char *p;
|
||||
size_t k;
|
||||
|
||||
r = read_line(f, LONG_LINE_MAX, &line);
|
||||
@@ -1310,12 +1310,10 @@ int get_timezones(char ***ret) {
|
||||
if (!w)
|
||||
return -ENOMEM;
|
||||
|
||||
if (!GREEDY_REALLOC(zones, n_allocated, n_zones + 2)) {
|
||||
free(w);
|
||||
if (!GREEDY_REALLOC(zones, n_allocated, n_zones + 2))
|
||||
return -ENOMEM;
|
||||
}
|
||||
|
||||
zones[n_zones++] = w;
|
||||
zones[n_zones++] = TAKE_PTR(w);
|
||||
zones[n_zones] = NULL;
|
||||
}
|
||||
|
||||
|
||||
@@ -72,7 +72,7 @@ int unit_validate_alias_symlink_and_warn(const char *filename, const char *targe
|
||||
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
|
||||
|
||||
@@ -139,7 +139,7 @@ int unit_name_to_prefix(const char *n, char **ret) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
int unit_name_to_instance(const char *n, char **ret) {
|
||||
UnitNameFlags unit_name_to_instance(const char *n, char **ret) {
|
||||
const char *p, *d;
|
||||
|
||||
assert(n);
|
||||
|
||||
@@ -22,8 +22,8 @@ bool unit_instance_is_valid(const char *i) _pure_;
|
||||
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);
|
||||
|
||||
@@ -1754,12 +1754,12 @@ int unit_file_verify_alias(const UnitFileInstallInfo *i, const char *dst, char *
|
||||
"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);
|
||||
@@ -1776,11 +1776,11 @@ int unit_file_verify_alias(const UnitFileInstallInfo *i, const char *dst, char *
|
||||
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",
|
||||
|
||||
@@ -471,8 +471,8 @@ static void test_build_parent_slice(void) {
|
||||
}
|
||||
|
||||
static void test_unit_name_to_instance(void) {
|
||||
UnitNameFlags r;
|
||||
char *instance;
|
||||
int r;
|
||||
|
||||
log_info("/* %s */", __func__);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user