summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLennart Poettering <lennart@poettering.net>2015-01-28 15:11:49 +0100
committerLennart Poettering <lennart@poettering.net>2015-01-28 15:11:49 +0100
commit3315f085178f46155fda345d9526c09083b45946 (patch)
treeca61292253f8cd3747e5f9bc489cc037c336babc
parent82a2b6bb5e4e5d294f09af778c48974a7857afb6 (diff)
sysv-generator: no need to check for identical symlinks source and target twice
http://lists.freedesktop.org/archives/systemd-devel/2015-January/027594.html
-rw-r--r--src/sysv-generator/sysv-generator.c12
1 files changed, 4 insertions, 8 deletions
diff --git a/src/sysv-generator/sysv-generator.c b/src/sysv-generator/sysv-generator.c
index 662d08cccb..673f04dc27 100644
--- a/src/sysv-generator/sysv-generator.c
+++ b/src/sysv-generator/sysv-generator.c
@@ -119,11 +119,6 @@ static int add_alias(const char *service, const char *alias) {
assert(service);
assert(alias);
- if (streq(service, alias)) {
- log_error("Ignoring creation of an alias %s for itself", service);
- return 0;
- }
-
link = strjoin(arg_dest, "/", alias, NULL);
if (!link)
return log_oom();
@@ -300,8 +295,10 @@ static int sysv_translate_facility(const char *name, const char *filename, char
/* strip ".sh" suffix from file name for comparison */
filename_no_sh = strdupa(filename);
e = endswith(filename_no_sh, ".sh");
- if (e)
+ if (e) {
*e = '\0';
+ filename = filename_no_sh;
+ }
/* If we don't know this name, fallback heuristics to figure
* out whether something is a target or a service alias. */
@@ -312,13 +309,12 @@ static int sysv_translate_facility(const char *name, const char *filename, char
/* Facilities starting with $ are most likely targets */
r = unit_name_build(n, NULL, ".target");
- } else if (filename && streq(name, filename_no_sh))
+ } else if (streq_ptr(n, filename))
/* Names equaling the file name of the services are redundant */
return 0;
else
/* Everything else we assume to be normal service names */
r = sysv_translate_name(n);
-
if (!r)
return -ENOMEM;