diff options
Diffstat (limited to 'src/inspircd.cpp')
-rw-r--r-- | src/inspircd.cpp | 21 |
1 files changed, 20 insertions, 1 deletions
diff --git a/src/inspircd.cpp b/src/inspircd.cpp index f21716e5b..e6d453ed2 100644 --- a/src/inspircd.cpp +++ b/src/inspircd.cpp @@ -489,7 +489,26 @@ InspIRCd::InspIRCd(int argc, char** argv) this->Res = new DNS(this); - Config->Read(true, NULL); + /* Read config, pass 0. At the end if this pass, + * the Config->IncludeFiles is populated, we call + * Config->StartDownloads to initialize the downlaods of all + * these files. + */ + Config->Read(true, NULL, 0); + Config->StartDownloads(); + + /* Now the downloads are started, we monitor them for completion. + * On completion, we call Read again with pass = 1 + */ + + while (Config->Downloading()) + { + SE->DispatchEvents(); + this->BufferedSocketCull(); + } + + /* We have all the files we can get, initiate pass 1 */ + Config->Read(true, NULL, 1); // Get XLine to do it's thing. this->XLines->CheckELines(); |