summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLubomir Rintel <lkundrak@v3.sk>2022-06-24 00:30:04 +0200
committerLubomir Rintel <lkundrak@v3.sk>2022-06-24 00:30:04 +0200
commit6fee8aa454d18fb9147fe229fe0cf6120ed41020 (patch)
tree3158cba9004190d5b5516372247eed208959d6b5
parenta5e099d0085c86954f6821bd4aa07faee09f9591 (diff)
downloadNetworkManager-6fee8aa454d18fb9147fe229fe0cf6120ed41020.tar.gz
nmcli/connections: make opts argument to enable_options() optional
This makes things slightly less annoying when dealing with options that map nicely to properties (unlike bridge options).
-rw-r--r--src/nmcli/connections.c21
1 files changed, 15 insertions, 6 deletions
diff --git a/src/nmcli/connections.c b/src/nmcli/connections.c
index 7208abcc75..73d34452ad 100644
--- a/src/nmcli/connections.c
+++ b/src/nmcli/connections.c
@@ -4174,11 +4174,16 @@ enable_options(const char *setting_name, const char *property, const char *const
for (i = 0; i < nm_meta_property_typ_data_bond.nested_len; i++) {
const NMMetaNestedPropertyInfo *bi = &nm_meta_property_typ_data_bond.nested[i];
- if (bi->base.inf_flags & NM_META_PROPERTY_INF_FLAG_DONT_ASK && bi->base.property_alias
- && g_strv_contains(opts, bi->base.property_alias))
+ if (opts) {
+ if (!bi->base.property_alias || !g_strv_contains(opts, bi->base.property_alias))
+ continue;
+ }
+
+ if (bi->base.inf_flags & NM_META_PROPERTY_INF_FLAG_DONT_ASK) {
_dynamic_options_set((const NMMetaAbstractInfo *) bi,
PROPERTY_INF_FLAG_ENABLED,
PROPERTY_INF_FLAG_ENABLED);
+ }
}
return;
}
@@ -4186,11 +4191,16 @@ enable_options(const char *setting_name, const char *property, const char *const
if (!property_info->is_cli_option)
g_return_if_reached();
- if (property_info->inf_flags & NM_META_PROPERTY_INF_FLAG_DONT_ASK
- && property_info->property_alias && g_strv_contains(opts, property_info->property_alias))
+ if (opts) {
+ if (!property_info->property_alias || !g_strv_contains(opts, property_info->property_alias))
+ return;
+ }
+
+ if (property_info->inf_flags & NM_META_PROPERTY_INF_FLAG_DONT_ASK) {
_dynamic_options_set((const NMMetaAbstractInfo *) property_info,
PROPERTY_INF_FLAG_ENABLED,
PROPERTY_INF_FLAG_ENABLED);
+ }
}
/*
@@ -4513,7 +4523,6 @@ set_connection_type(NmCli *nmc,
const NMMetaSettingValidPartItem *const *type_settings;
const NMMetaSettingValidPartItem *const *slv_settings;
GError *local = NULL;
- const char *master[] = {"master", NULL};
const char *slave_type = NULL;
value = check_valid_name_toplevel(value, &slave_type, &local);
@@ -4539,7 +4548,7 @@ set_connection_type(NmCli *nmc,
error)) {
return FALSE;
}
- enable_options(NM_SETTING_CONNECTION_SETTING_NAME, NM_SETTING_CONNECTION_MASTER, master);
+ enable_options(NM_SETTING_CONNECTION_SETTING_NAME, NM_SETTING_CONNECTION_MASTER, NULL);
}
/* ifname is mandatory for all connection types except virtual ones (bond, team, bridge, vlan) */