summaryrefslogtreecommitdiff
path: root/src/core
diff options
context:
space:
mode:
authorLennart Poettering <lennart@poettering.net>2014-03-03 21:23:12 +0100
committerLennart Poettering <lennart@poettering.net>2014-03-03 21:23:12 +0100
commit4d7213b2747ddd87002f970ccc60b1a9ab637136 (patch)
treeddae01aaddd7530bc119ace060c467009da4a1f2 /src/core
parentca37242e52cbf90d6cdb3b26b2986b11ed1d5e91 (diff)
core: move ShowStatus type into the core
Let's make the scope of the show-status stuff a bit smaller, and make it private to the core, rather than shared API in shared/.
Diffstat (limited to 'src/core')
-rw-r--r--src/core/main.c51
-rw-r--r--src/core/manager.h1
2 files changed, 42 insertions, 10 deletions
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