diff options
Diffstat (limited to 'src/libnm-core-impl/nm-setting-ip-config.c')
| -rw-r--r-- | src/libnm-core-impl/nm-setting-ip-config.c | 76 |
1 files changed, 63 insertions, 13 deletions
diff --git a/src/libnm-core-impl/nm-setting-ip-config.c b/src/libnm-core-impl/nm-setting-ip-config.c index 3a31848e..5d947e29 100644 --- a/src/libnm-core-impl/nm-setting-ip-config.c +++ b/src/libnm-core-impl/nm-setting-ip-config.c @@ -3999,7 +3999,8 @@ NM_GOBJECT_PROPERTIES_DEFINE(NMSettingIPConfig, PROP_REQUIRED_TIMEOUT, PROP_DHCP_IAID, PROP_DHCP_REJECT_SERVERS, - PROP_AUTO_ROUTE_EXT_GW, ); + PROP_AUTO_ROUTE_EXT_GW, + PROP_REPLACE_LOCAL_RULE, ); G_DEFINE_ABSTRACT_TYPE(NMSettingIPConfig, nm_setting_ip_config, NM_TYPE_SETTING) @@ -5445,6 +5446,22 @@ nm_setting_ip_config_get_auto_route_ext_gw(NMSettingIPConfig *setting) return NM_SETTING_IP_CONFIG_GET_PRIVATE(setting)->auto_route_ext_gw; } +/** + * nm_setting_ip_config_get_replace_local_rule: + * @setting: the #NMSettingIPConfig + * + * Returns: the #NMSettingIPConfig:replace-local-rule property of the setting + * + * Since: 1.44, 1.42.2 + **/ +NMTernary +nm_setting_ip_config_get_replace_local_rule(NMSettingIPConfig *setting) +{ + g_return_val_if_fail(NM_IS_SETTING_IP_CONFIG(setting), NM_TERNARY_DEFAULT); + + return NM_SETTING_IP_CONFIG_GET_PRIVATE(setting)->replace_local_rule; +} + static gboolean verify_label(const char *label) { @@ -6105,6 +6122,13 @@ _nm_sett_info_property_override_create_array_ip_config(int addr_family) .direct_offset = NM_STRUCT_OFFSET_ENSURE_TYPE(int, NMSettingIPConfigPrivate, auto_route_ext_gw)); + _nm_properties_override_gobj( + properties_override, + obj_properties[PROP_REPLACE_LOCAL_RULE], + &nm_sett_info_propert_type_direct_enum, + .direct_offset = + NM_STRUCT_OFFSET_ENSURE_TYPE(int, NMSettingIPConfigPrivate, replace_local_rule)); + return properties_override; } @@ -6702,18 +6726,28 @@ nm_setting_ip_config_class_init(NMSettingIPConfigClass *klass) /** * NMSettingIPConfig:dhcp-iaid: * - * A string containing the "Identity Association Identifier" (IAID) used - * by the DHCP client. The property is a 32-bit decimal value or a - * special value among "mac", "perm-mac", "ifname" and "stable". When - * set to "mac" (or "perm-mac"), the last 4 bytes of the current (or - * permanent) MAC address are used as IAID. When set to "ifname", the - * IAID is computed by hashing the interface name. The special value - * "stable" can be used to generate an IAID based on the stable-id (see - * connection.stable-id), a per-host key and the interface name. When - * the property is unset, the value from global configuration is used; - * if no global default is set then the IAID is assumed to be - * "ifname". Note that at the moment this property is ignored for IPv6 - * by dhclient, which always derives the IAID from the MAC address. + * A string containing the "Identity Association Identifier" (IAID) used by + * the DHCP client. The string can be a 32-bit number (either decimal, + * hexadecimal or or as colon separated hexadecimal numbers). Alternatively + * it can be set to the special values "mac", "perm-mac", "ifname" or + * "stable". When set to "mac" (or "perm-mac"), the last 4 bytes of the + * current (or permanent) MAC address are used as IAID. When set to + * "ifname", the IAID is computed by hashing the interface name. The + * special value "stable" can be used to generate an IAID based on the + * stable-id (see connection.stable-id), a per-host key and the interface + * name. When the property is unset, the value from global configuration is + * used; if no global default is set then the IAID is assumed to be + * "ifname". + * + * For DHCPv4, the IAID is only used with "ipv4.dhcp-client-id" + * values "duid" and "ipv6-duid" to generate the client-id. + * + * For DHCPv6, note that at the moment this property is + * only supported by the "internal" DHCPv6 plugin. The "dhclient" DHCPv6 + * plugin always derives the IAID from the MAC address. + * + * The actually used DHCPv6 IAID for a currently activated interface is + * exposed in the lease information of the device. * * Since: 1.22 **/ @@ -6797,5 +6831,21 @@ nm_setting_ip_config_class_init(NMSettingIPConfigClass *klass) NM_TERNARY_DEFAULT, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS); + /** + * NMSettingIPConfig:replace-local-rule: + * + * Connections will default to keep the autogenerated priority 0 local rule + * unless this setting is set to %TRUE. + * + * Since: 1.44, 1.42.2 + */ + obj_properties[PROP_REPLACE_LOCAL_RULE] = + g_param_spec_enum(NM_SETTING_IP_CONFIG_REPLACE_LOCAL_RULE, + "", + "", + NM_TYPE_TERNARY, + NM_TERNARY_DEFAULT, + G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS); + g_object_class_install_properties(object_class, _PROPERTY_ENUMS_LAST, obj_properties); } |