aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNick Mathewson <nickm@torproject.org>2006-12-28 21:29:26 +0000
committerNick Mathewson <nickm@torproject.org>2006-12-28 21:29:26 +0000
commit460a476efacd2032ff0a13a6bcb5c694d49f9f72 (patch)
treeeaee9635b3fc7bb4d4060c85b2d49ff4a05c729a
parentd9f1f3533d059627266ddcdb0398b4b32c7158f2 (diff)
downloadtor-460a476efacd2032ff0a13a6bcb5c694d49f9f72.tar
tor-460a476efacd2032ff0a13a6bcb5c694d49f9f72.tar.gz
r11725@Kushana: nickm | 2006-12-28 14:44:56 -0500
Partial solution to 326: downgrade single-nameserver failures to INFO. svn:r9201
-rw-r--r--ChangeLog2
-rw-r--r--doc/TODO17
-rw-r--r--src/or/dns.c6
3 files changed, 19 insertions, 6 deletions
diff --git a/ChangeLog b/ChangeLog
index c2b7f2363..ef96db2db 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -121,6 +121,8 @@ Changes in version 0.1.2.5-xxxx - 200?-??-??
Edman.
- Removed the supposedly misleading error message mentioned in Bug #294.
Patch from Matt Edman.
+ - Stop warning when a single nameserver fails: only warn when _all_ of
+ our nameservers have failed. (Part of a solution to bug #326.)
o Controller features:
- Have GETINFO dir/status/* work on hosts with DirPort disabled.
diff --git a/doc/TODO b/doc/TODO
index 8d8ea00d8..aa08028af 100644
--- a/doc/TODO
+++ b/doc/TODO
@@ -100,7 +100,7 @@ N - DNS improvements
o Cache answers client-side
o Add to Tor-resolve.py
o Add to tor-resolve
-d - Be a DNS proxy.
+ D Be a DNS proxy.
o Check for invalid characters in hostnames before trying to resolve
them. (This will help catch attempts do to mean things to our DNS
server, and bad software that tries to do DNS lookups on whole URLs.)
@@ -113,15 +113,16 @@ d - Be a DNS proxy.
o Bug 363: Warn and die if we can't find a nameserver and we're running a
server; don't fall back to 127.0.0.1.
o Re-check dns when we change IP addresses, rather than every 12 hours
- - Bug 326: Give fewer error messages from nameservers.
- - Only warn when _all_ nameservers are down; otherwise info.
+ . Bug 326: Give fewer error messages from nameservers.
+ o Only warn when _all_ nameservers are down; otherwise info.
- Increase timeout; what's industry standard?
- Alternatively, raise timeout when nameserver dies but comes back
quickly?
- Don't believe that our sole nameserver is dead? or, not until more
failures than it would take to think one of several nameservers was
dead?
- - Possibly, don't warn until second retry of a nameserver gets no
+ - easy: adjust global_max_nameserver_timeout / global_timeout.
+ X Possibly, don't warn until second retry of a nameserver gets no
answer?
- warn if all of your nameservers go down and stay down for like
5 minutes.
@@ -410,8 +411,6 @@ R - add d64 and fp64 along-side d and fp so people can paste status
- Allow EXTENDCIRCUIT to unknown server.
- We need some way to adjust server status, and to tell tor not to
download directories/network-status, and a way to force a download.
- - It would be nice to request address lookups from the controller
- without using SOCKS.
- Make everything work with hidden services
- Directory system improvements
- config option to publish what ports you listen on, beyond
@@ -419,6 +418,12 @@ R - add d64 and fp64 along-side d and fp so people can paste status
- Parse this.
- Relay this in networkstatus.
+ - Be a DNS proxy.
+ - Need a way to request address lookups (and allocate a stream ID for
+ them) without having a corresponding client socket.
+ - Once this is done, it would be nice to have a way to request address
+ lookups from the controller without using SOCKS.
+
Future version:
- Configuration format really wants sections.
- Good RBL substitute.
diff --git a/src/or/dns.c b/src/or/dns.c
index e7dbccb4b..ca1d60c5b 100644
--- a/src/or/dns.c
+++ b/src/or/dns.c
@@ -178,6 +178,12 @@ evdns_log_cb(int warn, const char *msg)
} else if (!strcmpstart(msg, "Search: ")) {
return;
}
+ if (!strcmpstart(msg, "Nameserver ") && strstr(msg, " has failed: ")) {
+ /* Don't warn about a single failed nameserver; we'll warn with 'all
+ * nameservers have failed' if we're completely out of nameservers;
+ * otherwise, the situation is tolerable. */
+ warn = 0;
+ }
log(warn?LOG_WARN:LOG_INFO, LD_EXIT, "eventdns: %s", msg);
}
#endif