X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=blobdiff_plain;f=src%2Fsysv-generator%2Fsysv-generator.c;h=a2f853380cc49796a3ebeaee88aeff432c9e5b7a;hp=368d420df3bb450dd59645cb0e6f9a2cfa512231;hb=79008bddf679a5e0900369950eb346c9fa687107;hpb=b2fadec6048adb3596f2633cb7fe7a49f5937a18 diff --git a/src/sysv-generator/sysv-generator.c b/src/sysv-generator/sysv-generator.c index 368d420df..a2f853380 100644 --- a/src/sysv-generator/sysv-generator.c +++ b/src/sysv-generator/sysv-generator.c @@ -31,7 +31,6 @@ #include "path-util.h" #include "path-lookup.h" #include "log.h" -#include "strv.h" #include "unit.h" #include "unit-name.h" #include "special.h" @@ -114,9 +113,9 @@ static int add_symlink(const char *service, const char *where) { } static int generate_unit_file(SysvStub *s) { - char *unit; char **p; _cleanup_fclose_ FILE *f = NULL; + _cleanup_free_ char *unit = NULL; _cleanup_free_ char *before = NULL; _cleanup_free_ char *after = NULL; _cleanup_free_ char *wants = NULL; @@ -193,7 +192,7 @@ static int generate_unit_file(SysvStub *s) { STRV_FOREACH(p, s->wanted_by) { r = add_symlink(s->name, *p); if (r < 0) - log_error_unit(s->name, "Failed to create 'Wants' symlink to %s: %s", *p, strerror(-r)); + log_unit_error(s->name, "Failed to create 'Wants' symlink to %s: %s", *p, strerror(-r)); } return 0; @@ -321,7 +320,7 @@ static int load_sysv(SysvStub *s) { if (feof(f)) break; - log_error_unit(s->name, + log_unit_error(s->name, "Failed to read configuration file '%s': %m", s->path); return -errno; @@ -396,7 +395,7 @@ static int load_sysv(SysvStub *s) { fn = strstrip(t+8); if (!path_is_absolute(fn)) { - log_error_unit(s->name, + log_unit_error(s->name, "[%s:%u] PID file not absolute. Ignoring.", s->path, line); continue; @@ -490,12 +489,12 @@ static int load_sysv(SysvStub *s) { } if (r < 0) - log_error_unit(s->name, + log_unit_error(s->name, "[%s:%u] Failed to add LSB Provides name %s, ignoring: %s", s->path, line, m, strerror(-r)); } if (!isempty(state_)) - log_error_unit(s->name, + log_unit_error(s->name, "[%s:%u] Trailing garbage in Provides, ignoring.", s->path, line); @@ -518,7 +517,7 @@ static int load_sysv(SysvStub *s) { r = sysv_translate_facility(n, basename(s->path), &m); if (r < 0) { - log_error_unit(s->name, + log_unit_error(s->name, "[%s:%u] Failed to translate LSB dependency %s, ignoring: %s", s->path, line, n, strerror(-r)); continue; @@ -552,12 +551,12 @@ static int load_sysv(SysvStub *s) { } if (r < 0) - log_error_unit(s->name, + log_unit_error(s->name, "[%s:%u] Failed to add dependency on %s, ignoring: %s", s->path, line, m, strerror(-r)); } if (!isempty(state_)) - log_error_unit(s->name, + log_unit_error(s->name, "[%s:%u] Trailing garbage in %*s, ignoring.", s->path, line, (int)(strchr(t, ':') - t), t); @@ -810,9 +809,8 @@ static int set_dependencies_from_rcnd(LookupPaths lp, Hashmap *all_services) { goto finish; } - if (hashmap_contains(all_services, name)) - service = hashmap_get(all_services, name); - else { + service = hashmap_get(all_services, name); + if (!service){ log_warning("Could not find init script for %s", name); continue; } @@ -824,8 +822,7 @@ static int set_dependencies_from_rcnd(LookupPaths lp, Hashmap *all_services) { MAX(a*10 + b, service->sysv_start_priority); } - r = set_ensure_allocated(&runlevel_services[i], - trivial_hash_func, trivial_compare_func); + r = set_ensure_allocated(&runlevel_services[i], NULL); if (r < 0) goto finish; @@ -836,8 +833,7 @@ static int set_dependencies_from_rcnd(LookupPaths lp, Hashmap *all_services) { } else if (de->d_name[0] == 'K' && (rcnd_table[i].type == RUNLEVEL_DOWN)) { - r = set_ensure_allocated(&shutdown_services, - trivial_hash_func, trivial_compare_func); + r = set_ensure_allocated(&shutdown_services, NULL); if (r < 0) goto finish; @@ -905,7 +901,7 @@ int main(int argc, char *argv[]) { return EXIT_FAILURE; } - all_services = hashmap_new(string_hash_func, string_compare_func); + all_services = hashmap_new(&string_hash_ops); if (!all_services) { log_oom(); return EXIT_FAILURE;