1
0
mirror of https://github.com/systemd/systemd.git synced 2024-10-27 10:25:37 +03:00

unit: allow symlinking unit files to /dev/null

This commit is contained in:
Lennart Poettering 2010-07-21 03:13:15 +02:00
parent c24eb49e6a
commit 8f05424d50
2 changed files with 13 additions and 15 deletions

2
fixme
View File

@ -35,8 +35,6 @@
* systemctl status $PID, systemctl stop $PID!
/dev/null symlinks supporten
* place /etc/inittab with explaining blurb.
* /etc must always take precedence even if we follow symlinks!

View File

@ -1312,16 +1312,20 @@ static int open_follow(char **filename, FILE **_f, Set *names, char **_final) {
path_kill_slashes(*filename);
/* Add the file name we are currently looking at to
* the names of this unit */
* the names of this unit, but only if it is a valid
* unit name. */
name = file_name_from_path(*filename);
if (!(id = set_get(names, name))) {
if (!(id = strdup(name)))
return -ENOMEM;
if (unit_name_is_valid(name)) {
if (!(id = set_get(names, name))) {
if ((r = set_put(names, id)) < 0) {
free(id);
return r;
if (!(id = strdup(name)))
return -ENOMEM;
if ((r = set_put(names, id)) < 0) {
free(id);
return r;
}
}
}
@ -1340,7 +1344,7 @@ static int open_follow(char **filename, FILE **_f, Set *names, char **_final) {
*filename = target;
}
if (!(f = fdopen(fd, "r"))) {
if (!(f = fdopen(fd, "re"))) {
r = -errno;
close_nointr_nofail(fd);
return r;
@ -1730,6 +1734,7 @@ static int load_from_path(Unit *u, const char *path) {
}
if (!filename) {
/* Hmm, no suitable file found? */
r = 0;
goto finish;
}
@ -1750,11 +1755,6 @@ static int load_from_path(Unit *u, const char *path) {
goto finish;
}
if (!S_ISREG(st.st_mode)) {
r = -ENOENT;
goto finish;
}
/* Now, parse the file contents */
if ((r = config_parse(filename, f, sections, items, false, u)) < 0)
goto finish;