From 3020afbbedca81d14bc098e45b02c27a14625a1c Mon Sep 17 00:00:00 2001 From: brain Date: Wed, 9 Aug 2006 20:14:26 +0000 Subject: [PATCH] Fix passing wrong instance to resolver git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4824 e03df62e-2008-0410-955e-edbf42e46eb7 --- src/dns.cpp | 4 ++++ src/inspircd.cpp | 4 +++- src/modules/m_spanningtree.cpp | 11 ++++++----- 3 files changed, 13 insertions(+), 6 deletions(-) diff --git a/src/dns.cpp b/src/dns.cpp index f7a2d62e2..882aee1a7 100644 --- a/src/dns.cpp +++ b/src/dns.cpp @@ -241,6 +241,8 @@ int DNS::GetMasterSocket() /* Initialise the DNS UDP socket so that we can send requests */ DNS::DNS(InspIRCd* Instance) : ServerInstance(Instance) { + log(DEBUG,"DNS::DNS: Instance = %08x",Instance); + insp_inaddr addr; /* Clear the Resolver class table */ @@ -833,6 +835,8 @@ DNS::~DNS() /* High level abstraction of dns used by application at large */ Resolver::Resolver(InspIRCd* Instance, const std::string &source, QueryType qt) : ServerInstance(Instance), input(source), querytype(qt) { + log(DEBUG,"Instance: %08x %08x %08x",Instance, ServerInstance, ServerInstance->Res); + insp_inaddr binip; switch (querytype) diff --git a/src/inspircd.cpp b/src/inspircd.cpp index 3a4952cc4..6b4800887 100644 --- a/src/inspircd.cpp +++ b/src/inspircd.cpp @@ -65,7 +65,7 @@ #include "typedefs.h" #include "command_parse.h" -InspIRCd* ServerInstance; +InspIRCd* ServerInstance = NULL; extern ModuleList modules; extern FactoryList factory; @@ -886,6 +886,8 @@ int InspIRCd::Run() { this->Res = new DNS(this); + log(DEBUG,"RES: %08x",this->Res); + LoadAllModules(this); /* Just in case no modules were loaded - fix for bug #101 */ diff --git a/src/modules/m_spanningtree.cpp b/src/modules/m_spanningtree.cpp index 2eb46d420..003a4868d 100644 --- a/src/modules/m_spanningtree.cpp +++ b/src/modules/m_spanningtree.cpp @@ -69,6 +69,7 @@ class ModuleSpanningTree; static ModuleSpanningTree* TreeProtocolModule; extern InspIRCd* ServerInstance; + extern std::vector modules; extern std::vector factory; extern int MODCOUNT; @@ -3081,7 +3082,7 @@ class ServernameResolver : public Resolver */ Link MyLink; public: - ServernameResolver(const std::string &hostname, Link x) : Resolver(ServerInstance, hostname, DNS_QUERY_FORWARD), MyLink(x) + ServernameResolver(InspIRCd* Instance, const std::string &hostname, Link x) : Resolver(Instance, hostname, DNS_QUERY_FORWARD), MyLink(x) { /* Nothing in here, folks */ } @@ -3122,7 +3123,7 @@ class SecurityIPResolver : public Resolver private: Link MyLink; public: - SecurityIPResolver(const std::string &hostname, Link x) : Resolver(ServerInstance, hostname, DNS_QUERY_FORWARD), MyLink(x) + SecurityIPResolver(InspIRCd* Instance, const std::string &hostname, Link x) : Resolver(Instance, hostname, DNS_QUERY_FORWARD), MyLink(x) { } @@ -3371,7 +3372,7 @@ void ReadConfiguration(bool rebind) { try { - SecurityIPResolver* sr = new SecurityIPResolver(L.IPAddr, L); + SecurityIPResolver* sr = new SecurityIPResolver(ServerInstance, L.IPAddr, L); Srv->AddResolver(sr); } catch (ModuleException& e) @@ -3787,7 +3788,7 @@ class ModuleSpanningTree : public Module { try { - ServernameResolver* snr = new ServernameResolver(x->IPAddr, *x); + ServernameResolver* snr = new ServernameResolver(ServerInstance,x->IPAddr, *x); Srv->AddResolver(snr); } catch (ModuleException& e) @@ -3868,7 +3869,7 @@ class ModuleSpanningTree : public Module { try { - ServernameResolver* snr = new ServernameResolver(x->IPAddr, *x); + ServernameResolver* snr = new ServernameResolver(ServerInstance, x->IPAddr, *x); Srv->AddResolver(snr); } catch (ModuleException& e) -- 2.39.5