mirror of
https://github.com/systemd/systemd-stable.git
synced 2025-01-11 05:17:44 +03:00
unit: allow symlinking unit files to /dev/null
This commit is contained in:
parent
c24eb49e6a
commit
8f05424d50
2
fixme
2
fixme
@ -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!
|
||||
|
@ -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;
|
||||
|
Loading…
Reference in New Issue
Block a user