diff --git a/src/nspawn/nspawn-settings.c b/src/nspawn/nspawn-settings.c index d341fa25aa..2fa5cc40a3 100644 --- a/src/nspawn/nspawn-settings.c +++ b/src/nspawn/nspawn-settings.c @@ -809,6 +809,8 @@ static const char *const resolv_conf_mode_table[_RESOLV_CONF_MODE_MAX] = { DEFINE_STRING_TABLE_LOOKUP_WITH_BOOLEAN(resolv_conf_mode, ResolvConfMode, RESOLV_CONF_AUTO); int parse_link_journal(const char *s, LinkJournal *ret_mode, bool *ret_try) { + int r; + assert(s); assert(ret_mode); assert(ret_try); @@ -816,9 +818,6 @@ int parse_link_journal(const char *s, LinkJournal *ret_mode, bool *ret_try) { if (streq(s, "auto")) { *ret_mode = LINK_AUTO; *ret_try = false; - } else if (streq(s, "no")) { - *ret_mode = LINK_NO; - *ret_try = false; } else if (streq(s, "guest")) { *ret_mode = LINK_GUEST; *ret_try = false; @@ -831,8 +830,16 @@ int parse_link_journal(const char *s, LinkJournal *ret_mode, bool *ret_try) { } else if (streq(s, "try-host")) { *ret_mode = LINK_HOST; *ret_try = true; - } else - return -EINVAL; + } else { + /* Also support boolean values, to make things less confusing. */ + r = parse_boolean(s); + if (r < 0) + return r; + + /* Let's consider "true" to be equivalent to "auto". */ + *ret_mode = r ? LINK_AUTO : LINK_NO; + *ret_try = false; + } return 0; }