diff options
Diffstat (limited to 'src/nspawn')
-rw-r--r-- | src/nspawn/nspawn-settings.c | 21 | ||||
-rw-r--r-- | src/nspawn/nspawn-settings.h | 2 | ||||
-rw-r--r-- | src/nspawn/nspawn.c | 10 |
3 files changed, 24 insertions, 9 deletions
diff --git a/src/nspawn/nspawn-settings.c b/src/nspawn/nspawn-settings.c index fc9e9fc54f..c63b8da23a 100644 --- a/src/nspawn/nspawn-settings.c +++ b/src/nspawn/nspawn-settings.c @@ -170,6 +170,8 @@ Settings* settings_free(Settings *s) { bool settings_private_network(Settings *s) { assert(s); + /* Determines whether we shall open up our own private network */ + return s->private_network > 0 || s->network_veth > 0 || @@ -190,6 +192,25 @@ bool settings_network_veth(Settings *s) { s->network_zone; } +bool settings_network_configured(Settings *s) { + assert(s); + + /* Determines whether any network configuration setting was used. (i.e. in contrast to + * settings_private_network() above this might also indicate if private networking was explicitly + * turned off.) */ + + return + s->private_network >= 0 || + s->network_veth >= 0 || + s->network_bridge || + s->network_zone || + s->network_interfaces || + s->network_macvlan || + s->network_ipvlan || + s->network_veth_extra || + s->network_namespace_path; +} + int settings_allocate_properties(Settings *s) { _cleanup_(sd_bus_unrefp) sd_bus *bus = NULL; int r; diff --git a/src/nspawn/nspawn-settings.h b/src/nspawn/nspawn-settings.h index 1b3ace5f8f..797e383401 100644 --- a/src/nspawn/nspawn-settings.h +++ b/src/nspawn/nspawn-settings.h @@ -242,6 +242,8 @@ Settings* settings_free(Settings *s); bool settings_network_veth(Settings *s); bool settings_private_network(Settings *s); +bool settings_network_configured(Settings *s); + int settings_allocate_properties(Settings *s); DEFINE_TRIVIAL_CLEANUP_FUNC(Settings*, settings_free); diff --git a/src/nspawn/nspawn.c b/src/nspawn/nspawn.c index 1f327b0952..f8f9e72421 100644 --- a/src/nspawn/nspawn.c +++ b/src/nspawn/nspawn.c @@ -4407,15 +4407,7 @@ static int merge_settings(Settings *settings, const char *path) { } if ((arg_settings_mask & SETTING_NETWORK) == 0 && - (settings->private_network >= 0 || - settings->network_veth >= 0 || - settings->network_bridge || - settings->network_zone || - settings->network_interfaces || - settings->network_macvlan || - settings->network_ipvlan || - settings->network_veth_extra || - settings->network_namespace_path)) { + settings_network_configured(settings)) { if (!arg_settings_trusted) log_warning("Ignoring network settings, file %s is not trusted.", path); |