From a0e039e8764b14abfbc80d7e0f685ec2c20ac176 Mon Sep 17 00:00:00 2001 From: UbitUmarov Date: Tue, 14 Dec 2021 16:04:45 +0000 Subject: [PATCH] useless ms xml things --- OpenSim/Capabilities/LLSD.cs | 4 ++- OpenSim/Framework/PhysicsInertia.cs | 4 ++- OpenSim/Framework/PrimitiveBaseShape.cs | 1 + .../External/ExternalRepresentationUtils.cs | 3 +- .../External/LandDataSerializer.cs | 1 + .../External/RegionSettingsSerializer.cs | 1 + .../External/UserInventoryItemSerializer.cs | 1 + .../HttpServer/RestDeserialiseHandler.cs | 1 + .../Servers/HttpServer/RestSessionService.cs | 2 ++ .../Avatar/BakedTextures/XBakesModule.cs | 1 + .../World/Archiver/ArchiveReadRequest.cs | 1 + .../World/Archiver/AssetsDearchiver.cs | 1 + .../World/Serialiser/Tests/SerialiserTests.cs | 2 ++ .../Animation/DefaultAvatarAnimations.cs | 1 + OpenSim/Region/Framework/Scenes/SOPVehicle.cs | 1 + .../Framework/Scenes/Scene.Inventory.cs | 2 +- .../CoalescedSceneObjectsSerializer.cs | 32 +++++++++++-------- .../Serialization/SceneObjectSerializer.cs | 9 ++++-- .../Scenes/Serialization/SceneXmlLoader.cs | 11 +++++-- .../Region/Framework/Scenes/TerrainChannel.cs | 3 ++ .../Voice/VivoxVoice/VivoxVoiceModule.cs | 7 +++- 21 files changed, 67 insertions(+), 22 deletions(-) diff --git a/OpenSim/Capabilities/LLSD.cs b/OpenSim/Capabilities/LLSD.cs index 342164d9af..840d412324 100644 --- a/OpenSim/Capabilities/LLSD.cs +++ b/OpenSim/Capabilities/LLSD.cs @@ -83,6 +83,8 @@ namespace OpenSim.Framework.Capabilities { using (XmlTextReader reader = new XmlTextReader(st)) { + reader.DtdProcessing = DtdProcessing.Ignore; + reader.Read(); SkipWS(reader); @@ -146,7 +148,7 @@ namespace OpenSim.Framework.Capabilities writer.WriteString(obj.ToString()); writer.WriteEndElement(); } - else if (obj is double) + else if (obj is double || obj is float) { writer.WriteStartElement(String.Empty, "real", String.Empty); writer.WriteString(obj.ToString()); diff --git a/OpenSim/Framework/PhysicsInertia.cs b/OpenSim/Framework/PhysicsInertia.cs index 5aae6d5517..682b548468 100644 --- a/OpenSim/Framework/PhysicsInertia.cs +++ b/OpenSim/Framework/PhysicsInertia.cs @@ -191,12 +191,14 @@ namespace OpenSim.Framework PhysicsInertiaData v; UTF8Encoding enc = new UTF8Encoding(); using(MemoryStream ms = new MemoryStream(enc.GetBytes(text))) + { using(XmlTextReader xreader = new XmlTextReader(ms)) { + xreader.DtdProcessing = DtdProcessing.Ignore; v = new PhysicsInertiaData(); v.FromXml2(xreader, out error); } - + } if (error) return null; diff --git a/OpenSim/Framework/PrimitiveBaseShape.cs b/OpenSim/Framework/PrimitiveBaseShape.cs index ba301d910e..811f8dbb53 100644 --- a/OpenSim/Framework/PrimitiveBaseShape.cs +++ b/OpenSim/Framework/PrimitiveBaseShape.cs @@ -1558,6 +1558,7 @@ namespace OpenSim.Framework { using (XmlTextReader xtr = new XmlTextReader(sr)) { + xtr.DtdProcessing = DtdProcessing.Ignore; xtr.MoveToContent(); string type = xtr.GetAttribute("type"); diff --git a/OpenSim/Framework/Serialization/External/ExternalRepresentationUtils.cs b/OpenSim/Framework/Serialization/External/ExternalRepresentationUtils.cs index 9b51f684ec..358caa8fe1 100644 --- a/OpenSim/Framework/Serialization/External/ExternalRepresentationUtils.cs +++ b/OpenSim/Framework/Serialization/External/ExternalRepresentationUtils.cs @@ -30,6 +30,7 @@ using System.Collections.Generic; using System.Diagnostics; using System.IO; using System.Reflection; +using System.Text; using System.Xml; using log4net; using OpenMetaverse; @@ -221,7 +222,7 @@ namespace OpenSim.Framework.Serialization.External using (StringWriter sw = new StringWriter()) using (XmlTextWriter writer = new XmlTextWriter(sw)) using (XmlTextReader wrappedReader = new XmlTextReader(xmlData, XmlNodeType.Element, null)) - using (XmlReader reader = XmlReader.Create(wrappedReader, new XmlReaderSettings() { IgnoreWhitespace = true, ConformanceLevel = ConformanceLevel.Fragment})) + using (XmlReader reader = XmlReader.Create(wrappedReader, new XmlReaderSettings() { IgnoreWhitespace = true, ConformanceLevel = ConformanceLevel.Fragment, DtdProcessing = DtdProcessing.Ignore})) { TransformXml(reader, writer, sceneName, homeURL, userService, scopeID); diff --git a/OpenSim/Framework/Serialization/External/LandDataSerializer.cs b/OpenSim/Framework/Serialization/External/LandDataSerializer.cs index 3274b02b10..8e5ddf8ed9 100644 --- a/OpenSim/Framework/Serialization/External/LandDataSerializer.cs +++ b/OpenSim/Framework/Serialization/External/LandDataSerializer.cs @@ -194,6 +194,7 @@ namespace OpenSim.Framework.Serialization.External using (XmlTextReader reader = new XmlTextReader(new StringReader(serializedLandData))) { + reader.DtdProcessing = DtdProcessing.Ignore; reader.ReadStartElement("LandData"); ExternalRepresentationUtils.ExecuteReadProcessors(landData, m_ldProcessors, reader); diff --git a/OpenSim/Framework/Serialization/External/RegionSettingsSerializer.cs b/OpenSim/Framework/Serialization/External/RegionSettingsSerializer.cs index f547251c8d..f114fda3cc 100644 --- a/OpenSim/Framework/Serialization/External/RegionSettingsSerializer.cs +++ b/OpenSim/Framework/Serialization/External/RegionSettingsSerializer.cs @@ -69,6 +69,7 @@ namespace OpenSim.Framework.Serialization.External StringReader sr = new StringReader(serializedSettings); XmlTextReader xtr = new XmlTextReader(sr); + xtr.DtdProcessing = DtdProcessing.Ignore; xtr.ReadStartElement("RegionSettings"); diff --git a/OpenSim/Framework/Serialization/External/UserInventoryItemSerializer.cs b/OpenSim/Framework/Serialization/External/UserInventoryItemSerializer.cs index 9b02553d3a..e8c811892a 100644 --- a/OpenSim/Framework/Serialization/External/UserInventoryItemSerializer.cs +++ b/OpenSim/Framework/Serialization/External/UserInventoryItemSerializer.cs @@ -202,6 +202,7 @@ namespace OpenSim.Framework.Serialization.External using (XmlTextReader reader = new XmlTextReader(new StringReader(serialization))) { + reader.DtdProcessing = DtdProcessing.Ignore; reader.ReadStartElement("InventoryItem"); ExternalRepresentationUtils.ExecuteReadProcessors( diff --git a/OpenSim/Framework/Servers/HttpServer/RestDeserialiseHandler.cs b/OpenSim/Framework/Servers/HttpServer/RestDeserialiseHandler.cs index bd55657815..902e19955d 100644 --- a/OpenSim/Framework/Servers/HttpServer/RestDeserialiseHandler.cs +++ b/OpenSim/Framework/Servers/HttpServer/RestDeserialiseHandler.cs @@ -54,6 +54,7 @@ namespace OpenSim.Framework.Servers.HttpServer TRequest deserial; using (XmlTextReader xmlReader = new XmlTextReader(request)) { + xmlReader.DtdProcessing = DtdProcessing.Ignore; XmlSerializer deserializer = new XmlSerializer(typeof (TRequest)); deserial = (TRequest) deserializer.Deserialize(xmlReader); } diff --git a/OpenSim/Framework/Servers/HttpServer/RestSessionService.cs b/OpenSim/Framework/Servers/HttpServer/RestSessionService.cs index 68073c1164..a734997910 100644 --- a/OpenSim/Framework/Servers/HttpServer/RestSessionService.cs +++ b/OpenSim/Framework/Servers/HttpServer/RestSessionService.cs @@ -210,6 +210,7 @@ namespace OpenSim.Framework.Servers.HttpServer { try { + xmlReader.DtdProcessing = DtdProcessing.Ignore; XmlSerializer deserializer = new XmlSerializer(typeof(RestSessionObject)); deserial = (RestSessionObject)deserializer.Deserialize(xmlReader); } @@ -269,6 +270,7 @@ namespace OpenSim.Framework.Servers.HttpServer { try { + xmlReader.DtdProcessing = DtdProcessing.Ignore; XmlSerializer deserializer = new XmlSerializer(typeof(TRequest)); deserial = (TRequest)deserializer.Deserialize(xmlReader); } diff --git a/OpenSim/Region/CoreModules/Avatar/BakedTextures/XBakesModule.cs b/OpenSim/Region/CoreModules/Avatar/BakedTextures/XBakesModule.cs index 596e7cb767..e8a2c1cb51 100644 --- a/OpenSim/Region/CoreModules/Avatar/BakedTextures/XBakesModule.cs +++ b/OpenSim/Region/CoreModules/Avatar/BakedTextures/XBakesModule.cs @@ -122,6 +122,7 @@ namespace OpenSim.Region.CoreModules.Avatar.BakedTextures { using(XmlTextReader sr = new XmlTextReader(s)) { + sr.DtdProcessing = DtdProcessing.Ignore; sr.ReadStartElement("BakedAppearance"); while (sr.LocalName == "BakedTexture") { diff --git a/OpenSim/Region/CoreModules/World/Archiver/ArchiveReadRequest.cs b/OpenSim/Region/CoreModules/World/Archiver/ArchiveReadRequest.cs index a6f7dd6d19..270d1686a0 100644 --- a/OpenSim/Region/CoreModules/World/Archiver/ArchiveReadRequest.cs +++ b/OpenSim/Region/CoreModules/World/Archiver/ArchiveReadRequest.cs @@ -1192,6 +1192,7 @@ namespace OpenSim.Region.CoreModules.World.Archiver XmlNamespaceManager nsmgr = new XmlNamespaceManager(new NameTable()); XmlParserContext context = new XmlParserContext(null, nsmgr, null, XmlSpace.None); XmlTextReader xtr = new XmlTextReader(Encoding.ASCII.GetString(data), XmlNodeType.Document, context); + xtr.DtdProcessing = DtdProcessing.Ignore; // Loaded metadata will be empty if no information exists in the archive dearchivedScenes.LoadedCreationDateTime = 0; diff --git a/OpenSim/Region/CoreModules/World/Archiver/AssetsDearchiver.cs b/OpenSim/Region/CoreModules/World/Archiver/AssetsDearchiver.cs index 8c0ef880d4..2457544e43 100644 --- a/OpenSim/Region/CoreModules/World/Archiver/AssetsDearchiver.cs +++ b/OpenSim/Region/CoreModules/World/Archiver/AssetsDearchiver.cs @@ -93,6 +93,7 @@ namespace OpenSim.Region.CoreModules.World.Archiver StringReader sr = new StringReader(xml); XmlTextReader reader = new XmlTextReader(sr); + reader.DtdProcessing = DtdProcessing.Ignore; reader.ReadStartElement("assets"); reader.Read(); diff --git a/OpenSim/Region/CoreModules/World/Serialiser/Tests/SerialiserTests.cs b/OpenSim/Region/CoreModules/World/Serialiser/Tests/SerialiserTests.cs index c9e3141ccd..3b3500a79d 100644 --- a/OpenSim/Region/CoreModules/World/Serialiser/Tests/SerialiserTests.cs +++ b/OpenSim/Region/CoreModules/World/Serialiser/Tests/SerialiserTests.cs @@ -720,6 +720,7 @@ namespace OpenSim.Region.CoreModules.World.Serialiser.Tests string xml = SceneObjectSerializer.ToOriginalXmlFormat(so); XmlTextReader xtr = new XmlTextReader(new StringReader(xml)); + xtr.DtdProcessing = DtdProcessing.Ignore; xtr.ReadStartElement("SceneObjectGroup"); xtr.ReadStartElement("RootPart"); xtr.ReadStartElement("SceneObjectPart"); @@ -831,6 +832,7 @@ namespace OpenSim.Region.CoreModules.World.Serialiser.Tests string xml2 = m_serialiserModule.SerializeGroupToXml2(so, options); XmlTextReader xtr = new XmlTextReader(new StringReader(xml2)); + xtr.DtdProcessing = DtdProcessing.Ignore; xtr.ReadStartElement("SceneObjectGroup"); xtr.ReadStartElement("SceneObjectPart"); diff --git a/OpenSim/Region/Framework/Scenes/Animation/DefaultAvatarAnimations.cs b/OpenSim/Region/Framework/Scenes/Animation/DefaultAvatarAnimations.cs index eaf644e7d8..89ebd00fa0 100644 --- a/OpenSim/Region/Framework/Scenes/Animation/DefaultAvatarAnimations.cs +++ b/OpenSim/Region/Framework/Scenes/Animation/DefaultAvatarAnimations.cs @@ -58,6 +58,7 @@ namespace OpenSim.Region.Framework.Scenes.Animation using (XmlTextReader reader = new XmlTextReader(path)) { + reader.DtdProcessing = DtdProcessing.Ignore; XmlDocument doc = new XmlDocument(); doc.Load(reader); // if (doc.DocumentElement != null) diff --git a/OpenSim/Region/Framework/Scenes/SOPVehicle.cs b/OpenSim/Region/Framework/Scenes/SOPVehicle.cs index 351eda35ed..02468e8d9e 100644 --- a/OpenSim/Region/Framework/Scenes/SOPVehicle.cs +++ b/OpenSim/Region/Framework/Scenes/SOPVehicle.cs @@ -593,6 +593,7 @@ namespace OpenSim.Region.Framework.Scenes UTF8Encoding enc = new UTF8Encoding(); MemoryStream ms = new MemoryStream(enc.GetBytes(text)); XmlTextReader xreader = new XmlTextReader(ms); + xreader.DtdProcessing = DtdProcessing.Ignore; SOPVehicle v = new SOPVehicle(); bool error; diff --git a/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs b/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs index a5100a73e2..860708383b 100644 --- a/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs +++ b/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs @@ -2543,7 +2543,7 @@ namespace OpenSim.Region.Framework.Scenes { using (XmlTextReader wrappedReader = new XmlTextReader(xmlData, XmlNodeType.Element, null)) { - using (XmlReader reader = XmlReader.Create(wrappedReader, new XmlReaderSettings() { IgnoreWhitespace = true, ConformanceLevel = ConformanceLevel.Fragment})) + using (XmlReader reader = XmlReader.Create(wrappedReader, new XmlReaderSettings() { IgnoreWhitespace = true, ConformanceLevel = ConformanceLevel.Fragment, DtdProcessing = DtdProcessing.Ignore})) { reader.Read(); bool isSingleObject = reader.Name != "CoalescedObject"; diff --git a/OpenSim/Region/Framework/Scenes/Serialization/CoalescedSceneObjectsSerializer.cs b/OpenSim/Region/Framework/Scenes/Serialization/CoalescedSceneObjectsSerializer.cs index e57e0bb173..6a4a18144a 100644 --- a/OpenSim/Region/Framework/Scenes/Serialization/CoalescedSceneObjectsSerializer.cs +++ b/OpenSim/Region/Framework/Scenes/Serialization/CoalescedSceneObjectsSerializer.cs @@ -132,6 +132,7 @@ namespace OpenSim.Region.Framework.Scenes.Serialization // Quickly check if this is a coalesced object, without fully parsing the XML using (XmlTextReader reader = new XmlTextReader(new StringReader(xml))) { + reader.DtdProcessing = DtdProcessing.Ignore; reader.MoveToContent(); // skip possible xml declaration if (reader.Name != "CoalescedObject") @@ -196,22 +197,27 @@ namespace OpenSim.Region.Framework.Scenes.Serialization return false; if (data[len - 1] == 0) --len; + + MemoryStream ms; + XmlDocument doc; // Quickly check if this is a coalesced object, without fully parsing the XML - MemoryStream ms = new MemoryStream(data, 0, len, false); - StreamReader sr = new StreamReader(ms, Encoding.UTF8); - using (XmlTextReader reader = new XmlTextReader(sr)) - { - reader.MoveToContent(); // skip possible xml declaration - - if (reader.Name != "CoalescedObject") - { - return false; - } - } - - XmlDocument doc = new XmlDocument(); using (ms = new MemoryStream(data, 0, len, false)) + { + using(StreamReader sr = new StreamReader(ms, Encoding.UTF8)) + { + using (XmlTextReader reader = new XmlTextReader(sr)) + { + reader.DtdProcessing = DtdProcessing.Ignore; + reader.MoveToContent(); // skip possible xml declaration + if (reader.Name != "CoalescedObject") + return false; + } + } + ms.Seek(0, SeekOrigin.Begin); + + doc = new XmlDocument(); doc.Load(ms); + } XmlElement e = (XmlElement)doc.SelectSingleNode("/CoalescedObject"); if (e == null) diff --git a/OpenSim/Region/Framework/Scenes/Serialization/SceneObjectSerializer.cs b/OpenSim/Region/Framework/Scenes/Serialization/SceneObjectSerializer.cs index 11f07a12e0..fa1536c7af 100644 --- a/OpenSim/Region/Framework/Scenes/Serialization/SceneObjectSerializer.cs +++ b/OpenSim/Region/Framework/Scenes/Serialization/SceneObjectSerializer.cs @@ -63,7 +63,7 @@ namespace OpenSim.Region.Framework.Scenes.Serialization string fixedData = ExternalRepresentationUtils.SanitizeXml(xmlData); using (XmlTextReader wrappedReader = new XmlTextReader(fixedData, XmlNodeType.Element, null)) { - using (XmlReader reader = XmlReader.Create(wrappedReader, new XmlReaderSettings() { IgnoreWhitespace = true, ConformanceLevel = ConformanceLevel.Fragment })) + using (XmlReader reader = XmlReader.Create(wrappedReader, new XmlReaderSettings() { IgnoreWhitespace = true, ConformanceLevel = ConformanceLevel.Fragment, DtdProcessing = DtdProcessing.Ignore })) { try { @@ -78,7 +78,7 @@ namespace OpenSim.Region.Framework.Scenes.Serialization } } } - + /* public static SceneObjectGroup FromOriginalXmlData(byte[] data) { int len = data.Length; @@ -104,6 +104,7 @@ namespace OpenSim.Region.Framework.Scenes.Serialization } } } + */ /// /// Deserialize a scene object from the original xml format @@ -295,7 +296,10 @@ namespace OpenSim.Region.Framework.Scenes.Serialization using(StringReader sr = new StringReader(parts[0].OuterXml)) { using(XmlTextReader reader = new XmlTextReader(sr)) + { + reader.DtdProcessing = DtdProcessing.Ignore; sceneObject = new SceneObjectGroup(SceneObjectPart.FromXml(reader)); + } } // Then deal with the rest @@ -306,6 +310,7 @@ namespace OpenSim.Region.Framework.Scenes.Serialization { using(XmlTextReader reader = new XmlTextReader(sr)) { + reader.DtdProcessing = DtdProcessing.Ignore; part = SceneObjectPart.FromXml(reader); } } diff --git a/OpenSim/Region/Framework/Scenes/Serialization/SceneXmlLoader.cs b/OpenSim/Region/Framework/Scenes/Serialization/SceneXmlLoader.cs index 1d33a0f1dd..00ebec9796 100644 --- a/OpenSim/Region/Framework/Scenes/Serialization/SceneXmlLoader.cs +++ b/OpenSim/Region/Framework/Scenes/Serialization/SceneXmlLoader.cs @@ -55,6 +55,7 @@ namespace OpenSim.Region.Framework.Scenes.Serialization { using(XmlTextReader reader = new XmlTextReader(fileName)) { + reader.DtdProcessing = DtdProcessing.Ignore; reader.WhitespaceHandling = WhitespaceHandling.None; doc.Load(reader); @@ -236,7 +237,9 @@ namespace OpenSim.Region.Framework.Scenes.Serialization /// public static void LoadPrimsFromXml2(Scene scene, string fileName) { - LoadPrimsFromXml2(scene, new XmlTextReader(fileName), false); + var xr = new XmlTextReader(fileName); + xr.DtdProcessing = DtdProcessing.Ignore; + LoadPrimsFromXml2(scene, xr , false); } /// @@ -247,7 +250,9 @@ namespace OpenSim.Region.Framework.Scenes.Serialization /// public static void LoadPrimsFromXml2(Scene scene, TextReader reader, bool startScripts) { - LoadPrimsFromXml2(scene, new XmlTextReader(reader), startScripts); + var xr = new XmlTextReader(reader); + xr.DtdProcessing = DtdProcessing.Ignore; + LoadPrimsFromXml2(scene, xr, startScripts); } /// @@ -258,7 +263,9 @@ namespace OpenSim.Region.Framework.Scenes.Serialization /// protected static void LoadPrimsFromXml2(Scene scene, XmlTextReader reader, bool startScripts) { + XmlDocument doc = new XmlDocument(); + reader.DtdProcessing = DtdProcessing.Ignore; reader.WhitespaceHandling = WhitespaceHandling.None; doc.Load(reader); reader.Close(); diff --git a/OpenSim/Region/Framework/Scenes/TerrainChannel.cs b/OpenSim/Region/Framework/Scenes/TerrainChannel.cs index 2d959cc00f..d1f448449d 100644 --- a/OpenSim/Region/Framework/Scenes/TerrainChannel.cs +++ b/OpenSim/Region/Framework/Scenes/TerrainChannel.cs @@ -196,7 +196,10 @@ namespace OpenSim.Region.Framework.Scenes using(StringReader sr = new StringReader(data)) { using(XmlTextReader reader = new XmlTextReader(sr)) + { + reader.DtdProcessing = DtdProcessing.Ignore; ReadXml(reader); + } } } diff --git a/OpenSim/Region/OptionalModules/Avatar/Voice/VivoxVoice/VivoxVoiceModule.cs b/OpenSim/Region/OptionalModules/Avatar/Voice/VivoxVoice/VivoxVoiceModule.cs index 497732aebc..510670c154 100644 --- a/OpenSim/Region/OptionalModules/Avatar/Voice/VivoxVoice/VivoxVoiceModule.cs +++ b/OpenSim/Region/OptionalModules/Avatar/Voice/VivoxVoice/VivoxVoiceModule.cs @@ -711,6 +711,7 @@ namespace OpenSim.Region.OptionalModules.Avatar.Voice.VivoxVoice response.RawBuffer = Util.UTF8.GetBytes(""); } + /* /// /// Callback for a client request for a private chat channel /// @@ -736,6 +737,7 @@ namespace OpenSim.Region.OptionalModules.Avatar.Voice.VivoxVoice response.RawBuffer = Util.UTF8.GetBytes("true"); response.StatusCode = (int)HttpStatusCode.OK; } + */ private string RegionGetOrCreateChannel(Scene scene, LandData land) { @@ -1183,7 +1185,10 @@ namespace OpenSim.Region.OptionalModules.Avatar.Voice.VivoxVoice using (HttpWebResponse rsp = (HttpWebResponse)req.GetResponse()) using (Stream s = rsp.GetResponseStream()) using (XmlTextReader rdr = new XmlTextReader(s)) - doc.Load(rdr); + { + rdr.DtdProcessing = DtdProcessing.Ignore; + doc.Load(rdr); + } } catch (Exception e) {