- Fix #358: Squelch udp connect 'no route to host' errors on low

verbosity.
This commit is contained in:
W.C.A. Wijngaards 2020-12-01 09:09:13 +01:00
parent 174bb48ae8
commit 5906811ff1
2 changed files with 36 additions and 3 deletions

View file

@ -1,3 +1,7 @@
1 December 2020: Wouter
- Fix #358: Squelch udp connect 'no route to host' errors on low
verbosity.
30 November 2020: Wouter
- Fix assertion failure on double callback when iterator loses
interest in query at head of line that then has the tcp stream

View file

@ -1745,6 +1745,33 @@ select_id(struct outside_network* outnet, struct pending* pend,
return 1;
}
/** return true is UDP connect error needs to be logged */
static int udp_connect_needs_log(int err)
{
switch(err) {
case ECONNREFUSED:
# ifdef ENETUNREACH
case ENETUNREACH:
# endif
# ifdef EHOSTDOWN
case EHOSTDOWN:
# endif
# ifdef EHOSTUNREACH
case EHOSTUNREACH:
# endif
# ifdef ENETDOWN
case ENETDOWN:
# endif
if(verbosity >= VERB_ALGO)
return 1;
return 0;
default:
break;
}
return 1;
}
/** Select random interface and port */
static int
select_ifport(struct outside_network* outnet, struct pending* pend,
@ -1804,9 +1831,11 @@ select_ifport(struct outside_network* outnet, struct pending* pend,
/* connect() to the destination */
if(connect(fd, (struct sockaddr*)&pend->addr,
pend->addrlen) < 0) {
log_err_addr("udp connect failed",
strerror(errno), &pend->addr,
pend->addrlen);
if(udp_connect_needs_log(errno)) {
log_err_addr("udp connect failed",
strerror(errno), &pend->addr,
pend->addrlen);
}
sock_close(fd);
return 0;
}