diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/channels.cpp | 14 | ||||
-rw-r--r-- | src/modules/m_check.cpp | 2 | ||||
-rw-r--r-- | src/modules/m_deaf.cpp | 2 | ||||
-rw-r--r-- | src/modules/m_httpd_stats.cpp | 2 | ||||
-rw-r--r-- | src/modules/m_namesx.cpp | 4 |
5 files changed, 10 insertions, 14 deletions
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 << "<channelmember><uid>" << memb->user->uuid << "</uid><privs>" - << Sanitize(c->GetAllPrefixChars(x->first)) << "</privs><modes>" + << Sanitize(memb->GetAllPrefixChars()) << "</privs><modes>" << memb->modes << "</modes>"; DumpMeta(data, memb); data << "</channelmember>"; 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<std::string>& 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; |