From: Lennart Poettering Date: Tue, 20 Sep 2011 23:07:25 +0000 (+0200) Subject: condition: always follow symlinks for condition checks, to mimic test X-Git-Tag: v36~45 X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=commitdiff_plain;h=8571962ca31a468959eedce26fda278587327ba5 condition: always follow symlinks for condition checks, to mimic test --- diff --git a/man/systemd.unit.xml b/man/systemd.unit.xml index 4e2590d00..4437510df 100644 --- a/man/systemd.unit.xml +++ b/man/systemd.unit.xml @@ -691,7 +691,7 @@ is prefixed with an exclamation mark (!), the test is negated, and the unit is only started if the path does not - exist. The test follows symlinks. + exist. ConditionPathExistsGlob= works in a similar way, but checks for the existence of at least one file or @@ -701,9 +701,8 @@ is similar to ConditionPathExists= but verifies whether a certain path - exists and is a directory. It does not - follow - symlinks. ConditionPathIsMountPoint= + exists and is a + directory. ConditionPathIsMountPoint= is similar to ConditionPathExists= but verifies whether a certain path @@ -713,7 +712,7 @@ ConditionPathExists= but verifies whether a certain path exists, is a regular file and marked - executable. It follows symlinks. + executable. ConditionDirectoryNotEmpty= is similar to ConditionPathExists= @@ -781,7 +780,8 @@ prefix an argument with the pipe symbol and an exclamation mark the pipe symbol must be passed first, the - exclamation second. + exclamation second. All path checks + follow symlinks. diff --git a/src/condition.c b/src/condition.c index 131b45680..7f8564966 100644 --- a/src/condition.c +++ b/src/condition.c @@ -162,7 +162,7 @@ bool condition_test(Condition *c) { case CONDITION_PATH_IS_DIRECTORY: { struct stat st; - if (lstat(c->parameter, &st) < 0) + if (stat(c->parameter, &st) < 0) return !c->negate; return S_ISDIR(st.st_mode) == !c->negate; }