From 9429092966be682eb6ca467e4c45d5d34bbe2d6c Mon Sep 17 00:00:00 2001 From: Wouter Wijngaards Date: Thu, 23 Feb 2012 09:01:46 +0000 Subject: [PATCH] - Fix to squelch 'network unreachable' errors from tcp connect in logs, high verbosity will show them. git-svn-id: file:///svn/unbound/trunk@2634 be551aaa-1e26-0410-a405-d3ace91eadb9 --- doc/Changelog | 4 ++++ services/outside_network.c | 5 ++++- util/netevent.c | 5 +++++ util/netevent.h | 3 +++ 4 files changed, 16 insertions(+), 1 deletion(-) diff --git a/doc/Changelog b/doc/Changelog index fcd1168e9..b0a5697ea 100644 --- a/doc/Changelog +++ b/doc/Changelog @@ -1,3 +1,7 @@ +23 February 2012: Wouter + - Fix to squelch 'network unreachable' errors from tcp connect in + logs, high verbosity will show them. + 16 February 2012: Wouter - iter_hints is now thread-owned in module env, and thus threadsafe. - Fix prefetch and sticky NS, now the prefetch works. It picks diff --git a/services/outside_network.c b/services/outside_network.c index 086960be6..24d65db39 100644 --- a/services/outside_network.c +++ b/services/outside_network.c @@ -227,7 +227,10 @@ outnet_tcp_take_into_use(struct waiting_tcp* w, uint8_t* pkt, size_t pkt_len) #else if(1) { #endif - log_err("outgoing tcp: connect: %s", strerror(errno)); + if(tcp_connect_errno_needs_log( + (struct sockaddr*)&w->addr, w->addrlen)) + log_err("outgoing tcp: connect: %s", + strerror(errno)); close(s); #else /* USE_WINSOCK */ if(WSAGetLastError() != WSAEINPROGRESS && diff --git a/util/netevent.c b/util/netevent.c index a6ac446e9..1317e5414 100644 --- a/util/netevent.c +++ b/util/netevent.c @@ -308,6 +308,11 @@ udp_send_errno_needs_log(struct sockaddr* addr, socklen_t addrlen) return 1; } +int tcp_connect_errno_needs_log(struct sockaddr* addr, socklen_t addrlen) +{ + return udp_send_errno_needs_log(addr, addrlen); +} + /* send a UDP reply */ int comm_point_send_udp_msg(struct comm_point *c, ldns_buffer* packet, diff --git a/util/netevent.h b/util/netevent.h index 8ce62e7fa..1d8665603 100644 --- a/util/netevent.h +++ b/util/netevent.h @@ -646,4 +646,7 @@ void comm_point_raw_handle_callback(int fd, short event, void* arg); void comm_point_tcp_win_bio_cb(struct comm_point* c, void* ssl); #endif +/** see if errno for tcp connect has to be logged or not. This uses errno */ +int tcp_connect_errno_needs_log(struct sockaddr* addr, socklen_t addrlen); + #endif /* NET_EVENT_H */ -- 2.47.2