From 93a83da771842cd1c999962dc7d76e6ece6c9c9d Mon Sep 17 00:00:00 2001 From: Adam Date: Sat, 19 Oct 2013 03:42:12 -0400 Subject: 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 --- modules/commands/os_dns.cpp | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) (limited to 'modules/commands/os_dns.cpp') 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(); } } -- cgit