Visibility = NULL;
ip = NULL;
MyClass = NULL;
+ io = NULL;
AllowedUserModes = NULL;
AllowedChanModes = NULL;
AllowedOperCommands = NULL;
- memset(AllowedUserModes, 0, sizeof(AllowedUserModes));
- memset(AllowedChanModes, 0, sizeof(AllowedChanModes));
chans.clear();
invites.clear();
memset(modes,0,sizeof(modes));
if (this->MyClass)
{
this->MyClass->RefCount--;
- ServerInstance->Logs->Log("USERS", DEBUG, "User destructor -- connect refcount now: %u", this->MyClass->RefCount);
+ ServerInstance->Logs->Log("USERS", DEBUG, "User destructor -- connect refcount now: %lu", this->MyClass->RefCount);
}
if (this->AllowedOperCommands)
{
if (this->AllowedUserModes)
{
- delete AllowedUserModes;
+ delete[] AllowedUserModes;
AllowedUserModes = NULL;
}
if (this->AllowedChanModes)
{
- delete AllowedChanModes;
+ delete[] AllowedChanModes;
AllowedChanModes = NULL;
}
if (this->MyClass && (recvq.length() > this->MyClass->GetRecvqMax()))
{
this->SetWriteError("RecvQ exceeded");
- ServerInstance->SNO->WriteToSnoMask('A', "User %s RecvQ of %d exceeds connect class maximum of %d",this->nick,recvq.length(),this->MyClass->GetRecvqMax());
+ ServerInstance->SNO->WriteToSnoMask('A', "User %s RecvQ of %d exceeds connect class maximum of %lu",this->nick,recvq.length(),this->MyClass->GetRecvqMax());
return false;
}
* to repeatedly add the text to the sendq!
*/
this->SetWriteError("SendQ exceeded");
- ServerInstance->SNO->WriteToSnoMask('A', "User %s SendQ of %d exceeds connect class maximum of %d",this->nick,sendq.length() + data.length(),this->MyClass->GetSendqMax());
+ ServerInstance->SNO->WriteToSnoMask('A', "User %s SendQ of %d exceeds connect class maximum of %lu",this->nick,sendq.length() + data.length(),this->MyClass->GetSendqMax());
return;
}
{
if (*c == '*')
{
- memset(this->AllowedUserModes, (int)(true), sizeof(this->AllowedUserModes));
+ memset(this->AllowedUserModes, (int)(true), 64);
}
else
{
{
if (*c == '*')
{
- memset(this->AllowedChanModes, (int)(true), sizeof(this->AllowedChanModes));
+ memset(this->AllowedChanModes, (int)(true), 64);
}
else
{
delete AllowedOperCommands;
AllowedOperCommands = NULL;
}
+ if (AllowedUserModes)
+ {
+ delete[] AllowedUserModes;
+ AllowedUserModes = NULL;
+ }
+ if (AllowedChanModes)
+ {
+ delete[] AllowedChanModes;
+ AllowedChanModes = NULL;
+ }
+
}
}
return;
}
- if (ServerInstance->Config->GetIOHook(this->GetPort()))
+ if (this->io)
{
/* XXX: The lack of buffering here is NOT a bug, modules implementing this interface have to
* implement their own buffering mechanisms
*/
try
{
- ServerInstance->Config->GetIOHook(this->GetPort())->OnRawSocketWrite(this->fd, text.data(), text.length());
+ this->io->OnRawSocketWrite(this->fd, text.data(), text.length());
}
catch (CoreException& modexcept)
{
/* deny change if change will take class over the limit */
if (found->limit && (found->RefCount + 1 >= found->limit))
{
- ServerInstance->Logs->Log("USERS", DEBUG, "OOPS: Connect class limit (%u) hit, denying", found->limit);
+ ServerInstance->Logs->Log("USERS", DEBUG, "OOPS: Connect class limit (%lu) hit, denying", found->limit);
return this->MyClass;
}
if (found == this->MyClass) // no point changing this shit :P
return this->MyClass;
this->MyClass->RefCount--;
- ServerInstance->Logs->Log("USERS", DEBUG, "Untying user from connect class -- refcount: %u", this->MyClass->RefCount);
+ ServerInstance->Logs->Log("USERS", DEBUG, "Untying user from connect class -- refcount: %lu", this->MyClass->RefCount);
}
this->MyClass = found;
this->MyClass->RefCount++;
- ServerInstance->Logs->Log("USERS", DEBUG, "User tied to new class -- connect refcount now: %u", this->MyClass->RefCount);
+ ServerInstance->Logs->Log("USERS", DEBUG, "User tied to new class -- connect refcount now: %lu", this->MyClass->RefCount);
}
return this->MyClass;