summaryrefslogtreecommitdiff
path: root/src/shared
diff options
context:
space:
mode:
Diffstat (limited to 'src/shared')
-rw-r--r--src/shared/install.c17
-rw-r--r--src/shared/install.h2
2 files changed, 13 insertions, 6 deletions
diff --git a/src/shared/install.c b/src/shared/install.c
index cfd4a5af8a..881f715a07 100644
--- a/src/shared/install.c
+++ b/src/shared/install.c
@@ -38,6 +38,7 @@
#include "conf-files.h"
#include "specifier.h"
#include "install-printf.h"
+#include "special.h"
typedef struct {
Hashmap *will_install;
@@ -1560,7 +1561,7 @@ int unit_file_reenable(
int unit_file_set_default(
UnitFileScope scope,
const char *root_dir,
- char *file,
+ const char *file,
UnitFileChange **changes,
unsigned *n_changes) {
@@ -1573,6 +1574,7 @@ int unit_file_set_default(
assert(scope >= 0);
assert(scope < _UNIT_FILE_SCOPE_MAX);
+ assert(file);
if (unit_name_to_type(file) != UNIT_TARGET)
return -EINVAL;
@@ -1589,13 +1591,14 @@ int unit_file_set_default(
if (r < 0)
return r;
- i = (InstallInfo*)hashmap_first(c.will_install);
+ assert_se(i = hashmap_first(c.will_install));
r = unit_file_search(&c, i, &paths, root_dir, false);
if (r < 0)
return r;
- path = strappenda(config_path, "/default.target");
+ path = strappenda(config_path, "/" SPECIAL_DEFAULT_TARGET);
+
r = create_symlink(i->path, path, true, changes, n_changes);
if (r < 0)
return r;
@@ -1612,6 +1615,10 @@ int unit_file_get_default(
char **p;
int r;
+ assert(scope >= 0);
+ assert(scope < _UNIT_FILE_SCOPE_MAX);
+ assert(name);
+
r = lookup_paths_init_from_scope(&paths, scope);
if (r < 0)
return r;
@@ -1621,9 +1628,9 @@ int unit_file_get_default(
char *n;
if (isempty(root_dir))
- path = strappend(*p, "/default.target");
+ path = strappend(*p, "/" SPECIAL_DEFAULT_TARGET);
else
- path = strjoin(root_dir, "/", *p, "/default.target", NULL);
+ path = strjoin(root_dir, "/", *p, "/" SPECIAL_DEFAULT_TARGET, NULL);
if (!path)
return -ENOMEM;
diff --git a/src/shared/install.h b/src/shared/install.h
index 5609d1e8df..3c2e162852 100644
--- a/src/shared/install.h
+++ b/src/shared/install.h
@@ -80,7 +80,7 @@ int unit_file_link(UnitFileScope scope, bool runtime, const char *root_dir, char
int unit_file_preset(UnitFileScope scope, bool runtime, const char *root_dir, char *files[], bool force, UnitFileChange **changes, unsigned *n_changes);
int unit_file_mask(UnitFileScope scope, bool runtime, const char *root_dir, char *files[], bool force, UnitFileChange **changes, unsigned *n_changes);
int unit_file_unmask(UnitFileScope scope, bool runtime, const char *root_dir, char *files[], UnitFileChange **changes, unsigned *n_changes);
-int unit_file_set_default(UnitFileScope scope, const char *root_dir, char *file, UnitFileChange **changes, unsigned *n_changes);
+int unit_file_set_default(UnitFileScope scope, const char *root_dir, const char *file, UnitFileChange **changes, unsigned *n_changes);
int unit_file_get_default(UnitFileScope scope, const char *root_dir, char **name);
UnitFileState unit_file_get_state(UnitFileScope scope, const char *root_dir, const char *filename);