summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Makefile.am4
-rw-r--r--src/core/main.c51
-rw-r--r--src/core/manager.h1
-rw-r--r--src/shared/conf-parser.c29
-rw-r--r--src/shared/conf-parser.h1
-rw-r--r--src/shared/exit-status.c17
-rw-r--r--src/shared/exit-status.h14
7 files changed, 47 insertions, 70 deletions
diff --git a/Makefile.am b/Makefile.am
index 3eafcff4be..5a02d1ef32 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -1018,7 +1018,9 @@ libsystemd_core_la_SOURCES = \
src/core/audit-fd.c \
src/core/audit-fd.h \
src/core/async.c \
- src/core/async.h
+ src/core/async.h \
+ src/core/show-status.c \
+ src/core/show-status.h
if HAVE_KMOD
libsystemd_core_la_SOURCES += \
diff --git a/src/core/main.c b/src/core/main.c
index 71ec607dec..4ca847c781 100644
--- a/src/core/main.c
+++ b/src/core/main.c
@@ -468,16 +468,17 @@ DEFINE_SETTER(config_parse_target, log_set_target_from_string, "target")
DEFINE_SETTER(config_parse_color, log_show_color_from_string, "color" )
DEFINE_SETTER(config_parse_location, log_show_location_from_string, "location")
-static int config_parse_cpu_affinity2(const char *unit,
- const char *filename,
- unsigned line,
- const char *section,
- unsigned section_line,
- const char *lvalue,
- int ltype,
- const char *rvalue,
- void *data,
- void *userdata) {
+static int config_parse_cpu_affinity2(
+ const char *unit,
+ const char *filename,
+ unsigned line,
+ const char *section,
+ unsigned section_line,
+ const char *lvalue,
+ int ltype,
+ const char *rvalue,
+ void *data,
+ void *userdata) {
char *w;
size_t l;
@@ -524,6 +525,36 @@ static int config_parse_cpu_affinity2(const char *unit,
return 0;
}
+static int config_parse_show_status(
+ const char* unit,
+ const char *filename,
+ unsigned line,
+ const char *section,
+ unsigned section_line,
+ const char *lvalue,
+ int ltype,
+ const char *rvalue,
+ void *data,
+ void *userdata) {
+
+ int k;
+ ShowStatus *b = data;
+
+ assert(filename);
+ assert(lvalue);
+ assert(rvalue);
+ assert(data);
+
+ k = parse_show_status(rvalue, b);
+ if (k < 0) {
+ log_syntax(unit, LOG_ERR, filename, line, -k,
+ "Failed to parse show status setting, ignoring: %s", rvalue);
+ return 0;
+ }
+
+ return 0;
+}
+
static void strv_free_free(char ***l) {
char ***i;
diff --git a/src/core/manager.h b/src/core/manager.h
index 3192b63dfd..92985caefb 100644
--- a/src/core/manager.h
+++ b/src/core/manager.h
@@ -58,6 +58,7 @@ typedef enum ManagerExitCode {
#include "execute.h"
#include "unit-name.h"
#include "exit-status.h"
+#include "show-status.h"
struct Manager {
/* Note that the set of units we know of is allowed to be
diff --git a/src/shared/conf-parser.c b/src/shared/conf-parser.c
index f39a4cd1fd..accbdac6b1 100644
--- a/src/shared/conf-parser.c
+++ b/src/shared/conf-parser.c
@@ -565,35 +565,6 @@ int config_parse_bool(const char* unit,
return 0;
}
-int config_parse_show_status(const char* unit,
- const char *filename,
- unsigned line,
- const char *section,
- unsigned section_line,
- const char *lvalue,
- int ltype,
- const char *rvalue,
- void *data,
- void *userdata) {
-
- int k;
- ShowStatus *b = data;
-
- assert(filename);
- assert(lvalue);
- assert(rvalue);
- assert(data);
-
- k = parse_show_status(rvalue, b);
- if (k < 0) {
- log_syntax(unit, LOG_ERR, filename, line, -k,
- "Failed to parse show status setting, ignoring: %s", rvalue);
- return 0;
- }
-
- return 0;
-}
-
int config_parse_string(const char *unit,
const char *filename,
unsigned line,
diff --git a/src/shared/conf-parser.h b/src/shared/conf-parser.h
index 7948465d08..50e9270af3 100644
--- a/src/shared/conf-parser.h
+++ b/src/shared/conf-parser.h
@@ -101,7 +101,6 @@ int config_parse_iec_size(const char *unit, const char *filename, unsigned line,
int config_parse_si_size(const char *unit, const char *filename, unsigned line, const char *section, unsigned section_line, const char *lvalue, int ltype, const char *rvalue, void *data, void *userdata);
int config_parse_iec_off(const char *unit, const char *filename, unsigned line, const char *section, unsigned section_line, const char *lvalue, int ltype, const char *rvalue, void *data, void *userdata);
int config_parse_bool(const char *unit, const char *filename, unsigned line, const char *section, unsigned section_line, const char *lvalue, int ltype, const char *rvalue, void *data, void *userdata);
-int config_parse_show_status(const char *unit, const char *filename, unsigned line, const char *section, unsigned section_line, const char *lvalue, int ltype, const char *rvalue, void *data, void *userdata);
int config_parse_string(const char *unit, const char *filename, unsigned line, const char *section, unsigned section_line, const char *lvalue, int ltype, const char *rvalue, void *data, void *userdata);
int config_parse_path(const char *unit, const char *filename, unsigned line, const char *section, unsigned section_line, const char *lvalue, int ltype, const char *rvalue, void *data, void *userdata);
int config_parse_strv(const char *unit, const char *filename, unsigned line, const char *section, unsigned section_line, const char *lvalue, int ltype, const char *rvalue, void *data, void *userdata);
diff --git a/src/shared/exit-status.c b/src/shared/exit-status.c
index c1c0861168..d860b55511 100644
--- a/src/shared/exit-status.c
+++ b/src/shared/exit-status.c
@@ -205,20 +205,3 @@ bool is_clean_exit_lsb(int code, int status, ExitStatusSet *success_status) {
code == CLD_EXITED &&
(status == EXIT_NOTINSTALLED || status == EXIT_NOTCONFIGURED);
}
-
-int parse_show_status(const char *v, ShowStatus *ret) {
- int r;
-
- assert(v);
- assert(ret);
-
- 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;
-}
diff --git a/src/shared/exit-status.h b/src/shared/exit-status.h
index 9dc3fce0bf..385d6def06 100644
--- a/src/shared/exit-status.h
+++ b/src/shared/exit-status.h
@@ -22,7 +22,9 @@
***/
#include <stdbool.h>
+
#include "set.h"
+
typedef enum ExitStatus {
/* EXIT_SUCCESS defined by libc */
/* EXIT_FAILURE defined by libc */
@@ -91,15 +93,3 @@ const char* exit_status_to_string(ExitStatus status, ExitStatusLevel level) _con
bool is_clean_exit(int code, int status, ExitStatusSet *success_status);
bool is_clean_exit_lsb(int code, int status, ExitStatusSet *success_status);
-
-/* Manager status */
-
-typedef enum ShowStatus {
- _SHOW_STATUS_UNSET = -2,
- SHOW_STATUS_AUTO = -1,
- SHOW_STATUS_NO = 0,
- SHOW_STATUS_YES = 1,
- SHOW_STATUS_TEMPORARY = 2,
-} ShowStatus;
-
-int parse_show_status(const char *v, ShowStatus *ret);