case SD_DHCP6_CLIENT_EVENT_STOP:
case SD_DHCP6_CLIENT_EVENT_RESEND_EXPIRE:
case SD_DHCP6_CLIENT_EVENT_RETRANS_MAX:
- log_link_debug(link, "DHCPv6 event %d", event);
+ log_link_warning(link, "DHCPv6 lease lost");
+
+ link->dhcp6_configured = false;
break;
case SD_DHCP6_CLIENT_EVENT_IP_ACQUIRE:
return;
}
+ link->dhcp6_configured = true;
break;
default:
event);
return;
}
+
+ link_client_handler(link);
}
static int dhcp6_configure(Link *link, int event) {
SD_ICMP6_ND_EVENT_ROUTER_ADVERTISMENT_OTHER,
SD_ICMP6_ND_EVENT_ROUTER_ADVERTISMENT_MANAGED), -EINVAL);
+ link->dhcp6_configured = false;
+
if (link->dhcp6_client) {
r = sd_dhcp6_client_get_information_request(link->dhcp6_client,
&information_request);
goto error;
}
+ if (r == -EALREADY)
+ link->dhcp6_configured = true;
+
return r;
}
if (link_dhcp4_enabled(link) && !link->dhcp4_configured)
return;
+ if (link_dhcp6_enabled(link) && !link->dhcp6_configured)
+ return;
+
if (link->state != LINK_STATE_CONFIGURED)
link_enter_configured(link);