case EXIT_STDERR:
return "STDERR";
- case EXIT_TCPWRAP:
- return "TCPWRAP";
-
case EXIT_PAM:
return "PAM";
case EXIT_RUNTIME_DIRECTORY:
return "RUNTIME_DIRECTORY";
+
+ case EXIT_CHOWN:
+ return "CHOWN";
+
+ case EXIT_MAKE_STARTER:
+ return "MAKE_STARTER";
+
+ case EXIT_BUS_ENDPOINT:
+ return "EXIT_BUS_ENDPOINT";
}
}
if (code == CLD_EXITED)
return status == 0 ||
(success_status &&
- set_contains(success_status->code, INT_TO_PTR(status)));
+ set_contains(success_status->status, INT_TO_PTR(status)));
/* If a daemon does not implement handlers for some of the
* signals that's not considered an unclean shutdown */
(status == EXIT_NOTINSTALLED || status == EXIT_NOTCONFIGURED);
}
-int parse_show_status(const char *v, ShowStatus *ret) {
- int r;
+void exit_status_set_free(ExitStatusSet *x) {
+ assert(x);
- assert(v);
- assert(ret);
+ set_free(x->status);
+ set_free(x->signal);
+ x->status = x->signal = NULL;
+}
- if (streq(v, "auto")) {
- *ret = SHOW_STATUS_AUTO;
- return 0;
- }
- r = parse_boolean(v);
- if (r < 0)
- return r;
- *ret = r ? SHOW_STATUS_YES : SHOW_STATUS_NO;
- return 0;
+bool exit_status_set_is_empty(ExitStatusSet *x) {
+ if (!x)
+ return true;
+
+ return set_isempty(x->status) && set_isempty(x->signal);
}