summaryrefslogtreecommitdiff
path: root/modules/extra/m_xmlrpc_main.cpp
diff options
context:
space:
mode:
authorAdam <Adam@anope.org>2010-11-20 21:45:30 -0500
committerAdam <Adam@anope.org>2010-12-12 19:35:27 -0500
commit246f44b9888161aecefc81f0ff17ddd893287e3c (patch)
treeb89607a9ad9c91914f292fc54cc32213a8d9f5c4 /modules/extra/m_xmlrpc_main.cpp
parenta85112172d842aa74aa5531788d383328d153e74 (diff)
Added cs_mode, rewrote the old list mode code, and added CIDR support
Diffstat (limited to 'modules/extra/m_xmlrpc_main.cpp')
-rw-r--r--modules/extra/m_xmlrpc_main.cpp38
1 files changed, 17 insertions, 21 deletions
diff --git a/modules/extra/m_xmlrpc_main.cpp b/modules/extra/m_xmlrpc_main.cpp
index 1053523b8..74b570ee2 100644
--- a/modules/extra/m_xmlrpc_main.cpp
+++ b/modules/extra/m_xmlrpc_main.cpp
@@ -174,27 +174,23 @@ class MyXMLRPCEvent : public XMLRPCEvent
if (c)
{
- request->reply("bancount", stringify((c && c->bans ? c->bans->count : 0)));
- if (c->bans && c->bans->count)
- {
- int i = 0;
- for (Entry *entry = c->bans->entries; entry; entry = entry->next, ++i)
- request->reply("ban" + stringify(i), iface->Sanitize(entry->mask));
- }
- request->reply("exceptcount", stringify((c && c->excepts ? c->excepts->count : 0)));
- if (c->excepts && c->excepts->count)
- {
- int i = 0;
- for (Entry *entry = c->excepts->entries; entry; entry = entry->next, ++i)
- request->reply("except" + stringify(i), iface->Sanitize(entry->mask));
- }
- request->reply("invitecount", stringify((c && c->invites ? c->invites->count : 0)));
- if (c->invites && c->invites->count)
- {
- int i = 0;
- for (Entry *entry = c->invites->entries; entry; entry = entry->next, ++i)
- request->reply("invite" + stringify(i), iface->Sanitize(entry->mask));
- }
+ request->reply("bancount", stringify(c->HasMode(CMODE_BAN)));
+ int count = 0;
+ std::pair<Channel::ModeList::iterator, Channel::ModeList::iterator> its = c->GetModeList(CMODE_BAN);
+ for (; its.first != its.second; ++its.first)
+ request->reply("ban" + stringify(++count), iface->Sanitize(its.first->second));
+
+ request->reply("exceptcount", stringify(c->HasMode(CMODE_EXCEPT)));
+ count = 0;
+ its = c->GetModeList(CMODE_EXCEPT);
+ for (; its.first != its.second; ++its.first)
+ request->reply("except" + stringify(++count), iface->Sanitize(its.first->second));
+
+ request->reply("invitecount", stringify(c->HasMode(CMODE_INVITEOVERRIDE)));
+ count = 0;
+ its = c->GetModeList(CMODE_INVITEOVERRIDE);
+ for (; its.first != its.second; ++its.first)
+ request->reply("invite" + stringify(++count), iface->Sanitize(its.first->second));
Anope::string users;
for (CUserList::const_iterator it = c->users.begin(); it != c->users.end(); ++it)