diff options
* Added some more tests to the GetAssetStreamHandlers
Diffstat (limited to 'OpenSim/Framework/Servers/BaseGetAssetStreamHandler.cs')
-rw-r--r-- | OpenSim/Framework/Servers/BaseGetAssetStreamHandler.cs | 43 |
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+)"); |