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.
+ * NOTE: We really should add a timeout here
+ */
+
+ while (Config->Downloading())
+ {
+ SE->DispatchEvents();
+ this->BufferedSocketCull();
+ }
+
+ printf("\n");
+
+ if (Config->FileErrors)
+ {
+ /* One or more file download/access errors, do not
+ * proceed to second pass
+ */
+ Exit(EXIT_STATUS_CONFIG);
+ }
+
+ /* 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();