From 61e75646339753609d25aad0f4f8f60db1c966b5 Mon Sep 17 00:00:00 2001 From: Adam Date: Thu, 16 Sep 2010 22:21:55 -0400 Subject: Fixed connecting back to the nameserver if we lose connection, and detecting the nameserver --- src/config.cpp | 2 +- src/dns.cpp | 13 +++---------- 2 files changed, 4 insertions(+), 11 deletions(-) diff --git a/src/config.cpp b/src/config.cpp index d8ac4f863..ac1f00295 100644 --- a/src/config.cpp +++ b/src/config.cpp @@ -358,7 +358,7 @@ ServerConfig::ServerConfig() : errstr(""), config_data() while (f.is_open() && getline(f, server.str())) { - if (server.find("nameserver ") == 0 && getline(f, server.str())) + if (server.find("nameserver ") == 0) { if (server.substr(11).is_pos_number_only()) { diff --git a/src/dns.cpp b/src/dns.cpp index ebed29b5e..c613dc776 100644 --- a/src/dns.cpp +++ b/src/dns.cpp @@ -1,6 +1,6 @@ #include "services.h" -DNSManager *DNSEngine; +DNSManager *DNSEngine = NULL; static inline unsigned short GetRandomID() { @@ -11,6 +11,8 @@ DNSRequest::DNSRequest(const Anope::string &addr, QueryType qt, bool cache, Modu { if (!DNSEngine) DNSEngine = new DNSManager(); + if (!DNSEngine->sock) + DNSEngine->sock = new DNSSocket(Config->NameServer, DNSManager::DNSPort); if (DNSEngine->packets.size() == 65535) throw SocketException("DNS queue full"); @@ -474,15 +476,6 @@ bool DNSSocket::ProcessWrite() DNSManager::DNSManager() : Timer(3600, Anope::CurTime, true) { this->sock = NULL; - - try - { - this->sock = new DNSSocket(Config->NameServer, DNSManager::DNSPort); - } - catch (const SocketException &ex) - { - throw SocketException("Unable to connect to nameserver: " + ex.GetReason()); - } } DNSManager::~DNSManager() -- cgit