37 lines
1011 B
Diff
37 lines
1011 B
Diff
|
diff -up dhcp-4.1.0/common/discover.c.noipv6 dhcp-4.1.0/common/discover.c
|
||
|
--- dhcp-4.1.0/common/discover.c.noipv6 2009-02-18 09:40:45.000000000 -1000
|
||
|
+++ dhcp-4.1.0/common/discover.c 2009-02-18 09:43:53.000000000 -1000
|
||
|
@@ -447,9 +447,11 @@ begin_iface_scan(struct iface_conf_list
|
||
|
if (ifaces->fp6 == NULL) {
|
||
|
log_error("Error opening '/proc/net/if_inet6' to "
|
||
|
"list IPv6 interfaces; %m");
|
||
|
- close(ifaces->sock);
|
||
|
+ if (ifaces->sock)
|
||
|
+ close(ifaces->sock);
|
||
|
ifaces->sock = -1;
|
||
|
- fclose(ifaces->fp);
|
||
|
+ if (ifaces->fp)
|
||
|
+ fclose(ifaces->fp);
|
||
|
ifaces->fp = NULL;
|
||
|
return 0;
|
||
|
}
|
||
|
@@ -719,7 +721,7 @@ next_iface(struct iface_info *info, int
|
||
|
return 1;
|
||
|
}
|
||
|
#ifdef DHCPv6
|
||
|
- if (!(*err)) {
|
||
|
+ if (!(*err) && ifaces->fp6) {
|
||
|
return next_iface6(info, err, ifaces);
|
||
|
}
|
||
|
#endif
|
||
|
@@ -736,7 +738,8 @@ end_iface_scan(struct iface_conf_list *i
|
||
|
close(ifaces->sock);
|
||
|
ifaces->sock = -1;
|
||
|
#ifdef DHCPv6
|
||
|
- fclose(ifaces->fp6);
|
||
|
+ if (ifaces->fp6)
|
||
|
+ fclose(ifaces->fp6);
|
||
|
ifaces->fp6 = NULL;
|
||
|
#endif
|
||
|
}
|