From 8bdc2313a66bc200e7067e01159367f48571fef9 Mon Sep 17 00:00:00 2001 From: Attila Molnar Date: Fri, 14 Feb 2014 12:16:31 +0100 Subject: Move GetAllPrefixChars() from Channel to Membership --- src/channels.cpp | 14 +++++--------- src/modules/m_check.cpp | 2 +- src/modules/m_deaf.cpp | 2 +- src/modules/m_httpd_stats.cpp | 2 +- src/modules/m_namesx.cpp | 4 ++-- 5 files changed, 10 insertions(+), 14 deletions(-) (limited to 'src') diff --git a/src/channels.cpp b/src/channels.cpp index c47bcb119..a8f8db43c 100644 --- a/src/channels.cpp +++ b/src/channels.cpp @@ -756,20 +756,16 @@ unsigned int Membership::getRank() return rv; } -const char* Channel::GetAllPrefixChars(User* user) +const char* Membership::GetAllPrefixChars() const { static char prefix[64]; int ctr = 0; - UserMembIter m = userlist.find(user); - if (m != userlist.end()) + for (std::string::const_iterator i = modes.begin(); i != modes.end(); ++i) { - for(unsigned int i=0; i < m->second->modes.length(); i++) - { - PrefixMode* mh = ServerInstance->Modes->FindPrefixMode(m->second->modes[i]); - if (mh && mh->GetPrefix()) - prefix[ctr++] = mh->GetPrefix(); - } + PrefixMode* mh = ServerInstance->Modes->FindPrefixMode(*i); + if (mh && mh->GetPrefix()) + prefix[ctr++] = mh->GetPrefix(); } prefix[ctr] = 0; diff --git a/src/modules/m_check.cpp b/src/modules/m_check.cpp index 1fa7aa3e2..ba20f9445 100644 --- a/src/modules/m_check.cpp +++ b/src/modules/m_check.cpp @@ -232,7 +232,7 @@ class CommandCheck : public Command */ user->SendText("%s member %-3lu %s%s (%s@%s) %s ", checkstr.c_str(), ServerInstance->Users->GlobalCloneCount(i->first), - targchan->GetAllPrefixChars(i->first), i->first->nick.c_str(), + i->second->GetAllPrefixChars(), i->first->nick.c_str(), i->first->ident.c_str(), i->first->dhost.c_str(), i->first->fullname.c_str()); } diff --git a/src/modules/m_deaf.cpp b/src/modules/m_deaf.cpp index ce6571b8c..9800b32a9 100644 --- a/src/modules/m_deaf.cpp +++ b/src/modules/m_deaf.cpp @@ -94,7 +94,7 @@ class ModuleDeaf : public Module if (is_bypasschar && !is_a_uline) continue; /* deliver message */ - if (status && !strchr(chan->GetAllPrefixChars(i->first), status)) + if (status && !strchr(i->second->GetAllPrefixChars(), status)) continue; /* don't deliver message! */ diff --git a/src/modules/m_httpd_stats.cpp b/src/modules/m_httpd_stats.cpp index 065ba0bce..8a90074a9 100644 --- a/src/modules/m_httpd_stats.cpp +++ b/src/modules/m_httpd_stats.cpp @@ -168,7 +168,7 @@ class ModuleHttpStats : public Module { Membership* memb = x->second; data << "" << memb->user->uuid << "" - << Sanitize(c->GetAllPrefixChars(x->first)) << "" + << Sanitize(memb->GetAllPrefixChars()) << "" << memb->modes << ""; DumpMeta(data, memb); data << ""; diff --git a/src/modules/m_namesx.cpp b/src/modules/m_namesx.cpp index 820963d5b..4dc5ff468 100644 --- a/src/modules/m_namesx.cpp +++ b/src/modules/m_namesx.cpp @@ -68,7 +68,7 @@ class ModuleNamesX : public Module if (nick.empty()) return; - prefixes = memb->chan->GetAllPrefixChars(memb->user); + prefixes = memb->GetAllPrefixChars(); } void OnSendWhoLine(User* source, const std::vector& params, User* user, Membership* memb, std::string& line) CXX11_OVERRIDE @@ -91,7 +91,7 @@ class ModuleNamesX : public Module // pos // Don't do anything if the user has only one prefix - std::string prefixes = memb->chan->GetAllPrefixChars(memb->user); + std::string prefixes = memb->GetAllPrefixChars(); if (prefixes.length() <= 1) return; -- cgit v1.2.3