ifcfg-rh: belatedly add support for "ipv6.dhcp-timeout" setting

This commit is contained in:
Thomas Haller
2020-02-14 15:37:28 +01:00
parent 9b82d29f5f
commit 843c546b84
5 changed files with 21 additions and 4 deletions

View File

@@ -661,6 +661,14 @@ nm_setting_ip6_config_class_init (NMSettingIP6ConfigClass *klass)
* ---end--- * ---end---
*/ */
/* ---ifcfg-rh---
* property: dhcp-timeout
* variable: IPV6_DHCP_TIMEOUT(+)
* description: A timeout after which the DHCP transaction fails in case of no response.
* example: IPV6_DHCP_TIMEOUT=10
* ---end---
*/
/* ---ifcfg-rh--- /* ---ifcfg-rh---
* property: dhcp-hostname-flags * property: dhcp-hostname-flags
* variable: DHCPV6_HOSTNAME_FLAGS * variable: DHCPV6_HOSTNAME_FLAGS

View File

@@ -2203,9 +2203,10 @@ make_ip6_setting (shvarFile *ifcfg,
if (v) if (v)
g_object_set (s_ip6, NM_SETTING_IP_CONFIG_DHCP_HOSTNAME, v, NULL); g_object_set (s_ip6, NM_SETTING_IP_CONFIG_DHCP_HOSTNAME, v, NULL);
g_object_set (s_ip6, NM_SETTING_IP_CONFIG_DHCP_SEND_HOSTNAME, g_object_set (s_ip6,
svGetValueBoolean (ifcfg, "DHCPV6_SEND_HOSTNAME", TRUE), NULL); NM_SETTING_IP_CONFIG_DHCP_SEND_HOSTNAME, svGetValueBoolean (ifcfg, "DHCPV6_SEND_HOSTNAME", TRUE),
NM_SETTING_IP_CONFIG_DHCP_TIMEOUT, (int) svGetValueInt64 (ifcfg, "IPV6_DHCP_TIMEOUT", 10, 0, G_MAXINT32, 0),
NULL);
i64 = svGetValueInt64 (ifcfg, "DHCPV6_HOSTNAME_FLAGS", 10, 0, G_MAXUINT32, -1); i64 = svGetValueInt64 (ifcfg, "DHCPV6_HOSTNAME_FLAGS", 10, 0, G_MAXUINT32, -1);
if (i64 > -1) { if (i64 > -1) {

View File

@@ -806,6 +806,7 @@ const NMSIfcfgKeyTypeInfo nms_ifcfg_well_known_keys[] = {
_KEY_TYPE ("IPV6_DEFAULTDEV", NMS_IFCFG_KEY_TYPE_IS_PLAIN ), _KEY_TYPE ("IPV6_DEFAULTDEV", NMS_IFCFG_KEY_TYPE_IS_PLAIN ),
_KEY_TYPE ("IPV6_DEFAULTGW", NMS_IFCFG_KEY_TYPE_IS_PLAIN ), _KEY_TYPE ("IPV6_DEFAULTGW", NMS_IFCFG_KEY_TYPE_IS_PLAIN ),
_KEY_TYPE ("IPV6_DEFROUTE", NMS_IFCFG_KEY_TYPE_IS_PLAIN ), _KEY_TYPE ("IPV6_DEFROUTE", NMS_IFCFG_KEY_TYPE_IS_PLAIN ),
_KEY_TYPE ("IPV6_DHCP_TIMEOUT", NMS_IFCFG_KEY_TYPE_IS_PLAIN ),
_KEY_TYPE ("IPV6_DISABLED", NMS_IFCFG_KEY_TYPE_IS_PLAIN ), _KEY_TYPE ("IPV6_DISABLED", NMS_IFCFG_KEY_TYPE_IS_PLAIN ),
_KEY_TYPE ("IPV6_DNS_PRIORITY", NMS_IFCFG_KEY_TYPE_IS_PLAIN ), _KEY_TYPE ("IPV6_DNS_PRIORITY", NMS_IFCFG_KEY_TYPE_IS_PLAIN ),
_KEY_TYPE ("IPV6_DOMAIN", NMS_IFCFG_KEY_TYPE_IS_PLAIN ), _KEY_TYPE ("IPV6_DOMAIN", NMS_IFCFG_KEY_TYPE_IS_PLAIN ),

View File

@@ -33,7 +33,7 @@ typedef struct {
NMSIfcfgKeyTypeFlags key_flags; NMSIfcfgKeyTypeFlags key_flags;
} NMSIfcfgKeyTypeInfo; } NMSIfcfgKeyTypeInfo;
extern const NMSIfcfgKeyTypeInfo nms_ifcfg_well_known_keys[227]; extern const NMSIfcfgKeyTypeInfo nms_ifcfg_well_known_keys[228];
const NMSIfcfgKeyTypeInfo *nms_ifcfg_well_known_key_find_info (const char *key, gssize *out_idx); const NMSIfcfgKeyTypeInfo *nms_ifcfg_well_known_key_find_info (const char *key, gssize *out_idx);

View File

@@ -2631,6 +2631,7 @@ write_ip6_setting (NMConnection *connection,
NMSettingIP6ConfigAddrGenMode addr_gen_mode; NMSettingIP6ConfigAddrGenMode addr_gen_mode;
NMDhcpHostnameFlags flags; NMDhcpHostnameFlags flags;
const char *hostname; const char *hostname;
int timeout;
NM_SET_OUT (out_route6_content, NULL); NM_SET_OUT (out_route6_content, NULL);
@@ -2679,6 +2680,12 @@ write_ip6_setting (NMConnection *connection,
if (!nm_setting_ip_config_get_dhcp_send_hostname (s_ip6)) if (!nm_setting_ip_config_get_dhcp_send_hostname (s_ip6))
svSetValueStr (ifcfg, "DHCPV6_SEND_HOSTNAME", "no"); svSetValueStr (ifcfg, "DHCPV6_SEND_HOSTNAME", "no");
timeout = nm_setting_ip_config_get_dhcp_timeout (s_ip6);
svSetValueInt64_cond (ifcfg,
"IPV6_DHCP_TIMEOUT",
timeout != 0,
timeout);
flags = nm_setting_ip_config_get_dhcp_hostname_flags (s_ip6); flags = nm_setting_ip_config_get_dhcp_hostname_flags (s_ip6);
svSetValueInt64_cond (ifcfg, svSetValueInt64_cond (ifcfg,
"DHCPV6_HOSTNAME_FLAGS", "DHCPV6_HOSTNAME_FLAGS",