]> git.ipfire.org Git - thirdparty/unbound.git/commitdiff
- Fix to squelch 'network unreachable' errors from tcp connect in
authorWouter Wijngaards <wouter@nlnetlabs.nl>
Thu, 23 Feb 2012 09:01:46 +0000 (09:01 +0000)
committerWouter Wijngaards <wouter@nlnetlabs.nl>
Thu, 23 Feb 2012 09:01:46 +0000 (09:01 +0000)
  logs, high verbosity will show them.

git-svn-id: file:///svn/unbound/trunk@2634 be551aaa-1e26-0410-a405-d3ace91eadb9

doc/Changelog
services/outside_network.c
util/netevent.c
util/netevent.h

index fcd1168e960bfed3d373c546c317bac800a87f35..b0a5697eaaca67137a04536e37d9e7cac8c508f6 100644 (file)
@@ -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
index 086960be6cc9a45888fd67d70a34057f17f3118d..24d65db399322cd066a3f6b73bb21564bbb19b03 100644 (file)
@@ -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 &&
index a6ac446e91d85556ee369a96b87577468f3ac4ce..1317e5414731ac83dee82a09769be74a70510735 100644 (file)
@@ -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,
index 8ce62e7fa7537bad42016108cab4c692030c32b7..1d866560372583d8c67330c64aefd0484977ecbc 100644 (file)
@@ -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 */