From 5032f79224ce3817924ea981bcb2b8aee10c5751 Mon Sep 17 00:00:00 2001 From: Wouter Wijngaards Date: Tue, 26 Jan 2016 16:14:28 +0000 Subject: [PATCH] - fix netbsd interface_automatic complain about unimplemented. git-svn-id: file:///svn/unbound/trunk@3609 be551aaa-1e26-0410-a405-d3ace91eadb9 --- doc/Changelog | 2 ++ util/netevent.c | 6 ++++++ 2 files changed, 8 insertions(+) diff --git a/doc/Changelog b/doc/Changelog index c778a1616..4f648eaf9 100644 --- a/doc/Changelog +++ b/doc/Changelog @@ -3,6 +3,8 @@ - Use arc4random instead of random in tests (because it is available, possibly as compat, anyway). - Fix cmsg alignment for argument to sendmsg on NetBSD. + - Fix that unbound complains about unimplemented IP_PKTINFO for + sendmsg on NetBSD (for interface-automatic). 25 January 2016: Wouter - Fix #738: Swig should not be invoked with CPPFLAGS. diff --git a/util/netevent.c b/util/netevent.c index 1f182a025..f198b8bc4 100644 --- a/util/netevent.c +++ b/util/netevent.c @@ -559,6 +559,12 @@ comm_point_send_udp_msg_if(struct comm_point *c, sldns_buffer* packet, verbose(VERB_OPS, "sendmsg failed: %s", strerror(errno)); log_addr(VERB_OPS, "remote address is", (struct sockaddr_storage*)addr, addrlen); +#ifdef __NetBSD__ + /* netbsd 7 has IP_PKTINFO for recv but not send */ + if(errno == EINVAL && r->srctype == 4) + fatal_exit("sendmsg: No support for sendmsg(IP_PKTINFO). " + "Please disable interface-automatic"); +#endif return 0; } else if((size_t)sent != sldns_buffer_remaining(packet)) { log_err("sent %d in place of %d bytes",