summaryrefslogtreecommitdiff
path: root/modules/m_dns.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'modules/m_dns.cpp')
-rw-r--r--modules/m_dns.cpp9
1 files changed, 5 insertions, 4 deletions
diff --git a/modules/m_dns.cpp b/modules/m_dns.cpp
index 214e97cf4..01524d1ca 100644
--- a/modules/m_dns.cpp
+++ b/modules/m_dns.cpp
@@ -281,7 +281,7 @@ class Packet : public Query
if (q.name.find(':') != Anope::string::npos)
{
- static const char *const hex = "0123456789abcdef";
+ const char *const hex = "0123456789abcdef";
char reverse_ip[128];
unsigned reverse_ip_count = 0;
for (int j = 15; j >= 0; --j)
@@ -662,7 +662,8 @@ class MyManager : public Manager, public Timer
public:
std::map<unsigned short, Request *> requests;
- MyManager(Module *creator) : Manager(creator), Timer(300, Anope::CurTime, true), serial(Anope::CurTime), tcpsock(NULL), udpsock(NULL), listen(false)
+ MyManager(Module *creator) : Manager(creator), Timer(300, Anope::CurTime, true), serial(Anope::CurTime), tcpsock(NULL), udpsock(NULL),
+ listen(false), cur_id(rand())
{
}
@@ -717,13 +718,13 @@ class MyManager : public Manager, public Timer
}
private:
+ unsigned short cur_id;
+
unsigned short GetID()
{
if (this->udpsock->GetPackets().size() == 65535)
throw SocketException("DNS queue full");
- static unsigned short cur_id = rand();
-
do
cur_id = (cur_id + 1) & 0xFFFF;
while (!cur_id || this->requests.count(cur_id));