Move no_alias information to shared/

This way it can be used in install.c in subsequent commit.
This commit is contained in:
Zbigniew Jędrzejewski-Szmek
2016-05-01 19:40:51 -04:00
parent f4bf8d2f45
commit 8a993b61d1
11 changed files with 15 additions and 12 deletions
-1
View File
@@ -1050,7 +1050,6 @@ const UnitVTable automount_vtable = {
"Automount\0"
"Install\0",
.no_alias = true,
.no_instances = true,
.init = automount_init,
-1
View File
@@ -1028,7 +1028,6 @@ const UnitVTable busname_vtable = {
"Install\0",
.private_section = "BusName",
.no_alias = true,
.no_instances = true,
.init = busname_init,
+1 -1
View File
@@ -3612,7 +3612,7 @@ static int load_from_path(Unit *u, const char *path) {
/* Hmm, no suitable file found? */
return 0;
if (UNIT_VTABLE(u)->no_alias && set_size(symlink_names) > 1) {
if (!unit_type_may_alias(u->type) && set_size(symlink_names) > 1) {
log_unit_warning(u, "Unit type of %s does not support alias names, refusing loading via symlink.", u->id);
return -ELOOP;
}
-1
View File
@@ -1839,7 +1839,6 @@ const UnitVTable mount_vtable = {
"Install\0",
.private_section = "Mount",
.no_alias = true,
.no_instances = true,
.init = mount_init,
-1
View File
@@ -569,7 +569,6 @@ const UnitVTable scope_vtable = {
"Install\0",
.private_section = "Scope",
.no_alias = true,
.no_instances = true,
.can_transient = true,
-1
View File
@@ -309,7 +309,6 @@ const UnitVTable slice_vtable = {
"Install\0",
.private_section = "Slice",
.no_alias = true,
.no_instances = true,
.can_transient = true,
-1
View File
@@ -1465,7 +1465,6 @@ const UnitVTable swap_vtable = {
"Install\0",
.private_section = "Swap",
.no_alias = true,
.no_instances = true,
.init = swap_init,
+2 -2
View File
@@ -202,7 +202,7 @@ int unit_add_name(Unit *u, const char *text) {
if (u->type != _UNIT_TYPE_INVALID && !u->instance != !i)
return -EINVAL;
if (unit_vtable[t]->no_alias && !set_isempty(u->names))
if (!unit_type_may_alias(t) && !set_isempty(u->names))
return -EEXIST;
if (hashmap_size(u->manager->units) >= MANAGER_MAX_NAMES)
@@ -720,7 +720,7 @@ int unit_merge(Unit *u, Unit *other) {
if (!u->instance != !other->instance)
return -EINVAL;
if (UNIT_VTABLE(u)->no_alias) /* Merging only applies to unit names that support aliases */
if (!unit_type_may_alias(u->type)) /* Merging only applies to unit names that support aliases */
return -EEXIST;
if (other->load_state != UNIT_STUB &&
-3
View File
@@ -416,9 +416,6 @@ struct UnitVTable {
/* The strings to print in status messages */
UnitStatusMessageFormats status_message_formats;
/* Can units of this type have multiple names? */
bool no_alias:1;
/* Instances make no sense for this type */
bool no_instances:1;
+10
View File
@@ -68,6 +68,16 @@ typedef struct {
static int unit_file_lookup_state(UnitFileScope scope, const LookupPaths *paths, const char *name, UnitFileState *ret);
bool unit_type_may_alias(UnitType type) {
return IN_SET(type,
UNIT_SERVICE,
UNIT_SOCKET,
UNIT_TARGET,
UNIT_DEVICE,
UNIT_TIMER,
UNIT_PATH);
}
static int in_search_path(const LookupPaths *p, const char *path) {
_cleanup_free_ char *parent = NULL;
char **i;
+2
View File
@@ -138,6 +138,8 @@ static inline bool UNIT_FILE_INSTALL_INFO_HAS_ALSO(UnitFileInstallInfo *i) {
return !strv_isempty(i->also);
}
bool unit_type_may_alias(UnitType type) _const_;
int unit_file_enable(
UnitFileScope scope,
bool runtime,