summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/modules/m_samode.cpp5
-rw-r--r--src/modules/m_spanningtree.cpp19
2 files changed, 23 insertions, 1 deletions
diff --git a/src/modules/m_samode.cpp b/src/modules/m_samode.cpp
index 1f68e48bf..6e776e7c0 100644
--- a/src/modules/m_samode.cpp
+++ b/src/modules/m_samode.cpp
@@ -72,6 +72,11 @@ class cmd_samode : public command_t
Event rmode((char *)&n, NULL, "send_mode_explicit");
rmode.Send(ServerInstance);
+ n.clear();
+ n.push_back(std::string(user->nick) + " used SAMODE: " + ServerInstance->Modes->GetLastParse());
+ Event rmode2((char *)&n, NULL, "send_opers");
+ rmode.Send(ServerInstance);
+
/* XXX: Yes, this is right. We dont want to propogate the
* actual SAMODE command, just the MODE command generated
* by the send_mode_explicit
diff --git a/src/modules/m_spanningtree.cpp b/src/modules/m_spanningtree.cpp
index 93996bcdb..a622c2624 100644
--- a/src/modules/m_spanningtree.cpp
+++ b/src/modules/m_spanningtree.cpp
@@ -3402,6 +3402,18 @@ class TreeSocket : public InspSocket
}
return true;
}
+ else if (command == "OPERNOTICE")
+ {
+ std::string sourceserv = this->myhost;
+
+ if (this->InboundServerName != "")
+ sourceserv = this->InboundServerName;
+
+ if (params.size() >= 1)
+ Instance->WriteOpers("*** From " + sourceserv + ": " + params[1]);
+
+ return Utils->DoOneToAllButSenderRaw(line, sourceserv, prefix, command, params);
+ }
else if (command == "ENDBURST")
{
this->bursting = false;
@@ -5161,9 +5173,14 @@ class ModuleSpanningTree : public Module
{
if (params->size() < 2)
return;
- // Insert the TS value of the object, either userrec or chanrec
Utils->DoOneToMany(ServerInstance->Config->ServerName,"MODE",*params);
}
+ else if (event->GetEventID() == "send_opers")
+ {
+ if (params->size() < 1)
+ return;
+ Utils->DoOneToMany(ServerInstance->Config->ServerName,"OPERNOTICE",*params);
+ }
else if (event->GetEventID() == "send_push")
{
if (params->size() < 2)