X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=src%2Fsysv-generator%2Fsysv-generator.c;h=4beea4dd02ed9a4d4332166713680d34e1ff86db;hb=7b061de2d0601a33f7246c4b909f30ddc44d7ab6;hp=2091854e08d6ddf16a1087adcd6460b5269955e5;hpb=d5d8429a12c4b1ef0dcd226c0904f00f4fa4898a;p=elogind.git diff --git a/src/sysv-generator/sysv-generator.c b/src/sysv-generator/sysv-generator.c index 2091854e0..4beea4dd0 100644 --- a/src/sysv-generator/sysv-generator.c +++ b/src/sysv-generator/sysv-generator.c @@ -34,10 +34,6 @@ #include "unit.h" #include "unit-name.h" #include "special.h" -#include "exit-status.h" -#include "def.h" -#include "env-util.h" -#include "fileio.h" #include "hashmap.h" typedef enum RunlevelType { @@ -166,7 +162,7 @@ static int generate_unit_file(SysvStub *s) { /* We might already have a symlink with the same name from a Provides:, * or from backup files like /etc/init.d/foo.bak. Real scripts always win, * so remove an existing link */ - if (is_symlink(unit)) { + if (is_symlink(unit) > 0) { log_warning("Overwriting existing symlink %s with real service", unit); (void) unlink(unit); } @@ -723,10 +719,10 @@ static int fix_order(SysvStub *s, Hashmap *all_services) { return 0; } -static int enumerate_sysv(LookupPaths lp, Hashmap *all_services) { +static int enumerate_sysv(const LookupPaths *lp, Hashmap *all_services) { char **path; - STRV_FOREACH(path, lp.sysvinit_path) { + STRV_FOREACH(path, lp->sysvinit_path) { _cleanup_closedir_ DIR *d = NULL; struct dirent *de; @@ -768,7 +764,7 @@ static int enumerate_sysv(LookupPaths lp, Hashmap *all_services) { if (!fpath) return log_oom(); - if (unit_file_get_state(UNIT_FILE_SYSTEM, NULL, name) >= 0) { + if (unit_file_lookup_state(UNIT_FILE_SYSTEM, NULL, lp, name) >= 0) { log_debug("Native unit for %s already exists, skipping", name); continue; } @@ -793,7 +789,7 @@ static int enumerate_sysv(LookupPaths lp, Hashmap *all_services) { return 0; } -static int set_dependencies_from_rcnd(LookupPaths lp, Hashmap *all_services) { +static int set_dependencies_from_rcnd(const LookupPaths *lp, Hashmap *all_services) { char **p; unsigned i; _cleanup_closedir_ DIR *d = NULL; @@ -804,7 +800,7 @@ static int set_dependencies_from_rcnd(LookupPaths lp, Hashmap *all_services) { _cleanup_set_free_ Set *shutdown_services = NULL; int r = 0; - STRV_FOREACH(p, lp.sysvrcnd_path) + STRV_FOREACH(p, lp->sysvrcnd_path) for (i = 0; i < ELEMENTSOF(rcnd_table); i ++) { struct dirent *de; @@ -954,13 +950,13 @@ int main(int argc, char *argv[]) { return EXIT_FAILURE; } - r = enumerate_sysv(lp, all_services); + r = enumerate_sysv(&lp, all_services); if (r < 0) { log_error("Failed to generate units for all init scripts."); return EXIT_FAILURE; } - r = set_dependencies_from_rcnd(lp, all_services); + r = set_dependencies_from_rcnd(&lp, all_services); if (r < 0) { log_error("Failed to read runlevels from rcnd links."); return EXIT_FAILURE;