Skip to content

Commit

Permalink
compat: convert suse ifcfg auto4 (fallback) config
Browse files Browse the repository at this point in the history
  • Loading branch information
mtomaschewski committed Sep 17, 2015
1 parent b0dce93 commit 718f91b
Show file tree
Hide file tree
Showing 3 changed files with 34 additions and 8 deletions.
11 changes: 11 additions & 0 deletions client/compat.c
Expand Up @@ -1619,6 +1619,16 @@ __ni_compat_generate_dhcp4_addrconf(xml_node_t *ifnode, const ni_compat_netdev_t
return dhcp;
}

static xml_node_t *
__ni_compat_generate_auto4_addrconf(xml_node_t *ifnode, const ni_compat_netdev_t *compat)
{
if (!compat->auto4.enabled)
return NULL;

return __ni_compat_generate_dynamic_addrconf(ifnode, "ipv4:auto",
compat->auto4.flags, 0);
}

static xml_node_t *
__ni_compat_generate_dhcp6_addrconf(xml_node_t *ifnode, const ni_compat_netdev_t *compat)
{
Expand Down Expand Up @@ -1903,6 +1913,7 @@ __ni_compat_generate_ifcfg(xml_node_t *ifnode, const ni_compat_netdev_t *compat)
if (dev->ipv4 && !ni_tristate_is_disabled(dev->ipv4->conf.enabled)) {
__ni_compat_generate_static_addrconf(ifnode, compat, AF_INET);
__ni_compat_generate_dhcp4_addrconf(ifnode, compat);
__ni_compat_generate_auto4_addrconf(ifnode, compat);
}

__ni_compat_generate_ipv6_devconf(ifnode, dev->ipv6);
Expand Down
27 changes: 19 additions & 8 deletions client/suse/compat-suse.c
Expand Up @@ -4058,13 +4058,23 @@ __ni_suse_addrconf_dhcp6(const ni_sysconfig_t *sc, ni_compat_netdev_t *compat, n
}

static ni_bool_t
__ni_suse_addrconf_autoip4(const ni_sysconfig_t *sc, ni_compat_netdev_t *compat, ni_bool_t required)
__ni_suse_addrconf_auto4(const ni_sysconfig_t *sc, ni_compat_netdev_t *compat, ni_bool_t required)
{
(void)sc;
(void)compat;
(void)required;
ni_netdev_t *dev = compat->dev;

(void)sc; /* no additional config here */

if (dev && dev->ipv4 && ni_tristate_is_disabled(dev->ipv4->conf.enabled))
return FALSE;

if (compat->auto4.enabled)
return TRUE;

/* TODO */
compat->auto4.enabled = TRUE;
/* mark auto4 as fallback for dhcp4 */
ni_addrconf_flag_bit_set(&compat->auto4.flags, NI_ADDRCONF_FLAGS_FALLBACK, !required);
/* mark dhcp4 as primary triggering it */
ni_addrconf_flag_bit_set(&compat->dhcp4.flags, NI_ADDRCONF_FLAGS_PRIMARY, !required);
return TRUE;
}

Expand Down Expand Up @@ -4153,9 +4163,10 @@ __ni_suse_bootproto(const ni_sysconfig_t *sc, ni_compat_netdev_t *compat)
/* dhcp6 requested -> required */
__ni_suse_addrconf_dhcp6(sc, compat, TRUE);
}
else if (ni_string_eq(s, "autoip")) {
/* dhcp6 requested -> required when 1st */
__ni_suse_addrconf_autoip4(sc, compat, primary);
else if (ni_string_eq(s, "auto4") ||
ni_string_eq(s, "autoip")) {
/* dhcp4 requested or required if primary */
__ni_suse_addrconf_auto4(sc, compat, primary);
}
else {
ni_debug_readwrite("ifcfg-%s: Unknown BOOTPROTO=\"%s\""
Expand Down
4 changes: 4 additions & 0 deletions client/wicked-client.h
Expand Up @@ -74,6 +74,10 @@ typedef struct ni_compat_netdev {
unsigned int route_priority;
unsigned int update;
} dhcp4;
struct {
ni_bool_t enabled;
unsigned int flags;
} auto4;
struct {
ni_bool_t enabled;
unsigned int flags;
Expand Down

0 comments on commit 718f91b

Please sign in to comment.