X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;f=src%2Fdnsqueue.cpp;h=73d80d11d02804b3fc526979d49dc7e560a7dc60;hb=84a19a9ab6129deb71cdc24b216b74dd8eb80978;hp=36128f985eb6349c24fb1e8536183c9e98acd5b7;hpb=9b4c7f385f0175f27e8d33de87827b65d89f5318;p=user%2Fhenk%2Fcode%2Finspircd.git diff --git a/src/dnsqueue.cpp b/src/dnsqueue.cpp index 36128f985..73d80d11d 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]; @@ -71,11 +51,13 @@ public: Lookup() { *u = 0; + hostname = ""; } void Reset() { *u = 0; + hostname = ""; } ~Lookup() @@ -93,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) @@ -127,16 +109,16 @@ 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); - address_cache::iterator address = addrcache.find(usr->ip4); + /*address_cache::iterator address = addrcache.find(usr->ip4); if (address == addrcache.end()) { log(DEBUG,"Caching hostname %s -> %s",(char*)inet_ntoa(usr->ip4),hostname.c_str()); addrcache[usr->ip4] = new std::string(hostname); - } + }*/ WriteServ(usr->fd,"NOTICE Auth :*** Found your hostname"); } usr->dns_done = true; @@ -205,24 +187,23 @@ public: } }; -bool lookup_dns(std::string nick) +bool lookup_dns(const std::string &nick) { /* First attempt to find the nickname */ userrec* u = Find(nick); if (u) { /* Check the cache */ - address_cache::iterator address = addrcache.find(u->ip4); + /*address_cache::iterator address = addrcache.find(u->ip4); if (address != addrcache.end()) { - /* Theyre in the cache, dont waste a lookup */ WriteServ(u->fd,"NOTICE Auth :*** Found your hostname (cached)"); log(DEBUG,"Found cached host"); strlcpy(u->host,address->second->c_str(),MAXBUF); strlcpy(u->dhost,address->second->c_str(),MAXBUF); u->dns_done = true; return true; - } + }*/ /* If the user exists, create a new * lookup object, and associate it * with the user. The lookup object @@ -289,4 +270,3 @@ void dns_poll(int fdcheck) if (ServerInstance && ServerInstance->SE) ServerInstance->SE->DelFd(fdcheck); } -