]> git.mxchange.org Git - flightgear.git/blobdiff - src/Environment/environment_ctrl.cxx
ignore resets for now because every z/Z key press would trigger a call to NOAA. We...
[flightgear.git] / src / Environment / environment_ctrl.cxx
index 2f08e98280beb424af96603dee34f96267f0e74f..6e6f350c99296bb644c3674fdc1a162bf2304982 100644 (file)
@@ -25,6 +25,8 @@
 #include <stdlib.h>
 #include <algorithm>
 
+#include <simgear/structure/exception.hxx>
+
 #include <Main/fg_props.hxx>
 
 #include "environment_mgr.hxx"
@@ -359,6 +361,7 @@ FGMetarEnvironmentCtrl::init ()
 void
 FGMetarEnvironmentCtrl::reinit ()
 {
+#if 0
     if (_icao != NULL) {
         free(_icao);
         _icao = NULL;
@@ -380,6 +383,7 @@ FGMetarEnvironmentCtrl::reinit ()
         fgGetDouble("/environment/metar/temperature-degc"));
     fgSetDouble("/environment/dewpoint-degc",
         fgGetDouble("/environment/metar/dewpoint-degc"));
+#endif
 
     env->reinit();
 }
@@ -412,7 +416,15 @@ FGMetarEnvironmentCtrl::fetch_data (const char *icao)
 
         _icao = strdup(icao);
     }
-    SGMetar *m = new SGMetar(_icao);
+
+    SGMetar *m;
+    try {
+        m = new SGMetar(_icao);
+    } catch (const sg_io_exception& e) {
+        SG_LOG( SG_GENERAL, SG_WARN, "Error fetching live weather data: "
+                                      << e.getFormattedMessage().c_str() );
+        return;
+    }
 
     d = m->getMinVisibility().getVisibility_m();
     d = (d != SGMetarNaN) ? d : 10000;