summaryrefslogtreecommitdiff
path: root/modules/commands/cs_log.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'modules/commands/cs_log.cpp')
-rw-r--r--modules/commands/cs_log.cpp67
1 files changed, 34 insertions, 33 deletions
diff --git a/modules/commands/cs_log.cpp b/modules/commands/cs_log.cpp
index 28c7e6f91..163789b53 100644
--- a/modules/commands/cs_log.cpp
+++ b/modules/commands/cs_log.cpp
@@ -36,23 +36,23 @@ public:
source.Reply(ACCESS_DENIED);
else if (params.size() == 1)
{
- if (ci->log_settings.empty())
+ if (ci->log_settings->empty())
source.Reply(_("There currently are no logging configurations for %s."), ci->name.c_str());
else
{
ListFormatter list;
list.addColumn("Number").addColumn("Service").addColumn("Command").addColumn("Method").addColumn("");
- for (unsigned i = 0; i < ci->log_settings.size(); ++i)
+ for (unsigned i = 0; i < ci->log_settings->size(); ++i)
{
- LogSetting &log = ci->log_settings[i];
+ const LogSetting *log = ci->log_settings->at(i);
ListFormatter::ListEntry entry;
entry["Number"] = stringify(i + 1);
- entry["Service"] = log.command_service;
- entry["Command"] = log.command_name;
- entry["Method"] = log.method;
- entry[""] = log.extra;
+ entry["Service"] = log->command_service;
+ entry["Command"] = log->command_name;
+ entry["Method"] = log->method;
+ entry[""] = log->extra;
list.addEntry(entry);
}
@@ -110,21 +110,22 @@ public:
bool override = !ci->AccessFor(u).HasPriv("SET");
- for (unsigned i = ci->log_settings.size(); i > 0; --i)
+ for (unsigned i = ci->log_settings->size(); i > 0; --i)
{
- LogSetting &log = ci->log_settings[i - 1];
+ LogSetting *log = ci->log_settings->at(i - 1);
- if (log.service_name == bi->commands[command_name].name && log.method.equals_ci(method))
+ if (log->service_name == bi->commands[command_name].name && log->method.equals_ci(method))
{
- if (log.extra == extra)
+ if (log->extra == extra)
{
- ci->log_settings.erase(ci->log_settings.begin() + i - 1);
+ log->destroy();
+ ci->log_settings->erase(ci->log_settings->begin() + i - 1);
Log(override ? LOG_OVERRIDE : LOG_COMMAND, u, this, ci) << "to remove logging for " << command << " with method " << method << (extra == "" ? "" : " ") << extra;
source.Reply(_("Logging for command %s on %s with log method %s%s%s has been removed."), command_name.c_str(), bi->nick.c_str(), method.c_str(), extra.empty() ? "" : " ", extra.empty() ? "" : extra.c_str());
}
else
{
- log.extra = extra;
+ log->extra = extra;
Log(override ? LOG_OVERRIDE : LOG_COMMAND, u, this, ci) << "to change logging for " << command << " to method " << method << (extra == "" ? "" : " ") << extra;
source.Reply(_("Logging changed for command %s on %s, now using log method %s%s%s."), command_name.c_str(), bi->nick.c_str(), method.c_str(), extra.empty() ? "" : " ", extra.empty() ? "" : extra.c_str());
}
@@ -132,17 +133,17 @@ public:
}
}
- LogSetting log;
- log.ci = ci;
- log.service_name = bi->commands[command_name].name;
- log.command_service = bi->nick;
- log.command_name = command_name;
- log.method = method;
- log.extra = extra;
- log.created = Anope::CurTime;
- log.creator = u->nick;
-
- ci->log_settings.push_back(log);
+ LogSetting *log = new LogSetting();
+ log->ci = ci;
+ log->service_name = bi->commands[command_name].name;
+ log->command_service = bi->nick;
+ log->command_name = command_name;
+ log->method = method;
+ log->extra = extra;
+ log->created = Anope::CurTime;
+ log->creator = u->nick;
+
+ ci->log_settings->push_back(log);
Log(override ? LOG_OVERRIDE : LOG_COMMAND, u, this, ci) << "to log " << command << " with method " << method << (extra == "" ? "" : " ") << extra;
source.Reply(_("Logging is now active for command %s on %s, using log method %s%s%s."), command_name.c_str(), bi->nick.c_str(), method.c_str(), extra.empty() ? "" : " ", extra.empty() ? "" : extra.c_str());
@@ -197,19 +198,19 @@ class CSLog : public Module
if (l->Type != LOG_COMMAND || l->u == NULL || l->c == NULL || l->ci == NULL || !Me || !Me->IsSynced())
return;
- for (unsigned i = l->ci->log_settings.size(); i > 0; --i)
+ for (unsigned i = l->ci->log_settings->size(); i > 0; --i)
{
- LogSetting &log = l->ci->log_settings[i - 1];
+ const LogSetting *log = l->ci->log_settings->at(i - 1);
- if (log.service_name == l->c->name)
+ if (log->service_name == l->c->name)
{
- Anope::string buffer = l->u->nick + " used " + log.command_name + " " + l->buf.str();
+ Anope::string buffer = l->u->nick + " used " + log->command_name + " " + l->buf.str();
- if (log.method.equals_ci("MESSAGE") && l->ci->c && l->ci->bi && l->ci->c->FindUser(l->ci->bi) != NULL)
- ircdproto->SendPrivmsg(l->ci->bi, log.extra + l->ci->c->name, "%s", buffer.c_str());
- else if (log.method.equals_ci("NOTICE") && l->ci->c && l->ci->bi && l->ci->c->FindUser(l->ci->bi) != NULL)
- ircdproto->SendNotice(l->ci->bi, log.extra + l->ci->c->name, "%s", buffer.c_str());
- else if (log.method.equals_ci("MEMO") && memoserv && l->ci->WhoSends() != NULL)
+ if (log->method.equals_ci("MESSAGE") && l->ci->c && l->ci->bi && l->ci->c->FindUser(l->ci->bi) != NULL)
+ ircdproto->SendPrivmsg(l->ci->bi, log->extra + l->ci->c->name, "%s", buffer.c_str());
+ else if (log->method.equals_ci("NOTICE") && l->ci->c && l->ci->bi && l->ci->c->FindUser(l->ci->bi) != NULL)
+ ircdproto->SendNotice(l->ci->bi, log->extra + l->ci->c->name, "%s", buffer.c_str());
+ else if (log->method.equals_ci("MEMO") && memoserv && l->ci->WhoSends() != NULL)
memoserv->Send(l->ci->WhoSends()->nick, l->ci->name, buffer, true);
}
}