summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/configreader.cpp1
-rw-r--r--src/stats.cpp6
-rw-r--r--src/users.cpp2
3 files changed, 6 insertions, 3 deletions
diff --git a/src/configreader.cpp b/src/configreader.cpp
index eecf01d8d..3cbcde460 100644
--- a/src/configreader.cpp
+++ b/src/configreader.cpp
@@ -879,7 +879,6 @@ void ConfigReaderThread::Finish()
* thoroughly!!!
*/
ServerInstance->XLines->CheckELines();
- ServerInstance->XLines->CheckELines();
ServerInstance->XLines->ApplyLines();
ServerInstance->Res->Rehash();
ServerInstance->ResetMaxBans();
diff --git a/src/stats.cpp b/src/stats.cpp
index 5a117b5d3..cd132afed 100644
--- a/src/stats.cpp
+++ b/src/stats.cpp
@@ -19,7 +19,11 @@ void InspIRCd::DoStats(char statschar, User* user, string_list &results)
{
std::string sn(this->Config->ServerName);
- if (!user->HasPrivPermission("servers/auspex") && Config->UserStats.find(statschar) == std::string::npos)
+ bool isPublic = Config->UserStats.find(statschar) != std::string::npos;
+ bool isRemoteOper = IS_REMOTE(user) && IS_OPER(user);
+ bool isLocalOperWithPrivs = IS_LOCAL(user) && user->HasPrivPermission("servers/auspex");
+
+ if (!isPublic && !isRemoteOper && !isLocalOperWithPrivs)
{
this->SNO->WriteToSnoMask('t',
"%s '%c' denied for %s (%s@%s)",
diff --git a/src/users.cpp b/src/users.cpp
index f8f9d0025..8b3065706 100644
--- a/src/users.cpp
+++ b/src/users.cpp
@@ -1541,7 +1541,7 @@ void User::SplitChanList(User* dest, const std::string &cl)
}
}
- if (line.length())
+ if (line.length() != prefix.str().length())
{
ServerInstance->SendWhoisLine(this, dest, 319, "%s", line.c_str());
}