summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/config.cpp2
-rw-r--r--src/dns.cpp13
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()