mirror of
https://gitdl.cn/https://github.com/chakralinux/core.git
synced 2025-02-04 16:47:15 +08:00
41 lines
1001 B
Diff
41 lines
1001 B
Diff
diff -Naur dhcp-4.2.4-P2/common/discover.c dhcp-4.2.4-P2.fixed/common/discover.c
|
|
--- dhcp-4.2.4-P2/common/discover.c 2012-08-24 19:11:21.000000000 +0000
|
|
+++ dhcp-4.2.4-P2.fixed/common/discover.c 2012-10-02 18:05:29.353084310 +0000
|
|
@@ -455,7 +455,7 @@
|
|
}
|
|
|
|
#ifdef DHCPv6
|
|
- if (local_family == AF_INET6) {
|
|
+ if ((local_family == AF_INET6) && !access("/proc/net/if_inet6", R_OK)) {
|
|
ifaces->fp6 = fopen("/proc/net/if_inet6", "r");
|
|
if (ifaces->fp6 == NULL) {
|
|
log_error("Error opening '/proc/net/if_inet6' to "
|
|
@@ -466,6 +466,8 @@
|
|
ifaces->fp = NULL;
|
|
return 0;
|
|
}
|
|
+ } else {
|
|
+ ifaces->fp6 = NULL;
|
|
}
|
|
#endif
|
|
|
|
@@ -733,7 +735,7 @@
|
|
return 1;
|
|
}
|
|
#ifdef DHCPv6
|
|
- if (!(*err)) {
|
|
+ if (!(*err) && ifaces->fp6) {
|
|
if (local_family == AF_INET6)
|
|
return next_iface6(info, err, ifaces);
|
|
}
|
|
@@ -752,7 +754,8 @@
|
|
ifaces->sock = -1;
|
|
#ifdef DHCPv6
|
|
if (local_family == AF_INET6) {
|
|
- fclose(ifaces->fp6);
|
|
+ if(ifaces->fp6)
|
|
+ fclose(ifaces->fp6);
|
|
ifaces->fp6 = NULL;
|
|
}
|
|
#endif
|