--- a/common/discover.c~ 2008-09-09 22:29:01.326643118 +0200 +++ a/common/discover.c 2008-09-09 22:34:07.565778860 +0200 @@ -421,6 +421,7 @@ begin_iface_scan(struct iface_conf_list } #ifdef DHCPv6 + if (local_family == AF_INET6) { ifaces->fp6 = fopen("/proc/net/if_inet6", "r"); if (ifaces->fp6 == NULL) { log_error("Error opening '/proc/net/if_inet6' to " @@ -431,6 +432,7 @@ begin_iface_scan(struct iface_conf_list ifaces->fp = NULL; return 0; } + } #endif return 1; @@ -700,9 +700,11 @@ next_iface(struct iface_info *info, int return 1; } #ifdef DHCPv6 + if (local_family == AF_INET6) { if (!(*err)) { return next_iface6(info, err, ifaces); } + } #endif return 0; } @@ -719,7 +719,8 @@ end_iface_scan(struct iface_conf_list *i close(ifaces->sock); ifaces->sock = -1; #ifdef DHCPv6 - fclose(ifaces->fp6); + if (local_family == AF_INET6) + fclose(ifaces->fp6); ifaces->fp6 = NULL; #endif }