*/
#include "inspircd.h"
-#include "configreader.h"
#include <signal.h>
#ifndef WIN32
#endif
#endif
-#include <exception>
#include <fstream>
-#include "modules.h"
-#include "mode.h"
#include "xline.h"
#include "socketengine.h"
#include "inspircd_se_config.h"
#include "socket.h"
-#include "typedefs.h"
#include "command_parse.h"
#include "exitcodes.h"
#include "caller.h"
void InspIRCd::RehashUsersAndChans()
{
user_hash* old_users = this->clientlist;
+ user_hash* old_uuid = this->uuidlist;
chan_hash* old_chans = this->chanlist;
this->clientlist = new user_hash();
+ this->uuidlist = new user_hash();
this->chanlist = new chan_hash();
for (user_hash::const_iterator n = old_users->begin(); n != old_users->end(); n++)
delete old_users;
+ for (user_hash::const_iterator n = old_uuid->begin(); n != old_uuid->end(); n++)
+ this->uuidlist->insert(*n);
+
+ delete old_uuid;
+
for (chan_hash::const_iterator n = old_chans->begin(); n != old_chans->end(); n++)
this->chanlist->insert(*n);
this->unregistered_count = 0;
this->clientlist = new user_hash();
+ this->uuidlist = new user_hash();
this->chanlist = new chan_hash();
this->Config = new ServerConfig(this);
/* Generate SID */
size_t sid = 0;
- for (const char* x = Config->ServerName; *x; ++x)
- sid = 5 * sid + *x;
- for (const char* y = Config->ServerDesc; *y; ++y)
- sid = 5 * sid + *y;
- sid = sid % 999;
+ if (Config->sid)
+ {
+ sid = Config->sid;
+ }
+ else
+ {
+ for (const char* x = Config->ServerName; *x; ++x)
+ sid = 5 * sid + *x;
+ for (const char* y = Config->ServerDesc; *y; ++y)
+ sid = 5 * sid + *y;
+ sid = sid % 999;
+
+ Config->sid = sid;
+ }
current_uid[0] = sid / 100 + 48;
current_uid[1] = ((sid / 10) % 10) + 48;
current_uid[2] = sid % 10 + 48;
for(i = 3; i < UUID_LENGTH - 1; i++)
current_uid[i] = 'A';
- printf ("%s\n", current_uid);
-
printf("\nInspIRCd is now running!\n");
Log(DEFAULT,"Startup complete.");