Move no_alias information to shared/
authorZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
Sat, 30 Apr 2016 20:21:41 +0000 (16:21 -0400)
committerZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
Sun, 1 May 2016 23:40:51 +0000 (19:40 -0400)
This way it can be used in install.c in subsequent commit.

src/core/automount.c
src/core/busname.c
src/core/load-fragment.c
src/core/mount.c
src/core/scope.c
src/core/slice.c
src/core/swap.c
src/core/unit.c
src/core/unit.h
src/shared/install.c
src/shared/install.h

index 7c55d7b..7374d50 100644 (file)
@@ -1050,7 +1050,6 @@ const UnitVTable automount_vtable = {
                 "Automount\0"
                 "Install\0",
 
-        .no_alias = true,
         .no_instances = true,
 
         .init = automount_init,
index f4f4333..4d43bd2 100644 (file)
@@ -1028,7 +1028,6 @@ const UnitVTable busname_vtable = {
                 "Install\0",
         .private_section = "BusName",
 
-        .no_alias = true,
         .no_instances = true,
 
         .init = busname_init,
index 31b995a..1a8c039 100644 (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;
         }
index cc07873..adc74c3 100644 (file)
@@ -1839,7 +1839,6 @@ const UnitVTable mount_vtable = {
                 "Install\0",
         .private_section = "Mount",
 
-        .no_alias = true,
         .no_instances = true,
 
         .init = mount_init,
index 7078d1f..3915e5c 100644 (file)
@@ -569,7 +569,6 @@ const UnitVTable scope_vtable = {
                 "Install\0",
         .private_section = "Scope",
 
-        .no_alias = true,
         .no_instances = true,
         .can_transient = true,
 
index 63a77c9..96c7c74 100644 (file)
@@ -309,7 +309,6 @@ const UnitVTable slice_vtable = {
                 "Install\0",
         .private_section = "Slice",
 
-        .no_alias = true,
         .no_instances = true,
         .can_transient = true,
 
index d880247..f486a44 100644 (file)
@@ -1465,7 +1465,6 @@ const UnitVTable swap_vtable = {
                 "Install\0",
         .private_section = "Swap",
 
-        .no_alias = true,
         .no_instances = true,
 
         .init = swap_init,
index 4a129ff..0313ee2 100644 (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 &&
index 5909652..6ac925a 100644 (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;
 
index 931d3e2..b92afbc 100644 (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;
index 4ffc5a2..8a8bd09 100644 (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,