From 40e95cab02b125a6c9ec7e90cab94c94b201f021 Mon Sep 17 00:00:00 2001 From: lbsa71 Date: Wed, 13 May 2009 17:11:53 +0000 Subject: * Added some more tests to the GetAssetStreamHandlers --- .../Framework/Servers/BaseGetAssetStreamHandler.cs | 43 +++++++++++++--------- 1 file changed, 25 insertions(+), 18 deletions(-) (limited to 'OpenSim/Framework/Servers/BaseGetAssetStreamHandler.cs') diff --git a/OpenSim/Framework/Servers/BaseGetAssetStreamHandler.cs b/OpenSim/Framework/Servers/BaseGetAssetStreamHandler.cs index fc4eed7..9eacf24 100644 --- a/OpenSim/Framework/Servers/BaseGetAssetStreamHandler.cs +++ b/OpenSim/Framework/Servers/BaseGetAssetStreamHandler.cs @@ -60,7 +60,7 @@ namespace OpenSim.Framework.Servers if (p.Length > 0) { - UUID assetID = UUID.Zero; + UUID assetID; if (!UUID.TryParse(p[0], out assetID)) { @@ -70,16 +70,14 @@ namespace OpenSim.Framework.Servers } if (StatsManager.AssetStats != null) + { StatsManager.AssetStats.AddRequest(); + } AssetBase asset = GetAsset(assetID); if (asset != null) { -// if (asset.ContainsReferences) -// { -// asset.Data = ProcessOutgoingAssetData(asset.Data); -// } if (p.Length > 1 && p[1] == "data") { httpResponse.StatusCode = (int)HttpStatusCode.OK; @@ -88,25 +86,15 @@ namespace OpenSim.Framework.Servers } else { - XmlSerializer xs = new XmlSerializer(typeof(AssetBase)); - MemoryStream ms = new MemoryStream(); - XmlTextWriter xw = new XmlTextWriter(ms, Encoding.UTF8); - xw.Formatting = Formatting.Indented; - xs.Serialize(xw, asset); - xw.Flush(); - - ms.Seek(0, SeekOrigin.Begin); - //StreamReader sr = new StreamReader(ms); - - result = ms.GetBuffer(); - - Array.Resize(ref result, (int)ms.Length); + result = GetXml(asset); } } else { if (StatsManager.AssetStats != null) + { StatsManager.AssetStats.AddNotFoundRequest(); + } m_log.InfoFormat("[REST]: GET:/asset failed to find {0}", assetID); } @@ -115,6 +103,25 @@ namespace OpenSim.Framework.Servers return result; } + public static byte[] GetXml(AssetBase asset) + { + byte[] result; + XmlSerializer xs = new XmlSerializer(typeof(AssetBase)); + MemoryStream ms = new MemoryStream(); + XmlTextWriter xw = new XmlTextWriter(ms, Encoding.UTF8); + xw.Formatting = Formatting.Indented; + xs.Serialize(xw, asset); + xw.Flush(); + + ms.Seek(0, SeekOrigin.Begin); + //StreamReader sr = new StreamReader(ms); + + result = ms.GetBuffer(); + + Array.Resize(ref result, (int)ms.Length); + return result; + } + public string ProcessAssetDataString(string data) { Regex regex = new Regex("(creator_id|owner_id)\\s+(\\S+)"); -- cgit v1.1