summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAdam <Adam@anope.org>2013-10-19 03:42:12 -0400
committerAdam <Adam@anope.org>2013-10-19 03:42:12 -0400
commit93a83da771842cd1c999962dc7d76e6ece6c9c9d (patch)
treef444db72f980a63a7a6154266043b3ae572ab091
parent0ff1bb9d5b28a43ab0639df72dce841a24f914b2 (diff)
Fix os_dns not using remove_split_servers and fix remove_split_servers=true readd_connected_servers=false causing delinked servers to remaing in pooled+not active state
-rw-r--r--modules/commands/os_dns.cpp14
1 files changed, 9 insertions, 5 deletions
diff --git a/modules/commands/os_dns.cpp b/modules/commands/os_dns.cpp
index 1a6a6df7f..33a90bbb6 100644
--- a/modules/commands/os_dns.cpp
+++ b/modules/commands/os_dns.cpp
@@ -232,15 +232,16 @@ class CommandOSDNS : public Command
ip_str = "None";
entry["IP"] = ip_str;
- if (!srv)
- entry["State"] = Language::Translate(source.GetAccount(), _("Split"));
- else if (s->Active())
+ if (s->Active())
entry["State"] = Language::Translate(source.GetAccount(), _("Pooled/Active"));
else if (s->Pooled())
entry["State"] = Language::Translate(source.GetAccount(), _("Pooled/Not Active"));
else
entry["State"] = Language::Translate(source.GetAccount(), _("Unpooled"));
+ if (!srv)
+ entry["State"] += Anope::string(" ") + Language::Translate(source.GetAccount(), _("(Split)"));
+
lf.AddEntry(entry);
}
@@ -753,9 +754,12 @@ class ModuleDNS : public Module
void OnServerQuit(Server *s) anope_override
{
DNSServer *dns = DNSServer::Find(s->GetName());
- if (dns && dns->Pooled() && dns->Active())
+ if (remove_split_servers && dns && dns->Pooled() && dns->Active())
{
- dns->SetActive(false);
+ if (readd_connected_servers)
+ dns->SetActive(false); // Will be reactivated when it comes back
+ else
+ dns->Pool(false); // Otherwise permanently pull this
Log(this) << "Depooling delinked server " << s->GetName();
}
}