X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;ds=sidebyside;f=src%2Fcoremods%2Fcore_dns.cpp;h=2e75a591f7c1b1acf547c2238378481a8304584a;hb=1158a6767613ba14ebb5359b118e025736ad8acd;hp=8532179fbc995c4b9b4a65d75775fdd4be3d5dc1;hpb=87b1461e2a4710a38b32186c2582da9fe9bb3804;p=user%2Fhenk%2Fcode%2Finspircd.git diff --git a/src/coremods/core_dns.cpp b/src/coremods/core_dns.cpp index 8532179fb..2e75a591f 100644 --- a/src/coremods/core_dns.cpp +++ b/src/coremods/core_dns.cpp @@ -1,8 +1,10 @@ /* * InspIRCd -- Internet Relay Chat Daemon * - * Copyright (C) 2013 Adam - * Copyright (C) 2003-2013 Anope Team + * Copyright (C) 2019 Robby + * Copyright (C) 2015, 2017-2019 Sadie Powell + * Copyright (C) 2013-2016 Attila Molnar + * Copyright (C) 2013, 2015-2016 Adam * * This file is part of InspIRCd. InspIRCd is free software: you can * redistribute it and/or modify it under the terms of the GNU General Public @@ -538,6 +540,25 @@ class MyManager : public Manager, public Timer, public EventHandler } } + std::string GetTypeStr(QueryType qt) CXX11_OVERRIDE + { + switch (qt) + { + case QUERY_A: + return "A"; + case QUERY_AAAA: + return "AAAA"; + case QUERY_CNAME: + return "CNAME"; + case QUERY_PTR: + return "PTR"; + case QUERY_TXT: + return "TXT"; + default: + return "UNKNOWN"; + } + } + void OnEventHandlerError(int errcode) CXX11_OVERRIDE { ServerInstance->Logs->Log(MODNAME, LOG_DEBUG, "UDP socket got an error event"); @@ -661,16 +682,22 @@ class MyManager : public Manager, public Timer, public EventHandler bool Tick(time_t now) CXX11_OVERRIDE { - ServerInstance->Logs->Log(MODNAME, LOG_DEBUG, "cache: purging DNS cache"); - + unsigned long expired = 0; for (cache_map::iterator it = this->cache.begin(); it != this->cache.end(); ) { const Query& query = it->second; if (IsExpired(query, now)) + { + expired++; this->cache.erase(it++); + } else ++it; } + + if (expired) + ServerInstance->Logs->Log(MODNAME, LOG_DEBUG, "cache: purged %lu expired DNS entries", expired); + return true; }