summaryrefslogtreecommitdiff
path: root/modules/commands/os_dns.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'modules/commands/os_dns.cpp')
-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();
}
}