| Attached Files | 0240-making-first-run-more-resilient-to-bad-input-loop-un.patch [^] (2,582 bytes) 2012-07-27 22:17 [Show Content] [Hide Content]From 76a9ec8830f5797f8e4de10402c9c0ff6fefa0f5 Mon Sep 17 00:00:00 2001
From: SignpostMarv <github@signpostmarv.name>
Date: Fri, 27 Jul 2012 22:15:25 +0100
Subject: [PATCH 240/243] making first run more resilient to bad input (loop
until good input, rather than crash)
---
OpenSim/Framework/RegionInfo.cs | 26 +++++++++++++++++++-------
1 file changed, 19 insertions(+), 7 deletions(-)
diff --git a/OpenSim/Framework/RegionInfo.cs b/OpenSim/Framework/RegionInfo.cs
index a505524..2080a16 100644
--- a/OpenSim/Framework/RegionInfo.cs
+++ b/OpenSim/Framework/RegionInfo.cs
@@ -480,9 +480,16 @@ namespace OpenSim.Framework
MainConsole.Instance.Output("=====================================\n");
if (name == String.Empty)
- name = MainConsole.Instance.CmdPrompt("New region name", name);
- if (name == String.Empty)
- throw new Exception("Cannot interactively create region with no name");
+ {
+ while (name.Trim() == string.Empty)
+ {
+ name = MainConsole.Instance.CmdPrompt("New region name", name);
+ if (name.Trim() == string.Empty)
+ {
+ MainConsole.Instance.Output("Cannot interactively create region with no name");
+ }
+ }
+ }
source.AddConfig(name);
@@ -513,15 +520,20 @@ namespace OpenSim.Framework
//
allKeys.Remove("RegionUUID");
string regionUUID = config.GetString("RegionUUID", string.Empty);
- if (regionUUID == String.Empty)
+ if (!UUID.TryParse(regionUUID.Trim(), out RegionID))
{
UUID newID = UUID.Random();
-
- regionUUID = MainConsole.Instance.CmdPrompt("RegionUUID", newID.ToString());
+ while (RegionID == UUID.Zero)
+ {
+ regionUUID = MainConsole.Instance.CmdPrompt("RegionUUID", newID.ToString());
+ if (!UUID.TryParse(regionUUID.Trim(), out RegionID))
+ {
+ MainConsole.Instance.Output("RegionUUID must be a valid UUID");
+ }
+ }
config.Set("RegionUUID", regionUUID);
}
- RegionID = new UUID(regionUUID);
originRegionID = RegionID; // What IS this?! (Needed for RegionCombinerModule?)
// Location
--
1.7.11.msysgit.0
|