aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Framework/Servers/BaseGetAssetStreamHandler.cs
diff options
context:
space:
mode:
Diffstat (limited to 'OpenSim/Framework/Servers/BaseGetAssetStreamHandler.cs')
-rw-r--r--OpenSim/Framework/Servers/BaseGetAssetStreamHandler.cs43
1 files changed, 25 insertions, 18 deletions
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
60 60
61 if (p.Length > 0) 61 if (p.Length > 0)
62 { 62 {
63 UUID assetID = UUID.Zero; 63 UUID assetID;
64 64
65 if (!UUID.TryParse(p[0], out assetID)) 65 if (!UUID.TryParse(p[0], out assetID))
66 { 66 {
@@ -70,16 +70,14 @@ namespace OpenSim.Framework.Servers
70 } 70 }
71 71
72 if (StatsManager.AssetStats != null) 72 if (StatsManager.AssetStats != null)
73 {
73 StatsManager.AssetStats.AddRequest(); 74 StatsManager.AssetStats.AddRequest();
75 }
74 76
75 AssetBase asset = GetAsset(assetID); 77 AssetBase asset = GetAsset(assetID);
76 78
77 if (asset != null) 79 if (asset != null)
78 { 80 {
79// if (asset.ContainsReferences)
80// {
81// asset.Data = ProcessOutgoingAssetData(asset.Data);
82// }
83 if (p.Length > 1 && p[1] == "data") 81 if (p.Length > 1 && p[1] == "data")
84 { 82 {
85 httpResponse.StatusCode = (int)HttpStatusCode.OK; 83 httpResponse.StatusCode = (int)HttpStatusCode.OK;
@@ -88,25 +86,15 @@ namespace OpenSim.Framework.Servers
88 } 86 }
89 else 87 else
90 { 88 {
91 XmlSerializer xs = new XmlSerializer(typeof(AssetBase)); 89 result = GetXml(asset);
92 MemoryStream ms = new MemoryStream();
93 XmlTextWriter xw = new XmlTextWriter(ms, Encoding.UTF8);
94 xw.Formatting = Formatting.Indented;
95 xs.Serialize(xw, asset);
96 xw.Flush();
97
98 ms.Seek(0, SeekOrigin.Begin);
99 //StreamReader sr = new StreamReader(ms);
100
101 result = ms.GetBuffer();
102
103 Array.Resize<byte>(ref result, (int)ms.Length);
104 } 90 }
105 } 91 }
106 else 92 else
107 { 93 {
108 if (StatsManager.AssetStats != null) 94 if (StatsManager.AssetStats != null)
95 {
109 StatsManager.AssetStats.AddNotFoundRequest(); 96 StatsManager.AssetStats.AddNotFoundRequest();
97 }
110 98
111 m_log.InfoFormat("[REST]: GET:/asset failed to find {0}", assetID); 99 m_log.InfoFormat("[REST]: GET:/asset failed to find {0}", assetID);
112 } 100 }
@@ -115,6 +103,25 @@ namespace OpenSim.Framework.Servers
115 return result; 103 return result;
116 } 104 }
117 105
106 public static byte[] GetXml(AssetBase asset)
107 {
108 byte[] result;
109 XmlSerializer xs = new XmlSerializer(typeof(AssetBase));
110 MemoryStream ms = new MemoryStream();
111 XmlTextWriter xw = new XmlTextWriter(ms, Encoding.UTF8);
112 xw.Formatting = Formatting.Indented;
113 xs.Serialize(xw, asset);
114 xw.Flush();
115
116 ms.Seek(0, SeekOrigin.Begin);
117 //StreamReader sr = new StreamReader(ms);
118
119 result = ms.GetBuffer();
120
121 Array.Resize<byte>(ref result, (int)ms.Length);
122 return result;
123 }
124
118 public string ProcessAssetDataString(string data) 125 public string ProcessAssetDataString(string data)
119 { 126 {
120 Regex regex = new Regex("(creator_id|owner_id)\\s+(\\S+)"); 127 Regex regex = new Regex("(creator_id|owner_id)\\s+(\\S+)");