Слов нет, одни выражения!
Если собрать их последнюю поделку версии 4.4.1, то эта братская щука говорит, а нету у тебя ipv6 на интерфейсах!
Смотрим в в common/discovery.c, а там интересный код с комментами
/* If the only address we have is 0.0.0.0, we
shouldn't consider the interface configured. */
if (IN6_IS_ADDR_UNSPECIFIED(&a->sin6_addr)) {
tmp->configured = 1;
add_ipv6_addr_to_interface(tmp, &a->sin6_addr);
в 4.3.6-P1 еще все работало! Делаем diff
@@ -681,17 +712,17 @@
continue;
/* If the only address we have is 0.0.0.0, we
shouldn't consider the interface configured. */
- if (IN6_IS_ADDR_UNSPECIFIED(&a->sin6_addr))
+ if (IN6_IS_ADDR_UNSPECIFIED(&a->sin6_addr)) {
tmp->configured = 1;
add_ipv6_addr_to_interface(tmp, &a->sin6_addr);
/* invoke the setup hook */
addr.len = 16;
memcpy(addr.iabuf, &a->sin6_addr, addr.len);
- if (dhcp_interface_setup_hook) {
+ if (dhcp_interface_setup_hook)
(*dhcp_interface_setup_hook)(tmp, &addr);
}
}
Дятлу, который сделал эту «оптимизацию» и не удосужился проверить работоспособность ее, нужно вбить гвоздь в голову!
Зачем в 2012 году я исправил этот кусок кода, если ipv6 у меня тогда еще небыло ?