summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAdam <Adam@anope.org>2013-09-03 18:51:18 -0400
committerAdam <Adam@anope.org>2013-09-03 18:51:18 -0400
commit46913511677b169f32d55e4fc96a8c236169ddc7 (patch)
tree170400c6eabe8e18d0a4809f89a46ff239dfc156
parent404debf78925f86e94cfd71334433bc1eb423115 (diff)
Cleanup previous commit
Fix log messages from commands send through webpanel Don't show OperServ section to non opers
-rw-r--r--modules/commands/ns_register.cpp2
-rw-r--r--modules/extra/webcpanel/pages/chanserv/access.cpp24
-rw-r--r--modules/extra/webcpanel/pages/chanserv/akick.cpp23
-rw-r--r--modules/extra/webcpanel/pages/chanserv/drop.cpp11
-rw-r--r--modules/extra/webcpanel/pages/chanserv/info.cpp6
-rw-r--r--modules/extra/webcpanel/pages/chanserv/modes.cpp26
-rw-r--r--modules/extra/webcpanel/pages/chanserv/set.cpp16
-rw-r--r--modules/extra/webcpanel/pages/chanserv/utils.cpp24
-rw-r--r--modules/extra/webcpanel/pages/chanserv/utils.h13
-rw-r--r--modules/extra/webcpanel/templates/default/chanserv/access.html3
-rw-r--r--modules/extra/webcpanel/templates/default/chanserv/akick.html3
-rw-r--r--modules/extra/webcpanel/templates/default/chanserv/chanlist.html4
-rw-r--r--modules/extra/webcpanel/templates/default/chanserv/modes.html3
-rw-r--r--modules/extra/webcpanel/templates/default/chanserv/set.html3
-rw-r--r--modules/extra/webcpanel/templates/default/header.html10
-rw-r--r--modules/extra/webcpanel/webcpanel.h2
-rw-r--r--src/logger.cpp6
17 files changed, 111 insertions, 68 deletions
diff --git a/modules/commands/ns_register.cpp b/modules/commands/ns_register.cpp
index a1c1e7f47..446990aac 100644
--- a/modules/commands/ns_register.cpp
+++ b/modules/commands/ns_register.cpp
@@ -197,6 +197,8 @@ class CommandNSRegister : public Command
na->last_usermask = u->GetIdent() + "@" + u->GetDisplayedHost();
na->last_realname = u->realname;
}
+ else
+ na->last_realname = source.GetNick();
Log(LOG_COMMAND, source, this) << "to register " << na->nick << " (email: " << (!na->nc->email.empty() ? na->nc->email : "none") << ")";
diff --git a/modules/extra/webcpanel/pages/chanserv/access.cpp b/modules/extra/webcpanel/pages/chanserv/access.cpp
index ce36ecae9..e29a0793a 100644
--- a/modules/extra/webcpanel/pages/chanserv/access.cpp
+++ b/modules/extra/webcpanel/pages/chanserv/access.cpp
@@ -14,36 +14,41 @@ WebCPanel::ChanServ::Access::Access(const Anope::string &cat, const Anope::strin
bool WebCPanel::ChanServ::Access::OnRequest(HTTPProvider *server, const Anope::string &page_name, HTTPClient *client, HTTPMessage &message, HTTPReply &reply, NickAlias *na, TemplateFileServer::Replacements &replacements)
{
+ TemplateFileServer Page("chanserv/access.html");
const Anope::string &chname = message.get_data["channel"];
- BuildChanlist(page_name, na, replacements);
+ BuildChanList(na, replacements);
if (chname.empty())
{
- replacements["STOP"];
- return ServePage("chanserv/access.html", server, page_name, client, message, reply, replacements);
+ Page.Serve(server, page_name, client, message, reply, replacements);
+ return true;
}
ChannelInfo *ci = ChannelInfo::Find(chname);
if (!ci)
{
- replacements["STOP"];
replacements["MESSAGES"] = "Channel not registered.";
- return ServePage("chanserv/access.html", server, page_name, client, message, reply, replacements);
+ Page.Serve(server, page_name, client, message, reply, replacements);
+ return true;
}
AccessGroup u_access = ci->AccessFor(na->nc);
bool has_priv = na->nc->IsServicesOper() && na->nc->o->ot->HasPriv("chanserv/access/modify");
if (!u_access.HasPriv("ACCESS_LIST") && !has_priv)
- { replacements["STOP"];
+ {
replacements["MESSAGES"] = "Access denied.";
+ Page.Serve(server, page_name, client, message, reply, replacements);
+ return true;
}
+ replacements["ACCESS_LIST"] = "YES";
+
const ChanAccess *highest = u_access.Highest();
- if (ci->AccessFor(na->nc).HasPriv("ACCESS_CHANGE") || has_priv)
+ if (u_access.HasPriv("ACCESS_CHANGE") || has_priv)
{
if (message.get_data["del"].empty() == false && message.get_data["mask"].empty() == false)
{
@@ -127,7 +132,7 @@ bool WebCPanel::ChanServ::Access::OnRequest(HTTPProvider *server, const Anope::s
}
replacements["ESCAPED_CHANNEL"] = HTTPUtils::URLEncode(chname);
- replacements["ACCESS_CHANGE"] = ci->AccessFor(na->nc).HasPriv("ACCESS_CHANGE") ? "YES" : "NO";
+ replacements["ACCESS_CHANGE"] = u_access.HasPriv("ACCESS_CHANGE") ? "YES" : "NO";
for (unsigned i = 0; i < ci->GetAccessCount(); ++i)
{
@@ -144,7 +149,8 @@ bool WebCPanel::ChanServ::Access::OnRequest(HTTPProvider *server, const Anope::s
replacements["PROVIDERS"] = a->name;
}
- return ServePage("chanserv/access.html", server, page_name, client, message, reply, replacements);
+ Page.Serve(server, page_name, client, message, reply, replacements);
+ return true;
}
std::set<Anope::string> WebCPanel::ChanServ::Access::GetData()
diff --git a/modules/extra/webcpanel/pages/chanserv/akick.cpp b/modules/extra/webcpanel/pages/chanserv/akick.cpp
index cfcf58b28..d493c6f67 100644
--- a/modules/extra/webcpanel/pages/chanserv/akick.cpp
+++ b/modules/extra/webcpanel/pages/chanserv/akick.cpp
@@ -15,33 +15,37 @@ WebCPanel::ChanServ::Akick::Akick(const Anope::string &cat, const Anope::string
bool WebCPanel::ChanServ::Akick::OnRequest(HTTPProvider *server, const Anope::string &page_name, HTTPClient *client, HTTPMessage &message, HTTPReply &reply, NickAlias *na, TemplateFileServer::Replacements &replacements)
{
const Anope::string &chname = message.get_data["channel"];
+ TemplateFileServer Page("chanserv/akick.html");
+
+ BuildChanList(na, replacements);
- BuildChanlist(page_name, na, replacements);
if (chname.empty())
{
- replacements["STOP"];
- return ServePage("chanserv/akick.html", server, page_name, client, message, reply, replacements);
+ Page.Serve(server, page_name, client, message, reply, replacements);
+ return true;
}
ChannelInfo *ci = ChannelInfo::Find(chname);
if (!ci)
{
- replacements["STOP"];
replacements["MESSAGES"] = "Channel not registered";
- return ServePage("chanserv/akick.html", server, page_name, client, message, reply, replacements);
+ Page.Serve(server, page_name, client, message, reply, replacements);
+ return true;
}
AccessGroup u_access = ci->AccessFor(na->nc);
bool has_priv = na->nc->IsServicesOper() && na->nc->o->ot->HasPriv("chanserv/access/modify");
- if (!u_access.HasPriv("akick") && !has_priv)
+ if (!u_access.HasPriv("AKICK") && !has_priv)
{
- replacements["STOP"];
replacements["MESSAGES"] = "Permission denied.";
- return ServePage("chanserv/akick.html", server, page_name, client, message, reply, replacements);
+ Page.Serve(server, page_name, client, message, reply, replacements);
+ return true;
}
+ replacements["AKICK"] = "YES";
+
if (message.get_data["del"].empty() == false && message.get_data["mask"].empty() == false)
{
std::vector<Anope::string> params;
@@ -77,7 +81,8 @@ bool WebCPanel::ChanServ::Akick::OnRequest(HTTPProvider *server, const Anope::st
replacements["REASONS"] = HTTPUtils::Escape(akick->reason);
}
- return ServePage("chanserv/akick.html", server, page_name, client, message, reply, replacements);
+ Page.Serve(server, page_name, client, message, reply, replacements);
+ return true;
}
std::set<Anope::string> WebCPanel::ChanServ::Akick::GetData()
diff --git a/modules/extra/webcpanel/pages/chanserv/drop.cpp b/modules/extra/webcpanel/pages/chanserv/drop.cpp
index 8f52f7f08..21e968c18 100644
--- a/modules/extra/webcpanel/pages/chanserv/drop.cpp
+++ b/modules/extra/webcpanel/pages/chanserv/drop.cpp
@@ -18,13 +18,15 @@ bool WebCPanel::ChanServ::Drop::OnRequest(HTTPProvider *server, const Anope::str
if (message.post_data.count("channel") > 0 && message.post_data.count("confChan") > 0)
{
- if (message.post_data["channel"] == message.post_data["confChan"]) {
+ if (message.post_data["channel"] == message.post_data["confChan"])
+ {
std::vector<Anope::string> params;
params.push_back(HTTPUtils::URLDecode(message.post_data["channel"]));
WebPanel::RunCommand(na->nc->display, na->nc, "ChanServ", "chanserv/drop", params, replacements);
}
- else replacements["MESSAGES"] = "Invalid Confirmation";
+ else
+ replacements["MESSAGES"] = "Invalid Confirmation";
}
std::deque<ChannelInfo *> queue;
@@ -38,11 +40,12 @@ bool WebCPanel::ChanServ::Drop::OnRequest(HTTPProvider *server, const Anope::str
replacements["ESCAPED_CHANNEL_NAMES"] = HTTPUtils::URLEncode(ci->name);
}
}
- replacements["PAGE"] = page_name;
if (message.get_data.count("channel") > 0)
replacements["CHANNEL_DROP"] = message.get_data["channel"];
- return ServePage("chanserv/drop.html", server, page_name, client, message, reply, replacements);
+ TemplateFileServer page("chanserv/drop.html");
+ page.Serve(server, page_name, client, message, reply, replacements);
+ return true;
}
diff --git a/modules/extra/webcpanel/pages/chanserv/info.cpp b/modules/extra/webcpanel/pages/chanserv/info.cpp
index 5338cc4b2..e878024b0 100644
--- a/modules/extra/webcpanel/pages/chanserv/info.cpp
+++ b/modules/extra/webcpanel/pages/chanserv/info.cpp
@@ -19,8 +19,10 @@ bool WebCPanel::ChanServ::Info::OnRequest(HTTPProvider *server, const Anope::str
if (!chname.empty())
replacements["ESCAPED_CHANNEL"] = HTTPUtils::URLEncode(chname);
- BuildChanlist("/chanserv/set", na, replacements);
+ BuildChanList(na, replacements);
- return ServePage("chanserv/main.html", server, page_name, client, message, reply, replacements);
+ TemplateFileServer page("chanserv/main.html");
+ page.Serve(server, page_name, client, message, reply, replacements);
+ return true;
}
diff --git a/modules/extra/webcpanel/pages/chanserv/modes.cpp b/modules/extra/webcpanel/pages/chanserv/modes.cpp
index d29fff723..061c64ae0 100644
--- a/modules/extra/webcpanel/pages/chanserv/modes.cpp
+++ b/modules/extra/webcpanel/pages/chanserv/modes.cpp
@@ -16,30 +16,31 @@ bool WebCPanel::ChanServ::Modes::OnRequest(HTTPProvider *server, const Anope::st
{
const Anope::string &chname = message.get_data["channel"];
const Anope::string &mode = message.get_data["m"];
+ TemplateFileServer Page("chanserv/modes.html");
- BuildChanlist(page_name, na, replacements);
+ BuildChanList(na, replacements);
if (chname.empty())
{
- replacements["STOP"];
- return ServePage("chanserv/modes.html", server, page_name, client, message, reply, replacements);
+ Page.Serve(server, page_name, client, message, reply, replacements);
+ return true;
}
ChannelInfo *ci = ChannelInfo::Find(chname);
if (!ci)
{
- replacements["STOP"];
- return ServePage("chanserv/modes.html", server, page_name, client, message, reply, replacements);
+ Page.Serve(server, page_name, client, message, reply, replacements);
+ return true;
}
Channel *c = Channel::Find(chname);
if (!c)
{
- replacements["MESSAGES"] = "Channel is empty / does not exist on the network.";
- replacements["STOP"];
- return ServePage("chanserv/modes.html", server, page_name, client, message, reply, replacements);
+ replacements["MESSAGES"] = Anope::printf(CHAN_X_NOT_IN_USE, chname.c_str());
+ Page.Serve(server, page_name, client, message, reply, replacements);
+ return true;
}
AccessGroup u_access = ci->AccessFor(na->nc);
@@ -48,10 +49,12 @@ bool WebCPanel::ChanServ::Modes::OnRequest(HTTPProvider *server, const Anope::st
if (!u_access.HasPriv("MODE") && !has_priv)
{
replacements["MESSAGES"] = "Access denied.";
- replacements["STOP"];
- return ServePage("chanserv/modes.html", server, page_name, client, message, reply, replacements);
+ Page.Serve(server, page_name, client, message, reply, replacements);
+ return true;
}
+ replacements["MODE"] = "YES";
+
/* build a list with the names of all listmodes */
for (std::vector<ChannelMode *>::const_iterator it = ModeManager::GetChannelModes().begin(); it != ModeManager::GetChannelModes().end(); ++it)
{
@@ -92,7 +95,8 @@ bool WebCPanel::ChanServ::Modes::OnRequest(HTTPProvider *server, const Anope::st
replacements["ESCAPED_CHANNEL"] = HTTPUtils::URLEncode(chname);
replacements["ESCAPED_MODE"] = HTTPUtils::URLEncode(mode);
- return ServePage("chanserv/modes.html", server, page_name, client, message, reply, replacements);
+ Page.Serve(server, page_name, client, message, reply, replacements);
+ return true;
}
std::set<Anope::string> WebCPanel::ChanServ::Modes::GetData()
diff --git a/modules/extra/webcpanel/pages/chanserv/set.cpp b/modules/extra/webcpanel/pages/chanserv/set.cpp
index 42a3fcfe6..35861ad19 100644
--- a/modules/extra/webcpanel/pages/chanserv/set.cpp
+++ b/modules/extra/webcpanel/pages/chanserv/set.cpp
@@ -16,23 +16,25 @@ bool WebCPanel::ChanServ::Set::OnRequest(HTTPProvider *server, const Anope::stri
{
const Anope::string &chname = message.get_data["channel"];
bool can_set = false;
+ TemplateFileServer page("chanserv/set.html");
- BuildChanlist(page_name, na, replacements);
+ BuildChanList(na, replacements);
if (chname.empty())
{
- replacements["STOP"];
- return ServePage("chanserv/set.html", server, page_name, client, message, reply, replacements);
+ page.Serve(server, page_name, client, message, reply, replacements);
+ return true;
}
ChannelInfo *ci = ChannelInfo::Find(chname);
if (!ci)
{
- replacements["STOP"];
- return ServePage("chanserv/set.html", server, page_name, client, message, reply, replacements);
+ page.Serve(server, page_name, client, message, reply, replacements);
+ return true;
}
+ replacements["OKAY"];
if (ci->AccessFor(na->nc).HasPriv("SET"))
{
@@ -139,8 +141,8 @@ bool WebCPanel::ChanServ::Set::OnRequest(HTTPProvider *server, const Anope::stri
replacements["TOPICLOCK"];
}
- return ServePage("chanserv/set.html", server, page_name, client, message, reply, replacements);
-
+ page.Serve(server, page_name, client, message, reply, replacements);
+ return true;
}
std::set<Anope::string> WebCPanel::ChanServ::Set::GetData()
diff --git a/modules/extra/webcpanel/pages/chanserv/utils.cpp b/modules/extra/webcpanel/pages/chanserv/utils.cpp
index d5ca188e4..71d44ef6e 100644
--- a/modules/extra/webcpanel/pages/chanserv/utils.cpp
+++ b/modules/extra/webcpanel/pages/chanserv/utils.cpp
@@ -7,23 +7,29 @@
#include "../../webcpanel.h"
-void BuildChanlist(const Anope::string &page_name, NickAlias *na, TemplateFileServer::Replacements &replacements)
+namespace WebCPanel
+{
+
+namespace ChanServ
+{
+
+void BuildChanList(NickAlias *na, TemplateFileServer::Replacements &replacements)
{
std::deque<ChannelInfo *> queue;
na->nc->GetChannelReferences(queue);
for (unsigned i = 0; i < queue.size(); ++i)
{
ChannelInfo *ci = queue[i];
+
+ if (na->nc != ci->GetFounder() && ci->AccessFor(na->nc).empty())
+ continue;
+
replacements["CHANNEL_NAMES"] = ci->name;
replacements["ESCAPED_CHANNEL_NAMES"] = HTTPUtils::URLEncode(ci->name);
}
- replacements["PAGE"] = page_name;
- return;
}
-bool ServePage(const Anope::string &page, HTTPProvider *server, const Anope::string &page_name, HTTPClient *client, HTTPMessage &message, HTTPReply &reply, TemplateFileServer::Replacements &replacements)
-{
- TemplateFileServer Page(page);
- Page.Serve(server, page_name, client, message, reply, replacements);
- return 1;
-} \ No newline at end of file
+}
+
+}
+
diff --git a/modules/extra/webcpanel/pages/chanserv/utils.h b/modules/extra/webcpanel/pages/chanserv/utils.h
index cf4683936..38261db65 100644
--- a/modules/extra/webcpanel/pages/chanserv/utils.h
+++ b/modules/extra/webcpanel/pages/chanserv/utils.h
@@ -5,6 +5,15 @@
* Please read COPYING and README for further details.
*/
-void BuildChanlist(const Anope::string &, NickAlias *, TemplateFileServer::Replacements &);
+namespace WebCPanel
+{
+
+namespace ChanServ
+{
+
+extern void BuildChanList(NickAlias *, TemplateFileServer::Replacements &);
+
+}
+
+}
-bool ServePage(const Anope::string &, HTTPProvider *, const Anope::string &, HTTPClient *, HTTPMessage &, HTTPReply &, TemplateFileServer::Replacements &);
diff --git a/modules/extra/webcpanel/templates/default/chanserv/access.html b/modules/extra/webcpanel/templates/default/chanserv/access.html
index 5364a4e94..09bc26d8d 100644
--- a/modules/extra/webcpanel/templates/default/chanserv/access.html
+++ b/modules/extra/webcpanel/templates/default/chanserv/access.html
@@ -8,8 +8,7 @@
</div>
{END FOR}
- {IF EXISTS STOP}
- {ELSE}
+ {IF EQ ACCESS_LIST YES}
{IF EXISTS ACCESSES}
<table id="tableNSAccess" class="table table-hover">
<thead>
diff --git a/modules/extra/webcpanel/templates/default/chanserv/akick.html b/modules/extra/webcpanel/templates/default/chanserv/akick.html
index 1483cd660..75cf894e2 100644
--- a/modules/extra/webcpanel/templates/default/chanserv/akick.html
+++ b/modules/extra/webcpanel/templates/default/chanserv/akick.html
@@ -8,8 +8,7 @@
</div>
{END FOR}
- {IF EXISTS STOP}
- {ELSE}
+ {IF EQ AKICK YES}
{IF EXISTS MASKS}
<table id="tableNSAccess" class="table table-hover">
<thead>
diff --git a/modules/extra/webcpanel/templates/default/chanserv/chanlist.html b/modules/extra/webcpanel/templates/default/chanserv/chanlist.html
index 50e3a60f6..4d386f6b0 100644
--- a/modules/extra/webcpanel/templates/default/chanserv/chanlist.html
+++ b/modules/extra/webcpanel/templates/default/chanserv/chanlist.html
@@ -4,10 +4,10 @@
<div>
<h3 style="margin: -12px 0 20px 0;"><small>Choose a channel to access it's Settings, Access or Akick pages.</small></h3>
{FOR CH,ECH IN CHANNEL_NAMES,ESCAPED_CHANNEL_NAMES}
- <td><a href="{PAGE}?channel={ECH}" class="btn btn-sm btn-primary {IF EQ ECH ESCAPED_CHANNEL}disabled{END IF}">{CH}</a></td>
+ <td><a href="{PAGE_NAME}?channel={ECH}" class="btn btn-sm btn-primary {IF EQ ECH ESCAPED_CHANNEL}disabled{END IF}">{CH}</a></td>
{END FOR}
</div>
{ELSE}
- <em>You don't have access in any channel</em><br>
+ <em>You don't have access in any channels.</em><br>
{END IF}
</div><br>
diff --git a/modules/extra/webcpanel/templates/default/chanserv/modes.html b/modules/extra/webcpanel/templates/default/chanserv/modes.html
index e441797dc..47c50e72a 100644
--- a/modules/extra/webcpanel/templates/default/chanserv/modes.html
+++ b/modules/extra/webcpanel/templates/default/chanserv/modes.html
@@ -8,8 +8,7 @@
</div>
{END FOR}
- {IF EXISTS STOP}
- {ELSE}
+ {IF EQ MODE YES}
{FOR LM IN LISTMODES}
<td><a href="/chanserv/modes?channel={ESCAPED_CHANNEL}&m={LM}" class="btn btn-sm btn-primary {IF EQ LM ESCAPED_MODE}disabled{END IF}">{LM}</a></td>
{END FOR}
diff --git a/modules/extra/webcpanel/templates/default/chanserv/set.html b/modules/extra/webcpanel/templates/default/chanserv/set.html
index e8522cef9..0a26e3d74 100644
--- a/modules/extra/webcpanel/templates/default/chanserv/set.html
+++ b/modules/extra/webcpanel/templates/default/chanserv/set.html
@@ -8,8 +8,7 @@
</div>
{END FOR}
- {IF EXISTS STOP}
- {ELSE}
+ {IF EXISTS OKAY}
{IF EXISTS CAN_SET}<form method="post" action="/chanserv/set?channel={CHANNEL_ESCAPED}">{END IF}
<table id="tableInfo" class="table table-hover">
<tr>
diff --git a/modules/extra/webcpanel/templates/default/header.html b/modules/extra/webcpanel/templates/default/header.html
index 93d2c31fb..0ccf477c5 100644
--- a/modules/extra/webcpanel/templates/default/header.html
+++ b/modules/extra/webcpanel/templates/default/header.html
@@ -32,7 +32,13 @@
{IF EQ CATEGORY MemoServ}{IF EQ CATEGORY_NAME MemoServ}class="active"{END IF}{END IF}
{IF EQ CATEGORY HostServ}{IF EQ CATEGORY_NAME HostServ}class="active"{END IF}{END IF}
{IF EQ CATEGORY OperServ}{IF EQ CATEGORY_NAME OperServ}class="active"{END IF}{END IF}>
- <a href="{CATEGORY_URL}">{CATEGORY_NAME}</a>
+ {IF EQ CATEGORY_NAME OperServ}
+ {IF EXISTS IS_OPER}
+ <a href="{CATEGORY_URL}">{CATEGORY_NAME}</a>
+ {END IF}
+ {ELSE}
+ <a href="{CATEGORY_URL}">{CATEGORY_NAME}</a>
+ {END IF}
</li>
{END FOR}
</ul>
@@ -55,4 +61,4 @@
</div>
<div class="col-lg-9">
- <div class="panel panel-default"> \ No newline at end of file
+ <div class="panel panel-default">
diff --git a/modules/extra/webcpanel/webcpanel.h b/modules/extra/webcpanel/webcpanel.h
index b04859376..71e9e1e1f 100644
--- a/modules/extra/webcpanel/webcpanel.h
+++ b/modules/extra/webcpanel/webcpanel.h
@@ -98,6 +98,8 @@ class WebPanelProtectedPage : public WebPanelPage
replacements["ACCOUNT"] = na->nc->display;
replacements["PAGE_NAME"] = page_name;
replacements["CATEGORY"] = category;
+ if (na->nc->IsServicesOper())
+ replacements["IS_OPER"];
Anope::string sections, get;
diff --git a/src/logger.cpp b/src/logger.cpp
index 02b94f49c..296b22dac 100644
--- a/src/logger.cpp
+++ b/src/logger.cpp
@@ -148,7 +148,7 @@ Anope::string Log::BuildPrefix() const
if (!this->c && !(this->u || this->nc))
break;
buffer += "ADMIN: ";
- Anope::string cname = source != NULL ? source->command : this->c->name;
+ Anope::string cname = source != NULL && !source->command.empty() ? source->command : this->c->name;
if (this->u)
buffer += this->u->GetMask() + " used " + cname + " ";
else if (this->nc)
@@ -162,7 +162,7 @@ Anope::string Log::BuildPrefix() const
if (!this->c && !(this->u || this->nc))
break;
buffer += "OVERRIDE: ";
- Anope::string cname = source != NULL ? source->command : this->c->name;
+ Anope::string cname = source != NULL && !source->command.empty() ? source->command : this->c->name;
if (this->u)
buffer += this->u->GetMask() + " used " + cname + " ";
else if (this->nc)
@@ -176,7 +176,7 @@ Anope::string Log::BuildPrefix() const
if (!this->c)
break;
buffer += "COMMAND: ";
- Anope::string cname = source != NULL ? source->command : this->c->name;
+ Anope::string cname = source != NULL && !source->command.empty() ? source->command : this->c->name;
if (this->u)
buffer += this->u->GetMask() + " used " + cname + " ";
else if (this->source)