Fixup the global defaults config parsing code.

bulletsim
Sean McNamara 2011-04-12 01:14:21 -04:00
parent 95a6ee0a37
commit 049bce4d00
1 changed files with 25 additions and 15 deletions

View File

@ -238,7 +238,7 @@ namespace OpenSim.Region.OptionalModules.World.AutoBackup
defTimer.AutoReset = true; defTimer.AutoReset = true;
defTimer.Start (); defTimer.Start ();
AutoBackupModuleState abms = ParseConfig(null, false); AutoBackupModuleState abms = ParseConfig(null, true);
m_log.Debug("[AUTO BACKUP]: Config for default"); m_log.Debug("[AUTO BACKUP]: Config for default");
m_log.Debug(abms.ToString()); m_log.Debug(abms.ToString());
} }
@ -262,16 +262,23 @@ namespace OpenSim.Region.OptionalModules.World.AutoBackup
if (!m_Enabled) if (!m_Enabled)
return; return;
AutoBackupModuleState abms = states[scene]; if(states.ContainsKey(scene))
Timer timer = abms.GetTimer (); {
List<IScene> list = timerMap[timer]; AutoBackupModuleState abms = states[scene];
list.Remove (scene);
if (list.Count == 0) { //Remove this scene out of the timer map list
timerMap.Remove (timer); Timer timer = abms.GetTimer ();
timers.Remove (timer.Interval); List<IScene> list = timerMap[timer];
timer.Close (); list.Remove (scene);
//Shut down the timer if this was the last scene for the timer
if (list.Count == 0) {
timerMap.Remove (timer);
timers.Remove (timer.Interval);
timer.Close ();
}
states.Remove(scene);
} }
states.Remove(scene);
} }
void IRegionModuleBase.RegionLoaded (Framework.Scenes.Scene scene) void IRegionModuleBase.RegionLoaded (Framework.Scenes.Scene scene)
@ -283,9 +290,9 @@ namespace OpenSim.Region.OptionalModules.World.AutoBackup
if (scene == null) if (scene == null)
return; return;
AutoBackupModuleState abms = ParseConfig(scene, true); AutoBackupModuleState abms = ParseConfig(scene, false);
m_log.Debug("[AUTO BACKUP]: Config for " + scene.RegionInfo.RegionName); m_log.Debug("[AUTO BACKUP]: Config for " + scene.RegionInfo.RegionName);
m_log.Debug(abms.ToString()); m_log.Debug((abms == null ? "DEFAULT" : abms.ToString()));
} }
AutoBackupModuleState ParseConfig (IScene scene, bool parseDefault) AutoBackupModuleState ParseConfig (IScene scene, bool parseDefault)
@ -322,13 +329,16 @@ namespace OpenSim.Region.OptionalModules.World.AutoBackup
if(state == null && tmpEnabled != defaultState.GetEnabled()) //Varies from default state if(state == null && tmpEnabled != defaultState.GetEnabled()) //Varies from default state
{ {
state = new AutoBackupModuleState(); state = new AutoBackupModuleState();
state.SetEnabled (tmpEnabled); }
if(state != null)
{
state.SetEnabled (tmpEnabled);
} }
//If you don't want AutoBackup, we stop. //If you don't want AutoBackup, we stop.
if ((state == null && !defaultState.GetEnabled()) || !state.GetEnabled ()) { if ((state == null && !defaultState.GetEnabled()) || (state != null && !state.GetEnabled ())) {
m_log.Info ("[AUTO BACKUP]: Region " + sRegionLabel + " is NOT AutoBackup enabled."); m_log.Info ("[AUTO BACKUP]: Region " + sRegionLabel + " is NOT AutoBackup enabled.");
state = defaultState;
return state; return state;
} else { } else {
m_log.Info ("[AUTO BACKUP]: Region " + sRegionLabel + " is AutoBackup ENABLED."); m_log.Info ("[AUTO BACKUP]: Region " + sRegionLabel + " is AutoBackup ENABLED.");