* This event is only called when the user is fully registered when they quit. To catch
* raw disconnections, use the OnUserDisconnect method.
*/
- virtual void OnUserQuit(userrec* user);
+ virtual void OnUserQuit(userrec* user, std::string message);
/** Called whenever a user's socket is closed.
* The details of the exiting user are available to you in the parameter userrec *user
Write(user->fd,"ERROR :Closing link (%s@%s) [%s%s]",user->ident,user->host,PrefixQuit,parameters[0]);
WriteOpers("*** Client exiting: %s!%s@%s [%s%s]",user->nick,user->ident,user->host,PrefixQuit,parameters[0]);
WriteCommonExcept(user,"QUIT :%s%s",PrefixQuit,parameters[0]);
+ FOREACH_MOD OnUserQuit(user,parameters[0]);
}
else
Write(user->fd,"ERROR :Closing link (%s@%s) [QUIT]",user->ident,user->host);
WriteOpers("*** Client exiting: %s!%s@%s [Client exited]",user->nick,user->ident,user->host);
WriteCommonExcept(user,"QUIT :Client exited");
+ FOREACH_MOD OnUserQuit(user,"Client exited");
}
- FOREACH_MOD OnUserQuit(user);
AddWhoWas(user);
}
log(DEBUG,"closing fd %lu",(unsigned long)user->fd);
if (user->registered == 7) {
- FOREACH_MOD OnUserQuit(user);
+ FOREACH_MOD OnUserQuit(user,reason);
WriteCommonExcept(user,"QUIT :%s",reason);
}
Module::Module() { }
Module::~Module() { }
void Module::OnUserConnect(userrec* user) { }
-void Module::OnUserQuit(userrec* user) { }
+void Module::OnUserQuit(userrec* user, std::string message) { }
void Module::OnUserDisconnect(userrec* user) { }
void Module::OnUserJoin(userrec* user, chanrec* channel) { }
void Module::OnUserPart(userrec* user, chanrec* channel) { }
AddLogEntry(LT_CONNECT,user->nick,user->host,user->server);
}
- virtual void OnUserQuit(userrec* user)
+ virtual void OnUserQuit(userrec* user, std::string reason)
{
AddLogEntry(LT_DISCONNECT,user->nick,user->host,user->server);
}
Srv->Log(DEBUG,"Foobar: User connecting: " + b);
}
- virtual void OnUserQuit(userrec* user)
+ virtual void OnUserQuit(userrec* user, std::string reason)
{
// method called when a user disconnects
return 0;
}
- virtual void OnUserQuit(userrec* user)
+ virtual void OnUserQuit(userrec* user, std::string reason)
{
user->Shrink("nick_locked");
}
output = output + std::string(" PARK");
}
- virtual void OnUserQuit(userrec* user)
+ virtual void OnUserQuit(userrec* user, std::string reason)
{
std::string nick = user->nick;
// track quits in our parked user list
Srv->AddCommand("SILENCE",handle_silence,0,0,"m_silence.so");
}
- virtual void OnUserQuit(userrec* user)
+ virtual void OnUserQuit(userrec* user, std::string reason)
{
// when the user quits tidy up any silence list they might have just to keep things tidy
// and to prevent a HONKING BIG MEMORY LEAK!
}
}
+ virtual void OnUserConnect(userrec* user)
+ {
+ if (std::string(user->server) == Srv->GetServerName())
+ {
+ log(DEBUG,"**** User on %s CONNECTS: %s",user->server,user->nick);
+ std::deque<std::string> params;
+ sprintf(agestr,"%d",user->age);
+ params.clear();
+ params.push_back(agestr);
+ params.push_back(user->nick);
+ params.push_back(user->host);
+ params.push_back(user->dhost);
+ params.push_back(user->ident);
+ params.push_back("+"+std::string(user->modes))
+ params.push_back(user->ip);
+ params.push_back(":"+std::string(user->fullname))
+ DoOneToMany(Srv->GetServerName(),"NICK",params);
+ }
+ }
+
virtual ~ModuleSpanningTree()
{
delete Srv;
Srv->AddCommand("WATCH",handle_watch,0,0,"m_watch.so");
}
- virtual void OnUserQuit(userrec* user)
+ virtual void OnUserQuit(userrec* user, std::string reason)
{
log(DEBUG,"*** WATCH: On global quit: user %s",user->nick);
irc::string n2 = user->nick;