}
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;
{
sourceserv = this->InboundServerName;
}
+ if ((!who) && (command == "MODE"))
+ {
+ if (Utils->IsServer(prefix))
+ {
+ const char* modelist[127];
+ for (size_t i = 0; i < params.size(); i++)
+ modelist[i] = params[i].c_str();
+
+ userrec* fake = new userrec(Instance);
+ fake->SetFd(FD_MAGIC_NUMBER);
+
+ this->Instance->SendMode(modelist, params.size(), fake);
+
+ delete fake;
+
+ /* Hot potato! pass it on! */
+ return Utils->DoOneToAllButSenderRaw(line,sourceserv,prefix,command,params);
+ }
+ }
if (who)
{
if ((command == "NICK") && (params.size() > 0))
{
/* Server-set lines */
char data[MAXBUF];
- snprintf(data,MAXBUF,"%c %s %s %lu %lu :%s", linetype, host.c_str(), ServerInstance->Config->ServerName, ServerInstance->Time(false), duration, reason.c_str());
+ snprintf(data,MAXBUF,"%c %s %s %lu %lu :%s", linetype, host.c_str(), ServerInstance->Config->ServerName, (unsigned long)ServerInstance->Time(false),
+ (unsigned long)duration, reason.c_str());
std::deque<std::string> params;
params.push_back(data);
Utils->DoOneToMany(ServerInstance->Config->ServerName, "ADDLINE", params);
params->insert(params->begin() + 1,ConvToStr(ourTS));
Utils->DoOneToMany(ServerInstance->Config->ServerName,"FMODE",*params);
}
+ else if (event->GetEventID() == "send_mode_explicit")
+ {
+ if (params->size() < 2)
+ return;
+ Utils->DoOneToMany(ServerInstance->Config->ServerName,"MODE",*params);
+ }
+ else if (event->GetEventID() == "send_opers")
+ {
+ if (params->size() < 1)
+ return;
+ (*params)[0] = ":" + (*params)[0];
+ Utils->DoOneToMany(ServerInstance->Config->ServerName,"OPERNOTICE",*params);
+ }
else if (event->GetEventID() == "send_push")
{
if (params->size() < 2)