summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/channels.cpp14
-rw-r--r--src/modules/m_check.cpp2
-rw-r--r--src/modules/m_deaf.cpp2
-rw-r--r--src/modules/m_httpd_stats.cpp2
-rw-r--r--src/modules/m_namesx.cpp4
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;