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