#include "protocolinterface.h"
ModuleSpanningTree::ModuleSpanningTree()
+ : KeepNickTS(false)
{
Utils = new SpanningTreeUtilities(this);
commands = new SpanningTreeCommands(this);
{
bool ipvalid = true;
- if (InspIRCd::Match(ServerInstance->Config->ServerName, assign(x->Name)))
+ if (InspIRCd::Match(ServerInstance->Config->ServerName, assign(x->Name), rfc_case_insensitive_map))
{
ServerInstance->SNO->WriteToSnoMask('l', "CONNECT: Not connecting to myself.");
return;
for (std::vector<reference<Link> >::iterator i = Utils->LinkBlocks.begin(); i < Utils->LinkBlocks.end(); i++)
{
Link* x = *i;
- if (InspIRCd::Match(x->Name.c_str(),parameters[0]))
+ if (InspIRCd::Match(x->Name.c_str(),parameters[0], rfc_case_insensitive_map))
{
- if (InspIRCd::Match(ServerInstance->Config->ServerName, assign(x->Name)))
+ if (InspIRCd::Match(ServerInstance->Config->ServerName, assign(x->Name), rfc_case_insensitive_map))
{
RemoteMessage(user, "*** CONNECT: Server \002%s\002 is ME, not connecting.",x->Name.c_str());
return MOD_RES_DENY;
return;
parameterlist params;
- params.push_back(gecos);
+ params.push_back(":" + gecos);
Utils->DoOneToMany(user->uuid,"FNAME",params);
}
/** IMPORTANT: We don't update the TS if the oldnick is just a case change of the newnick!
*/
- if (irc::string(user->nick.c_str()) != assign(oldnick))
+ if ((irc::string(user->nick.c_str()) != assign(oldnick)) && (!this->KeepNickTS))
user->age = ServerInstance->Time();
params.push_back(ConvToStr(user->age));
Utils->DoOneToMany(user->uuid,"NICK",params);
+ this->KeepNickTS = false;
}
else if (!loopCall && user->nick == user->uuid)
{
parameterlist params;
if (!awaymsg.empty())
{
- params.push_back(ConvToStr(user->awaytime));
+ params.push_back(ConvToStr(ServerInstance->Time()));
params.push_back(":" + awaymsg);
}
Utils->DoOneToMany(user->uuid, "AWAY", params);