networkd: reconfigure IPv6 and static address after link up event (#3105)

Now we are not setting static address, start dhcp6 client and
discovering IPv6 routers after link gained carrier.

This fixes #2912.
This commit is contained in:
Susant Sahani 2016-04-29 04:33:29 +05:30 committed by Zbigniew Jędrzejewski-Szmek
parent a44cb5cbf7
commit 6fc2549711

View file

@ -1458,7 +1458,7 @@ static int link_acquire_ipv6_conf(Link *link) {
return 0; return 0;
} }
static int link_acquire_conf(Link *link) { static int link_acquire_ipv4_conf(Link *link) {
int r; int r;
assert(link); assert(link);
@ -1486,6 +1486,24 @@ static int link_acquire_conf(Link *link) {
return log_link_warning_errno(link, r, "Could not acquire DHCPv4 lease: %m"); return log_link_warning_errno(link, r, "Could not acquire DHCPv4 lease: %m");
} }
return 0;
}
static int link_acquire_conf(Link *link) {
int r;
assert(link);
r = link_acquire_ipv4_conf(link);
if (r < 0)
return r;
if (in_addr_is_null(AF_INET6, (const union in_addr_union*) &link->ipv6ll_address) == 0) {
r = link_acquire_ipv6_conf(link);
if (r < 0)
return r;
}
if (link_lldp_tx_enabled(link)) { if (link_lldp_tx_enabled(link)) {
r = link_lldp_tx_start(link); r = link_lldp_tx_start(link);
if (r < 0) if (r < 0)
@ -2351,12 +2369,6 @@ static int link_configure(Link *link) {
r = link_acquire_conf(link); r = link_acquire_conf(link);
if (r < 0) if (r < 0)
return r; return r;
if (in_addr_is_null(AF_INET6, (const union in_addr_union*) &link->ipv6ll_address) == 0) {
r = link_acquire_ipv6_conf(link);
if (r < 0)
return r;
}
} }
return link_enter_join_netdev(link); return link_enter_join_netdev(link);
@ -2739,6 +2751,10 @@ static int link_carrier_gained(Link *link) {
link_enter_failed(link); link_enter_failed(link);
return r; return r;
} }
r = link_enter_set_addresses(link);
if (r < 0)
return r;
} }
r = link_handle_bound_by_list(link); r = link_handle_bound_by_list(link);