Have OpenSim throw a strop if it tries to load an OAR with a major version that is too high for it to handle
parent
1bd4219078
commit
3df8d8ff76
|
@ -52,6 +52,12 @@ namespace OpenSim.Region.CoreModules.World.Archiver
|
||||||
{
|
{
|
||||||
private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
|
private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// The maximum major version of OAR that we can read. Minor versions shouldn't need a number since version
|
||||||
|
/// bumps here should be compatible.
|
||||||
|
/// </summary>
|
||||||
|
public static int MAX_MAJOR_VERSION = 0;
|
||||||
|
|
||||||
protected Scene m_scene;
|
protected Scene m_scene;
|
||||||
protected Stream m_loadStream;
|
protected Stream m_loadStream;
|
||||||
protected Guid m_requestId;
|
protected Guid m_requestId;
|
||||||
|
@ -497,6 +503,22 @@ namespace OpenSim.Region.CoreModules.World.Archiver
|
||||||
{
|
{
|
||||||
if (xtr.NodeType == XmlNodeType.Element)
|
if (xtr.NodeType == XmlNodeType.Element)
|
||||||
{
|
{
|
||||||
|
if (xtr.Name.ToString() == "archive")
|
||||||
|
{
|
||||||
|
int majorVersion = int.Parse(xtr["major_version"]);
|
||||||
|
int minorVersion = int.Parse(xtr["minor_version"]);
|
||||||
|
string version = string.Format("{0}.{1}", majorVersion, minorVersion);
|
||||||
|
|
||||||
|
if (majorVersion > MAX_MAJOR_VERSION)
|
||||||
|
{
|
||||||
|
throw new Exception(
|
||||||
|
string.Format(
|
||||||
|
"The OAR you are trying to load has major version number of {0} but this version of OpenSim can only load OARs with major version number {1} and below",
|
||||||
|
majorVersion, MAX_MAJOR_VERSION));
|
||||||
|
}
|
||||||
|
|
||||||
|
m_log.InfoFormat("[ARCHIVER]: Loading OAR with version {0}", version);
|
||||||
|
}
|
||||||
if (xtr.Name.ToString() == "datetime")
|
if (xtr.Name.ToString() == "datetime")
|
||||||
{
|
{
|
||||||
int value;
|
int value;
|
||||||
|
|
|
@ -181,7 +181,7 @@ namespace OpenSim.Region.CoreModules.World.Archiver
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Create the control file for a 0.2 version archive
|
/// Create the control file for the most up to date archive
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
public static string Create0p2ControlFile()
|
public static string Create0p2ControlFile()
|
||||||
|
|
Loading…
Reference in New Issue