diff options
author | Adam <Adam@anope.org> | 2010-11-20 21:45:30 -0500 |
---|---|---|
committer | Adam <Adam@anope.org> | 2010-12-12 19:35:27 -0500 |
commit | 246f44b9888161aecefc81f0ff17ddd893287e3c (patch) | |
tree | b89607a9ad9c91914f292fc54cc32213a8d9f5c4 /modules/extra/m_xmlrpc_main.cpp | |
parent | a85112172d842aa74aa5531788d383328d153e74 (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.cpp | 38 |
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) |