diff options
| author | Michael Biebl <biebl@debian.org> | 2025-02-12 13:46:50 +0100 |
|---|---|---|
| committer | Michael Biebl <biebl@debian.org> | 2025-02-12 13:46:50 +0100 |
| commit | 8bdf070ff046f482f6eb5e2b15ebc216f5d1e3da (patch) | |
| tree | f706478d189d54c6532e8863d4b0d5ff5575af60 /src/nmcli/settings.c | |
| parent | 818258cf34b83fbc754633295e1052d4752d7b15 (diff) | |
New upstream version 1.51.90 upstream/1.51.90
Diffstat (limited to 'src/nmcli/settings.c')
| -rw-r--r-- | src/nmcli/settings.c | 53 |
1 files changed, 48 insertions, 5 deletions
diff --git a/src/nmcli/settings.c b/src/nmcli/settings.c index 636df466..85f4ad83 100644 --- a/src/nmcli/settings.c +++ b/src/nmcli/settings.c @@ -503,7 +503,7 @@ _env_get_env_flags(const NMMetaEnvironment *environment, gpointer environment_us /*****************************************************************************/ -const NMMetaEnvironment *const nmc_meta_environment = &((NMMetaEnvironment){ +const NMMetaEnvironment *const nmc_meta_environment = &((NMMetaEnvironment) { .warn_fcn = _env_warn_fcn_handle, .get_nm_devices = _env_get_nm_devices, .get_nm_connections = _env_get_nm_connections, @@ -525,6 +525,8 @@ get_property_val(NMSetting *setting, NM_IN_SET(get_type, NM_META_ACCESSOR_GET_TYPE_PARSABLE, NM_META_ACCESSOR_GET_TYPE_PRETTY), NULL); + prop = nmc_setting_propname_user_to_libnm(nm_setting_get_name(setting), prop); + if ((property_info = nm_meta_property_info_find_by_setting(setting, prop))) { if (property_info->property_type->get_fcn) { NMMetaAccessorGetOutFlags out_flags = NM_META_ACCESSOR_GET_OUT_FLAGS_NONE; @@ -593,8 +595,11 @@ nmc_setting_set_property(NMClient *client, NM_META_ACCESSOR_MODIFIER_ADD), FALSE); + prop = nmc_setting_propname_user_to_libnm(nm_setting_get_name(setting), prop); + if (!(property_info = nm_meta_property_info_find_by_setting(setting, prop))) goto out_fail_read_only; + if (!property_info->property_type->set_fcn) goto out_fail_read_only; @@ -661,8 +666,12 @@ nmc_setting_get_valid_properties(NMSetting *setting) num = setting_info ? setting_info->properties_num : 0; valid_props = g_new(char *, num + 1); - for (i = 0; i < num; i++) - valid_props[i] = g_strdup(setting_info->properties[i]->property_name); + for (i = 0; i < num; i++) { + const char *prop = + nmc_setting_propname_libnm_to_user(setting_info->general->setting_name, + setting_info->properties[i]->property_name); + valid_props[i] = g_strdup(prop); + } valid_props[num] = NULL; return valid_props; @@ -678,6 +687,8 @@ nmc_setting_get_property_allowed_values(NMSetting *setting, const char *prop, ch *out_to_free = NULL; + prop = nmc_setting_propname_user_to_libnm(nm_setting_get_name(setting), prop); + if ((property_info = nm_meta_property_info_find_by_setting(setting, prop))) { if (property_info->property_type->values_fcn) { return property_info->property_type->values_fcn(property_info, out_to_free); @@ -711,6 +722,8 @@ nmc_setting_get_property_desc(NMSetting *setting, const char *prop) g_return_val_if_fail(NM_IS_SETTING(setting), FALSE); + prop = nmc_setting_propname_user_to_libnm(nm_setting_get_name(setting), prop); + property_info = nm_meta_property_info_find_by_setting(setting, prop); if (!property_info) return NULL; @@ -764,13 +777,43 @@ setting_details(const NmcConfig *nmc_config, NMSetting *setting, const char *one if (!nmc_print_table( nmc_config, - (gpointer[]){setting, NULL}, + (gpointer[]) {setting, NULL}, NULL, NULL, - (const NMMetaAbstractInfo *const[]){(const NMMetaAbstractInfo *) setting_info, NULL}, + (const NMMetaAbstractInfo *const[]) {(const NMMetaAbstractInfo *) setting_info, NULL}, fields_str, &error)) return FALSE; return TRUE; } + +const char * +nmc_setting_propname_user_to_libnm(const char *setting_name, const char *prop) +{ + if (NM_IN_STRSET(setting_name, + NM_SETTING_IP4_CONFIG_SETTING_NAME, + NM_SETTING_IP6_CONFIG_SETTING_NAME)) { + if (nm_streq0(prop, "dhcp-send-hostname")) + return NM_SETTING_IP_CONFIG_DHCP_SEND_HOSTNAME_V2; + else if (nm_streq0(prop, "dhcp-send-hostname-deprecated")) + return NM_SETTING_IP_CONFIG_DHCP_SEND_HOSTNAME; + } + + return prop; +} + +const char * +nmc_setting_propname_libnm_to_user(const char *setting_name, const char *prop) +{ + if (NM_IN_STRSET(setting_name, + NM_SETTING_IP4_CONFIG_SETTING_NAME, + NM_SETTING_IP6_CONFIG_SETTING_NAME)) { + if (nm_streq0(prop, NM_SETTING_IP_CONFIG_DHCP_SEND_HOSTNAME_V2)) + return "dhcp-send-hostname"; + else if (nm_streq0(prop, NM_SETTING_IP_CONFIG_DHCP_SEND_HOSTNAME)) + return "dhcp-send-hostname-deprecated"; + } + + return prop; +} |