]> git.ipfire.org Git - thirdparty/unbound.git/commitdiff
- Fix to squelch permission denied and other errors from remote host,
authorW.C.A. Wijngaards <wouter@nlnetlabs.nl>
Fri, 11 Dec 2020 09:30:54 +0000 (10:30 +0100)
committerW.C.A. Wijngaards <wouter@nlnetlabs.nl>
Fri, 11 Dec 2020 09:30:54 +0000 (10:30 +0100)
  they are logged at higher verbosity but not on low verbosity.

doc/Changelog
util/netevent.c

index af111d8a0a38e905311228891f00b3f3cc95f8cf..26e423f8e5c00436936d7eb97978059acb2ce53a 100644 (file)
@@ -1,5 +1,7 @@
 11 December 2020: Wouter
        - Fix #371: unbound-control timeout when Unbound is not running.
+       - Fix to squelch permission denied and other errors from remote host,
+         they are logged at higher verbosity but not on low verbosity.
 
 3 December 2020: Wouter
        - make depend.
index d3e268a01e6cee8b6e6367767c2a626ac3b2dbd0..7e604a9fad3eb1abd76ff1c0ae7060c6c17279d2 100644 (file)
@@ -583,6 +583,7 @@ comm_point_send_udp_msg_if(struct comm_point *c, sldns_buffer* packet,
 static int udp_recv_needs_log(int err)
 {
        switch(err) {
+       case EACCES: /* some hosts send ICMP 'Permission Denied' */
 #ifndef USE_WINSOCK
        case ECONNREFUSED:
 #  ifdef ENETUNREACH
@@ -1609,6 +1610,26 @@ comm_point_tcp_handle_read(int fd, struct comm_point* c, int short_ok)
                        if(errno == ECONNRESET && verbosity < 2)
                                return 0; /* silence reset by peer */
 #endif
+#ifdef ENETUNREACH
+                       if(errno == ENETUNREACH && verbosity < 2)
+                               return 0; /* silence it */
+#endif
+#ifdef EHOSTDOWN
+                       if(errno == EHOSTDOWN && verbosity < 2)
+                               return 0; /* silence it */
+#endif
+#ifdef EHOSTUNREACH
+                       if(errno == EHOSTUNREACH && verbosity < 2)
+                               return 0; /* silence it */
+#endif
+#ifdef ENETDOWN
+                       if(errno == ENETDOWN && verbosity < 2)
+                               return 0; /* silence it */
+#endif
+#ifdef EACCES
+                       if(errno == EACCES && verbosity < 2)
+                               return 0; /* silence it */
+#endif
 #ifdef ENOTCONN
                        if(errno == ENOTCONN) {
                                log_err_addr("read (in tcp s) failed and this could be because TCP Fast Open is enabled [--disable-tfo-client --disable-tfo-server] but does not work", sock_strerror(errno),