summaryrefslogtreecommitdiff
path: root/modules/extra/webcpanel/pages
diff options
context:
space:
mode:
authorAdam <Adam@anope.org>2013-12-24 20:48:09 -0500
committerAdam <Adam@anope.org>2013-12-24 20:48:09 -0500
commit53df61b4c24c7d4374d7a8cd1932068786f319ea (patch)
tree0e9f59aae40fc20ab794675f7ddb0f976e4f42b9 /modules/extra/webcpanel/pages
parent7d27689d051995c7bc44645d6645a0f7f6cb7bfd (diff)
Make webcpanel's nickserv alist behave more like /ns alist
Diffstat (limited to 'modules/extra/webcpanel/pages')
-rw-r--r--modules/extra/webcpanel/pages/nickserv/alist.cpp15
1 files changed, 12 insertions, 3 deletions
diff --git a/modules/extra/webcpanel/pages/nickserv/alist.cpp b/modules/extra/webcpanel/pages/nickserv/alist.cpp
index a0568f5b4..eb1160cd4 100644
--- a/modules/extra/webcpanel/pages/nickserv/alist.cpp
+++ b/modules/extra/webcpanel/pages/nickserv/alist.cpp
@@ -7,19 +7,28 @@
#include "../../webcpanel.h"
+static bool ChannelSort(ChannelInfo *ci1, ChannelInfo *ci2)
+{
+ return ci::less()(ci1->name, ci2->name);
+}
+
WebCPanel::NickServ::Alist::Alist(const Anope::string &cat, const Anope::string &u) : WebPanelProtectedPage(cat, u)
{
}
bool WebCPanel::NickServ::Alist::OnRequest(HTTPProvider *server, const Anope::string &page_name, HTTPClient *client, HTTPMessage &message, HTTPReply &reply, NickAlias *na, TemplateFileServer::Replacements &replacements)
{
+ std::deque<ChannelInfo *> queue;
+ na->nc->GetChannelReferences(queue);
+ std::sort(queue.begin(), queue.end(), ChannelSort);
+
int chan_count = 0;
- for (registered_channel_map::const_iterator it = RegisteredChannelList->begin(), it_end = RegisteredChannelList->end(); it != it_end; ++it)
+ for (unsigned q = 0; q < queue.size(); ++q)
{
- ChannelInfo *ci = it->second;
+ ChannelInfo *ci = queue[q];
- if (ci->GetFounder() && ci->GetFounder() == na->nc)
+ if (ci->GetFounder() == na->nc)
{
++chan_count;