]> git.mxchange.org Git - flightgear.git/blobdiff - src/Network/HTTPClient.cxx
New PathsDialog, for managing locations.
[flightgear.git] / src / Network / HTTPClient.cxx
index d765c0a429ca285df9a59be0a10e4f6fdcde9ebb..f60817877fa7018995dccb722039d5d79059ffda 100644 (file)
@@ -47,8 +47,6 @@ typedef nasal::Ghost<pkg::PackageRef> NasalPackage;
 typedef nasal::Ghost<pkg::CatalogRef> NasalCatalog;
 typedef nasal::Ghost<pkg::InstallRef> NasalInstall;
 
-#define ENABLE_PACKAGE_SYSTEM 1
-
 namespace {
   
   class FGDelegate : public pkg::Delegate
@@ -112,7 +110,8 @@ public:
 
 } // of anonymous namespace
 
-FGHTTPClient::FGHTTPClient()
+FGHTTPClient::FGHTTPClient() :
+    _inited(false)
 {
 }
 
@@ -122,6 +121,12 @@ FGHTTPClient::~FGHTTPClient()
 
 void FGHTTPClient::init()
 {
+    // launcher may need to setup HTTP access abnormally early, so
+    // guard against duplicate inits
+    if (_inited) {
+        return;
+    }
+
   _http.reset(new simgear::HTTP::Client);
   
   std::string proxyHost(fgGetString("/sim/presets/proxy/host"));
@@ -132,7 +137,6 @@ void FGHTTPClient::init()
     _http->setProxy(proxyHost, proxyPort, proxyAuth);
   }
   
-#ifdef ENABLE_PACKAGE_SYSTEM
   pkg::Root* packageRoot = globals->packageRoot();
   if (packageRoot) {
     // package system needs access to the HTTP engine too
@@ -155,7 +159,8 @@ void FGHTTPClient::init()
     // start a refresh now
     packageRoot->refresh();
   }
-#endif // of ENABLE_PACKAGE_SYSTEM
+
+    _inited = true;
 }
 
 static naRef f_package_existingInstall( pkg::Package& pkg,
@@ -231,7 +236,6 @@ static naRef f_package_variants(pkg::Package& pack, naContext c)
 
 void FGHTTPClient::postinit()
 {
-#ifdef ENABLE_PACKAGE_SYSTEM
   NasalPackageRoot::init("PackageRoot")
   .member("path", &pkg::Root::path)
   .member("version", &pkg::Root::catalogVersion)
@@ -291,7 +295,6 @@ void FGHTTPClient::postinit()
     nasal::Hash nasalPkg = nasalGlobals.createHash("pkg"); // module
     nasalPkg.set("root", packageRoot);
   }
-#endif // of ENABLE_PACKAGE_SYSTEM
 }
 
 void FGHTTPClient::shutdown()