Drop debian/patches/0002-Fix-358-Squelch-udp-connect-no-route-to-host-errors-.patch (included in 1.13.1 release)
Robert Edmonds
3 years ago
0 | From 5906811ff19f005110b2edbda5aa144ad5fa05b1 Mon Sep 17 00:00:00 2001 | |
1 | From: "W.C.A. Wijngaards" <wouter@nlnetlabs.nl> | |
2 | Date: Tue, 1 Dec 2020 09:09:13 +0100 | |
3 | Subject: [PATCH] - Fix #358: Squelch udp connect 'no route to host' errors on | |
4 | low verbosity. | |
5 | ||
6 | ||
7 | diff --git a/services/outside_network.c b/services/outside_network.c | |
8 | index 11951ade..0886907f 100644 | |
9 | --- a/services/outside_network.c | |
10 | +++ b/services/outside_network.c | |
11 | @@ -1745,6 +1745,33 @@ select_id(struct outside_network* outnet, struct pending* pend, | |
12 | return 1; | |
13 | } | |
14 | ||
15 | +/** return true is UDP connect error needs to be logged */ | |
16 | +static int udp_connect_needs_log(int err) | |
17 | +{ | |
18 | + switch(err) { | |
19 | + case ECONNREFUSED: | |
20 | +# ifdef ENETUNREACH | |
21 | + case ENETUNREACH: | |
22 | +# endif | |
23 | +# ifdef EHOSTDOWN | |
24 | + case EHOSTDOWN: | |
25 | +# endif | |
26 | +# ifdef EHOSTUNREACH | |
27 | + case EHOSTUNREACH: | |
28 | +# endif | |
29 | +# ifdef ENETDOWN | |
30 | + case ENETDOWN: | |
31 | +# endif | |
32 | + if(verbosity >= VERB_ALGO) | |
33 | + return 1; | |
34 | + return 0; | |
35 | + default: | |
36 | + break; | |
37 | + } | |
38 | + return 1; | |
39 | +} | |
40 | + | |
41 | + | |
42 | /** Select random interface and port */ | |
43 | static int | |
44 | select_ifport(struct outside_network* outnet, struct pending* pend, | |
45 | @@ -1804,9 +1831,11 @@ select_ifport(struct outside_network* outnet, struct pending* pend, | |
46 | /* connect() to the destination */ | |
47 | if(connect(fd, (struct sockaddr*)&pend->addr, | |
48 | pend->addrlen) < 0) { | |
49 | - log_err_addr("udp connect failed", | |
50 | - strerror(errno), &pend->addr, | |
51 | - pend->addrlen); | |
52 | + if(udp_connect_needs_log(errno)) { | |
53 | + log_err_addr("udp connect failed", | |
54 | + strerror(errno), &pend->addr, | |
55 | + pend->addrlen); | |
56 | + } | |
57 | sock_close(fd); | |
58 | return 0; | |
59 | } | |
60 | -- | |
61 | 2.29.2 | |
62 |