mirror of
https://github.com/inspircd/inspircd.git
synced 2025-03-10 11:09:04 -04:00
We need to initialize the user twice, and we need to initialize the uid AFTER the config is read
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8573 e03df62e-2008-0410-955e-edbf42e46eb7
This commit is contained in:
parent
e525fb7b74
commit
81951dafc1
@ -428,33 +428,11 @@ InspIRCd::InspIRCd(int argc, char** argv)
|
||||
Config->ClearStack();
|
||||
|
||||
this->Modes = new ModeParser(this);
|
||||
this->AddServerName(Config->ServerName);
|
||||
|
||||
/*
|
||||
* Initialise SID/UID.
|
||||
* For an explanation as to exactly how this works, and why it works this way, see GetUID().
|
||||
* -- w00t
|
||||
*/
|
||||
/* Generate SID */
|
||||
size_t sid = 0;
|
||||
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;
|
||||
}
|
||||
|
||||
this->InitialiseUID();
|
||||
|
||||
/* set up fake client */
|
||||
/* set up fake client (uid is incorrect at this point,
|
||||
* until after config is read. we set up the user again
|
||||
* at that point
|
||||
*/
|
||||
this->FakeClient = new User(this);
|
||||
this->FakeClient->SetFd(FD_MAGIC_NUMBER);
|
||||
|
||||
@ -527,6 +505,37 @@ InspIRCd::InspIRCd(int argc, char** argv)
|
||||
/* We have all the files we can get, initiate pass 1 */
|
||||
Config->Read(true, NULL, 1);
|
||||
|
||||
this->AddServerName(Config->ServerName);
|
||||
|
||||
/* set up fake client again this time with the correct uid */
|
||||
delete FakeClient;
|
||||
this->FakeClient = new User(this);
|
||||
this->FakeClient->SetFd(FD_MAGIC_NUMBER);
|
||||
|
||||
/*
|
||||
* Initialise SID/UID.
|
||||
* For an explanation as to exactly how this works, and why it works this way, see GetUID().
|
||||
* -- w00t
|
||||
*/
|
||||
/* Generate SID */
|
||||
size_t sid = 0;
|
||||
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;
|
||||
}
|
||||
|
||||
this->InitialiseUID();
|
||||
|
||||
// Get XLine to do it's thing.
|
||||
this->XLines->CheckELines();
|
||||
this->XLines->ApplyLines();
|
||||
|
Loading…
x
Reference in New Issue
Block a user