mirror of
https://github.com/morgan9e/systemd
synced 2026-04-15 17:06:39 +09:00
nspawn: add helper settings_network_configured()
The new helper returns whether the settings file had *any* networking setting configured at all. We already have a similar helper settings_private_network() which returns a similar result. The difference is that the new helper will return true when the private network was explicitly turned off, while the old one will only return true if configured and enabled. We'll reuse the helper a 2nd time later on, but even without it it makes things a bit more readable.
This commit is contained in:
@@ -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;
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user