* | Inspire Internet Relay Chat Daemon |
* +------------------------------------+
*
- * InspIRCd is copyright (C) 2002-2006 ChatSpike-Dev.
- * E-mail:
- * <brain@chatspike.net>
- * <Craig@chatspike.net>
- *
- * Written by Craig Edwards, Craig McLure, and others.
+ * InspIRCd: (C) 2002-2007 InspIRCd Development Team
+ * See: http://www.inspircd.org/wiki/index.php/Credits
+ *
* This program is free but copyrighted software; see
- * the file COPYING for details.
+ * the file COPYING for details.
*
* ---------------------------------------------------
*/
res_reverse = new UserResolver(this->ServerInstance, this, this->GetIPString(), DNS_QUERY_REVERSE);
this->ServerInstance->AddResolver(res_reverse);
}
- catch (ModuleException& e)
+ catch (CoreException& e)
{
ServerInstance->Log(DEBUG,"Error in resolver: %s",e.GetReason());
}
this->ServerInstance->AddResolver(bound_user->res_forward);
}
}
- catch (ModuleException& e)
+ catch (CoreException& e)
{
ServerInstance->Log(DEBUG,"Error in resolver: %s",e.GetReason());
}
return fresult;
}
-bool userrec::IsInvited(irc::string &channel)
+bool userrec::IsInvited(const irc::string &channel)
{
for (InvitedList::iterator i = invites.begin(); i != invites.end(); i++)
{
- irc::string compare = i->channel;
-
- if (compare == channel)
+ if (channel == *i)
{
return true;
}
return &invites;
}
-void userrec::InviteTo(irc::string &channel)
+void userrec::InviteTo(const irc::string &channel)
{
- Invited i;
- i.channel = channel;
- invites.push_back(i);
+ invites.push_back(channel);
}
-void userrec::RemoveInvite(irc::string &channel)
+void userrec::RemoveInvite(const irc::string &channel)
{
ServerInstance->Log(DEBUG,"Removing invites");
-
- if (invites.size())
+ for (InvitedList::iterator i = invites.begin(); i != invites.end(); i++)
{
- for (InvitedList::iterator i = invites.begin(); i != invites.end(); i++)
+ if (channel == *i)
{
- irc::string compare = i->channel;
-
- if (compare == channel)
- {
- invites.erase(i);
- return;
- }
- }
- }
+ invites.erase(i);
+ return;
+ }
+ }
}
bool userrec::HasPermission(const std::string &command)
reason.resize(MAXQUIT - 1);
if (IS_LOCAL(user))
+ {
user->Write("ERROR :Closing link (%s@%s) [%s]",user->ident,user->host,reason.c_str());
+ if ((!user->sendq.empty()) && (!(*user->GetWriteError())))
+ user->FlushWriteBuf();
+ }
if (user->registered == REG_ALL)
{
user->PurgeEmptyChannels();
- FOREACH_MOD_I(Instance,I_OnUserQuit,OnUserQuit(user,reason));
user->WriteCommonExcept("QUIT :%s",reason.c_str());
+ FOREACH_MOD_I(Instance,I_OnUserQuit,OnUserQuit(user,reason));
}
FOREACH_MOD_I(Instance,I_OnUserDisconnect,OnUserDisconnect(user));
{
Instance->Config->GetIOHook(user->GetPort())->OnRawSocketClose(user->fd);
}
- catch (ModuleException& modexcept)
+ catch (CoreException& modexcept)
{
- Instance->Log(DEBUG,"Module exception cought: %s",modexcept.GetReason());
+ Instance->Log(DEBUG, "%s threw an exception: %s", modexcept.GetSource(), modexcept.GetReason());
}
}
}
break;
default:
- ServerInstance->Log(DEBUG,"Ut oh, '%s' has an unknown protocol family!",this->nick);
break;
}
return 0;
}
break;
default:
- ServerInstance->Log(DEBUG,"Ut oh, '%s' has an unknown protocol family!",this->nick);
break;
}
return "";
break;
default:
- ServerInstance->Log(DEBUG,"Ut oh, '%s' has an unknown protocol family!",this->nick);
break;
}
return "";
{
ServerInstance->Config->GetIOHook(this->GetPort())->OnRawSocketWrite(this->fd, text.data(), text.length());
}
- catch (ModuleException& modexcept)
+ catch (CoreException& modexcept)
{
- ServerInstance->Log(DEBUG,"Module exception caught: %s",modexcept.GetReason());
+ ServerInstance->Log(DEBUG, "%s threw an exception: %s", modexcept.GetSource(), modexcept.GetReason());
}
}
else
return false;
}
-int userrec::CountChannels()
-{
- return ChannelCount;
-}
-
-void userrec::ModChannelCount(int n)
-{
- ChannelCount += n;
-}
-
bool userrec::ChangeName(const char* gecos)
{
if (!strcmp(gecos, this->fullname))
/* If the user has raised an error whilst being processed, quit them now we're safe to */
if (!WriteError.empty())
+ {
userrec::QuitUser(ServerInstance, this, GetWriteError());
+ }
}