diff -Naur dhcp-4.1.0a2/common/discover.c dhcp-4.1.0a2-mcn/common/discover.c --- dhcp-4.1.0a2/common/discover.c 2008-08-29 18:48:57.000000000 +0100 +++ dhcp-4.1.0a2-mcn/common/discover.c 2008-10-02 13:02:06.000000000 +0100 @@ -443,15 +443,17 @@ } #ifdef DHCPv6 - ifaces->fp6 = fopen("/proc/net/if_inet6", "r"); - if (ifaces->fp6 == NULL) { - log_error("Error opening '/proc/net/if_inet6' to " - "list IPv6 interfaces; %m"); - close(ifaces->sock); - ifaces->sock = -1; - fclose(ifaces->fp); - ifaces->fp = NULL; - return 0; + 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 " + "list IPv6 interfaces; %m"); + close(ifaces->sock); + ifaces->sock = -1; + fclose(ifaces->fp); + ifaces->fp = NULL; + return 0; + } } #endif @@ -720,7 +722,8 @@ } #ifdef DHCPv6 if (!(*err)) { - return next_iface6(info, err, ifaces); + if (local_family == AF_INET6) + return next_iface6(info, err, ifaces); } #endif return 0; @@ -736,7 +739,8 @@ close(ifaces->sock); ifaces->sock = -1; #ifdef DHCPv6 - fclose(ifaces->fp6); + if (local_family == AF_INET6) + fclose(ifaces->fp6); ifaces->fp6 = NULL; #endif }