*
* @return This function returns pointer to a map of User pointers (CUList*).
*/
- const UserMembList* GetUsers() const { return &userlist; }
+ const UserMembList& GetUsers() const { return userlist; }
/** Returns true if the user given is on the given channel.
* @param user The user to look for
bool inside = ch->HasUser(user);
/* who on a channel. */
- const UserMembList *cu = ch->GetUsers();
-
- for (UserMembCIter i = cu->begin(); i != cu->end(); i++)
+ const UserMembList& cu = ch->GetUsers();
+ for (UserMembCIter i = cu.begin(); i != cu.end(); ++i)
{
/* None of this applies if we WHO ourselves */
if (user != i->first)
void PrefixMode::RemoveMode(Channel* chan, irc::modestacker& stack)
{
- const UserMembList* userlist = chan->GetUsers();
- for (UserMembCIter i = userlist->begin(); i != userlist->end(); ++i)
+ const UserMembList& userlist = chan->GetUsers();
+ for (UserMembCIter i = userlist.begin(); i != userlist.end(); ++i)
{
if (i->second->hasMode(this->GetModeChar()))
stack.Push(this->GetModeChar(), i->first->nick);
++c;
mod->OnCleanup(TYPE_CHANNEL, chan);
chan->doUnhookExtensions(items);
- const UserMembList* users = chan->GetUsers();
- for(UserMembCIter mi = users->begin(); mi != users->end(); mi++)
+ const UserMembList& users = chan->GetUsers();
+ for (UserMembCIter mi = users.begin(); mi != users.end(); ++mi)
mi->second->doUnhookExtensions(items);
}
if (IsVisible(memb))
return;
- const UserMembList* users = memb->chan->GetUsers();
- for(UserMembCIter i = users->begin(); i != users->end(); i++)
+ const UserMembList& users = memb->chan->GetUsers();
+ for (UserMembCIter i = users.begin(); i != users.end(); ++i)
{
if (IS_LOCAL(i->first) && !CanSee(i->first, memb))
excepts.insert(i->first);
// this channel should not be considered when listing my neighbors
i = include.erase(i);
// however, that might hide me from ops that can see me...
- const UserMembList* users = memb->chan->GetUsers();
- for(UserMembCIter j = users->begin(); j != users->end(); j++)
+ const UserMembList& users = memb->chan->GetUsers();
+ for(UserMembCIter j = users.begin(); j != users.end(); ++j)
{
if (IS_LOCAL(j->first) && CanSee(j->first, memb))
exception[j->first] = true;
{
if (badchan)
{
- const UserMembList* users = memb->chan->GetUsers();
- for(UserMembCIter i = users->begin(); i != users->end(); i++)
+ const UserMembList& users = memb->chan->GetUsers();
+ for (UserMembCIter i = users.begin(); i != users.end(); ++i)
if (i->first != memb->user)
except_list.insert(i->first);
}
/* now the ugly bit, spool current members of a channel. :| */
- const UserMembList *ulist= targchan->GetUsers();
+ const UserMembList& ulist = targchan->GetUsers();
/* note that unlike /names, we do NOT check +i vs in the channel */
- for (UserMembCIter i = ulist->begin(); i != ulist->end(); i++)
+ for (UserMembCIter i = ulist.begin(); i != ulist.end(); ++i)
{
/*
* Unlike Asuka, I define a clone as coming from the same host. --w00t
}
}
- const UserMembList* users = cmd.activechan->GetUsers();
- for (UserMembCIter i = users->begin(); i != users->end(); ++i)
+ const UserMembList& users = cmd.activechan->GetUsers();
+ for (UserMembCIter i = users.begin(); i != users.end(); ++i)
{
LocalUser* curr = IS_LOCAL(i->first);
if (!curr)
{
// Hide the KICK from all non-opers
User* leaving = memb->user;
- const UserMembList* users = memb->chan->GetUsers();
- for (UserMembCIter i = users->begin(); i != users->end(); ++i)
+ const UserMembList& users = memb->chan->GetUsers();
+ for (UserMembCIter i = users.begin(); i != users.end(); ++i)
{
User* curr = i->first;
if ((IS_LOCAL(curr)) && (!curr->IsOper()) && (curr != leaving))
return MOD_RES_PASSTHRU;
Channel* chan = static_cast<Channel*>(dest);
- const UserMembList *ulist = chan->GetUsers();
bool is_bypasschar = (deaf_bypasschars.find(text[0]) != std::string::npos);
bool is_bypasschar_uline = (deaf_bypasschars_uline.find(text[0]) != std::string::npos);
if (!deaf_bypasschars_uline.empty() && is_bypasschar)
return MOD_RES_PASSTHRU;
- for (UserMembCIter i = ulist->begin(); i != ulist->end(); i++)
+ const UserMembList& ulist = chan->GetUsers();
+ for (UserMembCIter i = ulist.begin(); i != ulist.end(); ++i)
{
/* not +d ? */
if (!i->first->IsModeSet(m1))
* Make all users visible, as +D is being removed. If we don't do this,
* they remain permanently invisible on this channel!
*/
- const UserMembList* names = channel->GetUsers();
- for (UserMembCIter n = names->begin(); n != names->end(); ++n)
+ const UserMembList& users = channel->GetUsers();
+ for (UserMembCIter n = users.begin(); n != users.end(); ++n)
creator->OnText(n->first, channel, TYPE_CHANNEL, "", 0, empty);
}
channel->SetMode(this, adding);
static void populate(CUList& except, Membership* memb)
{
- const UserMembList* users = memb->chan->GetUsers();
- for(UserMembCIter i = users->begin(); i != users->end(); i++)
+ const UserMembList& users = memb->chan->GetUsers();
+ for (UserMembCIter i = users.begin(); i != users.end(); ++i)
{
if (i->first == memb->user || !IS_LOCAL(i->first))
continue;
/*
* Clean up metadata
*/
- const UserMembList* names = chan->GetUsers();
- for (UserMembCIter n = names->begin(); n != names->end(); ++n)
+ const UserMembList& users = chan->GetUsers();
+ for (UserMembCIter n = users.begin(); n != users.end(); ++n)
jointime.set(n->second, 0);
}
modeline.append(" ").append(user->nick);
}
- const UserMembList* ulist = c->GetUsers();
- for (UserMembList::const_iterator j = ulist->begin(); j != ulist->end(); ++j)
+ const UserMembList& ulist = c->GetUsers();
+ for (UserMembList::const_iterator j = ulist.begin(); j != ulist.end(); ++j)
{
LocalUser* u = IS_LOCAL(j->first);
if (u == NULL || u == user)
Channel* c = i->second;
data << "<channel>";
- data << "<usercount>" << c->GetUsers()->size() << "</usercount><channelname>" << Sanitize(c->name) << "</channelname>";
+ data << "<usercount>" << c->GetUsers().size() << "</usercount><channelname>" << Sanitize(c->name) << "</channelname>";
data << "<channeltopic>";
data << "<topictext>" << Sanitize(c->topic) << "</topictext>";
data << "<setby>" << Sanitize(c->setby) << "</setby>";
data << "<settime>" << c->topicset << "</settime>";
data << "</channeltopic>";
data << "<channelmodes>" << Sanitize(c->ChanModes(true)) << "</channelmodes>";
- const UserMembList* ulist = c->GetUsers();
- for (UserMembCIter x = ulist->begin(); x != ulist->end(); ++x)
+ const UserMembList& ulist = c->GetUsers();
+ for (UserMembCIter x = ulist.begin(); x != ulist.end(); ++x)
{
Membership* memb = x->second;
data << "<channelmember><uid>" << memb->user->uuid << "</uid><privs>"
std::set<User*> already_sent;
for (IncludeChanList::const_iterator i = chans.begin(); i != chans.end(); ++i)
{
- const UserMembList* userlist = (*i)->chan->GetUsers();
- for (UserMembList::const_iterator m = userlist->begin(); m != userlist->end(); ++m)
+ const UserMembList& userlist = (*i)->chan->GetUsers();
+ for (UserMembList::const_iterator m = userlist.begin(); m != userlist.end(); ++m)
{
/*
* Send the line if the channel member in question meets all of the following criteria:
std::string line;
std::string mode;
- const UserMembList* userlist = memb->chan->GetUsers();
- for (UserMembCIter it = userlist->begin(); it != userlist->end(); ++it)
+ const UserMembList& userlist = memb->chan->GetUsers();
+ for (UserMembCIter it = userlist.begin(); it != userlist.end(); ++it)
{
// Send the extended join line if the current member is local, has the extended-join cap and isn't excepted
User* member = IS_LOCAL(it->first);
std::string line = ":" + memb->user->GetFullHost() + " AWAY :" + memb->user->awaymsg;
- const UserMembList* userlist = memb->chan->GetUsers();
- for (UserMembCIter it = userlist->begin(); it != userlist->end(); ++it)
+ const UserMembList& userlist = memb->chan->GetUsers();
+ for (UserMembCIter it = userlist.begin(); it != userlist.end(); ++it)
{
// Send the away notify line if the current member is local, has the away-notify cap and isn't excepted
User* member = IS_LOCAL(it->first);
void OnUnset(User* source, Channel* chan)
{
// Unset the per-membership extension when the mode is removed
- const UserMembList* users = chan->GetUsers();
- for (UserMembCIter i = users->begin(); i != users->end(); ++i)
+ const UserMembList& users = chan->GetUsers();
+ for (UserMembCIter i = users.begin(); i != users.end(); ++i)
MemberInfoExt.unset(i->second);
}
void OnBuildExemptList(MessageType message_type, Channel* chan, User* sender, char status, CUList &exempt_list, const std::string &text)
{
int public_silence = (message_type == MSG_PRIVMSG ? SILENCE_CHANNEL : SILENCE_CNOTICE);
- const UserMembList *ulist = chan->GetUsers();
- for (UserMembCIter i = ulist->begin(); i != ulist->end(); i++)
+ const UserMembList& ulist = chan->GetUsers();
+ for (UserMembCIter i = ulist.begin(); i != ulist.end(); ++i)
{
if (IS_LOCAL(i->first))
{
void TreeSocket::SendFJoins(Channel* c)
{
CommandFJoin::Builder fjoin(c);
- const UserMembList *ulist = c->GetUsers();
- for (UserMembCIter i = ulist->begin(); i != ulist->end(); ++i)
+ const UserMembList& ulist = c->GetUsers();
+ for (UserMembCIter i = ulist.begin(); i != ulist.end(); ++i)
{
Membership* memb = i->second;
if (!fjoin.has_room(memb))
minrank = mh->GetPrefixRank();
}
- const UserMembList *ulist = c->GetUsers();
-
- for (UserMembCIter i = ulist->begin(); i != ulist->end(); i++)
+ const UserMembList& ulist = c->GetUsers();
+ for (UserMembCIter i = ulist.begin(); i != ulist.end(); ++i)
{
if (IS_LOCAL(i->first))
continue;
if (!API)
return MODEACTION_DENY;
- const UserMembList* userlist = channel->GetUsers();
- for(UserMembCIter i = userlist->begin(); i != userlist->end(); i++)
+ const UserMembList& userlist = channel->GetUsers();
+ for (UserMembCIter i = userlist.begin(); i != userlist.end(); ++i)
{
ssl_cert* cert = API->GetCertificate(i->first);
if (!cert && !i->first->server->IsULine())
for (IncludeChanList::const_iterator v = include_c.begin(); v != include_c.end(); ++v)
{
Channel* c = (*v)->chan;
- const UserMembList* ulist = c->GetUsers();
- for (UserMembList::const_iterator i = ulist->begin(); i != ulist->end(); i++)
+ const UserMembList& ulist = c->GetUsers();
+ for (UserMembList::const_iterator i = ulist.begin(); i != ulist.end(); ++i)
{
LocalUser* u = IS_LOCAL(i->first);
if (u && u->already_sent != LocalUser::already_sent_id)
}
for (IncludeChanList::const_iterator v = include_c.begin(); v != include_c.end(); ++v)
{
- const UserMembList* ulist = (*v)->chan->GetUsers();
- for (UserMembList::const_iterator i = ulist->begin(); i != ulist->end(); i++)
+ const UserMembList& ulist = (*v)->chan->GetUsers();
+ for (UserMembList::const_iterator i = ulist.begin(); i != ulist.end(); i++)
{
LocalUser* u = IS_LOCAL(i->first);
if (u && (u->already_sent != uniq_id))