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/.
This commit is contained in:
parent
ca37242e52
commit
4d7213b274
|
@ -1018,7 +1018,9 @@ libsystemd_core_la_SOURCES = \
|
||||||
src/core/audit-fd.c \
|
src/core/audit-fd.c \
|
||||||
src/core/audit-fd.h \
|
src/core/audit-fd.h \
|
||||||
src/core/async.c \
|
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
|
if HAVE_KMOD
|
||||||
libsystemd_core_la_SOURCES += \
|
libsystemd_core_la_SOURCES += \
|
||||||
|
|
|
@ -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_color, log_show_color_from_string, "color" )
|
||||||
DEFINE_SETTER(config_parse_location, log_show_location_from_string, "location")
|
DEFINE_SETTER(config_parse_location, log_show_location_from_string, "location")
|
||||||
|
|
||||||
static int config_parse_cpu_affinity2(const char *unit,
|
static int config_parse_cpu_affinity2(
|
||||||
const char *filename,
|
const char *unit,
|
||||||
unsigned line,
|
const char *filename,
|
||||||
const char *section,
|
unsigned line,
|
||||||
unsigned section_line,
|
const char *section,
|
||||||
const char *lvalue,
|
unsigned section_line,
|
||||||
int ltype,
|
const char *lvalue,
|
||||||
const char *rvalue,
|
int ltype,
|
||||||
void *data,
|
const char *rvalue,
|
||||||
void *userdata) {
|
void *data,
|
||||||
|
void *userdata) {
|
||||||
|
|
||||||
char *w;
|
char *w;
|
||||||
size_t l;
|
size_t l;
|
||||||
|
@ -524,6 +525,36 @@ static int config_parse_cpu_affinity2(const char *unit,
|
||||||
return 0;
|
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) {
|
static void strv_free_free(char ***l) {
|
||||||
char ***i;
|
char ***i;
|
||||||
|
|
||||||
|
|
|
@ -58,6 +58,7 @@ typedef enum ManagerExitCode {
|
||||||
#include "execute.h"
|
#include "execute.h"
|
||||||
#include "unit-name.h"
|
#include "unit-name.h"
|
||||||
#include "exit-status.h"
|
#include "exit-status.h"
|
||||||
|
#include "show-status.h"
|
||||||
|
|
||||||
struct Manager {
|
struct Manager {
|
||||||
/* Note that the set of units we know of is allowed to be
|
/* Note that the set of units we know of is allowed to be
|
||||||
|
|
|
@ -565,35 +565,6 @@ int config_parse_bool(const char* unit,
|
||||||
return 0;
|
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,
|
int config_parse_string(const char *unit,
|
||||||
const char *filename,
|
const char *filename,
|
||||||
unsigned line,
|
unsigned line,
|
||||||
|
|
|
@ -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_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_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_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_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_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);
|
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);
|
||||||
|
|
|
@ -205,20 +205,3 @@ bool is_clean_exit_lsb(int code, int status, ExitStatusSet *success_status) {
|
||||||
code == CLD_EXITED &&
|
code == CLD_EXITED &&
|
||||||
(status == EXIT_NOTINSTALLED || status == EXIT_NOTCONFIGURED);
|
(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;
|
|
||||||
}
|
|
||||||
|
|
|
@ -22,7 +22,9 @@
|
||||||
***/
|
***/
|
||||||
|
|
||||||
#include <stdbool.h>
|
#include <stdbool.h>
|
||||||
|
|
||||||
#include "set.h"
|
#include "set.h"
|
||||||
|
|
||||||
typedef enum ExitStatus {
|
typedef enum ExitStatus {
|
||||||
/* EXIT_SUCCESS defined by libc */
|
/* EXIT_SUCCESS defined by libc */
|
||||||
/* EXIT_FAILURE 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(int code, int status, ExitStatusSet *success_status);
|
||||||
bool is_clean_exit_lsb(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);
|
|
||||||
|
|
Loading…
Reference in a new issue