X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;f=src%2Fdnsqueue.cpp;h=975884796f7dd24f9963c58dfb98cc77b9257077;hb=fc9e00f49299cb3b402406b5f185d5f4af1e9780;hp=3858b16aa29c422436ae50fa44291ef6dfa467a7;hpb=94b20ad3b9d391d994bb6097b6f4ed5fc6b7711b;p=user%2Fhenk%2Fcode%2Finspircd.git diff --git a/src/dnsqueue.cpp b/src/dnsqueue.cpp index 3858b16aa..975884796 100644 --- a/src/dnsqueue.cpp +++ b/src/dnsqueue.cpp @@ -14,47 +14,27 @@ * --------------------------------------------------- */ -using namespace std; - #include "inspircd_config.h" #include "inspircd.h" -#include "inspircd_io.h" +#include "configreader.h" #include #include #include #include -#include -#include #include -#ifdef GCC3 -#include -#else -#include -#endif -#include -#include -#include -#include #include "users.h" #include "globals.h" #include "inspstring.h" #include "dnsqueue.h" -#include -#include -#include -#include -#include -#include #include "dns.h" #include "helperfuncs.h" #include "hashcomp.h" #include "socketengine.h" +#include "socket.h" extern ServerConfig* Config; extern InspIRCd* ServerInstance; -address_cache addrcache; - class Lookup; Lookup* dnslist[MAX_DESCRIPTORS]; @@ -87,7 +67,7 @@ public: bool DoLookup(std::string nick) { hostname = ""; - userrec* usr = Find(nick.c_str()); + userrec* usr = Find(nick); if (usr) { resolver1.SetNS(std::string(Config->DNSServer)); @@ -95,7 +75,7 @@ public: { return false; } - strlcpy(u,nick.c_str(),NICKMAX); + strlcpy(u,nick.c_str(),NICKMAX-1); /* ASSOCIATE WITH DNS LOOKUP LIST */ if (resolver1.GetFD() != -1) @@ -129,10 +109,10 @@ public: } if ((hostname != "") && (usr->registered != 7)) { - if (std::string((char*)inet_ntoa(usr->ip4)) == ip) + if ((std::string((char*)inet_ntoa(usr->ip4)) == ip) && (hostname.length() < 65)) { - strlcpy(usr->host,hostname.c_str(),MAXBUF); - strlcpy(usr->dhost,hostname.c_str(),MAXBUF); + strlcpy(usr->host,hostname.c_str(),64); + strlcpy(usr->dhost,hostname.c_str(),64); /*address_cache::iterator address = addrcache.find(usr->ip4); if (address == addrcache.end()) { @@ -207,10 +187,10 @@ public: } }; -bool lookup_dns(std::string nick) +bool lookup_dns(const std::string &nick) { /* First attempt to find the nickname */ - userrec* u = Find(nick.c_str()); + userrec* u = Find(nick); if (u) { /* Check the cache */ @@ -267,7 +247,7 @@ void dns_poll(int fdcheck) * from the socket engine, as dns.cpp tracks it * for us if we are in single-threaded country. */ - delete x; + DELETE(x); } } else @@ -275,7 +255,7 @@ void dns_poll(int fdcheck) /* its fd is dodgy, the dns code probably * bashed it due to error. Free the class. */ - delete x; + DELETE(x); } /* If we got down here, the dns lookup was valid, BUT, * its still in progress. Be patient, and wait for @@ -290,4 +270,3 @@ void dns_poll(int fdcheck) if (ServerInstance && ServerInstance->SE) ServerInstance->SE->DelFd(fdcheck); } -