}
/* Close all client sockets, or the new process inherits them */
- for (std::vector<User*>::const_iterator i = this->local_users.begin(); i != this->local_users.end(); i++)
+ for (std::vector<User*>::const_iterator i = this->Users->local_users.begin(); i != this->Users->local_users.end(); i++)
{
(*i)->SetWriteError("Server shutdown");
(*i)->CloseSocket();
*/
void InspIRCd::RehashUsersAndChans()
{
- user_hash* old_users = this->clientlist;
- user_hash* old_uuid = this->uuidlist;
+ user_hash* old_users = this->Users->clientlist;
+ user_hash* old_uuid = this->Users->uuidlist;
chan_hash* old_chans = this->chanlist;
- this->clientlist = new user_hash();
- this->uuidlist = new user_hash();
+ this->Users->clientlist = new user_hash();
+ this->Users->uuidlist = new user_hash();
this->chanlist = new chan_hash();
for (user_hash::const_iterator n = old_users->begin(); n != old_users->end(); n++)
- this->clientlist->insert(*n);
+ this->Users->clientlist->insert(*n);
delete old_users;
for (user_hash::const_iterator n = old_uuid->begin(); n != old_uuid->end(); n++)
- this->uuidlist->insert(*n);
+ this->Users->uuidlist->insert(*n);
delete old_uuid;
delete SEF;
this->s_signal = 0;
+
+ // Create base manager classes early, so nothing breaks
+ this->Users = new UserManager(this);
+
+ this->Users->unregistered_count = 0;
- this->unregistered_count = 0;
-
- this->clientlist = new user_hash();
- this->uuidlist = new user_hash();
+ this->Users->clientlist = new user_hash();
+ this->Users->uuidlist = new user_hash();
this->chanlist = new chan_hash();
this->Res = NULL;
this->Timers = new TimerManager(this);
this->Parser = new CommandParser(this);
this->XLines = new XLineManager(this);
- this->Users = new UserManager(this);
this->Config->argv = argv;
this->Config->argc = argc;
}
#endif
- printf("\nInspIRCd is now running!\n");
- Log(DEFAULT,"Startup complete.");
+ printf("\nInspIRCd is now running as '%s'[%s]\n", Config->ServerName,Config->GetSID().c_str());
+ Log(DEFAULT,"Startup complete as '%s'[%s]", Config->ServerName,Config->GetSID().c_str());
this->WritePID(Config->PID);
}
*/
if (TIME != OLDTIME)
{
- /* if any users were quit, take them out */
- this->GlobalCulls.Apply();
-
if (TIME < OLDTIME)
{
- WriteOpers("*** \002EH?!\002 -- Time is flowing BACKWARDS in this dimension! Clock drifted backwards %d secs.",abs(OLDTIME-TIME));
+ SNO->WriteToSnoMask('A', "\002EH?!\002 -- Time is flowing BACKWARDS in this dimension! Clock drifted backwards %d secs.",abs(OLDTIME-TIME));
}
if ((TIME % 3600) == 0)
this->stats->LastCPU = ru.ru_utime;
}
#else
- WindowsIPC->Check();
-
- if(Config->nofork)
- {
- uptime = Time() - startup_time;
- stime = gmtime(&uptime);
- snprintf(window_title, 100, "InspIRCd - %u clients, %u accepted connections - Up %u days, %.2u:%.2u:%.2u",
- LocalUserCount(), stats->statsAccept, stime->tm_yday, stime->tm_hour, stime->tm_min, stime->tm_sec);
- SetConsoleTitle(window_title);
- }
+ WindowsIPC->Check();
#endif
}
*/
this->SE->DispatchEvents();
+ /* if any users were quit, take them out */
+ this->GlobalCulls.Apply();
+
/* If any inspsockets closed, remove them */
this->BufferedSocketCull();