- return ServerInstance->ModeGrok->AddMode(mh,mode);
-}
-
-bool Server::AddModeWatcher(ModeWatcher* mw)
-{
- return ServerInstance->ModeGrok->AddModeWatcher(mw);
-}
-
-bool Server::DelModeWatcher(ModeWatcher* mw)
-{
- return ServerInstance->ModeGrok->DelModeWatcher(mw);
-}
-
-bool Server::AddResolver(Resolver* r)
-{
- return ServerInstance->Res->AddResolverClass(r);
-}
-
-bool InspIRCd::UserToPseudo(userrec* user, const std::string &message)
-{
- unsigned int old_fd = user->fd;
- user->Write("ERROR :Closing link (%s@%s) [%s]",user->ident,user->host,message.c_str());
- user->FlushWriteBuf();
- user->ClearBuffer();
- user->fd = FD_MAGIC_NUMBER;
-
- if (find(local_users.begin(),local_users.end(),user) != local_users.end())
- {
- local_users.erase(find(local_users.begin(),local_users.end(),user));
- log(DEBUG,"Delete local user");
- }
-
- ServerInstance->SE->DelFd(old_fd);
- shutdown(old_fd,2);
- close(old_fd);
- return true;
-}
-
-bool InspIRCd::PseudoToUser(userrec* alive, userrec* zombie, const std::string &message)
-{
- log(DEBUG,"PseudoToUser");
- zombie->fd = alive->fd;
- FOREACH_MOD(I_OnUserQuit,OnUserQuit(alive,message));
- alive->fd = FD_MAGIC_NUMBER;
- alive->FlushWriteBuf();
- alive->ClearBuffer();
- // save these for later
- std::string oldnick = alive->nick;
- std::string oldhost = alive->host;
- std::string oldident = alive->ident;
- userrec::QuitUser(this,alive,message.c_str());
- if (find(local_users.begin(),local_users.end(),alive) != local_users.end())
- {
- local_users.erase(find(local_users.begin(),local_users.end(),alive));
- log(DEBUG,"Delete local user");
- }
- // Fix by brain - cant write the user until their fd table entry is updated
- ServerInstance->fd_ref_table[zombie->fd] = zombie;
- zombie->Write(":%s!%s@%s NICK %s",oldnick.c_str(),oldident.c_str(),oldhost.c_str(),zombie->nick);
- for (std::vector<ucrec*>::const_iterator i = zombie->chans.begin(); i != zombie->chans.end(); i++)