From 00904a0b5669bd050a0e6644d65eba54aa299465 Mon Sep 17 00:00:00 2001
From: Diva Canto
Date: Thu, 28 Feb 2013 14:20:07 -0800
Subject: Bug fix in DataSnapshot, where a var was being used before being
 initialized.

---
 OpenSim/Region/DataSnapshot/DataSnapshotManager.cs | 34 ++++++++++------------
 1 file changed, 15 insertions(+), 19 deletions(-)

(limited to 'OpenSim')

diff --git a/OpenSim/Region/DataSnapshot/DataSnapshotManager.cs b/OpenSim/Region/DataSnapshot/DataSnapshotManager.cs
index 5e62f23..a3cd9c8 100644
--- a/OpenSim/Region/DataSnapshot/DataSnapshotManager.cs
+++ b/OpenSim/Region/DataSnapshot/DataSnapshotManager.cs
@@ -140,8 +140,6 @@ namespace OpenSim.Region.DataSnapshot
                         return;
                     }
 
-                    if (m_enabled)
-                        m_snapStore = new SnapshotStore(m_snapsDir, m_gridinfo, m_listener_port, m_hostname);
                 }
 
             }
@@ -155,8 +153,22 @@ namespace OpenSim.Region.DataSnapshot
 
             m_log.DebugFormat("[DATASNAPSHOT]: Module added to Scene {0}.", scene.RegionInfo.RegionName);
 
-            m_snapStore.AddScene(scene);
+            if (!m_servicesNotified)
+            {
+                m_hostname = scene.RegionInfo.ExternalHostName;
+                m_snapStore = new SnapshotStore(m_snapsDir, m_gridinfo, m_listener_port, m_hostname);
+
+                //Hand it the first scene, assuming that all scenes have the same BaseHTTPServer
+                new DataRequestHandler(scene, this);
+
+                if (m_dataServices != "" && m_dataServices != "noservices")
+                    NotifyDataServices(m_dataServices, "online");
+
+                m_servicesNotified = true;
+            }
+
             m_scenes.Add(scene);
+            m_snapStore.AddScene(scene);
 
             Assembly currentasm = Assembly.GetExecutingAssembly();
 
@@ -181,22 +193,6 @@ namespace OpenSim.Region.DataSnapshot
                 }
             }
 
-            // Must be done here because on shared modules, PostInitialise() will run
-            // BEFORE any scenes are registered. There is no "all scenes have been loaded"
-            // kind of callback because scenes may be created dynamically, so we cannot
-            // have that info, ever.
-            if (!m_servicesNotified)
-            {
-                //Hand it the first scene, assuming that all scenes have the same BaseHTTPServer
-                new DataRequestHandler(m_scenes[0], this);
-
-                m_hostname = m_scenes[0].RegionInfo.ExternalHostName;
-
-                if (m_dataServices != "" && m_dataServices != "noservices")
-                    NotifyDataServices(m_dataServices, "online");
-
-                m_servicesNotified = true;
-            }
         }
 
         public void RemoveRegion(Scene scene)
-- 
cgit v1.1