X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=src%2Fservice.c;h=df0d4002409f8d5cf3cb5ac49087d9bf8c9790f0;hb=5275d3c13d6321ffd749a976aaad69321313fac7;hp=1dc3e1ea00d3b38fac9ca7159ce31f3cbb40d342;hpb=ee0dd8021b3d6203235c8b0cd014431c8fb38d8f;p=elogind.git diff --git a/src/service.c b/src/service.c index 1dc3e1ea0..df0d40024 100644 --- a/src/service.c +++ b/src/service.c @@ -260,7 +260,8 @@ static int sysv_translate_facility(const char *name, char **_r) { #ifdef TARGET_FEDORA /* Fedora extensions, lacking the $ prefix */ "MTA", SPECIAL_MAIL_TRANSFER_AGENT_TARGET, - "smtpdaemon", SPECIAL_MAIL_TRANSFER_AGENT_TARGET + "smtpdaemon", SPECIAL_MAIL_TRANSFER_AGENT_TARGET, + "httpd", SPECIAL_HTTP_DAEMON_TARGET, #endif }; @@ -276,9 +277,11 @@ static int sysv_translate_facility(const char *name, char **_r) { } if (*name == '$') - return 0; + r = unit_name_build(name+1, NULL, ".target"); + else + r = sysv_translate_name(name); - if (!(r = sysv_translate_name(name))) + if (!r) return -ENOMEM; finish: @@ -316,8 +319,8 @@ static int sysv_fix_order(Service *s) { /* If both units have modern headers we don't care * about the priorities */ - if ((!s->sysv_path || s->sysv_has_lsb) && - (!t->sysv_path || t->sysv_has_lsb)) + if ((s->meta.fragment_path || s->sysv_has_lsb) && + (t->meta.fragment_path || t->sysv_has_lsb)) continue; special_s = s->sysv_runlevels && !chars_intersect(RUNLEVELS_UP, s->sysv_runlevels); @@ -2277,7 +2280,7 @@ static void service_sigchld_event(Unit *u, pid_t pid, int code, int status) { assert(s); assert(pid >= 0); - if (s->sysv_path) + if (!s->meta.fragment_path) success = is_clean_exit_lsb(code, status); else success = is_clean_exit(code, status);