chiark
/
gitweb
/
~ianmdlvl
/
elogind.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
networkd: network - rename ipv6token parser
[elogind.git]
/
src
/
sysv-generator
/
sysv-generator.c
diff --git
a/src/sysv-generator/sysv-generator.c
b/src/sysv-generator/sysv-generator.c
index 662d08cccb2542b455dfe7902395cfd28eaad78d..6e39b449eb7902e7de97da8d94beec2ef9f06f89 100644
(file)
--- 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);
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();
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");
/* 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';
*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. */
/* 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");
/* 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);
/* 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;
if (!r)
return -ENOMEM;
@@
-772,6
+768,11
@@
static int enumerate_sysv(LookupPaths lp, Hashmap *all_services) {
if (!fpath)
return log_oom();
if (!fpath)
return log_oom();
+ if (unit_file_get_state(UNIT_FILE_SYSTEM, NULL, name) >= 0) {
+ log_debug("Native unit for %s already exists, skipping", name);
+ continue;
+ }
+
service = new0(SysvStub, 1);
if (!service)
return log_oom();
service = new0(SysvStub, 1);
if (!service)
return log_oom();
@@
-856,7
+857,8
@@
static int set_dependencies_from_rcnd(LookupPaths lp, Hashmap *all_services) {
service = hashmap_get(all_services, name);
if (!service){
service = hashmap_get(all_services, name);
if (!service){
- log_warning("Could not find init script for %s", name);
+ log_debug("Ignoring %s symlink in %s, not generating %s.",
+ de->d_name, rcnd_table[i].path, name);
continue;
}
continue;
}