diff options
author | brain <brain@e03df62e-2008-0410-955e-edbf42e46eb7> | 2005-12-07 11:13:54 +0000 |
---|---|---|
committer | brain <brain@e03df62e-2008-0410-955e-edbf42e46eb7> | 2005-12-07 11:13:54 +0000 |
commit | 788085148bc06dac4bfaa36911a580b6e983c881 (patch) | |
tree | 3cc4ca6c388bb3ecc145b55eadd4f95fe08480b4 /src/dnsqueue.cpp | |
parent | 7e5717df37518f6d0cde67ccddc65766830bd6ee (diff) |
Tons of DNS debugging and stability fixes
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@2247 e03df62e-2008-0410-955e-edbf42e46eb7
Diffstat (limited to 'src/dnsqueue.cpp')
-rw-r--r-- | src/dnsqueue.cpp | 25 |
1 files changed, 23 insertions, 2 deletions
diff --git a/src/dnsqueue.cpp b/src/dnsqueue.cpp index 610288673..d7b4119ad 100644 --- a/src/dnsqueue.cpp +++ b/src/dnsqueue.cpp @@ -99,15 +99,18 @@ public: Lookup() { strcpy(u,""); + log(DEBUG,"Create class Lookup"); } void Reset() { strcpy(u,""); + log(DEBUG,"Reset class Lookup"); } ~Lookup() { + log(DEBUG,"Delete class Lookup"); } bool DoLookup(std::string nick) @@ -119,10 +122,14 @@ public: log(DEBUG,"New Lookup class for %s with DNSServer set to '%s'",nick.c_str(),DNSServer); resolver1.SetNS(std::string(DNSServer)); if (!resolver1.ReverseLookup(std::string(usr->host))) + { + log(DEBUG,"ReverseLookup didnt return true, we're outta here"); return false; + } strlcpy(u,nick.c_str(),NICKMAX); return true; } + log(DEBUG,"We couldnt find that user"); return false; } @@ -130,10 +137,12 @@ public: { if (hostname != "") { + log(DEBUG,"Doing forward lookup here with host %s",hostname.c_str()); // doing forward lookup userrec* usr = NULL; if (resolver2.HasResult()) { + log(DEBUG,"resolver2 has result"); if (resolver2.GetFD() != 0) { std::string ip = resolver2.GetResultIP(); @@ -144,6 +153,7 @@ public: { if (usr->registered > 3) { + log(DEBUG,"Point 1: Returning true as usr->dns_done is true"); usr->dns_done = true; return true; } @@ -168,10 +178,15 @@ public: { usr = Find(u); if (usr) + { + log(DEBUG,"Point 2: Returning true"); usr->dns_done = true; + } return true; } } + log(DEBUG,"Returning false in forward"); + return false; } else { @@ -187,16 +202,22 @@ public: hostname = resolver1.GetResult(); if (usr) { - if ((usr->registered > 3) && (hostname == "")) + if ((usr->registered > 3) || (hostname == "")) { + log(DEBUG,"Hostname is blank and user->registered > 3, returning true and setting done"); usr->dns_done = true; return true; } } - resolver2.ForwardLookup(hostname); + log(DEBUG,"Starting forwardlookup now for host '%s'...",hostname.c_str()); + if ((resolver2.GetFD() <= 0) && (hostname != "")) + { + resolver2.ForwardLookup(hostname); + } } } } + log(DEBUG,"Returning false"); return false; } |