ServerInstance->Logs->Log("m_spanningtree",DEFAULT,"*** BUG? *** TS of 0 sent to FJOIN. Are some services authors smoking craq, or is it 1970 again?. Dropped.");
ServerInstance->SNO->WriteToSnoMask('d', "WARNING: The server %s is sending FJOIN with a TS of zero. Total craq. Command was dropped.", srcuser->server.c_str());
ServerInstance->Logs->Log("m_spanningtree",DEFAULT,"*** BUG? *** TS of 0 sent to FMODE. Are some services authors smoking craq, or is it 1970 again?. Dropped.");
ServerInstance->SNO->WriteToSnoMask('d', "WARNING: The server %s is sending FMODE with a TS of zero. Total craq. Mode was dropped.", sourceserv.c_str());
- return;
+ return CMD_INVALID;
}
/* TS is equal or less: Merge the mode changes into ours and pass on.
+ * If quiet bursts are enabled, and server is bursting or silent uline (i.e. services),
+ * then do nothing. -- w00t
+ */
+ if (remoteserver->bursting || ServerInstance->SilentULine(u->server))
{
- /*
- * If quiet bursts are enabled, and server is bursting or silent uline (i.e. services),
- * then do nothing. -- w00t
- */
- if (remoteserver->bursting || ServerInstance->SilentULine(u->server))
- {
- dosend = false;
- }
+ dosend = false;
}
-
- if (dosend)
- ServerInstance->SNO->WriteToSnoMask('O',"From %s: User %s (%s@%s) is now an IRC operator of type %s",u->server.c_str(), u->nick.c_str(),u->ident.c_str(), u->host.c_str(), irc::Spacify(opertype.c_str()));
}
- return true;
+
+ if (dosend)
+ ServerInstance->SNO->WriteToSnoMask('O',"From %s: User %s (%s@%s) is now an IRC operator of type %s",u->server.c_str(), u->nick.c_str(),u->ident.c_str(), u->host.c_str(), irc::Spacify(opertype.c_str()));
- this->SendError(std::string("Broken UID command, expected a parameter for user mode '")+(*v)+"' but there aren't enough parameters in the command!");
- return false;
- }
+ mh->OnModeChange(_new, _new, NULL, mp, true);
}
else
mh->OnModeChange(_new, _new, NULL, empty, true);
_new->SetMode(*v, true);
}
- else
- {
- this->SendError(std::string("Warning: Broken UID command, unknown user mode '")+(*v)+"' in the mode string! (mismatched module?)");
- return false;
- }
}
/* now we've done with modes processing, put the + back for remote servers */