The unbound library complains if we ask it to read /etc/resolv.conf but
that file doesn't exist. It's better to just skip reading it in that case.
Reported-by: Flavio Leitner
Reporetd-at:
https://mail.openvswitch.org/pipermail/ovs-dev/2018-August/350751.html
Signed-off-by: Ben Pfaff
---
lib/dns-resolve.c | 16 ++--
1 file changed, 10 insertions(+), 6 deletions(-)
diff --git a/lib/dns-resolve.c b/lib/dns-resolve.c
index f1f91129609a..299ab27ab5ca 100644
--- a/lib/dns-resolve.c
+++ b/lib/dns-resolve.c
@@ -22,6 +22,7 @@
#include
#include
#include
+#include
#include
#include "hash.h"
#include "openvswitch/hmap.h"
@@ -81,17 +82,20 @@ dns_resolve_init(bool is_daemon)
return;
}
-int retval;
#ifdef __linux__
-retval = ub_ctx_resolvconf(ub_ctx__, "/etc/resolv.conf");
-if (retval != 0) {
-VLOG_WARN_RL(, "Failed to read /etc/resolv.conf: %s",
- ub_strerror(retval));
+const char *filename = "/etc/resolv.conf";
+struct stat s;
+if (!stat(filename, ) || errno != ENOENT) {
+int retval = ub_ctx_resolvconf(ub_ctx__, filename);
+if (retval != 0) {
+VLOG_WARN_RL(, "Failed to read %s: %s",
+ filename, ub_strerror(retval));
+}
}
#endif
/* Handles '/etc/hosts' on Linux and 'WINDIR/etc/hosts' on Windows. */
-retval = ub_ctx_hosts(ub_ctx__, NULL);
+int retval = ub_ctx_hosts(ub_ctx__, NULL);
if (retval != 0) {
VLOG_WARN_RL(, "Failed to read etc/hosts: %s",
ub_strerror(retval));
--
2.16.1
___
dev mailing list
d...@openvswitch.org
https://mail.openvswitch.org/mailman/listinfo/ovs-dev