diff options
Diffstat (limited to '')
40 files changed, 832 insertions, 1079 deletions
diff --git a/OpenSim/Framework/Communications/CAPSService.cs b/OpenSim/Framework/Communications/CAPSService.cs index b60ef02..40f4006 100644 --- a/OpenSim/Framework/Communications/CAPSService.cs +++ b/OpenSim/Framework/Communications/CAPSService.cs | |||
@@ -37,17 +37,17 @@ namespace OpenSim.Framework.Communications | |||
37 | public CAPSService(BaseHttpServer httpServer) | 37 | public CAPSService(BaseHttpServer httpServer) |
38 | { | 38 | { |
39 | m_server = httpServer; | 39 | m_server = httpServer; |
40 | this.AddCapsSeedHandler("/CapsSeed/", CapsRequest); | 40 | AddCapsSeedHandler("/CapsSeed/", CapsRequest); |
41 | } | 41 | } |
42 | 42 | ||
43 | private void AddCapsSeedHandler(string path, RestMethod restMethod) | 43 | private void AddCapsSeedHandler(string path, RestMethod restMethod) |
44 | { | 44 | { |
45 | m_server.AddStreamHandler(new RestStreamHandler("POST", path, restMethod)); | 45 | m_server.AddStreamHandler(new RestStreamHandler("POST", path, restMethod)); |
46 | } | 46 | } |
47 | 47 | ||
48 | public string CapsRequest(string request, string path, string param) | 48 | public string CapsRequest(string request, string path, string param) |
49 | { | 49 | { |
50 | System.Console.WriteLine("new caps request " + request +" from path "+ path); | 50 | System.Console.WriteLine("new caps request " + request + " from path " + path); |
51 | return ""; | 51 | return ""; |
52 | } | 52 | } |
53 | } | 53 | } |
diff --git a/OpenSim/Framework/Communications/Cache/AssetCache.cs b/OpenSim/Framework/Communications/Cache/AssetCache.cs index 39e2887..ca2fc35 100644 --- a/OpenSim/Framework/Communications/Cache/AssetCache.cs +++ b/OpenSim/Framework/Communications/Cache/AssetCache.cs | |||
@@ -29,12 +29,9 @@ | |||
29 | using System; | 29 | using System; |
30 | using System.Collections.Generic; | 30 | using System.Collections.Generic; |
31 | using System.IO; | 31 | using System.IO; |
32 | using System.Reflection; | ||
33 | using System.Threading; | 32 | using System.Threading; |
34 | using libsecondlife; | 33 | using libsecondlife; |
35 | using libsecondlife.Packets; | 34 | using libsecondlife.Packets; |
36 | using OpenSim.Framework.Interfaces; | ||
37 | using OpenSim.Framework; | ||
38 | using OpenSim.Framework.Console; | 35 | using OpenSim.Framework.Console; |
39 | 36 | ||
40 | namespace OpenSim.Framework.Communications.Cache | 37 | namespace OpenSim.Framework.Communications.Cache |
@@ -51,18 +48,22 @@ namespace OpenSim.Framework.Communications.Cache | |||
51 | public Dictionary<LLUUID, AssetInfo> Assets; | 48 | public Dictionary<LLUUID, AssetInfo> Assets; |
52 | public Dictionary<LLUUID, TextureImage> Textures; | 49 | public Dictionary<LLUUID, TextureImage> Textures; |
53 | 50 | ||
54 | public List<AssetRequest> AssetRequests = new List<AssetRequest>(); //assets ready to be sent to viewers | 51 | public List<AssetRequest> AssetRequests = new List<AssetRequest>(); //assets ready to be sent to viewers |
55 | public List<AssetRequest> TextureRequests = new List<AssetRequest>(); //textures ready to be sent | 52 | public List<AssetRequest> TextureRequests = new List<AssetRequest>(); //textures ready to be sent |
56 | 53 | ||
57 | public Dictionary<LLUUID, AssetRequest> RequestedAssets = new Dictionary<LLUUID, AssetRequest>(); //Assets requested from the asset server | 54 | public Dictionary<LLUUID, AssetRequest> RequestedAssets = new Dictionary<LLUUID, AssetRequest>(); |
58 | public Dictionary<LLUUID, AssetRequest> RequestedTextures = new Dictionary<LLUUID, AssetRequest>(); //Textures requested from the asset server | 55 | //Assets requested from the asset server |
56 | |||
57 | public Dictionary<LLUUID, AssetRequest> RequestedTextures = new Dictionary<LLUUID, AssetRequest>(); | ||
58 | //Textures requested from the asset server | ||
59 | 59 | ||
60 | public Dictionary<LLUUID, TextureSender> SendingTextures = new Dictionary<LLUUID, TextureSender>(); | 60 | public Dictionary<LLUUID, TextureSender> SendingTextures = new Dictionary<LLUUID, TextureSender>(); |
61 | private BlockingQueue<TextureSender> QueueTextures = new BlockingQueue<TextureSender>(); | 61 | private BlockingQueue<TextureSender> QueueTextures = new BlockingQueue<TextureSender>(); |
62 | 62 | ||
63 | private Dictionary<LLUUID, List<LLUUID>> AvatarRecievedTextures = new Dictionary<LLUUID, List<LLUUID>>(); | 63 | private Dictionary<LLUUID, List<LLUUID>> AvatarRecievedTextures = new Dictionary<LLUUID, List<LLUUID>>(); |
64 | 64 | ||
65 | private Dictionary<LLUUID, Dictionary<LLUUID, int>> TimesTextureSent = new Dictionary<LLUUID, Dictionary<LLUUID, int>>(); | 65 | private Dictionary<LLUUID, Dictionary<LLUUID, int>> TimesTextureSent = |
66 | new Dictionary<LLUUID, Dictionary<LLUUID, int>>(); | ||
66 | 67 | ||
67 | public Dictionary<LLUUID, AssetRequestsList> RequestLists = new Dictionary<LLUUID, AssetRequestsList>(); | 68 | public Dictionary<LLUUID, AssetRequestsList> RequestLists = new Dictionary<LLUUID, AssetRequestsList>(); |
68 | 69 | ||
@@ -76,19 +77,18 @@ namespace OpenSim.Framework.Communications.Cache | |||
76 | /// </summary> | 77 | /// </summary> |
77 | public AssetCache(IAssetServer assetServer) | 78 | public AssetCache(IAssetServer assetServer) |
78 | { | 79 | { |
79 | OpenSim.Framework.Console.MainLog.Instance.Verbose("ASSETSTORAGE","Creating Asset cache"); | 80 | MainLog.Instance.Verbose("ASSETSTORAGE", "Creating Asset cache"); |
80 | _assetServer = assetServer; | 81 | _assetServer = assetServer; |
81 | _assetServer.SetReceiver(this); | 82 | _assetServer.SetReceiver(this); |
82 | Assets = new Dictionary<LLUUID, AssetInfo>(); | 83 | Assets = new Dictionary<LLUUID, AssetInfo>(); |
83 | Textures = new Dictionary<LLUUID, TextureImage>(); | 84 | Textures = new Dictionary<LLUUID, TextureImage>(); |
84 | this._assetCacheThread = new Thread(new ThreadStart(RunAssetManager)); | 85 | _assetCacheThread = new Thread(new ThreadStart(RunAssetManager)); |
85 | this._assetCacheThread.IsBackground = true; | 86 | _assetCacheThread.IsBackground = true; |
86 | this._assetCacheThread.Start(); | 87 | _assetCacheThread.Start(); |
87 | |||
88 | this.TextureSenderThread = new Thread(new ThreadStart(this.ProcessTextureSenders)); | ||
89 | this.TextureSenderThread.IsBackground = true; | ||
90 | this.TextureSenderThread.Start(); | ||
91 | 88 | ||
89 | TextureSenderThread = new Thread(new ThreadStart(ProcessTextureSenders)); | ||
90 | TextureSenderThread.IsBackground = true; | ||
91 | TextureSenderThread.Start(); | ||
92 | } | 92 | } |
93 | 93 | ||
94 | /// <summary> | 94 | /// <summary> |
@@ -100,8 +100,8 @@ namespace OpenSim.Framework.Communications.Cache | |||
100 | { | 100 | { |
101 | try | 101 | try |
102 | { | 102 | { |
103 | this.ProcessAssetQueue(); | 103 | ProcessAssetQueue(); |
104 | this.ProcessTextureQueue(); | 104 | ProcessTextureQueue(); |
105 | Thread.Sleep(500); | 105 | Thread.Sleep(500); |
106 | } | 106 | } |
107 | catch (Exception e) | 107 | catch (Exception e) |
@@ -115,13 +115,13 @@ namespace OpenSim.Framework.Communications.Cache | |||
115 | public AssetBase GetAsset(LLUUID assetID) | 115 | public AssetBase GetAsset(LLUUID assetID) |
116 | { | 116 | { |
117 | AssetBase asset = null; | 117 | AssetBase asset = null; |
118 | if (this.Textures.ContainsKey(assetID)) | 118 | if (Textures.ContainsKey(assetID)) |
119 | { | 119 | { |
120 | asset = this.Textures[assetID]; | 120 | asset = Textures[assetID]; |
121 | } | 121 | } |
122 | else if (this.Assets.ContainsKey(assetID)) | 122 | else if (Assets.ContainsKey(assetID)) |
123 | { | 123 | { |
124 | asset = this.Assets[assetID]; | 124 | asset = Assets[assetID]; |
125 | } | 125 | } |
126 | return asset; | 126 | return asset; |
127 | } | 127 | } |
@@ -129,13 +129,13 @@ namespace OpenSim.Framework.Communications.Cache | |||
129 | public void GetAsset(LLUUID assetID, AssetRequestCallback callback) | 129 | public void GetAsset(LLUUID assetID, AssetRequestCallback callback) |
130 | { | 130 | { |
131 | AssetBase asset = null; | 131 | AssetBase asset = null; |
132 | if (this.Textures.ContainsKey(assetID)) | 132 | if (Textures.ContainsKey(assetID)) |
133 | { | 133 | { |
134 | asset = this.Textures[assetID]; | 134 | asset = Textures[assetID]; |
135 | } | 135 | } |
136 | else if (this.Assets.ContainsKey(assetID)) | 136 | else if (Assets.ContainsKey(assetID)) |
137 | { | 137 | { |
138 | asset = this.Assets[assetID]; | 138 | asset = Assets[assetID]; |
139 | } | 139 | } |
140 | 140 | ||
141 | if (asset != null) | 141 | if (asset != null) |
@@ -145,7 +145,7 @@ namespace OpenSim.Framework.Communications.Cache | |||
145 | else | 145 | else |
146 | { | 146 | { |
147 | NewAssetRequest req = new NewAssetRequest(assetID, callback); | 147 | NewAssetRequest req = new NewAssetRequest(assetID, callback); |
148 | if (this.RequestLists.ContainsKey(assetID)) | 148 | if (RequestLists.ContainsKey(assetID)) |
149 | { | 149 | { |
150 | lock (RequestLists) | 150 | lock (RequestLists) |
151 | { | 151 | { |
@@ -161,7 +161,7 @@ namespace OpenSim.Framework.Communications.Cache | |||
161 | RequestLists.Add(assetID, reqList); | 161 | RequestLists.Add(assetID, reqList); |
162 | } | 162 | } |
163 | } | 163 | } |
164 | this._assetServer.FetchAsset(assetID, false); | 164 | _assetServer.FetchAsset(assetID, false); |
165 | } | 165 | } |
166 | } | 166 | } |
167 | 167 | ||
@@ -171,22 +171,23 @@ namespace OpenSim.Framework.Communications.Cache | |||
171 | AssetBase asset = GetAsset(assetID); | 171 | AssetBase asset = GetAsset(assetID); |
172 | if (asset == null) | 172 | if (asset == null) |
173 | { | 173 | { |
174 | this._assetServer.FetchAsset(assetID, isTexture); | 174 | _assetServer.FetchAsset(assetID, isTexture); |
175 | } | 175 | } |
176 | return asset; | 176 | return asset; |
177 | } | 177 | } |
178 | 178 | ||
179 | public void AddAsset(AssetBase asset) | 179 | public void AddAsset(AssetBase asset) |
180 | { | 180 | { |
181 | //System.Console.WriteLine("adding asset " + asset.FullID.ToStringHyphenated()); | 181 | //System.Console.WriteLine("adding asset " + asset.FullID.ToStringHyphenated()); |
182 | if (asset.Type == 0) | 182 | if (asset.Type == 0) |
183 | { | 183 | { |
184 | //Console.WriteLine("which is a texture"); | 184 | //Console.WriteLine("which is a texture"); |
185 | if (!Textures.ContainsKey(asset.FullID)) | 185 | if (!Textures.ContainsKey(asset.FullID)) |
186 | { //texture | 186 | { |
187 | //texture | ||
187 | TextureImage textur = new TextureImage(asset); | 188 | TextureImage textur = new TextureImage(asset); |
188 | Textures.Add(textur.FullID, textur); | 189 | Textures.Add(textur.FullID, textur); |
189 | if(!asset.Temporary) | 190 | if (!asset.Temporary) |
190 | _assetServer.StoreAndCommitAsset(asset); | 191 | _assetServer.StoreAndCommitAsset(asset); |
191 | } | 192 | } |
192 | else | 193 | else |
@@ -219,49 +220,47 @@ namespace OpenSim.Framework.Communications.Cache | |||
219 | /// </summary> | 220 | /// </summary> |
220 | private void ProcessTextureQueue() | 221 | private void ProcessTextureQueue() |
221 | { | 222 | { |
222 | if (this.TextureRequests.Count == 0) | 223 | if (TextureRequests.Count == 0) |
223 | { | 224 | { |
224 | //no requests waiting | 225 | //no requests waiting |
225 | return; | 226 | return; |
226 | } | 227 | } |
227 | int num; | 228 | int num; |
228 | num = this.TextureRequests.Count; | 229 | num = TextureRequests.Count; |
229 | 230 | ||
230 | AssetRequest req; | 231 | AssetRequest req; |
231 | for (int i = 0; i < num; i++) | 232 | for (int i = 0; i < num; i++) |
232 | { | 233 | { |
233 | req = (AssetRequest)this.TextureRequests[i]; | 234 | req = (AssetRequest) TextureRequests[i]; |
234 | if (!this.SendingTextures.ContainsKey(req.ImageInfo.FullID)) | 235 | if (!SendingTextures.ContainsKey(req.ImageInfo.FullID)) |
235 | { | 236 | { |
236 | //Console.WriteLine("new texture to send"); | 237 | //Console.WriteLine("new texture to send"); |
237 | TextureSender sender = new TextureSender(req); | 238 | TextureSender sender = new TextureSender(req); |
238 | //sender.OnComplete += this.TextureSent; | 239 | //sender.OnComplete += this.TextureSent; |
239 | this.SendingTextures.Add(req.ImageInfo.FullID, sender); | 240 | SendingTextures.Add(req.ImageInfo.FullID, sender); |
240 | this.QueueTextures.Enqueue(sender); | 241 | QueueTextures.Enqueue(sender); |
241 | } | 242 | } |
242 | |||
243 | } | 243 | } |
244 | 244 | ||
245 | this.TextureRequests.Clear(); | 245 | TextureRequests.Clear(); |
246 | } | 246 | } |
247 | 247 | ||
248 | public void ProcessTextureSenders() | 248 | public void ProcessTextureSenders() |
249 | { | 249 | { |
250 | while (true) | 250 | while (true) |
251 | { | 251 | { |
252 | TextureSender sender = this.QueueTextures.Dequeue(); | 252 | TextureSender sender = QueueTextures.Dequeue(); |
253 | 253 | ||
254 | bool finished = sender.SendTexture(); | 254 | bool finished = sender.SendTexture(); |
255 | if (finished) | 255 | if (finished) |
256 | { | 256 | { |
257 | this.TextureSent(sender); | 257 | TextureSent(sender); |
258 | } | 258 | } |
259 | else | 259 | else |
260 | { | 260 | { |
261 | // Console.WriteLine("readding texture"); | 261 | // Console.WriteLine("readding texture"); |
262 | this.QueueTextures.Enqueue(sender); | 262 | QueueTextures.Enqueue(sender); |
263 | } | 263 | } |
264 | |||
265 | } | 264 | } |
266 | } | 265 | } |
267 | 266 | ||
@@ -271,16 +270,16 @@ namespace OpenSim.Framework.Communications.Cache | |||
271 | /// <param name="sender"></param> | 270 | /// <param name="sender"></param> |
272 | public void TextureSent(TextureSender sender) | 271 | public void TextureSent(TextureSender sender) |
273 | { | 272 | { |
274 | if (this.SendingTextures.ContainsKey(sender.request.ImageInfo.FullID)) | 273 | if (SendingTextures.ContainsKey(sender.request.ImageInfo.FullID)) |
275 | { | 274 | { |
276 | this.SendingTextures.Remove(sender.request.ImageInfo.FullID); | 275 | SendingTextures.Remove(sender.request.ImageInfo.FullID); |
277 | // this.AvatarRecievedTextures[sender.request.RequestUser.AgentId].Add(sender.request.ImageInfo.FullID); | 276 | // this.AvatarRecievedTextures[sender.request.RequestUser.AgentId].Add(sender.request.ImageInfo.FullID); |
278 | } | 277 | } |
279 | } | 278 | } |
280 | 279 | ||
281 | public void AssetReceived(AssetBase asset, bool IsTexture) | 280 | public void AssetReceived(AssetBase asset, bool IsTexture) |
282 | { | 281 | { |
283 | if (asset.FullID != LLUUID.Zero) // if it is set to zero then the asset wasn't found by the server | 282 | if (asset.FullID != LLUUID.Zero) // if it is set to zero then the asset wasn't found by the server |
284 | { | 283 | { |
285 | //check if it is a texture or not | 284 | //check if it is a texture or not |
286 | //then add to the correct cache list | 285 | //then add to the correct cache list |
@@ -292,48 +291,48 @@ namespace OpenSim.Framework.Communications.Cache | |||
292 | //Console.WriteLine("asset recieved from asset server"); | 291 | //Console.WriteLine("asset recieved from asset server"); |
293 | 292 | ||
294 | TextureImage image = new TextureImage(asset); | 293 | TextureImage image = new TextureImage(asset); |
295 | if (!this.Textures.ContainsKey(image.FullID)) | 294 | if (!Textures.ContainsKey(image.FullID)) |
296 | { | 295 | { |
297 | this.Textures.Add(image.FullID, image); | 296 | Textures.Add(image.FullID, image); |
298 | if (this.RequestedTextures.ContainsKey(image.FullID)) | 297 | if (RequestedTextures.ContainsKey(image.FullID)) |
299 | { | 298 | { |
300 | AssetRequest req = this.RequestedTextures[image.FullID]; | 299 | AssetRequest req = RequestedTextures[image.FullID]; |
301 | req.ImageInfo = image; | 300 | req.ImageInfo = image; |
302 | if (image.Data.LongLength > 600) | 301 | if (image.Data.LongLength > 600) |
303 | { | 302 | { |
304 | //over 600 bytes so split up file | 303 | //over 600 bytes so split up file |
305 | req.NumPackets = 1 + (int)(image.Data.Length - 600) / 1000; | 304 | req.NumPackets = 1 + (int) (image.Data.Length - 600)/1000; |
306 | } | 305 | } |
307 | else | 306 | else |
308 | { | 307 | { |
309 | req.NumPackets = 1; | 308 | req.NumPackets = 1; |
310 | } | 309 | } |
311 | this.RequestedTextures.Remove(image.FullID); | 310 | RequestedTextures.Remove(image.FullID); |
312 | this.TextureRequests.Add(req); | 311 | TextureRequests.Add(req); |
313 | } | 312 | } |
314 | } | 313 | } |
315 | } | 314 | } |
316 | else | 315 | else |
317 | { | 316 | { |
318 | AssetInfo assetInf = new AssetInfo(asset); | 317 | AssetInfo assetInf = new AssetInfo(asset); |
319 | if (!this.Assets.ContainsKey(assetInf.FullID)) | 318 | if (!Assets.ContainsKey(assetInf.FullID)) |
320 | { | 319 | { |
321 | this.Assets.Add(assetInf.FullID, assetInf); | 320 | Assets.Add(assetInf.FullID, assetInf); |
322 | if (this.RequestedAssets.ContainsKey(assetInf.FullID)) | 321 | if (RequestedAssets.ContainsKey(assetInf.FullID)) |
323 | { | 322 | { |
324 | AssetRequest req = this.RequestedAssets[assetInf.FullID]; | 323 | AssetRequest req = RequestedAssets[assetInf.FullID]; |
325 | req.AssetInf = assetInf; | 324 | req.AssetInf = assetInf; |
326 | if (assetInf.Data.LongLength > 600) | 325 | if (assetInf.Data.LongLength > 600) |
327 | { | 326 | { |
328 | //over 600 bytes so split up file | 327 | //over 600 bytes so split up file |
329 | req.NumPackets = 1 + (int)(assetInf.Data.Length - 600 + 999) / 1000; | 328 | req.NumPackets = 1 + (int) (assetInf.Data.Length - 600 + 999)/1000; |
330 | } | 329 | } |
331 | else | 330 | else |
332 | { | 331 | { |
333 | req.NumPackets = 1; | 332 | req.NumPackets = 1; |
334 | } | 333 | } |
335 | this.RequestedAssets.Remove(assetInf.FullID); | 334 | RequestedAssets.Remove(assetInf.FullID); |
336 | this.AssetRequests.Add(req); | 335 | AssetRequests.Add(req); |
337 | } | 336 | } |
338 | } | 337 | } |
339 | } | 338 | } |
@@ -345,7 +344,7 @@ namespace OpenSim.Framework.Communications.Cache | |||
345 | { | 344 | { |
346 | req.Callback(asset.FullID, asset); | 345 | req.Callback(asset.FullID, asset); |
347 | } | 346 | } |
348 | 347 | ||
349 | lock (RequestLists) | 348 | lock (RequestLists) |
350 | { | 349 | { |
351 | RequestLists.Remove(asset.FullID); | 350 | RequestLists.Remove(asset.FullID); |
@@ -373,6 +372,7 @@ namespace OpenSim.Framework.Communications.Cache | |||
373 | } | 372 | } |
374 | 373 | ||
375 | #region Assets | 374 | #region Assets |
375 | |||
376 | /// <summary> | 376 | /// <summary> |
377 | /// | 377 | /// |
378 | /// </summary> | 378 | /// </summary> |
@@ -396,11 +396,11 @@ namespace OpenSim.Framework.Communications.Cache | |||
396 | } | 396 | } |
397 | //check to see if asset is in local cache, if not we need to request it from asset server. | 397 | //check to see if asset is in local cache, if not we need to request it from asset server. |
398 | //Console.WriteLine("asset request " + requestID); | 398 | //Console.WriteLine("asset request " + requestID); |
399 | if (!this.Assets.ContainsKey(requestID)) | 399 | if (!Assets.ContainsKey(requestID)) |
400 | { | 400 | { |
401 | //not found asset | 401 | //not found asset |
402 | // so request from asset server | 402 | // so request from asset server |
403 | if (!this.RequestedAssets.ContainsKey(requestID)) | 403 | if (!RequestedAssets.ContainsKey(requestID)) |
404 | { | 404 | { |
405 | AssetRequest request = new AssetRequest(); | 405 | AssetRequest request = new AssetRequest(); |
406 | request.RequestUser = userInfo; | 406 | request.RequestUser = userInfo; |
@@ -408,13 +408,13 @@ namespace OpenSim.Framework.Communications.Cache | |||
408 | request.TransferRequestID = transferRequest.TransferInfo.TransferID; | 408 | request.TransferRequestID = transferRequest.TransferInfo.TransferID; |
409 | request.AssetRequestSource = source; | 409 | request.AssetRequestSource = source; |
410 | request.Params = transferRequest.TransferInfo.Params; | 410 | request.Params = transferRequest.TransferInfo.Params; |
411 | this.RequestedAssets.Add(requestID, request); | 411 | RequestedAssets.Add(requestID, request); |
412 | this._assetServer.FetchAsset(requestID, false); | 412 | _assetServer.FetchAsset(requestID, false); |
413 | } | 413 | } |
414 | return; | 414 | return; |
415 | } | 415 | } |
416 | //it is in our cache | 416 | //it is in our cache |
417 | AssetInfo asset = this.Assets[requestID]; | 417 | AssetInfo asset = Assets[requestID]; |
418 | 418 | ||
419 | //work out how many packets it should be sent in | 419 | //work out how many packets it should be sent in |
420 | // and add to the AssetRequests list | 420 | // and add to the AssetRequests list |
@@ -429,14 +429,14 @@ namespace OpenSim.Framework.Communications.Cache | |||
429 | if (asset.Data.LongLength > 600) | 429 | if (asset.Data.LongLength > 600) |
430 | { | 430 | { |
431 | //over 600 bytes so split up file | 431 | //over 600 bytes so split up file |
432 | req.NumPackets = 1 + (int)(asset.Data.Length - 600 + 999) / 1000; | 432 | req.NumPackets = 1 + (int) (asset.Data.Length - 600 + 999)/1000; |
433 | } | 433 | } |
434 | else | 434 | else |
435 | { | 435 | { |
436 | req.NumPackets = 1; | 436 | req.NumPackets = 1; |
437 | } | 437 | } |
438 | 438 | ||
439 | this.AssetRequests.Add(req); | 439 | AssetRequests.Add(req); |
440 | } | 440 | } |
441 | 441 | ||
442 | /// <summary> | 442 | /// <summary> |
@@ -444,17 +444,17 @@ namespace OpenSim.Framework.Communications.Cache | |||
444 | /// </summary> | 444 | /// </summary> |
445 | private void ProcessAssetQueue() | 445 | private void ProcessAssetQueue() |
446 | { | 446 | { |
447 | if (this.AssetRequests.Count == 0) | 447 | if (AssetRequests.Count == 0) |
448 | { | 448 | { |
449 | //no requests waiting | 449 | //no requests waiting |
450 | return; | 450 | return; |
451 | } | 451 | } |
452 | int num; | 452 | int num; |
453 | 453 | ||
454 | if (this.AssetRequests.Count < 5) | 454 | if (AssetRequests.Count < 5) |
455 | { | 455 | { |
456 | //lower than 5 so do all of them | 456 | //lower than 5 so do all of them |
457 | num = this.AssetRequests.Count; | 457 | num = AssetRequests.Count; |
458 | } | 458 | } |
459 | else | 459 | else |
460 | { | 460 | { |
@@ -463,7 +463,7 @@ namespace OpenSim.Framework.Communications.Cache | |||
463 | AssetRequest req; | 463 | AssetRequest req; |
464 | for (int i = 0; i < num; i++) | 464 | for (int i = 0; i < num; i++) |
465 | { | 465 | { |
466 | req = (AssetRequest)this.AssetRequests[i]; | 466 | req = (AssetRequest) AssetRequests[i]; |
467 | //Console.WriteLine("sending asset " + req.RequestAssetID); | 467 | //Console.WriteLine("sending asset " + req.RequestAssetID); |
468 | TransferInfoPacket Transfer = new TransferInfoPacket(); | 468 | TransferInfoPacket Transfer = new TransferInfoPacket(); |
469 | Transfer.TransferInfo.ChannelType = 2; | 469 | Transfer.TransferInfo.ChannelType = 2; |
@@ -473,7 +473,7 @@ namespace OpenSim.Framework.Communications.Cache | |||
473 | { | 473 | { |
474 | Transfer.TransferInfo.Params = new byte[20]; | 474 | Transfer.TransferInfo.Params = new byte[20]; |
475 | Array.Copy(req.RequestAssetID.GetBytes(), 0, Transfer.TransferInfo.Params, 0, 16); | 475 | Array.Copy(req.RequestAssetID.GetBytes(), 0, Transfer.TransferInfo.Params, 0, 16); |
476 | int assType = (int)req.AssetInf.Type; | 476 | int assType = (int) req.AssetInf.Type; |
477 | Array.Copy(Helpers.IntToBytes(assType), 0, Transfer.TransferInfo.Params, 16, 4); | 477 | Array.Copy(Helpers.IntToBytes(assType), 0, Transfer.TransferInfo.Params, 16, 4); |
478 | } | 478 | } |
479 | else if (req.AssetRequestSource == 3) | 479 | else if (req.AssetRequestSource == 3) |
@@ -483,7 +483,7 @@ namespace OpenSim.Framework.Communications.Cache | |||
483 | //Array.Copy(req.RequestUser.AgentId.GetBytes(), 0, Transfer.TransferInfo.Params, 0, 16); | 483 | //Array.Copy(req.RequestUser.AgentId.GetBytes(), 0, Transfer.TransferInfo.Params, 0, 16); |
484 | //Array.Copy(req.RequestUser.SessionId.GetBytes(), 0, Transfer.TransferInfo.Params, 16, 16); | 484 | //Array.Copy(req.RequestUser.SessionId.GetBytes(), 0, Transfer.TransferInfo.Params, 16, 16); |
485 | } | 485 | } |
486 | Transfer.TransferInfo.Size = (int)req.AssetInf.Data.Length; | 486 | Transfer.TransferInfo.Size = (int) req.AssetInf.Data.Length; |
487 | Transfer.TransferInfo.TransferID = req.TransferRequestID; | 487 | Transfer.TransferInfo.TransferID = req.TransferRequestID; |
488 | req.RequestUser.OutPacket(Transfer); | 488 | req.RequestUser.OutPacket(Transfer); |
489 | 489 | ||
@@ -533,19 +533,19 @@ namespace OpenSim.Framework.Communications.Cache | |||
533 | req.RequestUser.OutPacket(TransferPacket); | 533 | req.RequestUser.OutPacket(TransferPacket); |
534 | } | 534 | } |
535 | } | 535 | } |
536 | |||
537 | } | 536 | } |
538 | 537 | ||
539 | //remove requests that have been completed | 538 | //remove requests that have been completed |
540 | for (int i = 0; i < num; i++) | 539 | for (int i = 0; i < num; i++) |
541 | { | 540 | { |
542 | this.AssetRequests.RemoveAt(0); | 541 | AssetRequests.RemoveAt(0); |
543 | } | 542 | } |
544 | |||
545 | } | 543 | } |
544 | |||
546 | #endregion | 545 | #endregion |
547 | 546 | ||
548 | #region Textures | 547 | #region Textures |
548 | |||
549 | /// <summary> | 549 | /// <summary> |
550 | /// | 550 | /// |
551 | /// </summary> | 551 | /// </summary> |
@@ -553,21 +553,21 @@ namespace OpenSim.Framework.Communications.Cache | |||
553 | /// <param name="imageID"></param> | 553 | /// <param name="imageID"></param> |
554 | public void AddTextureRequest(IClientAPI userInfo, LLUUID imageID, uint packetNumber, int discard) | 554 | public void AddTextureRequest(IClientAPI userInfo, LLUUID imageID, uint packetNumber, int discard) |
555 | { | 555 | { |
556 | // System.Console.WriteLine("texture request for " + imageID.ToStringHyphenated() + " packetnumber= " + packetNumber); | 556 | // System.Console.WriteLine("texture request for " + imageID.ToStringHyphenated() + " packetnumber= " + packetNumber); |
557 | //check to see if texture is in local cache, if not request from asset server | 557 | //check to see if texture is in local cache, if not request from asset server |
558 | if (!this.AvatarRecievedTextures.ContainsKey(userInfo.AgentId)) | 558 | if (!AvatarRecievedTextures.ContainsKey(userInfo.AgentId)) |
559 | { | 559 | { |
560 | this.AvatarRecievedTextures.Add(userInfo.AgentId, new List<LLUUID>()); | 560 | AvatarRecievedTextures.Add(userInfo.AgentId, new List<LLUUID>()); |
561 | } | 561 | } |
562 | /* if(this.AvatarRecievedTextures[userInfo.AgentId].Contains(imageID)) | 562 | /* if(this.AvatarRecievedTextures[userInfo.AgentId].Contains(imageID)) |
563 | { | 563 | { |
564 | //Console.WriteLine(userInfo.AgentId +" is requesting a image( "+ imageID+" that has already been sent to them"); | 564 | //Console.WriteLine(userInfo.AgentId +" is requesting a image( "+ imageID+" that has already been sent to them"); |
565 | return; | 565 | return; |
566 | }*/ | 566 | }*/ |
567 | 567 | ||
568 | if (!this.Textures.ContainsKey(imageID)) | 568 | if (!Textures.ContainsKey(imageID)) |
569 | { | 569 | { |
570 | if (!this.RequestedTextures.ContainsKey(imageID)) | 570 | if (!RequestedTextures.ContainsKey(imageID)) |
571 | { | 571 | { |
572 | //not is cache so request from asset server | 572 | //not is cache so request from asset server |
573 | AssetRequest request = new AssetRequest(); | 573 | AssetRequest request = new AssetRequest(); |
@@ -575,14 +575,14 @@ namespace OpenSim.Framework.Communications.Cache | |||
575 | request.RequestAssetID = imageID; | 575 | request.RequestAssetID = imageID; |
576 | request.IsTextureRequest = true; | 576 | request.IsTextureRequest = true; |
577 | request.DiscardLevel = discard; | 577 | request.DiscardLevel = discard; |
578 | this.RequestedTextures.Add(imageID, request); | 578 | RequestedTextures.Add(imageID, request); |
579 | this._assetServer.FetchAsset(imageID, true); | 579 | _assetServer.FetchAsset(imageID, true); |
580 | } | 580 | } |
581 | return; | 581 | return; |
582 | } | 582 | } |
583 | 583 | ||
584 | // System.Console.WriteLine("texture already in cache"); | 584 | // System.Console.WriteLine("texture already in cache"); |
585 | TextureImage imag = this.Textures[imageID]; | 585 | TextureImage imag = Textures[imageID]; |
586 | AssetRequest req = new AssetRequest(); | 586 | AssetRequest req = new AssetRequest(); |
587 | req.RequestUser = userInfo; | 587 | req.RequestUser = userInfo; |
588 | req.RequestAssetID = imageID; | 588 | req.RequestAssetID = imageID; |
@@ -594,7 +594,7 @@ namespace OpenSim.Framework.Communications.Cache | |||
594 | { | 594 | { |
595 | //Console.WriteLine("{0}", imag.Data.LongLength); | 595 | //Console.WriteLine("{0}", imag.Data.LongLength); |
596 | //over 600 bytes so split up file | 596 | //over 600 bytes so split up file |
597 | req.NumPackets = 2 + (int)(imag.Data.Length - 601) / 1000; | 597 | req.NumPackets = 2 + (int) (imag.Data.Length - 601)/1000; |
598 | //Console.WriteLine("texture is " + imag.Data.Length + " which we will send in " +req.NumPackets +" packets"); | 598 | //Console.WriteLine("texture is " + imag.Data.Length + " which we will send in " +req.NumPackets +" packets"); |
599 | } | 599 | } |
600 | else | 600 | else |
@@ -603,12 +603,11 @@ namespace OpenSim.Framework.Communications.Cache | |||
603 | } | 603 | } |
604 | if (packetNumber != 0) | 604 | if (packetNumber != 0) |
605 | { | 605 | { |
606 | req.PacketCounter = (int)packetNumber; | 606 | req.PacketCounter = (int) packetNumber; |
607 | } | 607 | } |
608 | this.TextureRequests.Add(req); | 608 | TextureRequests.Add(req); |
609 | } | 609 | } |
610 | 610 | ||
611 | |||
612 | #endregion | 611 | #endregion |
613 | 612 | ||
614 | public class AssetRequest | 613 | public class AssetRequest |
@@ -630,7 +629,6 @@ namespace OpenSim.Framework.Communications.Cache | |||
630 | 629 | ||
631 | public AssetRequest() | 630 | public AssetRequest() |
632 | { | 631 | { |
633 | |||
634 | } | 632 | } |
635 | } | 633 | } |
636 | 634 | ||
@@ -638,7 +636,6 @@ namespace OpenSim.Framework.Communications.Cache | |||
638 | { | 636 | { |
639 | public AssetInfo() | 637 | public AssetInfo() |
640 | { | 638 | { |
641 | |||
642 | } | 639 | } |
643 | 640 | ||
644 | public AssetInfo(AssetBase aBase) | 641 | public AssetInfo(AssetBase aBase) |
@@ -656,7 +653,6 @@ namespace OpenSim.Framework.Communications.Cache | |||
656 | { | 653 | { |
657 | public TextureImage() | 654 | public TextureImage() |
658 | { | 655 | { |
659 | |||
660 | } | 656 | } |
661 | 657 | ||
662 | public TextureImage(AssetBase aBase) | 658 | public TextureImage(AssetBase aBase) |
@@ -678,7 +674,6 @@ namespace OpenSim.Framework.Communications.Cache | |||
678 | public TextureSender(AssetRequest req) | 674 | public TextureSender(AssetRequest req) |
679 | { | 675 | { |
680 | request = req; | 676 | request = req; |
681 | |||
682 | } | 677 | } |
683 | 678 | ||
684 | public bool SendTexture() | 679 | public bool SendTexture() |
@@ -686,7 +681,8 @@ namespace OpenSim.Framework.Communications.Cache | |||
686 | SendPacket(); | 681 | SendPacket(); |
687 | counter++; | 682 | counter++; |
688 | 683 | ||
689 | if ((request.PacketCounter >= request.NumPackets) | counter > 100 | (request.NumPackets == 1) | (request.DiscardLevel == -1)) | 684 | if ((request.PacketCounter >= request.NumPackets) | counter > 100 | (request.NumPackets == 1) | |
685 | (request.DiscardLevel == -1)) | ||
690 | { | 686 | { |
691 | return true; | 687 | return true; |
692 | } | 688 | } |
@@ -707,7 +703,7 @@ namespace OpenSim.Framework.Communications.Cache | |||
707 | im.Header.Reliable = false; | 703 | im.Header.Reliable = false; |
708 | im.ImageID.Packets = 1; | 704 | im.ImageID.Packets = 1; |
709 | im.ImageID.ID = req.ImageInfo.FullID; | 705 | im.ImageID.ID = req.ImageInfo.FullID; |
710 | im.ImageID.Size = (uint)req.ImageInfo.Data.Length; | 706 | im.ImageID.Size = (uint) req.ImageInfo.Data.Length; |
711 | im.ImageData.Data = req.ImageInfo.Data; | 707 | im.ImageData.Data = req.ImageInfo.Data; |
712 | im.ImageID.Codec = 2; | 708 | im.ImageID.Codec = 2; |
713 | req.RequestUser.OutPacket(im); | 709 | req.RequestUser.OutPacket(im); |
@@ -721,9 +717,9 @@ namespace OpenSim.Framework.Communications.Cache | |||
721 | //more than one packet so split file up | 717 | //more than one packet so split file up |
722 | ImageDataPacket im = new ImageDataPacket(); | 718 | ImageDataPacket im = new ImageDataPacket(); |
723 | im.Header.Reliable = false; | 719 | im.Header.Reliable = false; |
724 | im.ImageID.Packets = (ushort)(req.NumPackets); | 720 | im.ImageID.Packets = (ushort) (req.NumPackets); |
725 | im.ImageID.ID = req.ImageInfo.FullID; | 721 | im.ImageID.ID = req.ImageInfo.FullID; |
726 | im.ImageID.Size = (uint)req.ImageInfo.Data.Length; | 722 | im.ImageID.Size = (uint) req.ImageInfo.Data.Length; |
727 | im.ImageData.Data = new byte[600]; | 723 | im.ImageData.Data = new byte[600]; |
728 | Array.Copy(req.ImageInfo.Data, 0, im.ImageData.Data, 0, 600); | 724 | Array.Copy(req.ImageInfo.Data, 0, im.ImageData.Data, 0, 600); |
729 | im.ImageID.Codec = 2; | 725 | im.ImageID.Codec = 2; |
@@ -742,19 +738,18 @@ namespace OpenSim.Framework.Communications.Cache | |||
742 | //more than one packet so split file up | 738 | //more than one packet so split file up |
743 | ImagePacketPacket im = new ImagePacketPacket(); | 739 | ImagePacketPacket im = new ImagePacketPacket(); |
744 | im.Header.Reliable = false; | 740 | im.Header.Reliable = false; |
745 | im.ImageID.Packet = (ushort)(req.PacketCounter); | 741 | im.ImageID.Packet = (ushort) (req.PacketCounter); |
746 | im.ImageID.ID = req.ImageInfo.FullID; | 742 | im.ImageID.ID = req.ImageInfo.FullID; |
747 | int size = req.ImageInfo.Data.Length - 600 - (1000 * (req.PacketCounter - 1)); | 743 | int size = req.ImageInfo.Data.Length - 600 - (1000*(req.PacketCounter - 1)); |
748 | if (size > 1000) size = 1000; | 744 | if (size > 1000) size = 1000; |
749 | //Console.WriteLine("length= {0} counter= {1} size= {2}",req.ImageInfo.Data.Length, req.PacketCounter, size); | 745 | //Console.WriteLine("length= {0} counter= {1} size= {2}",req.ImageInfo.Data.Length, req.PacketCounter, size); |
750 | im.ImageData.Data = new byte[size]; | 746 | im.ImageData.Data = new byte[size]; |
751 | Array.Copy(req.ImageInfo.Data, 600 + (1000 * (req.PacketCounter - 1)), im.ImageData.Data, 0, size); | 747 | Array.Copy(req.ImageInfo.Data, 600 + (1000*(req.PacketCounter - 1)), im.ImageData.Data, 0, size); |
752 | req.RequestUser.OutPacket(im); | 748 | req.RequestUser.OutPacket(im); |
753 | req.PacketCounter++; | 749 | req.PacketCounter++; |
754 | //req.ImageInfo.last_used = time; | 750 | //req.ImageInfo.last_used = time; |
755 | //System.Console.WriteLine("sent a packet of texture: "+req.ImageInfo.FullID); | 751 | //System.Console.WriteLine("sent a packet of texture: "+req.ImageInfo.FullID); |
756 | } | 752 | } |
757 | |||
758 | } | 753 | } |
759 | 754 | ||
760 | private void SaveAssetToFile(string filename, byte[] data) | 755 | private void SaveAssetToFile(string filename, byte[] data) |
@@ -789,7 +784,5 @@ namespace OpenSim.Framework.Communications.Cache | |||
789 | AssetID = assetID; | 784 | AssetID = assetID; |
790 | Callback = callback; | 785 | Callback = callback; |
791 | } | 786 | } |
792 | |||
793 | |||
794 | } | 787 | } |
795 | } | 788 | } \ No newline at end of file |
diff --git a/OpenSim/Framework/Communications/Cache/AssetServer.cs b/OpenSim/Framework/Communications/Cache/AssetServer.cs index c927571..fa421c7 100644 --- a/OpenSim/Framework/Communications/Cache/AssetServer.cs +++ b/OpenSim/Framework/Communications/Cache/AssetServer.cs | |||
@@ -25,18 +25,11 @@ | |||
25 | * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | 25 | * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
26 | * | 26 | * |
27 | */ | 27 | */ |
28 | using System; | ||
29 | using System.Collections.Generic; | ||
30 | using System.IO; | 28 | using System.IO; |
31 | using System.Threading; | ||
32 | using Db4objects.Db4o; | 29 | using Db4objects.Db4o; |
33 | using Db4objects.Db4o.Query; | 30 | using Db4objects.Db4o.Query; |
34 | using libsecondlife; | 31 | using libsecondlife; |
35 | using Nini.Config; | ||
36 | using OpenSim.Framework.Communications.Cache; | ||
37 | using OpenSim.Framework.Console; | 32 | using OpenSim.Framework.Console; |
38 | using OpenSim.Framework.Interfaces; | ||
39 | using OpenSim.Framework; | ||
40 | 33 | ||
41 | namespace OpenSim.Framework.Communications.Cache | 34 | namespace OpenSim.Framework.Communications.Cache |
42 | { | 35 | { |
@@ -50,7 +43,7 @@ namespace OpenSim.Framework.Communications.Cache | |||
50 | yapfile = File.Exists(Path.Combine(Util.dataDir(), "regionassets.yap")); | 43 | yapfile = File.Exists(Path.Combine(Util.dataDir(), "regionassets.yap")); |
51 | 44 | ||
52 | db = Db4oFactory.OpenFile(Path.Combine(Util.dataDir(), "regionassets.yap")); | 45 | db = Db4oFactory.OpenFile(Path.Combine(Util.dataDir(), "regionassets.yap")); |
53 | MainLog.Instance.Verbose("ASSETS","Db4 Asset database creation"); | 46 | MainLog.Instance.Verbose("ASSETS", "Db4 Asset database creation"); |
54 | 47 | ||
55 | if (!yapfile) | 48 | if (!yapfile) |
56 | { | 49 | { |
@@ -68,29 +61,29 @@ namespace OpenSim.Framework.Communications.Cache | |||
68 | db.Commit(); | 61 | db.Commit(); |
69 | } | 62 | } |
70 | 63 | ||
71 | override public void Close() | 64 | public override void Close() |
72 | { | 65 | { |
73 | base.Close(); | 66 | base.Close(); |
74 | 67 | ||
75 | if (db != null) | 68 | if (db != null) |
76 | { | 69 | { |
77 | MainLog.Instance.Verbose("ASSETSERVER","Closing local asset server database"); | 70 | MainLog.Instance.Verbose("ASSETSERVER", "Closing local asset server database"); |
78 | db.Close(); | 71 | db.Close(); |
79 | } | 72 | } |
80 | } | 73 | } |
81 | 74 | ||
82 | override protected void RunRequests() | 75 | protected override void RunRequests() |
83 | { | 76 | { |
84 | while (true) | 77 | while (true) |
85 | { | 78 | { |
86 | byte[] idata = null; | 79 | byte[] idata = null; |
87 | bool found = false; | 80 | bool found = false; |
88 | AssetStorage foundAsset = null; | 81 | AssetStorage foundAsset = null; |
89 | ARequest req = this._assetRequests.Dequeue(); | 82 | ARequest req = _assetRequests.Dequeue(); |
90 | IObjectSet result = db.Query(new AssetUUIDQuery(req.AssetID)); | 83 | IObjectSet result = db.Query(new AssetUUIDQuery(req.AssetID)); |
91 | if (result.Count > 0) | 84 | if (result.Count > 0) |
92 | { | 85 | { |
93 | foundAsset = (AssetStorage)result.Next(); | 86 | foundAsset = (AssetStorage) result.Next(); |
94 | found = true; | 87 | found = true; |
95 | } | 88 | } |
96 | 89 | ||
@@ -110,12 +103,10 @@ namespace OpenSim.Framework.Communications.Cache | |||
110 | //asset.FullID = ; | 103 | //asset.FullID = ; |
111 | _receiver.AssetNotFound(req.AssetID); | 104 | _receiver.AssetNotFound(req.AssetID); |
112 | } | 105 | } |
113 | |||
114 | } | 106 | } |
115 | |||
116 | } | 107 | } |
117 | 108 | ||
118 | override protected void StoreAsset(AssetBase asset) | 109 | protected override void StoreAsset(AssetBase asset) |
119 | { | 110 | { |
120 | AssetStorage store = new AssetStorage(); | 111 | AssetStorage store = new AssetStorage(); |
121 | store.Data = asset.Data; | 112 | store.Data = asset.Data; |
@@ -148,6 +139,7 @@ namespace OpenSim.Framework.Communications.Cache | |||
148 | { | 139 | { |
149 | _findID = find; | 140 | _findID = find; |
150 | } | 141 | } |
142 | |||
151 | public bool Match(AssetStorage asset) | 143 | public bool Match(AssetStorage asset) |
152 | { | 144 | { |
153 | return (asset.UUID == _findID); | 145 | return (asset.UUID == _findID); |
diff --git a/OpenSim/Framework/Communications/Cache/AssetServerBase.cs b/OpenSim/Framework/Communications/Cache/AssetServerBase.cs index 0771a20..7109910 100644 --- a/OpenSim/Framework/Communications/Cache/AssetServerBase.cs +++ b/OpenSim/Framework/Communications/Cache/AssetServerBase.cs | |||
@@ -5,8 +5,6 @@ using System.Threading; | |||
5 | using libsecondlife; | 5 | using libsecondlife; |
6 | using Nini.Config; | 6 | using Nini.Config; |
7 | using OpenSim.Framework.Console; | 7 | using OpenSim.Framework.Console; |
8 | using OpenSim.Framework.Interfaces; | ||
9 | using OpenSim.Framework; | ||
10 | 8 | ||
11 | namespace OpenSim.Framework.Communications.Cache | 9 | namespace OpenSim.Framework.Communications.Cache |
12 | { | 10 | { |
@@ -36,13 +34,12 @@ namespace OpenSim.Framework.Communications.Cache | |||
36 | 34 | ||
37 | public AssetServerBase() | 35 | public AssetServerBase() |
38 | { | 36 | { |
37 | MainLog.Instance.Verbose("ASSETSERVER", "Starting asset storage system"); | ||
38 | _assetRequests = new BlockingQueue<ARequest>(); | ||
39 | 39 | ||
40 | OpenSim.Framework.Console.MainLog.Instance.Verbose("ASSETSERVER","Starting asset storage system"); | 40 | _localAssetServerThread = new Thread(RunRequests); |
41 | this._assetRequests = new BlockingQueue<ARequest>(); | 41 | _localAssetServerThread.IsBackground = true; |
42 | 42 | _localAssetServerThread.Start(); | |
43 | this._localAssetServerThread = new Thread(RunRequests); | ||
44 | this._localAssetServerThread.IsBackground = true; | ||
45 | this._localAssetServerThread.Start(); | ||
46 | } | 43 | } |
47 | 44 | ||
48 | public void LoadAsset(AssetBase info, bool image, string filename) | 45 | public void LoadAsset(AssetBase info, bool image, string filename) |
@@ -57,7 +54,7 @@ namespace OpenSim.Framework.Communications.Cache | |||
57 | FileStream fStream = new FileStream(fileName, FileMode.Open, FileAccess.Read); | 54 | FileStream fStream = new FileStream(fileName, FileMode.Open, FileAccess.Read); |
58 | byte[] idata = new byte[numBytes]; | 55 | byte[] idata = new byte[numBytes]; |
59 | BinaryReader br = new BinaryReader(fStream); | 56 | BinaryReader br = new BinaryReader(fStream); |
60 | idata = br.ReadBytes((int)numBytes); | 57 | idata = br.ReadBytes((int) numBytes); |
61 | br.Close(); | 58 | br.Close(); |
62 | fStream.Close(); | 59 | fStream.Close(); |
63 | info.Data = idata; | 60 | info.Data = idata; |
@@ -66,7 +63,7 @@ namespace OpenSim.Framework.Communications.Cache | |||
66 | 63 | ||
67 | public void SetReceiver(IAssetReceiver receiver) | 64 | public void SetReceiver(IAssetReceiver receiver) |
68 | { | 65 | { |
69 | this._receiver = receiver; | 66 | _receiver = receiver; |
70 | } | 67 | } |
71 | 68 | ||
72 | public void FetchAsset(LLUUID assetID, bool isTexture) | 69 | public void FetchAsset(LLUUID assetID, bool isTexture) |
@@ -74,7 +71,7 @@ namespace OpenSim.Framework.Communications.Cache | |||
74 | ARequest req = new ARequest(); | 71 | ARequest req = new ARequest(); |
75 | req.AssetID = assetID; | 72 | req.AssetID = assetID; |
76 | req.IsTexture = isTexture; | 73 | req.IsTexture = isTexture; |
77 | this._assetRequests.Enqueue(req); | 74 | _assetRequests.Enqueue(req); |
78 | } | 75 | } |
79 | 76 | ||
80 | public void UpdateAsset(AssetBase asset) | 77 | public void UpdateAsset(AssetBase asset) |
@@ -102,7 +99,6 @@ namespace OpenSim.Framework.Communications.Cache | |||
102 | 99 | ||
103 | public void SetServerInfo(string ServerUrl, string ServerKey) | 100 | public void SetServerInfo(string ServerUrl, string ServerKey) |
104 | { | 101 | { |
105 | |||
106 | } | 102 | } |
107 | 103 | ||
108 | public virtual List<AssetBase> GetDefaultAssets() | 104 | public virtual List<AssetBase> GetDefaultAssets() |
@@ -175,8 +171,8 @@ namespace OpenSim.Framework.Communications.Cache | |||
175 | // System.Console.WriteLine("loading asset into database"); | 171 | // System.Console.WriteLine("loading asset into database"); |
176 | string assetIdStr = source.Configs[i].GetString("assetID", LLUUID.Random().ToStringHyphenated()); | 172 | string assetIdStr = source.Configs[i].GetString("assetID", LLUUID.Random().ToStringHyphenated()); |
177 | string name = source.Configs[i].GetString("name", ""); | 173 | string name = source.Configs[i].GetString("name", ""); |
178 | sbyte type = (sbyte)source.Configs[i].GetInt("assetType", 0); | 174 | sbyte type = (sbyte) source.Configs[i].GetInt("assetType", 0); |
179 | sbyte invType = (sbyte)source.Configs[i].GetInt("inventoryType", 0); | 175 | sbyte invType = (sbyte) source.Configs[i].GetInt("inventoryType", 0); |
180 | string fileName = source.Configs[i].GetString("fileName", ""); | 176 | string fileName = source.Configs[i].GetString("fileName", ""); |
181 | 177 | ||
182 | AssetBase newAsset = CreateAsset(assetIdStr, name, fileName, false); | 178 | AssetBase newAsset = CreateAsset(assetIdStr, name, fileName, false); |
@@ -189,4 +185,4 @@ namespace OpenSim.Framework.Communications.Cache | |||
189 | assets.ForEach(action); | 185 | assets.ForEach(action); |
190 | } | 186 | } |
191 | } | 187 | } |
192 | } | 188 | } \ No newline at end of file |
diff --git a/OpenSim/Framework/Communications/Cache/AssetTransactionManager.cs b/OpenSim/Framework/Communications/Cache/AssetTransactionManager.cs index d622e02..55b255a 100644 --- a/OpenSim/Framework/Communications/Cache/AssetTransactionManager.cs +++ b/OpenSim/Framework/Communications/Cache/AssetTransactionManager.cs | |||
@@ -25,15 +25,8 @@ | |||
25 | * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | 25 | * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
26 | * | 26 | * |
27 | */ | 27 | */ |
28 | using System; | ||
29 | using System.Collections; | ||
30 | using System.Collections.Generic; | 28 | using System.Collections.Generic; |
31 | using System.Text; | ||
32 | using System.IO; | ||
33 | using libsecondlife; | 29 | using libsecondlife; |
34 | using OpenSim.Framework.Interfaces; | ||
35 | using OpenSim.Framework; | ||
36 | using OpenSim.Framework.Data; | ||
37 | 30 | ||
38 | namespace OpenSim.Framework.Communications.Cache | 31 | namespace OpenSim.Framework.Communications.Cache |
39 | { | 32 | { |
@@ -41,7 +34,10 @@ namespace OpenSim.Framework.Communications.Cache | |||
41 | { | 34 | { |
42 | // Fields | 35 | // Fields |
43 | public CommunicationsManager CommsManager; | 36 | public CommunicationsManager CommsManager; |
44 | public Dictionary<LLUUID, AgentAssetTransactions> AgentTransactions = new Dictionary<LLUUID, AgentAssetTransactions>(); | 37 | |
38 | public Dictionary<LLUUID, AgentAssetTransactions> AgentTransactions = | ||
39 | new Dictionary<LLUUID, AgentAssetTransactions>(); | ||
40 | |||
45 | private bool m_dumpAssetsToFile; | 41 | private bool m_dumpAssetsToFile; |
46 | 42 | ||
47 | public AssetTransactionManager(CommunicationsManager commsManager, bool dumpAssetsToFile) | 43 | public AssetTransactionManager(CommunicationsManager commsManager, bool dumpAssetsToFile) |
@@ -53,10 +49,10 @@ namespace OpenSim.Framework.Communications.Cache | |||
53 | // Methods | 49 | // Methods |
54 | public AgentAssetTransactions AddUser(LLUUID userID) | 50 | public AgentAssetTransactions AddUser(LLUUID userID) |
55 | { | 51 | { |
56 | if (!this.AgentTransactions.ContainsKey(userID)) | 52 | if (!AgentTransactions.ContainsKey(userID)) |
57 | { | 53 | { |
58 | AgentAssetTransactions transactions = new AgentAssetTransactions(userID, this, m_dumpAssetsToFile); | 54 | AgentAssetTransactions transactions = new AgentAssetTransactions(userID, this, m_dumpAssetsToFile); |
59 | this.AgentTransactions.Add(userID, transactions); | 55 | AgentTransactions.Add(userID, transactions); |
60 | return transactions; | 56 | return transactions; |
61 | } | 57 | } |
62 | return null; | 58 | return null; |
@@ -64,27 +60,30 @@ namespace OpenSim.Framework.Communications.Cache | |||
64 | 60 | ||
65 | public AgentAssetTransactions GetUserTransActions(LLUUID userID) | 61 | public AgentAssetTransactions GetUserTransActions(LLUUID userID) |
66 | { | 62 | { |
67 | if (this.AgentTransactions.ContainsKey(userID)) | 63 | if (AgentTransactions.ContainsKey(userID)) |
68 | { | 64 | { |
69 | return this.AgentTransactions[userID]; | 65 | return AgentTransactions[userID]; |
70 | } | 66 | } |
71 | return null; | 67 | return null; |
72 | } | 68 | } |
73 | 69 | ||
74 | public void HandleInventoryFromTransaction(IClientAPI remoteClient, LLUUID transactionID, LLUUID folderID, uint callbackID, string description, string name, sbyte invType, sbyte type, byte wearableType, uint nextOwnerMask) | 70 | public void HandleInventoryFromTransaction(IClientAPI remoteClient, LLUUID transactionID, LLUUID folderID, |
71 | uint callbackID, string description, string name, sbyte invType, | ||
72 | sbyte type, byte wearableType, uint nextOwnerMask) | ||
75 | { | 73 | { |
76 | AgentAssetTransactions transactions = this.GetUserTransActions(remoteClient.AgentId); | 74 | AgentAssetTransactions transactions = GetUserTransActions(remoteClient.AgentId); |
77 | if (transactions != null) | 75 | if (transactions != null) |
78 | { | 76 | { |
79 | transactions.RequestCreateInventoryItem(remoteClient, transactionID, folderID, callbackID, description, name, invType, type, wearableType, nextOwnerMask); | 77 | transactions.RequestCreateInventoryItem(remoteClient, transactionID, folderID, callbackID, description, |
78 | name, invType, type, wearableType, nextOwnerMask); | ||
80 | } | 79 | } |
81 | |||
82 | } | 80 | } |
83 | 81 | ||
84 | public void HandleUDPUploadRequest(IClientAPI remoteClient, LLUUID assetID, LLUUID transaction, sbyte type, byte[] data, bool storeLocal) | 82 | public void HandleUDPUploadRequest(IClientAPI remoteClient, LLUUID assetID, LLUUID transaction, sbyte type, |
83 | byte[] data, bool storeLocal) | ||
85 | { | 84 | { |
86 | // Console.WriteLine("asset upload of " + assetID); | 85 | // Console.WriteLine("asset upload of " + assetID); |
87 | AgentAssetTransactions transactions = this.GetUserTransActions(remoteClient.AgentId); | 86 | AgentAssetTransactions transactions = GetUserTransActions(remoteClient.AgentId); |
88 | if (transactions != null) | 87 | if (transactions != null) |
89 | { | 88 | { |
90 | AgentAssetTransactions.AssetXferUploader uploader = transactions.RequestXferUploader(transaction); | 89 | AgentAssetTransactions.AssetXferUploader uploader = transactions.RequestXferUploader(transaction); |
@@ -97,7 +96,7 @@ namespace OpenSim.Framework.Communications.Cache | |||
97 | 96 | ||
98 | public void HandleXfer(IClientAPI remoteClient, ulong xferID, uint packetID, byte[] data) | 97 | public void HandleXfer(IClientAPI remoteClient, ulong xferID, uint packetID, byte[] data) |
99 | { | 98 | { |
100 | AgentAssetTransactions transactions = this.GetUserTransActions(remoteClient.AgentId); | 99 | AgentAssetTransactions transactions = GetUserTransActions(remoteClient.AgentId); |
101 | if (transactions != null) | 100 | if (transactions != null) |
102 | { | 101 | { |
103 | transactions.HandleXfer(xferID, packetID, data); | 102 | transactions.HandleXfer(xferID, packetID, data); |
diff --git a/OpenSim/Framework/Communications/Cache/AssetTransactions.cs b/OpenSim/Framework/Communications/Cache/AssetTransactions.cs index e78f4f7..6b08fc9 100644 --- a/OpenSim/Framework/Communications/Cache/AssetTransactions.cs +++ b/OpenSim/Framework/Communications/Cache/AssetTransactions.cs | |||
@@ -26,17 +26,12 @@ | |||
26 | * | 26 | * |
27 | */ | 27 | */ |
28 | using System; | 28 | using System; |
29 | using System.Collections; | ||
30 | using System.Collections.Generic; | 29 | using System.Collections.Generic; |
31 | using System.Text; | ||
32 | using System.IO; | 30 | using System.IO; |
33 | using libsecondlife; | 31 | using libsecondlife; |
34 | using libsecondlife.Packets; | 32 | using libsecondlife.Packets; |
35 | using OpenSim.Framework.Communications.Cache; | ||
36 | using OpenSim.Framework.Interfaces; | ||
37 | using OpenSim.Framework; | ||
38 | using OpenSim.Region.Capabilities; | ||
39 | using OpenSim.Framework.Servers; | 33 | using OpenSim.Framework.Servers; |
34 | using OpenSim.Region.Capabilities; | ||
40 | 35 | ||
41 | namespace OpenSim.Framework.Communications.Cache | 36 | namespace OpenSim.Framework.Communications.Cache |
42 | { | 37 | { |
@@ -53,7 +48,7 @@ namespace OpenSim.Framework.Communications.Cache | |||
53 | // Methods | 48 | // Methods |
54 | public AgentAssetTransactions(LLUUID agentID, AssetTransactionManager manager, bool dumpAssetsToFile) | 49 | public AgentAssetTransactions(LLUUID agentID, AssetTransactionManager manager, bool dumpAssetsToFile) |
55 | { | 50 | { |
56 | this.UserID = agentID; | 51 | UserID = agentID; |
57 | Manager = manager; | 52 | Manager = manager; |
58 | m_dumpAssetsToFile = dumpAssetsToFile; | 53 | m_dumpAssetsToFile = dumpAssetsToFile; |
59 | } | 54 | } |
@@ -61,24 +56,24 @@ namespace OpenSim.Framework.Communications.Cache | |||
61 | public AssetCapsUploader RequestCapsUploader() | 56 | public AssetCapsUploader RequestCapsUploader() |
62 | { | 57 | { |
63 | AssetCapsUploader uploader = new AssetCapsUploader(); | 58 | AssetCapsUploader uploader = new AssetCapsUploader(); |
64 | this.CapsUploaders.Add(uploader); | 59 | CapsUploaders.Add(uploader); |
65 | return uploader; | 60 | return uploader; |
66 | } | 61 | } |
67 | 62 | ||
68 | public NoteCardCapsUpdate RequestNoteCardUpdater() | 63 | public NoteCardCapsUpdate RequestNoteCardUpdater() |
69 | { | 64 | { |
70 | NoteCardCapsUpdate update = new NoteCardCapsUpdate(); | 65 | NoteCardCapsUpdate update = new NoteCardCapsUpdate(); |
71 | this.NotecardUpdaters.Add(update); | 66 | NotecardUpdaters.Add(update); |
72 | return update; | 67 | return update; |
73 | } | 68 | } |
74 | 69 | ||
75 | public AssetXferUploader RequestXferUploader(LLUUID transactionID) | 70 | public AssetXferUploader RequestXferUploader(LLUUID transactionID) |
76 | { | 71 | { |
77 | if (!this.XferUploaders.ContainsKey(transactionID)) | 72 | if (!XferUploaders.ContainsKey(transactionID)) |
78 | { | 73 | { |
79 | AssetXferUploader uploader = new AssetXferUploader(this, m_dumpAssetsToFile); | 74 | AssetXferUploader uploader = new AssetXferUploader(this, m_dumpAssetsToFile); |
80 | 75 | ||
81 | this.XferUploaders.Add(transactionID, uploader); | 76 | XferUploaders.Add(transactionID, uploader); |
82 | return uploader; | 77 | return uploader; |
83 | } | 78 | } |
84 | return null; | 79 | return null; |
@@ -86,7 +81,7 @@ namespace OpenSim.Framework.Communications.Cache | |||
86 | 81 | ||
87 | public void HandleXfer(ulong xferID, uint packetID, byte[] data) | 82 | public void HandleXfer(ulong xferID, uint packetID, byte[] data) |
88 | { | 83 | { |
89 | foreach (AssetXferUploader uploader in this.XferUploaders.Values) | 84 | foreach (AssetXferUploader uploader in XferUploaders.Values) |
90 | { | 85 | { |
91 | if (uploader.XferID == xferID) | 86 | if (uploader.XferID == xferID) |
92 | { | 87 | { |
@@ -96,17 +91,21 @@ namespace OpenSim.Framework.Communications.Cache | |||
96 | } | 91 | } |
97 | } | 92 | } |
98 | 93 | ||
99 | public void RequestCreateInventoryItem(IClientAPI remoteClient, LLUUID transactionID, LLUUID folderID, uint callbackID, string description, string name, sbyte invType, sbyte type, byte wearableType, uint nextOwnerMask) | 94 | public void RequestCreateInventoryItem(IClientAPI remoteClient, LLUUID transactionID, LLUUID folderID, |
95 | uint callbackID, string description, string name, sbyte invType, | ||
96 | sbyte type, byte wearableType, uint nextOwnerMask) | ||
100 | { | 97 | { |
101 | if (this.XferUploaders.ContainsKey(transactionID)) | 98 | if (XferUploaders.ContainsKey(transactionID)) |
102 | { | 99 | { |
103 | this.XferUploaders[transactionID].RequestCreateInventoryItem(remoteClient, transactionID, folderID, callbackID, description, name, invType, type, wearableType, nextOwnerMask); | 100 | XferUploaders[transactionID].RequestCreateInventoryItem(remoteClient, transactionID, folderID, |
101 | callbackID, description, name, invType, type, | ||
102 | wearableType, nextOwnerMask); | ||
104 | } | 103 | } |
105 | } | 104 | } |
106 | 105 | ||
107 | public AssetBase GetTransactionAsset(LLUUID transactionID) | 106 | public AssetBase GetTransactionAsset(LLUUID transactionID) |
108 | { | 107 | { |
109 | if (this.XferUploaders.ContainsKey(transactionID)) | 108 | if (XferUploaders.ContainsKey(transactionID)) |
110 | { | 109 | { |
111 | return XferUploaders[transactionID].GetAssetData(); | 110 | return XferUploaders[transactionID].GetAssetData(); |
112 | } | 111 | } |
@@ -130,15 +129,16 @@ namespace OpenSim.Framework.Communications.Cache | |||
130 | public event UpLoadedAsset OnUpLoad; | 129 | public event UpLoadedAsset OnUpLoad; |
131 | 130 | ||
132 | // Methods | 131 | // Methods |
133 | public void Initialise(string assetName, string assetDescription, LLUUID assetID, LLUUID inventoryItem, LLUUID folderID, string path, BaseHttpServer httpServer, bool dumpImageToFile) | 132 | public void Initialise(string assetName, string assetDescription, LLUUID assetID, LLUUID inventoryItem, |
133 | LLUUID folderID, string path, BaseHttpServer httpServer, bool dumpImageToFile) | ||
134 | { | 134 | { |
135 | this.m_assetName = assetName; | 135 | m_assetName = assetName; |
136 | this.m_assetDescription = assetDescription; | 136 | m_assetDescription = assetDescription; |
137 | this.m_folderID = folderID; | 137 | m_folderID = folderID; |
138 | this.newAssetID = assetID; | 138 | newAssetID = assetID; |
139 | this.inventoryItemID = inventoryItem; | 139 | inventoryItemID = inventoryItem; |
140 | this.uploaderPath = path; | 140 | uploaderPath = path; |
141 | this.httpListener = httpServer; | 141 | httpListener = httpServer; |
142 | m_dumpImageToFile = dumpImageToFile; | 142 | m_dumpImageToFile = dumpImageToFile; |
143 | } | 143 | } |
144 | 144 | ||
@@ -156,18 +156,18 @@ namespace OpenSim.Framework.Communications.Cache | |||
156 | LLUUID inventoryItemID = this.inventoryItemID; | 156 | LLUUID inventoryItemID = this.inventoryItemID; |
157 | string text = ""; | 157 | string text = ""; |
158 | LLSDAssetUploadComplete complete = new LLSDAssetUploadComplete(); | 158 | LLSDAssetUploadComplete complete = new LLSDAssetUploadComplete(); |
159 | complete.new_asset = this.newAssetID.ToStringHyphenated(); | 159 | complete.new_asset = newAssetID.ToStringHyphenated(); |
160 | complete.new_inventory_item = inventoryItemID; | 160 | complete.new_inventory_item = inventoryItemID; |
161 | complete.state = "complete"; | 161 | complete.state = "complete"; |
162 | text = LLSDHelpers.SerialiseLLSDReply(complete); | 162 | text = LLSDHelpers.SerialiseLLSDReply(complete); |
163 | this.httpListener.RemoveStreamHandler("POST", this.uploaderPath); | 163 | httpListener.RemoveStreamHandler("POST", uploaderPath); |
164 | if (this.m_dumpImageToFile) | 164 | if (m_dumpImageToFile) |
165 | { | 165 | { |
166 | this.SaveImageToFile(this.m_assetName + ".jp2", data); | 166 | SaveImageToFile(m_assetName + ".jp2", data); |
167 | } | 167 | } |
168 | if (this.OnUpLoad != null) | 168 | if (OnUpLoad != null) |
169 | { | 169 | { |
170 | this.OnUpLoad(this.m_assetName, "description", this.newAssetID, inventoryItemID, LLUUID.Zero, data, "" , ""); | 170 | OnUpLoad(m_assetName, "description", newAssetID, inventoryItemID, LLUUID.Zero, data, "", ""); |
171 | } | 171 | } |
172 | return text; | 172 | return text; |
173 | } | 173 | } |
@@ -196,90 +196,91 @@ namespace OpenSim.Framework.Communications.Cache | |||
196 | 196 | ||
197 | public AssetXferUploader(AgentAssetTransactions transactions, bool dumpAssetToFile) | 197 | public AssetXferUploader(AgentAssetTransactions transactions, bool dumpAssetToFile) |
198 | { | 198 | { |
199 | this.m_userTransactions = transactions; | 199 | m_userTransactions = transactions; |
200 | m_dumpAssetToFile = dumpAssetToFile; | 200 | m_dumpAssetToFile = dumpAssetToFile; |
201 | } | 201 | } |
202 | 202 | ||
203 | // Methods | 203 | // Methods |
204 | public void HandleXferPacket(ulong xferID, uint packetID, byte[] data) | 204 | public void HandleXferPacket(ulong xferID, uint packetID, byte[] data) |
205 | { | 205 | { |
206 | if (this.XferID == xferID) | 206 | if (XferID == xferID) |
207 | { | 207 | { |
208 | if (this.Asset.Data.Length > 1) | 208 | if (Asset.Data.Length > 1) |
209 | { | 209 | { |
210 | byte[] destinationArray = new byte[this.Asset.Data.Length + data.Length]; | 210 | byte[] destinationArray = new byte[Asset.Data.Length + data.Length]; |
211 | Array.Copy(this.Asset.Data, 0, destinationArray, 0, this.Asset.Data.Length); | 211 | Array.Copy(Asset.Data, 0, destinationArray, 0, Asset.Data.Length); |
212 | Array.Copy(data, 0, destinationArray, this.Asset.Data.Length, data.Length); | 212 | Array.Copy(data, 0, destinationArray, Asset.Data.Length, data.Length); |
213 | this.Asset.Data = destinationArray; | 213 | Asset.Data = destinationArray; |
214 | } | 214 | } |
215 | else | 215 | else |
216 | { | 216 | { |
217 | byte[] buffer2 = new byte[data.Length - 4]; | 217 | byte[] buffer2 = new byte[data.Length - 4]; |
218 | Array.Copy(data, 4, buffer2, 0, data.Length - 4); | 218 | Array.Copy(data, 4, buffer2, 0, data.Length - 4); |
219 | this.Asset.Data = buffer2; | 219 | Asset.Data = buffer2; |
220 | } | 220 | } |
221 | ConfirmXferPacketPacket newPack = new ConfirmXferPacketPacket(); | 221 | ConfirmXferPacketPacket newPack = new ConfirmXferPacketPacket(); |
222 | newPack.XferID.ID = xferID; | 222 | newPack.XferID.ID = xferID; |
223 | newPack.XferID.Packet = packetID; | 223 | newPack.XferID.Packet = packetID; |
224 | this.ourClient.OutPacket(newPack); | 224 | ourClient.OutPacket(newPack); |
225 | if ((packetID & 0x80000000) != 0) | 225 | if ((packetID & 0x80000000) != 0) |
226 | { | 226 | { |
227 | this.SendCompleteMessage(); | 227 | SendCompleteMessage(); |
228 | } | 228 | } |
229 | } | 229 | } |
230 | } | 230 | } |
231 | 231 | ||
232 | public void Initialise(IClientAPI remoteClient, LLUUID assetID, LLUUID transaction, sbyte type, byte[] data, bool storeLocal) | 232 | public void Initialise(IClientAPI remoteClient, LLUUID assetID, LLUUID transaction, sbyte type, byte[] data, |
233 | bool storeLocal) | ||
233 | { | 234 | { |
234 | this.ourClient = remoteClient; | 235 | ourClient = remoteClient; |
235 | this.Asset = new AssetBase(); | 236 | Asset = new AssetBase(); |
236 | this.Asset.FullID = assetID; | 237 | Asset.FullID = assetID; |
237 | this.Asset.InvType = type; | 238 | Asset.InvType = type; |
238 | this.Asset.Type = type; | 239 | Asset.Type = type; |
239 | this.Asset.Data = data; | 240 | Asset.Data = data; |
240 | this.Asset.Name = "blank"; | 241 | Asset.Name = "blank"; |
241 | this.Asset.Description = "empty"; | 242 | Asset.Description = "empty"; |
242 | this.TransactionID = transaction; | 243 | TransactionID = transaction; |
243 | this.m_storeLocal = storeLocal; | 244 | m_storeLocal = storeLocal; |
244 | if (this.Asset.Data.Length > 2) | 245 | if (Asset.Data.Length > 2) |
245 | { | 246 | { |
246 | this.SendCompleteMessage(); | 247 | SendCompleteMessage(); |
247 | } | 248 | } |
248 | else | 249 | else |
249 | { | 250 | { |
250 | this.ReqestStartXfer(); | 251 | ReqestStartXfer(); |
251 | } | 252 | } |
252 | } | 253 | } |
253 | 254 | ||
254 | protected void ReqestStartXfer() | 255 | protected void ReqestStartXfer() |
255 | { | 256 | { |
256 | this.UploadComplete = false; | 257 | UploadComplete = false; |
257 | this.XferID = Util.GetNextXferID(); | 258 | XferID = Util.GetNextXferID(); |
258 | RequestXferPacket newPack = new RequestXferPacket(); | 259 | RequestXferPacket newPack = new RequestXferPacket(); |
259 | newPack.XferID.ID = this.XferID; | 260 | newPack.XferID.ID = XferID; |
260 | newPack.XferID.VFileType = this.Asset.Type; | 261 | newPack.XferID.VFileType = Asset.Type; |
261 | newPack.XferID.VFileID = this.Asset.FullID; | 262 | newPack.XferID.VFileID = Asset.FullID; |
262 | newPack.XferID.FilePath = 0; | 263 | newPack.XferID.FilePath = 0; |
263 | newPack.XferID.Filename = new byte[0]; | 264 | newPack.XferID.Filename = new byte[0]; |
264 | this.ourClient.OutPacket(newPack); | 265 | ourClient.OutPacket(newPack); |
265 | } | 266 | } |
266 | 267 | ||
267 | protected void SendCompleteMessage() | 268 | protected void SendCompleteMessage() |
268 | { | 269 | { |
269 | this.UploadComplete = true; | 270 | UploadComplete = true; |
270 | AssetUploadCompletePacket newPack = new AssetUploadCompletePacket(); | 271 | AssetUploadCompletePacket newPack = new AssetUploadCompletePacket(); |
271 | newPack.AssetBlock.Type = this.Asset.Type; | 272 | newPack.AssetBlock.Type = Asset.Type; |
272 | newPack.AssetBlock.Success = true; | 273 | newPack.AssetBlock.Success = true; |
273 | newPack.AssetBlock.UUID = this.Asset.FullID; | 274 | newPack.AssetBlock.UUID = Asset.FullID; |
274 | this.ourClient.OutPacket(newPack); | 275 | ourClient.OutPacket(newPack); |
275 | this.m_finished = true; | 276 | m_finished = true; |
276 | if (m_createItem) | 277 | if (m_createItem) |
277 | { | 278 | { |
278 | DoCreateItem(); | 279 | DoCreateItem(); |
279 | } | 280 | } |
280 | else if (m_storeLocal) | 281 | else if (m_storeLocal) |
281 | { | 282 | { |
282 | this.m_userTransactions.Manager.CommsManager.AssetCache.AddAsset(this.Asset); | 283 | m_userTransactions.Manager.CommsManager.AssetCache.AddAsset(Asset); |
283 | } | 284 | } |
284 | 285 | ||
285 | // Console.WriteLine("upload complete "+ this.TransactionID); | 286 | // Console.WriteLine("upload complete "+ this.TransactionID); |
@@ -287,8 +288,10 @@ namespace OpenSim.Framework.Communications.Cache | |||
287 | if (m_dumpAssetToFile) | 288 | if (m_dumpAssetToFile) |
288 | { | 289 | { |
289 | DateTime now = DateTime.Now; | 290 | DateTime now = DateTime.Now; |
290 | string filename = String.Format("{6}_{7}_{0:d2}{1:d2}{2:d2}_{3:d2}{4:d2}{5:d2}", now.Year, now.Month, now.Day, now.Hour, now.Minute, now.Second, Asset.Name, Asset.Type ); | 291 | string filename = |
291 | SaveAssetToFile(filename, this.Asset.Data); | 292 | String.Format("{6}_{7}_{0:d2}{1:d2}{2:d2}_{3:d2}{4:d2}{5:d2}", now.Year, now.Month, now.Day, |
293 | now.Hour, now.Minute, now.Second, Asset.Name, Asset.Type); | ||
294 | SaveAssetToFile(filename, Asset.Data); | ||
292 | } | 295 | } |
293 | } | 296 | } |
294 | 297 | ||
@@ -301,20 +304,22 @@ namespace OpenSim.Framework.Communications.Cache | |||
301 | fs.Close(); | 304 | fs.Close(); |
302 | } | 305 | } |
303 | 306 | ||
304 | public void RequestCreateInventoryItem(IClientAPI remoteClient, LLUUID transactionID, LLUUID folderID, uint callbackID, string description, string name, sbyte invType, sbyte type, byte wearableType, uint nextOwnerMask) | 307 | public void RequestCreateInventoryItem(IClientAPI remoteClient, LLUUID transactionID, LLUUID folderID, |
308 | uint callbackID, string description, string name, sbyte invType, | ||
309 | sbyte type, byte wearableType, uint nextOwnerMask) | ||
305 | { | 310 | { |
306 | if (this.TransactionID == transactionID) | 311 | if (TransactionID == transactionID) |
307 | { | 312 | { |
308 | this.InventFolder = folderID; | 313 | InventFolder = folderID; |
309 | this.m_name = name; | 314 | m_name = name; |
310 | this.m_description = description; | 315 | m_description = description; |
311 | this.type = type; | 316 | this.type = type; |
312 | this.invType = invType; | 317 | this.invType = invType; |
313 | this.nextPerm = nextOwnerMask; | 318 | nextPerm = nextOwnerMask; |
314 | this.Asset.Name = name; | 319 | Asset.Name = name; |
315 | this.Asset.Description = description; | 320 | Asset.Description = description; |
316 | this.Asset.Type = type; | 321 | Asset.Type = type; |
317 | this.Asset.InvType = invType; | 322 | Asset.InvType = invType; |
318 | m_createItem = true; | 323 | m_createItem = true; |
319 | if (m_finished) | 324 | if (m_finished) |
320 | { | 325 | { |
@@ -326,22 +331,23 @@ namespace OpenSim.Framework.Communications.Cache | |||
326 | private void DoCreateItem() | 331 | private void DoCreateItem() |
327 | { | 332 | { |
328 | //really need to fix this call, if lbsa71 saw this he would die. | 333 | //really need to fix this call, if lbsa71 saw this he would die. |
329 | this.m_userTransactions.Manager.CommsManager.AssetCache.AddAsset(this.Asset); | 334 | m_userTransactions.Manager.CommsManager.AssetCache.AddAsset(Asset); |
330 | CachedUserInfo userInfo = m_userTransactions.Manager.CommsManager.UserProfileCache.GetUserDetails(ourClient.AgentId); | 335 | CachedUserInfo userInfo = |
336 | m_userTransactions.Manager.CommsManager.UserProfileCache.GetUserDetails(ourClient.AgentId); | ||
331 | if (userInfo != null) | 337 | if (userInfo != null) |
332 | { | 338 | { |
333 | InventoryItemBase item = new InventoryItemBase(); | 339 | InventoryItemBase item = new InventoryItemBase(); |
334 | item.avatarID = this.ourClient.AgentId; | 340 | item.avatarID = ourClient.AgentId; |
335 | item.creatorsID = ourClient.AgentId; | 341 | item.creatorsID = ourClient.AgentId; |
336 | item.inventoryID = LLUUID.Random(); | 342 | item.inventoryID = LLUUID.Random(); |
337 | item.assetID = Asset.FullID; | 343 | item.assetID = Asset.FullID; |
338 | item.inventoryDescription = this.m_description; | 344 | item.inventoryDescription = m_description; |
339 | item.inventoryName = m_name; | 345 | item.inventoryName = m_name; |
340 | item.assetType = type; | 346 | item.assetType = type; |
341 | item.invType = this.invType; | 347 | item.invType = invType; |
342 | item.parentFolderID = this.InventFolder; | 348 | item.parentFolderID = InventFolder; |
343 | item.inventoryCurrentPermissions = 2147483647; | 349 | item.inventoryCurrentPermissions = 2147483647; |
344 | item.inventoryNextPermissions = this.nextPerm; | 350 | item.inventoryNextPermissions = nextPerm; |
345 | 351 | ||
346 | userInfo.AddItem(ourClient.AgentId, item); | 352 | userInfo.AddItem(ourClient.AgentId, item); |
347 | ourClient.SendInventoryItemUpdate(item); | 353 | ourClient.SendInventoryItemUpdate(item); |
@@ -350,14 +356,13 @@ namespace OpenSim.Framework.Communications.Cache | |||
350 | 356 | ||
351 | public void UpdateInventoryItem(LLUUID itemID) | 357 | public void UpdateInventoryItem(LLUUID itemID) |
352 | { | 358 | { |
353 | |||
354 | } | 359 | } |
355 | 360 | ||
356 | public AssetBase GetAssetData() | 361 | public AssetBase GetAssetData() |
357 | { | 362 | { |
358 | if (m_finished) | 363 | if (m_finished) |
359 | { | 364 | { |
360 | return this.Asset; | 365 | return Asset; |
361 | } | 366 | } |
362 | return null; | 367 | return null; |
363 | } | 368 | } |
@@ -379,10 +384,10 @@ namespace OpenSim.Framework.Communications.Cache | |||
379 | // Methods | 384 | // Methods |
380 | public void Initialise(LLUUID inventoryItem, string path, BaseHttpServer httpServer) | 385 | public void Initialise(LLUUID inventoryItem, string path, BaseHttpServer httpServer) |
381 | { | 386 | { |
382 | this.inventoryItemID = inventoryItem; | 387 | inventoryItemID = inventoryItem; |
383 | this.uploaderPath = path; | 388 | uploaderPath = path; |
384 | this.httpListener = httpServer; | 389 | httpListener = httpServer; |
385 | this.newAssetID = LLUUID.Random(); | 390 | newAssetID = LLUUID.Random(); |
386 | } | 391 | } |
387 | 392 | ||
388 | private void SaveImageToFile(string filename, byte[] data) | 393 | private void SaveImageToFile(string filename, byte[] data) |
@@ -399,18 +404,18 @@ namespace OpenSim.Framework.Communications.Cache | |||
399 | LLUUID inventoryItemID = this.inventoryItemID; | 404 | LLUUID inventoryItemID = this.inventoryItemID; |
400 | string text = ""; | 405 | string text = ""; |
401 | LLSDAssetUploadComplete complete = new LLSDAssetUploadComplete(); | 406 | LLSDAssetUploadComplete complete = new LLSDAssetUploadComplete(); |
402 | complete.new_asset = this.newAssetID.ToStringHyphenated(); | 407 | complete.new_asset = newAssetID.ToStringHyphenated(); |
403 | complete.new_inventory_item = inventoryItemID; | 408 | complete.new_inventory_item = inventoryItemID; |
404 | complete.state = "complete"; | 409 | complete.state = "complete"; |
405 | text = LLSDHelpers.SerialiseLLSDReply(complete); | 410 | text = LLSDHelpers.SerialiseLLSDReply(complete); |
406 | this.httpListener.RemoveStreamHandler("POST", this.uploaderPath); | 411 | httpListener.RemoveStreamHandler("POST", uploaderPath); |
407 | if (this.SaveImages) | 412 | if (SaveImages) |
408 | { | 413 | { |
409 | this.SaveImageToFile(this.m_assetName + "notecard.txt", data); | 414 | SaveImageToFile(m_assetName + "notecard.txt", data); |
410 | } | 415 | } |
411 | if (this.OnUpLoad != null) | 416 | if (OnUpLoad != null) |
412 | { | 417 | { |
413 | this.OnUpLoad(this.m_assetName, "description", this.newAssetID, inventoryItemID, LLUUID.Zero, data, "" , "" ); | 418 | OnUpLoad(m_assetName, "description", newAssetID, inventoryItemID, LLUUID.Zero, data, "", ""); |
414 | } | 419 | } |
415 | return text; | 420 | return text; |
416 | } | 421 | } |
diff --git a/OpenSim/Framework/Communications/Cache/CachedUserInfo.cs b/OpenSim/Framework/Communications/Cache/CachedUserInfo.cs index 2d639d6..8fbc3fd 100644 --- a/OpenSim/Framework/Communications/Cache/CachedUserInfo.cs +++ b/OpenSim/Framework/Communications/Cache/CachedUserInfo.cs | |||
@@ -26,7 +26,6 @@ | |||
26 | * | 26 | * |
27 | */ | 27 | */ |
28 | using libsecondlife; | 28 | using libsecondlife; |
29 | using OpenSim.Framework; | ||
30 | 29 | ||
31 | namespace OpenSim.Framework.Communications.Cache | 30 | namespace OpenSim.Framework.Communications.Cache |
32 | { | 31 | { |
@@ -45,22 +44,22 @@ namespace OpenSim.Framework.Communications.Cache | |||
45 | // Methods | 44 | // Methods |
46 | public void FolderReceive(LLUUID userID, InventoryFolderImpl folderInfo) | 45 | public void FolderReceive(LLUUID userID, InventoryFolderImpl folderInfo) |
47 | { | 46 | { |
48 | if (userID == this.UserProfile.UUID) | 47 | if (userID == UserProfile.UUID) |
49 | { | 48 | { |
50 | if (this.RootFolder == null) | 49 | if (RootFolder == null) |
51 | { | 50 | { |
52 | if (folderInfo.parentID == LLUUID.Zero) | 51 | if (folderInfo.parentID == LLUUID.Zero) |
53 | { | 52 | { |
54 | this.RootFolder = folderInfo; | 53 | RootFolder = folderInfo; |
55 | } | 54 | } |
56 | } | 55 | } |
57 | else if (this.RootFolder.folderID == folderInfo.parentID) | 56 | else if (RootFolder.folderID == folderInfo.parentID) |
58 | { | 57 | { |
59 | this.RootFolder.SubFolders.Add(folderInfo.folderID, folderInfo); | 58 | RootFolder.SubFolders.Add(folderInfo.folderID, folderInfo); |
60 | } | 59 | } |
61 | else | 60 | else |
62 | { | 61 | { |
63 | InventoryFolderImpl folder = this.RootFolder.HasSubFolder(folderInfo.parentID); | 62 | InventoryFolderImpl folder = RootFolder.HasSubFolder(folderInfo.parentID); |
64 | if (folder != null) | 63 | if (folder != null) |
65 | { | 64 | { |
66 | folder.SubFolders.Add(folderInfo.folderID, folderInfo); | 65 | folder.SubFolders.Add(folderInfo.folderID, folderInfo); |
@@ -71,18 +70,18 @@ namespace OpenSim.Framework.Communications.Cache | |||
71 | 70 | ||
72 | public void ItemReceive(LLUUID userID, InventoryItemBase itemInfo) | 71 | public void ItemReceive(LLUUID userID, InventoryItemBase itemInfo) |
73 | { | 72 | { |
74 | if ((userID == this.UserProfile.UUID) && (this.RootFolder != null)) | 73 | if ((userID == UserProfile.UUID) && (RootFolder != null)) |
75 | { | 74 | { |
76 | if (itemInfo.parentFolderID == this.RootFolder.folderID) | 75 | if (itemInfo.parentFolderID == RootFolder.folderID) |
77 | { | 76 | { |
78 | this.RootFolder.Items.Add(itemInfo.inventoryID, itemInfo); | 77 | RootFolder.Items.Add(itemInfo.inventoryID, itemInfo); |
79 | } | 78 | } |
80 | else | 79 | else |
81 | { | 80 | { |
82 | InventoryFolderImpl folder = this.RootFolder.HasSubFolder(itemInfo.parentFolderID); | 81 | InventoryFolderImpl folder = RootFolder.HasSubFolder(itemInfo.parentFolderID); |
83 | if (folder != null) | 82 | if (folder != null) |
84 | { | 83 | { |
85 | folder.Items.Add(itemInfo.inventoryID, itemInfo); | 84 | folder.Items.Add(itemInfo.inventoryID, itemInfo); |
86 | } | 85 | } |
87 | } | 86 | } |
88 | } | 87 | } |
@@ -90,30 +89,30 @@ namespace OpenSim.Framework.Communications.Cache | |||
90 | 89 | ||
91 | public void AddItem(LLUUID userID, InventoryItemBase itemInfo) | 90 | public void AddItem(LLUUID userID, InventoryItemBase itemInfo) |
92 | { | 91 | { |
93 | if ((userID == this.UserProfile.UUID) && (this.RootFolder != null)) | 92 | if ((userID == UserProfile.UUID) && (RootFolder != null)) |
94 | { | 93 | { |
95 | this.ItemReceive(userID, itemInfo); | 94 | ItemReceive(userID, itemInfo); |
96 | this.m_parentCommsManager.InventoryService.AddNewInventoryItem(userID, itemInfo); | 95 | m_parentCommsManager.InventoryService.AddNewInventoryItem(userID, itemInfo); |
97 | } | 96 | } |
98 | } | 97 | } |
99 | 98 | ||
100 | public void UpdateItem(LLUUID userID, InventoryItemBase itemInfo) | 99 | public void UpdateItem(LLUUID userID, InventoryItemBase itemInfo) |
101 | { | 100 | { |
102 | if ((userID == this.UserProfile.UUID) && (this.RootFolder != null)) | 101 | if ((userID == UserProfile.UUID) && (RootFolder != null)) |
103 | { | 102 | { |
104 | this.m_parentCommsManager.InventoryService.AddNewInventoryItem(userID, itemInfo); | 103 | m_parentCommsManager.InventoryService.AddNewInventoryItem(userID, itemInfo); |
105 | } | 104 | } |
106 | } | 105 | } |
107 | 106 | ||
108 | public bool DeleteItem(LLUUID userID, InventoryItemBase item) | 107 | public bool DeleteItem(LLUUID userID, InventoryItemBase item) |
109 | { | 108 | { |
110 | bool result = false; | 109 | bool result = false; |
111 | if ((userID == this.UserProfile.UUID) && (this.RootFolder != null)) | 110 | if ((userID == UserProfile.UUID) && (RootFolder != null)) |
112 | { | 111 | { |
113 | result = RootFolder.DeleteItem(item.inventoryID); | 112 | result = RootFolder.DeleteItem(item.inventoryID); |
114 | if (result) | 113 | if (result) |
115 | { | 114 | { |
116 | this.m_parentCommsManager.InventoryService.DeleteInventoryItem(userID, item); | 115 | m_parentCommsManager.InventoryService.DeleteInventoryItem(userID, item); |
117 | } | 116 | } |
118 | } | 117 | } |
119 | return result; | 118 | return result; |
diff --git a/OpenSim/Framework/Communications/Cache/GridAssetClient.cs b/OpenSim/Framework/Communications/Cache/GridAssetClient.cs index 4904293..74a1ef4 100644 --- a/OpenSim/Framework/Communications/Cache/GridAssetClient.cs +++ b/OpenSim/Framework/Communications/Cache/GridAssetClient.cs | |||
@@ -25,19 +25,13 @@ | |||
25 | * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | 25 | * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
26 | * | 26 | * |
27 | */ | 27 | */ |
28 | |||
28 | using System; | 29 | using System; |
30 | using System.Collections.Generic; | ||
29 | using System.IO; | 31 | using System.IO; |
30 | using System.Threading; | ||
31 | using System.Reflection; | ||
32 | using System.Xml.Serialization; | 32 | using System.Xml.Serialization; |
33 | |||
34 | using libsecondlife; | 33 | using libsecondlife; |
35 | |||
36 | using Nini.Config; | ||
37 | using OpenSim.Framework.Console; | 34 | using OpenSim.Framework.Console; |
38 | using OpenSim.Framework.Interfaces; | ||
39 | using OpenSim.Framework; | ||
40 | using OpenSim.Framework.Communications; | ||
41 | 35 | ||
42 | namespace OpenSim.Framework.Communications.Cache | 36 | namespace OpenSim.Framework.Communications.Cache |
43 | { | 37 | { |
@@ -63,7 +57,6 @@ namespace OpenSim.Framework.Communications.Cache | |||
63 | Stream s = null; | 57 | Stream s = null; |
64 | try | 58 | try |
65 | { | 59 | { |
66 | |||
67 | MainLog.Instance.Debug("ASSETCACHE", "Querying for {0}", assetID.ToString()); | 60 | MainLog.Instance.Debug("ASSETCACHE", "Querying for {0}", assetID.ToString()); |
68 | 61 | ||
69 | RestClient rc = new RestClient(_assetServerUrl); | 62 | RestClient rc = new RestClient(_assetServerUrl); |
@@ -77,8 +70,8 @@ namespace OpenSim.Framework.Communications.Cache | |||
77 | 70 | ||
78 | if (s.Length > 0) | 71 | if (s.Length > 0) |
79 | { | 72 | { |
80 | XmlSerializer xs = new XmlSerializer(typeof(AssetBase)); | 73 | XmlSerializer xs = new XmlSerializer(typeof (AssetBase)); |
81 | AssetBase asset = (AssetBase)xs.Deserialize(s); | 74 | AssetBase asset = (AssetBase) xs.Deserialize(s); |
82 | 75 | ||
83 | _receiver.AssetReceived(asset, isTexture); | 76 | _receiver.AssetReceived(asset, isTexture); |
84 | } | 77 | } |
@@ -106,7 +99,7 @@ namespace OpenSim.Framework.Communications.Cache | |||
106 | { | 99 | { |
107 | MemoryStream s = new MemoryStream(); | 100 | MemoryStream s = new MemoryStream(); |
108 | 101 | ||
109 | XmlSerializer xs = new XmlSerializer(typeof(AssetBase)); | 102 | XmlSerializer xs = new XmlSerializer(typeof (AssetBase)); |
110 | xs.Serialize(s, asset); | 103 | xs.Serialize(s, asset); |
111 | RestClient rc = new RestClient(_assetServerUrl); | 104 | RestClient rc = new RestClient(_assetServerUrl); |
112 | rc.AddResourcePath("assets"); | 105 | rc.AddResourcePath("assets"); |
@@ -129,7 +122,7 @@ namespace OpenSim.Framework.Communications.Cache | |||
129 | throw new Exception("The method or operation is not implemented."); | 122 | throw new Exception("The method or operation is not implemented."); |
130 | } | 123 | } |
131 | 124 | ||
132 | public System.Collections.Generic.List<AssetBase> GetDefaultAssets() | 125 | public List<AssetBase> GetDefaultAssets() |
133 | { | 126 | { |
134 | throw new Exception("The method or operation is not implemented."); | 127 | throw new Exception("The method or operation is not implemented."); |
135 | } | 128 | } |
@@ -156,4 +149,4 @@ namespace OpenSim.Framework.Communications.Cache | |||
156 | 149 | ||
157 | #endregion | 150 | #endregion |
158 | } | 151 | } |
159 | } | 152 | } \ No newline at end of file |
diff --git a/OpenSim/Framework/Communications/Cache/InventoryFolder.cs b/OpenSim/Framework/Communications/Cache/InventoryFolder.cs index 0905af8..3495e55 100644 --- a/OpenSim/Framework/Communications/Cache/InventoryFolder.cs +++ b/OpenSim/Framework/Communications/Cache/InventoryFolder.cs | |||
@@ -25,14 +25,8 @@ | |||
25 | * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | 25 | * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
26 | * | 26 | * |
27 | */ | 27 | */ |
28 | using System; | ||
29 | using System.Collections; | ||
30 | using System.Collections.Generic; | 28 | using System.Collections.Generic; |
31 | using System.Text; | ||
32 | using System.IO; | ||
33 | using libsecondlife; | 29 | using libsecondlife; |
34 | using OpenSim.Framework.Interfaces; | ||
35 | using OpenSim.Framework; | ||
36 | 30 | ||
37 | namespace OpenSim.Framework.Communications.Cache | 31 | namespace OpenSim.Framework.Communications.Cache |
38 | { | 32 | { |
@@ -44,17 +38,16 @@ namespace OpenSim.Framework.Communications.Cache | |||
44 | 38 | ||
45 | public InventoryFolderImpl(InventoryFolderBase folderbase) | 39 | public InventoryFolderImpl(InventoryFolderBase folderbase) |
46 | { | 40 | { |
47 | this.agentID = folderbase.agentID; | 41 | agentID = folderbase.agentID; |
48 | this.folderID = folderbase.folderID; | 42 | folderID = folderbase.folderID; |
49 | this.name = folderbase.name; | 43 | name = folderbase.name; |
50 | this.parentID = folderbase.parentID; | 44 | parentID = folderbase.parentID; |
51 | this.type = folderbase.type; | 45 | type = folderbase.type; |
52 | this.version = folderbase.version; | 46 | version = folderbase.version; |
53 | } | 47 | } |
54 | 48 | ||
55 | public InventoryFolderImpl() | 49 | public InventoryFolderImpl() |
56 | { | 50 | { |
57 | |||
58 | } | 51 | } |
59 | 52 | ||
60 | // Methods | 53 | // Methods |
@@ -65,19 +58,19 @@ namespace OpenSim.Framework.Communications.Cache | |||
65 | subFold.folderID = folderID; | 58 | subFold.folderID = folderID; |
66 | subFold.type = (short) type; | 59 | subFold.type = (short) type; |
67 | subFold.parentID = this.folderID; | 60 | subFold.parentID = this.folderID; |
68 | subFold.agentID = this.agentID; | 61 | subFold.agentID = agentID; |
69 | this.SubFolders.Add(subFold.folderID, subFold); | 62 | SubFolders.Add(subFold.folderID, subFold); |
70 | return subFold; | 63 | return subFold; |
71 | } | 64 | } |
72 | 65 | ||
73 | public InventoryItemBase HasItem(LLUUID itemID) | 66 | public InventoryItemBase HasItem(LLUUID itemID) |
74 | { | 67 | { |
75 | InventoryItemBase base2 = null; | 68 | InventoryItemBase base2 = null; |
76 | if (this.Items.ContainsKey(itemID)) | 69 | if (Items.ContainsKey(itemID)) |
77 | { | 70 | { |
78 | return this.Items[itemID]; | 71 | return Items[itemID]; |
79 | } | 72 | } |
80 | foreach (InventoryFolderImpl folder in this.SubFolders.Values) | 73 | foreach (InventoryFolderImpl folder in SubFolders.Values) |
81 | { | 74 | { |
82 | base2 = folder.HasItem(itemID); | 75 | base2 = folder.HasItem(itemID); |
83 | if (base2 != null) | 76 | if (base2 != null) |
@@ -91,12 +84,12 @@ namespace OpenSim.Framework.Communications.Cache | |||
91 | public bool DeleteItem(LLUUID itemID) | 84 | public bool DeleteItem(LLUUID itemID) |
92 | { | 85 | { |
93 | bool found = false; | 86 | bool found = false; |
94 | if (this.Items.ContainsKey(itemID)) | 87 | if (Items.ContainsKey(itemID)) |
95 | { | 88 | { |
96 | Items.Remove(itemID); | 89 | Items.Remove(itemID); |
97 | return true; | 90 | return true; |
98 | } | 91 | } |
99 | foreach (InventoryFolderImpl folder in this.SubFolders.Values) | 92 | foreach (InventoryFolderImpl folder in SubFolders.Values) |
100 | { | 93 | { |
101 | found = folder.DeleteItem(itemID); | 94 | found = folder.DeleteItem(itemID); |
102 | if (found == true) | 95 | if (found == true) |
@@ -111,13 +104,13 @@ namespace OpenSim.Framework.Communications.Cache | |||
111 | public InventoryFolderImpl HasSubFolder(LLUUID folderID) | 104 | public InventoryFolderImpl HasSubFolder(LLUUID folderID) |
112 | { | 105 | { |
113 | InventoryFolderImpl returnFolder = null; | 106 | InventoryFolderImpl returnFolder = null; |
114 | if (this.SubFolders.ContainsKey(folderID)) | 107 | if (SubFolders.ContainsKey(folderID)) |
115 | { | 108 | { |
116 | returnFolder = this.SubFolders[folderID]; | 109 | returnFolder = SubFolders[folderID]; |
117 | } | 110 | } |
118 | else | 111 | else |
119 | { | 112 | { |
120 | foreach (InventoryFolderImpl folder in this.SubFolders.Values) | 113 | foreach (InventoryFolderImpl folder in SubFolders.Values) |
121 | { | 114 | { |
122 | returnFolder = folder.HasSubFolder(folderID); | 115 | returnFolder = folder.HasSubFolder(folderID); |
123 | if (returnFolder != null) | 116 | if (returnFolder != null) |
@@ -132,7 +125,7 @@ namespace OpenSim.Framework.Communications.Cache | |||
132 | public List<InventoryItemBase> RequestListOfItems() | 125 | public List<InventoryItemBase> RequestListOfItems() |
133 | { | 126 | { |
134 | List<InventoryItemBase> itemList = new List<InventoryItemBase>(); | 127 | List<InventoryItemBase> itemList = new List<InventoryItemBase>(); |
135 | foreach (InventoryItemBase item in this.Items.Values) | 128 | foreach (InventoryItemBase item in Items.Values) |
136 | { | 129 | { |
137 | itemList.Add(item); | 130 | itemList.Add(item); |
138 | } | 131 | } |
diff --git a/OpenSim/Framework/Communications/Cache/LibraryRootFolder.cs b/OpenSim/Framework/Communications/Cache/LibraryRootFolder.cs index 60f9b6b..765c42e 100644 --- a/OpenSim/Framework/Communications/Cache/LibraryRootFolder.cs +++ b/OpenSim/Framework/Communications/Cache/LibraryRootFolder.cs | |||
@@ -26,12 +26,8 @@ | |||
26 | * | 26 | * |
27 | */ | 27 | */ |
28 | 28 | ||
29 | using System; | ||
30 | using System.IO; | 29 | using System.IO; |
31 | using System.Collections.Generic; | ||
32 | using System.Text; | ||
33 | using libsecondlife; | 30 | using libsecondlife; |
34 | using OpenSim.Framework; | ||
35 | using Nini.Config; | 31 | using Nini.Config; |
36 | 32 | ||
37 | namespace OpenSim.Framework.Communications.Cache | 33 | namespace OpenSim.Framework.Communications.Cache |
@@ -40,43 +36,42 @@ namespace OpenSim.Framework.Communications.Cache | |||
40 | /// Basically a hack to give us a Inventory library while we don't have a inventory server | 36 | /// Basically a hack to give us a Inventory library while we don't have a inventory server |
41 | /// once the server is fully implemented then should read the data from that | 37 | /// once the server is fully implemented then should read the data from that |
42 | /// </summary> | 38 | /// </summary> |
43 | public class LibraryRootFolder : Cache.InventoryFolderImpl | 39 | public class LibraryRootFolder : InventoryFolderImpl |
44 | { | 40 | { |
45 | private LLUUID libOwner = new LLUUID("11111111-1111-0000-0000-000100bba000"); | 41 | private LLUUID libOwner = new LLUUID("11111111-1111-0000-0000-000100bba000"); |
46 | private Cache.InventoryFolderImpl m_textureFolder; | 42 | private InventoryFolderImpl m_textureFolder; |
47 | 43 | ||
48 | public LibraryRootFolder() | 44 | public LibraryRootFolder() |
49 | { | 45 | { |
50 | this.agentID = libOwner; | 46 | agentID = libOwner; |
51 | this.folderID = new LLUUID("00000112-000f-0000-0000-000100bba000"); | 47 | folderID = new LLUUID("00000112-000f-0000-0000-000100bba000"); |
52 | this.name = "OpenSim Library"; | 48 | name = "OpenSim Library"; |
53 | this.parentID = LLUUID.Zero; | 49 | parentID = LLUUID.Zero; |
54 | this.type = (short)-1; | 50 | type = (short) -1; |
55 | this.version = (ushort)1; | 51 | version = (ushort) 1; |
56 | 52 | ||
57 | Cache.InventoryFolderImpl folderInfo = new InventoryFolderImpl(); | 53 | InventoryFolderImpl folderInfo = new InventoryFolderImpl(); |
58 | folderInfo.agentID = libOwner; | 54 | folderInfo.agentID = libOwner; |
59 | folderInfo.folderID = new LLUUID("00000112-000f-0000-0000-000100bba001"); | 55 | folderInfo.folderID = new LLUUID("00000112-000f-0000-0000-000100bba001"); |
60 | folderInfo.name = "Texture Library"; | 56 | folderInfo.name = "Texture Library"; |
61 | folderInfo.parentID = this.folderID; | 57 | folderInfo.parentID = folderID; |
62 | folderInfo.type = -1; | 58 | folderInfo.type = -1; |
63 | folderInfo.version = 1; | 59 | folderInfo.version = 1; |
64 | this.SubFolders.Add(folderInfo.folderID, folderInfo); | 60 | SubFolders.Add(folderInfo.folderID, folderInfo); |
65 | this.m_textureFolder = folderInfo; | 61 | m_textureFolder = folderInfo; |
66 | 62 | ||
67 | this.CreateLibraryItems(); | 63 | CreateLibraryItems(); |
68 | 64 | ||
69 | string filePath = Path.Combine(Util.configDir(), "OpenSimLibrary.xml"); | 65 | string filePath = Path.Combine(Util.configDir(), "OpenSimLibrary.xml"); |
70 | if (File.Exists(filePath)) | 66 | if (File.Exists(filePath)) |
71 | { | 67 | { |
72 | XmlConfigSource source = new XmlConfigSource(filePath); | 68 | XmlConfigSource source = new XmlConfigSource(filePath); |
73 | this.ReadItemsFromFile(source); | 69 | ReadItemsFromFile(source); |
74 | } | 70 | } |
75 | } | 71 | } |
76 | 72 | ||
77 | private void CreateLibraryItems() | 73 | private void CreateLibraryItems() |
78 | { | 74 | { |
79 | |||
80 | InventoryItemBase item = new InventoryItemBase(); | 75 | InventoryItemBase item = new InventoryItemBase(); |
81 | item.avatarID = libOwner; | 76 | item.avatarID = libOwner; |
82 | item.creatorsID = libOwner; | 77 | item.creatorsID = libOwner; |
@@ -90,7 +85,7 @@ namespace OpenSim.Framework.Communications.Cache | |||
90 | item.inventoryEveryOnePermissions = 0x7FFFFFFF; | 85 | item.inventoryEveryOnePermissions = 0x7FFFFFFF; |
91 | item.inventoryCurrentPermissions = 0x7FFFFFFF; | 86 | item.inventoryCurrentPermissions = 0x7FFFFFFF; |
92 | item.inventoryNextPermissions = 0x7FFFFFFF; | 87 | item.inventoryNextPermissions = 0x7FFFFFFF; |
93 | this.m_textureFolder.Items.Add(item.inventoryID, item); | 88 | m_textureFolder.Items.Add(item.inventoryID, item); |
94 | 89 | ||
95 | item = new InventoryItemBase(); | 90 | item = new InventoryItemBase(); |
96 | item.avatarID = libOwner; | 91 | item.avatarID = libOwner; |
@@ -105,7 +100,7 @@ namespace OpenSim.Framework.Communications.Cache | |||
105 | item.inventoryEveryOnePermissions = 0x7FFFFFFF; | 100 | item.inventoryEveryOnePermissions = 0x7FFFFFFF; |
106 | item.inventoryCurrentPermissions = 0x7FFFFFFF; | 101 | item.inventoryCurrentPermissions = 0x7FFFFFFF; |
107 | item.inventoryNextPermissions = 0x7FFFFFFF; | 102 | item.inventoryNextPermissions = 0x7FFFFFFF; |
108 | this.m_textureFolder.Items.Add(item.inventoryID, item); | 103 | m_textureFolder.Items.Add(item.inventoryID, item); |
109 | 104 | ||
110 | item = new InventoryItemBase(); | 105 | item = new InventoryItemBase(); |
111 | item.avatarID = libOwner; | 106 | item.avatarID = libOwner; |
@@ -120,7 +115,7 @@ namespace OpenSim.Framework.Communications.Cache | |||
120 | item.inventoryEveryOnePermissions = 0x7FFFFFFF; | 115 | item.inventoryEveryOnePermissions = 0x7FFFFFFF; |
121 | item.inventoryCurrentPermissions = 0x7FFFFFFF; | 116 | item.inventoryCurrentPermissions = 0x7FFFFFFF; |
122 | item.inventoryNextPermissions = 0x7FFFFFFF; | 117 | item.inventoryNextPermissions = 0x7FFFFFFF; |
123 | this.m_textureFolder.Items.Add(item.inventoryID, item); | 118 | m_textureFolder.Items.Add(item.inventoryID, item); |
124 | 119 | ||
125 | item = new InventoryItemBase(); | 120 | item = new InventoryItemBase(); |
126 | item.avatarID = libOwner; | 121 | item.avatarID = libOwner; |
@@ -135,7 +130,7 @@ namespace OpenSim.Framework.Communications.Cache | |||
135 | item.inventoryEveryOnePermissions = 0x7FFFFFFF; | 130 | item.inventoryEveryOnePermissions = 0x7FFFFFFF; |
136 | item.inventoryCurrentPermissions = 0x7FFFFFFF; | 131 | item.inventoryCurrentPermissions = 0x7FFFFFFF; |
137 | item.inventoryNextPermissions = 0x7FFFFFFF; | 132 | item.inventoryNextPermissions = 0x7FFFFFFF; |
138 | this.m_textureFolder.Items.Add(item.inventoryID, item); | 133 | m_textureFolder.Items.Add(item.inventoryID, item); |
139 | 134 | ||
140 | item = new InventoryItemBase(); | 135 | item = new InventoryItemBase(); |
141 | item.avatarID = libOwner; | 136 | item.avatarID = libOwner; |
@@ -150,7 +145,7 @@ namespace OpenSim.Framework.Communications.Cache | |||
150 | item.inventoryEveryOnePermissions = 0x7FFFFFFF; | 145 | item.inventoryEveryOnePermissions = 0x7FFFFFFF; |
151 | item.inventoryCurrentPermissions = 0x7FFFFFFF; | 146 | item.inventoryCurrentPermissions = 0x7FFFFFFF; |
152 | item.inventoryNextPermissions = 0x7FFFFFFF; | 147 | item.inventoryNextPermissions = 0x7FFFFFFF; |
153 | this.m_textureFolder.Items.Add(item.inventoryID, item); | 148 | m_textureFolder.Items.Add(item.inventoryID, item); |
154 | 149 | ||
155 | item = new InventoryItemBase(); | 150 | item = new InventoryItemBase(); |
156 | item.avatarID = libOwner; | 151 | item.avatarID = libOwner; |
@@ -161,10 +156,10 @@ namespace OpenSim.Framework.Communications.Cache | |||
161 | item.inventoryName = "Default Shape"; | 156 | item.inventoryName = "Default Shape"; |
162 | item.assetType = 13; | 157 | item.assetType = 13; |
163 | item.invType = 18; | 158 | item.invType = 18; |
164 | item.parentFolderID = this.folderID; | 159 | item.parentFolderID = folderID; |
165 | item.inventoryCurrentPermissions = 0; | 160 | item.inventoryCurrentPermissions = 0; |
166 | item.inventoryNextPermissions = 0; | 161 | item.inventoryNextPermissions = 0; |
167 | this.Items.Add(item.inventoryID, item); | 162 | Items.Add(item.inventoryID, item); |
168 | 163 | ||
169 | item = new InventoryItemBase(); | 164 | item = new InventoryItemBase(); |
170 | item.avatarID = libOwner; | 165 | item.avatarID = libOwner; |
@@ -175,10 +170,10 @@ namespace OpenSim.Framework.Communications.Cache | |||
175 | item.inventoryName = "Default Skin"; | 170 | item.inventoryName = "Default Skin"; |
176 | item.assetType = 13; | 171 | item.assetType = 13; |
177 | item.invType = 18; | 172 | item.invType = 18; |
178 | item.parentFolderID = this.folderID; | 173 | item.parentFolderID = folderID; |
179 | item.inventoryCurrentPermissions = 0; | 174 | item.inventoryCurrentPermissions = 0; |
180 | item.inventoryNextPermissions = 0; | 175 | item.inventoryNextPermissions = 0; |
181 | this.Items.Add(item.inventoryID, item); | 176 | Items.Add(item.inventoryID, item); |
182 | 177 | ||
183 | item = new InventoryItemBase(); | 178 | item = new InventoryItemBase(); |
184 | item.avatarID = libOwner; | 179 | item.avatarID = libOwner; |
@@ -189,10 +184,10 @@ namespace OpenSim.Framework.Communications.Cache | |||
189 | item.inventoryName = "Default Shirt"; | 184 | item.inventoryName = "Default Shirt"; |
190 | item.assetType = 5; | 185 | item.assetType = 5; |
191 | item.invType = 18; | 186 | item.invType = 18; |
192 | item.parentFolderID = this.folderID; | 187 | item.parentFolderID = folderID; |
193 | item.inventoryCurrentPermissions = 0; | 188 | item.inventoryCurrentPermissions = 0; |
194 | item.inventoryNextPermissions = 0; | 189 | item.inventoryNextPermissions = 0; |
195 | this.Items.Add(item.inventoryID, item); | 190 | Items.Add(item.inventoryID, item); |
196 | 191 | ||
197 | item = new InventoryItemBase(); | 192 | item = new InventoryItemBase(); |
198 | item.avatarID = libOwner; | 193 | item.avatarID = libOwner; |
@@ -203,11 +198,10 @@ namespace OpenSim.Framework.Communications.Cache | |||
203 | item.inventoryName = "Default Pants"; | 198 | item.inventoryName = "Default Pants"; |
204 | item.assetType = 5; | 199 | item.assetType = 5; |
205 | item.invType = 18; | 200 | item.invType = 18; |
206 | item.parentFolderID = this.folderID; | 201 | item.parentFolderID = folderID; |
207 | item.inventoryCurrentPermissions = 0; | 202 | item.inventoryCurrentPermissions = 0; |
208 | item.inventoryNextPermissions = 0; | 203 | item.inventoryNextPermissions = 0; |
209 | this.Items.Add(item.inventoryID, item); | 204 | Items.Add(item.inventoryID, item); |
210 | |||
211 | } | 205 | } |
212 | 206 | ||
213 | private void ReadItemsFromFile(IConfigSource source) | 207 | private void ReadItemsFromFile(IConfigSource source) |
@@ -217,28 +211,28 @@ namespace OpenSim.Framework.Communications.Cache | |||
217 | InventoryItemBase item = new InventoryItemBase(); | 211 | InventoryItemBase item = new InventoryItemBase(); |
218 | item.avatarID = libOwner; | 212 | item.avatarID = libOwner; |
219 | item.creatorsID = libOwner; | 213 | item.creatorsID = libOwner; |
220 | item.inventoryID = new LLUUID(source.Configs[i].GetString("inventoryID", LLUUID.Random().ToStringHyphenated())); | 214 | item.inventoryID = |
215 | new LLUUID(source.Configs[i].GetString("inventoryID", LLUUID.Random().ToStringHyphenated())); | ||
221 | item.assetID = new LLUUID(source.Configs[i].GetString("assetID", LLUUID.Random().ToStringHyphenated())); | 216 | item.assetID = new LLUUID(source.Configs[i].GetString("assetID", LLUUID.Random().ToStringHyphenated())); |
222 | item.inventoryDescription = source.Configs[i].GetString("description", ""); | 217 | item.inventoryDescription = source.Configs[i].GetString("description", ""); |
223 | item.inventoryName = source.Configs[i].GetString("name", ""); | 218 | item.inventoryName = source.Configs[i].GetString("name", ""); |
224 | item.assetType = source.Configs[i].GetInt("assetType", 0); | 219 | item.assetType = source.Configs[i].GetInt("assetType", 0); |
225 | item.invType = source.Configs[i].GetInt("inventoryType", 0); | 220 | item.invType = source.Configs[i].GetInt("inventoryType", 0); |
226 | item.inventoryCurrentPermissions = (uint)source.Configs[i].GetLong("currentPermissions", 0x7FFFFFFF); | 221 | item.inventoryCurrentPermissions = (uint) source.Configs[i].GetLong("currentPermissions", 0x7FFFFFFF); |
227 | item.inventoryNextPermissions = (uint)source.Configs[i].GetLong("nextPermissions", 0x7FFFFFFF); | 222 | item.inventoryNextPermissions = (uint) source.Configs[i].GetLong("nextPermissions", 0x7FFFFFFF); |
228 | item.inventoryEveryOnePermissions = (uint)source.Configs[i].GetLong("everyonePermissions", 0x7FFFFFFF); | 223 | item.inventoryEveryOnePermissions = (uint) source.Configs[i].GetLong("everyonePermissions", 0x7FFFFFFF); |
229 | item.inventoryBasePermissions = (uint)source.Configs[i].GetLong("basePermissions", 0x7FFFFFFF); | 224 | item.inventoryBasePermissions = (uint) source.Configs[i].GetLong("basePermissions", 0x7FFFFFFF); |
230 | if (item.assetType == 0) | 225 | if (item.assetType == 0) |
231 | { | 226 | { |
232 | item.parentFolderID = this.m_textureFolder.folderID; | 227 | item.parentFolderID = m_textureFolder.folderID; |
233 | this.m_textureFolder.Items.Add(item.inventoryID, item); | 228 | m_textureFolder.Items.Add(item.inventoryID, item); |
234 | } | 229 | } |
235 | else | 230 | else |
236 | { | 231 | { |
237 | item.parentFolderID = this.folderID; | 232 | item.parentFolderID = folderID; |
238 | this.Items.Add(item.inventoryID, item); | 233 | Items.Add(item.inventoryID, item); |
239 | } | 234 | } |
240 | } | 235 | } |
241 | } | 236 | } |
242 | |||
243 | } | 237 | } |
244 | } \ No newline at end of file | 238 | } \ No newline at end of file |
diff --git a/OpenSim/Framework/Communications/Cache/SQLAssetServer.cs b/OpenSim/Framework/Communications/Cache/SQLAssetServer.cs index 0953e19..b4f29db 100644 --- a/OpenSim/Framework/Communications/Cache/SQLAssetServer.cs +++ b/OpenSim/Framework/Communications/Cache/SQLAssetServer.cs | |||
@@ -26,14 +26,8 @@ | |||
26 | * | 26 | * |
27 | */ | 27 | */ |
28 | using System; | 28 | using System; |
29 | using System.IO; | ||
30 | using System.Threading; | ||
31 | using System.Reflection; | 29 | using System.Reflection; |
32 | using libsecondlife; | ||
33 | using Nini.Config; | ||
34 | using OpenSim.Framework.Console; | 30 | using OpenSim.Framework.Console; |
35 | using OpenSim.Framework.Interfaces; | ||
36 | using OpenSim.Framework; | ||
37 | 31 | ||
38 | namespace OpenSim.Framework.Communications.Cache | 32 | namespace OpenSim.Framework.Communications.Cache |
39 | { | 33 | { |
@@ -62,11 +56,14 @@ namespace OpenSim.Framework.Communications.Cache | |||
62 | 56 | ||
63 | if (typeInterface != null) | 57 | if (typeInterface != null) |
64 | { | 58 | { |
65 | IAssetProvider plug = (IAssetProvider)Activator.CreateInstance(pluginAssembly.GetType(pluginType.ToString())); | 59 | IAssetProvider plug = |
60 | (IAssetProvider) Activator.CreateInstance(pluginAssembly.GetType(pluginType.ToString())); | ||
66 | m_assetProviderPlugin = plug; | 61 | m_assetProviderPlugin = plug; |
67 | m_assetProviderPlugin.Initialise(); | 62 | m_assetProviderPlugin.Initialise(); |
68 | 63 | ||
69 | MainLog.Instance.Verbose("AssetStorage","Added " + m_assetProviderPlugin.Name + " " + m_assetProviderPlugin.Version); | 64 | MainLog.Instance.Verbose("AssetStorage", |
65 | "Added " + m_assetProviderPlugin.Name + " " + | ||
66 | m_assetProviderPlugin.Version); | ||
70 | } | 67 | } |
71 | 68 | ||
72 | typeInterface = null; | 69 | typeInterface = null; |
@@ -84,13 +81,13 @@ namespace OpenSim.Framework.Communications.Cache | |||
84 | m_assetProviderPlugin.CommitAssets(); | 81 | m_assetProviderPlugin.CommitAssets(); |
85 | } | 82 | } |
86 | 83 | ||
87 | override protected void RunRequests() | 84 | protected override void RunRequests() |
88 | { | 85 | { |
89 | while (true) | 86 | while (true) |
90 | { | 87 | { |
91 | ARequest req = this._assetRequests.Dequeue(); | 88 | ARequest req = _assetRequests.Dequeue(); |
92 | 89 | ||
93 | //MainLog.Instance.Verbose("AssetStorage","Requesting asset: " + req.AssetID); | 90 | //MainLog.Instance.Verbose("AssetStorage","Requesting asset: " + req.AssetID); |
94 | 91 | ||
95 | AssetBase asset = null; | 92 | AssetBase asset = null; |
96 | lock (syncLock) | 93 | lock (syncLock) |
@@ -105,9 +102,7 @@ namespace OpenSim.Framework.Communications.Cache | |||
105 | { | 102 | { |
106 | _receiver.AssetNotFound(req.AssetID); | 103 | _receiver.AssetNotFound(req.AssetID); |
107 | } | 104 | } |
108 | |||
109 | } | 105 | } |
110 | |||
111 | } | 106 | } |
112 | 107 | ||
113 | protected override void StoreAsset(AssetBase asset) | 108 | protected override void StoreAsset(AssetBase asset) |
diff --git a/OpenSim/Framework/Communications/Cache/UserProfileCache.cs b/OpenSim/Framework/Communications/Cache/UserProfileCache.cs index 8105556..fe943b0 100644 --- a/OpenSim/Framework/Communications/Cache/UserProfileCache.cs +++ b/OpenSim/Framework/Communications/Cache/UserProfileCache.cs | |||
@@ -25,16 +25,8 @@ | |||
25 | * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | 25 | * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
26 | * | 26 | * |
27 | */ | 27 | */ |
28 | using System; | ||
29 | using System.Collections; | ||
30 | using System.Collections.Generic; | 28 | using System.Collections.Generic; |
31 | using System.Text; | ||
32 | using System.IO; | ||
33 | using libsecondlife; | 29 | using libsecondlife; |
34 | using OpenSim.Framework.Communications.Cache; | ||
35 | using OpenSim.Framework.Interfaces; | ||
36 | using OpenSim.Framework; | ||
37 | |||
38 | 30 | ||
39 | namespace OpenSim.Framework.Communications.Cache | 31 | namespace OpenSim.Framework.Communications.Cache |
40 | { | 32 | { |
@@ -49,7 +41,7 @@ namespace OpenSim.Framework.Communications.Cache | |||
49 | // Methods | 41 | // Methods |
50 | public UserProfileCache(CommunicationsManager parent) | 42 | public UserProfileCache(CommunicationsManager parent) |
51 | { | 43 | { |
52 | this.m_parent = parent; | 44 | m_parent = parent; |
53 | } | 45 | } |
54 | 46 | ||
55 | /// <summary> | 47 | /// <summary> |
@@ -62,14 +54,14 @@ namespace OpenSim.Framework.Communications.Cache | |||
62 | // Potential fix - Multithreading issue. | 54 | // Potential fix - Multithreading issue. |
63 | lock (UserProfiles) | 55 | lock (UserProfiles) |
64 | { | 56 | { |
65 | if (!this.UserProfiles.ContainsKey(userID)) | 57 | if (!UserProfiles.ContainsKey(userID)) |
66 | { | 58 | { |
67 | CachedUserInfo userInfo = new CachedUserInfo(this.m_parent); | 59 | CachedUserInfo userInfo = new CachedUserInfo(m_parent); |
68 | userInfo.UserProfile = this.RequestUserProfileForUser(userID); | 60 | userInfo.UserProfile = RequestUserProfileForUser(userID); |
69 | if (userInfo.UserProfile != null) | 61 | if (userInfo.UserProfile != null) |
70 | { | 62 | { |
71 | this.RequestInventoryForUser(userID, userInfo); | 63 | RequestInventoryForUser(userID, userInfo); |
72 | this.UserProfiles.Add(userID, userInfo); | 64 | UserProfiles.Add(userID, userInfo); |
73 | } | 65 | } |
74 | else | 66 | else |
75 | { | 67 | { |
@@ -91,26 +83,28 @@ namespace OpenSim.Framework.Communications.Cache | |||
91 | 83 | ||
92 | public CachedUserInfo GetUserDetails(LLUUID userID) | 84 | public CachedUserInfo GetUserDetails(LLUUID userID) |
93 | { | 85 | { |
94 | if (this.UserProfiles.ContainsKey(userID)) | 86 | if (UserProfiles.ContainsKey(userID)) |
95 | { | 87 | { |
96 | return this.UserProfiles[userID]; | 88 | return UserProfiles[userID]; |
97 | } | 89 | } |
98 | return null; | 90 | return null; |
99 | } | 91 | } |
100 | 92 | ||
101 | public void HandleCreateInventoryFolder(IClientAPI remoteClient, LLUUID folderID, ushort folderType, string folderName, LLUUID parentID) | 93 | public void HandleCreateInventoryFolder(IClientAPI remoteClient, LLUUID folderID, ushort folderType, |
94 | string folderName, LLUUID parentID) | ||
102 | { | 95 | { |
103 | if (this.UserProfiles.ContainsKey(remoteClient.AgentId)) | 96 | if (UserProfiles.ContainsKey(remoteClient.AgentId)) |
104 | { | 97 | { |
105 | if (this.UserProfiles[remoteClient.AgentId].RootFolder != null) | 98 | if (UserProfiles[remoteClient.AgentId].RootFolder != null) |
106 | { | 99 | { |
107 | CachedUserInfo info = this.UserProfiles[remoteClient.AgentId]; | 100 | CachedUserInfo info = UserProfiles[remoteClient.AgentId]; |
108 | if (info.RootFolder.folderID == parentID) | 101 | if (info.RootFolder.folderID == parentID) |
109 | { | 102 | { |
110 | InventoryFolderImpl createdFolder = info.RootFolder.CreateNewSubFolder(folderID, folderName, folderType); | 103 | InventoryFolderImpl createdFolder = |
104 | info.RootFolder.CreateNewSubFolder(folderID, folderName, folderType); | ||
111 | if (createdFolder != null) | 105 | if (createdFolder != null) |
112 | { | 106 | { |
113 | this.m_parent.InventoryService.AddNewInventoryFolder(remoteClient.AgentId, createdFolder); | 107 | m_parent.InventoryService.AddNewInventoryFolder(remoteClient.AgentId, createdFolder); |
114 | } | 108 | } |
115 | } | 109 | } |
116 | else | 110 | else |
@@ -125,27 +119,30 @@ namespace OpenSim.Framework.Communications.Cache | |||
125 | } | 119 | } |
126 | } | 120 | } |
127 | 121 | ||
128 | public void HandleFecthInventoryDescendents(IClientAPI remoteClient, LLUUID folderID, LLUUID ownerID, bool fetchFolders, bool fetchItems, int sortOrder) | 122 | public void HandleFecthInventoryDescendents(IClientAPI remoteClient, LLUUID folderID, LLUUID ownerID, |
123 | bool fetchFolders, bool fetchItems, int sortOrder) | ||
129 | { | 124 | { |
130 | InventoryFolderImpl fold = null; | 125 | InventoryFolderImpl fold = null; |
131 | if (folderID == libraryRoot.folderID ) | 126 | if (folderID == libraryRoot.folderID) |
132 | { | 127 | { |
133 | remoteClient.SendInventoryFolderDetails(libraryRoot.agentID, libraryRoot.folderID, libraryRoot.RequestListOfItems()); | 128 | remoteClient.SendInventoryFolderDetails(libraryRoot.agentID, libraryRoot.folderID, |
129 | libraryRoot.RequestListOfItems()); | ||
134 | } | 130 | } |
135 | else if (( fold = libraryRoot.HasSubFolder(folderID)) != null) | 131 | else if ((fold = libraryRoot.HasSubFolder(folderID)) != null) |
136 | { | 132 | { |
137 | remoteClient.SendInventoryFolderDetails(libraryRoot.agentID, folderID, fold.RequestListOfItems()); | 133 | remoteClient.SendInventoryFolderDetails(libraryRoot.agentID, folderID, fold.RequestListOfItems()); |
138 | } | 134 | } |
139 | else if (this.UserProfiles.ContainsKey(remoteClient.AgentId)) | 135 | else if (UserProfiles.ContainsKey(remoteClient.AgentId)) |
140 | { | 136 | { |
141 | if (this.UserProfiles[remoteClient.AgentId].RootFolder != null) | 137 | if (UserProfiles[remoteClient.AgentId].RootFolder != null) |
142 | { | 138 | { |
143 | CachedUserInfo info = this.UserProfiles[remoteClient.AgentId]; | 139 | CachedUserInfo info = UserProfiles[remoteClient.AgentId]; |
144 | if (info.RootFolder.folderID == folderID) | 140 | if (info.RootFolder.folderID == folderID) |
145 | { | 141 | { |
146 | if (fetchItems) | 142 | if (fetchItems) |
147 | { | 143 | { |
148 | remoteClient.SendInventoryFolderDetails(remoteClient.AgentId, folderID, info.RootFolder.RequestListOfItems()); | 144 | remoteClient.SendInventoryFolderDetails(remoteClient.AgentId, folderID, |
145 | info.RootFolder.RequestListOfItems()); | ||
149 | } | 146 | } |
150 | } | 147 | } |
151 | else | 148 | else |
@@ -153,7 +150,8 @@ namespace OpenSim.Framework.Communications.Cache | |||
153 | InventoryFolderImpl folder = info.RootFolder.HasSubFolder(folderID); | 150 | InventoryFolderImpl folder = info.RootFolder.HasSubFolder(folderID); |
154 | if ((folder != null) && fetchItems) | 151 | if ((folder != null) && fetchItems) |
155 | { | 152 | { |
156 | remoteClient.SendInventoryFolderDetails(remoteClient.AgentId, folderID, folder.RequestListOfItems()); | 153 | remoteClient.SendInventoryFolderDetails(remoteClient.AgentId, folderID, |
154 | folder.RequestListOfItems()); | ||
157 | } | 155 | } |
158 | } | 156 | } |
159 | } | 157 | } |
@@ -166,11 +164,11 @@ namespace OpenSim.Framework.Communications.Cache | |||
166 | { | 164 | { |
167 | //Console.WriteLine("request info for library item"); | 165 | //Console.WriteLine("request info for library item"); |
168 | } | 166 | } |
169 | else if (this.UserProfiles.ContainsKey(remoteClient.AgentId)) | 167 | else if (UserProfiles.ContainsKey(remoteClient.AgentId)) |
170 | { | 168 | { |
171 | if (this.UserProfiles[remoteClient.AgentId].RootFolder != null) | 169 | if (UserProfiles[remoteClient.AgentId].RootFolder != null) |
172 | { | 170 | { |
173 | InventoryItemBase item = this.UserProfiles[remoteClient.AgentId].RootFolder.HasItem(itemID); | 171 | InventoryItemBase item = UserProfiles[remoteClient.AgentId].RootFolder.HasItem(itemID); |
174 | if (item != null) | 172 | if (item != null) |
175 | { | 173 | { |
176 | remoteClient.SendInventoryItemDetails(ownerID, item); | 174 | remoteClient.SendInventoryItemDetails(ownerID, item); |
@@ -185,7 +183,7 @@ namespace OpenSim.Framework.Communications.Cache | |||
185 | /// <param name="userID"></param> | 183 | /// <param name="userID"></param> |
186 | private void RequestInventoryForUser(LLUUID userID, CachedUserInfo userInfo) | 184 | private void RequestInventoryForUser(LLUUID userID, CachedUserInfo userInfo) |
187 | { | 185 | { |
188 | this.m_parent.InventoryService.RequestInventoryForUser(userID, userInfo.FolderReceive, userInfo.ItemReceive); | 186 | m_parent.InventoryService.RequestInventoryForUser(userID, userInfo.FolderReceive, userInfo.ItemReceive); |
189 | } | 187 | } |
190 | 188 | ||
191 | /// <summary> | 189 | /// <summary> |
@@ -194,7 +192,7 @@ namespace OpenSim.Framework.Communications.Cache | |||
194 | /// <param name="userID"></param> | 192 | /// <param name="userID"></param> |
195 | private UserProfileData RequestUserProfileForUser(LLUUID userID) | 193 | private UserProfileData RequestUserProfileForUser(LLUUID userID) |
196 | { | 194 | { |
197 | return this.m_parent.UserService.GetUserProfile(userID); | 195 | return m_parent.UserService.GetUserProfile(userID); |
198 | } | 196 | } |
199 | 197 | ||
200 | /// <summary> | 198 | /// <summary> |
diff --git a/OpenSim/Framework/Communications/Capabilities/Caps.cs b/OpenSim/Framework/Communications/Capabilities/Caps.cs index a114b64..23dfcc6 100644 --- a/OpenSim/Framework/Communications/Capabilities/Caps.cs +++ b/OpenSim/Framework/Communications/Capabilities/Caps.cs | |||
@@ -28,18 +28,23 @@ | |||
28 | using System; | 28 | using System; |
29 | using System.Collections; | 29 | using System.Collections; |
30 | using System.Collections.Generic; | 30 | using System.Collections.Generic; |
31 | using System.Text; | ||
32 | using System.IO; | 31 | using System.IO; |
33 | using libsecondlife; | 32 | using libsecondlife; |
33 | using OpenSim.Framework; | ||
34 | using OpenSim.Framework.Communications.Cache; | 34 | using OpenSim.Framework.Communications.Cache; |
35 | using OpenSim.Framework.Console; | ||
35 | using OpenSim.Framework.Servers; | 36 | using OpenSim.Framework.Servers; |
36 | using OpenSim.Framework; | ||
37 | 37 | ||
38 | namespace OpenSim.Region.Capabilities | 38 | namespace OpenSim.Region.Capabilities |
39 | { | 39 | { |
40 | public delegate void UpLoadedAsset(string assetName, string description, LLUUID assetID, LLUUID inventoryItem, LLUUID parentFolder, byte[] data, string inventoryType, string assetType); | 40 | public delegate void UpLoadedAsset( |
41 | string assetName, string description, LLUUID assetID, LLUUID inventoryItem, LLUUID parentFolder, byte[] data, | ||
42 | string inventoryType, string assetType); | ||
43 | |||
41 | public delegate LLUUID UpdateItem(LLUUID itemID, byte[] data); | 44 | public delegate LLUUID UpdateItem(LLUUID itemID, byte[] data); |
45 | |||
42 | public delegate void NewInventoryItem(LLUUID userID, InventoryItemBase item); | 46 | public delegate void NewInventoryItem(LLUUID userID, InventoryItemBase item); |
47 | |||
43 | public delegate LLUUID ItemUpdatedCallback(LLUUID userID, LLUUID itemID, byte[] data); | 48 | public delegate LLUUID ItemUpdatedCallback(LLUUID userID, LLUUID itemID, byte[] data); |
44 | 49 | ||
45 | public class Caps | 50 | public class Caps |
@@ -62,7 +67,8 @@ namespace OpenSim.Region.Capabilities | |||
62 | public ItemUpdatedCallback ItemUpdatedCall = null; | 67 | public ItemUpdatedCallback ItemUpdatedCall = null; |
63 | private bool m_dumpAssetsToFile; | 68 | private bool m_dumpAssetsToFile; |
64 | 69 | ||
65 | public Caps(AssetCache assetCach, BaseHttpServer httpServer, string httpListen, int httpPort, string capsPath, LLUUID agent, bool dumpAssetsToFile) | 70 | public Caps(AssetCache assetCach, BaseHttpServer httpServer, string httpListen, int httpPort, string capsPath, |
71 | LLUUID agent, bool dumpAssetsToFile) | ||
66 | { | 72 | { |
67 | assetCache = assetCach; | 73 | assetCache = assetCach; |
68 | m_capsObjectPath = capsPath; | 74 | m_capsObjectPath = capsPath; |
@@ -78,12 +84,17 @@ namespace OpenSim.Region.Capabilities | |||
78 | /// </summary> | 84 | /// </summary> |
79 | public void RegisterHandlers() | 85 | public void RegisterHandlers() |
80 | { | 86 | { |
81 | OpenSim.Framework.Console.MainLog.Instance.Verbose("CAPS","Registering CAPS handlers"); | 87 | MainLog.Instance.Verbose("CAPS", "Registering CAPS handlers"); |
82 | string capsBase = "/CAPS/" + m_capsObjectPath; | 88 | string capsBase = "/CAPS/" + m_capsObjectPath; |
83 | try | 89 | try |
84 | { | 90 | { |
85 | httpListener.AddStreamHandler(new LLSDStreamhandler<LLSDMapRequest, LLSDMapLayerResponse>("POST", capsBase + m_mapLayerPath, this.GetMapLayer)); | 91 | httpListener.AddStreamHandler( |
86 | httpListener.AddStreamHandler(new LLSDStreamhandler<LLSDAssetUploadRequest, LLSDAssetUploadResponse>("POST", capsBase + m_newInventory, this.NewAgentInventoryRequest)); | 92 | new LLSDStreamhandler<LLSDMapRequest, LLSDMapLayerResponse>("POST", capsBase + m_mapLayerPath, |
93 | GetMapLayer)); | ||
94 | httpListener.AddStreamHandler( | ||
95 | new LLSDStreamhandler<LLSDAssetUploadRequest, LLSDAssetUploadResponse>("POST", | ||
96 | capsBase + m_newInventory, | ||
97 | NewAgentInventoryRequest)); | ||
87 | 98 | ||
88 | AddLegacyCapsHandler(httpListener, m_requestPath, CapsRequest); | 99 | AddLegacyCapsHandler(httpListener, m_requestPath, CapsRequest); |
89 | //AddLegacyCapsHandler(httpListener, m_requestTexture , RequestTexture); | 100 | //AddLegacyCapsHandler(httpListener, m_requestTexture , RequestTexture); |
@@ -103,7 +114,7 @@ namespace OpenSim.Region.Capabilities | |||
103 | string capsBase = "/CAPS/" + m_capsObjectPath; | 114 | string capsBase = "/CAPS/" + m_capsObjectPath; |
104 | httpListener.AddStreamHandler(new RestStreamHandler("POST", capsBase + path, restMethod)); | 115 | httpListener.AddStreamHandler(new RestStreamHandler("POST", capsBase + path, restMethod)); |
105 | } | 116 | } |
106 | 117 | ||
107 | /// <summary> | 118 | /// <summary> |
108 | /// | 119 | /// |
109 | /// </summary> | 120 | /// </summary> |
@@ -113,8 +124,8 @@ namespace OpenSim.Region.Capabilities | |||
113 | /// <returns></returns> | 124 | /// <returns></returns> |
114 | public string CapsRequest(string request, string path, string param) | 125 | public string CapsRequest(string request, string path, string param) |
115 | { | 126 | { |
116 | // Console.WriteLine("caps request " + request); | 127 | // Console.WriteLine("caps request " + request); |
117 | string result = LLSDHelpers.SerialiseLLSDReply(this.GetCapabilities()); | 128 | string result = LLSDHelpers.SerialiseLLSDReply(GetCapabilities()); |
118 | return result; | 129 | return result; |
119 | } | 130 | } |
120 | 131 | ||
@@ -125,9 +136,10 @@ namespace OpenSim.Region.Capabilities | |||
125 | protected LLSDCapsDetails GetCapabilities() | 136 | protected LLSDCapsDetails GetCapabilities() |
126 | { | 137 | { |
127 | LLSDCapsDetails caps = new LLSDCapsDetails(); | 138 | LLSDCapsDetails caps = new LLSDCapsDetails(); |
128 | string capsBaseUrl = "http://" + m_httpListenerHostName + ":" + m_httpListenPort.ToString() + "/CAPS/" + m_capsObjectPath; | 139 | string capsBaseUrl = "http://" + m_httpListenerHostName + ":" + m_httpListenPort.ToString() + "/CAPS/" + |
140 | m_capsObjectPath; | ||
129 | caps.MapLayer = capsBaseUrl + m_mapLayerPath; | 141 | caps.MapLayer = capsBaseUrl + m_mapLayerPath; |
130 | // caps.RequestTextureDownload = capsBaseUrl + m_requestTexture; | 142 | // caps.RequestTextureDownload = capsBaseUrl + m_requestTexture; |
131 | caps.NewFileAgentInventory = capsBaseUrl + m_newInventory; | 143 | caps.NewFileAgentInventory = capsBaseUrl + m_newInventory; |
132 | caps.UpdateNotecardAgentInventory = capsBaseUrl + m_notecardUpdatePath; | 144 | caps.UpdateNotecardAgentInventory = capsBaseUrl + m_notecardUpdatePath; |
133 | caps.UpdateScriptAgentInventory = capsBaseUrl + m_notecardUpdatePath; | 145 | caps.UpdateScriptAgentInventory = capsBaseUrl + m_notecardUpdatePath; |
@@ -142,7 +154,7 @@ namespace OpenSim.Region.Capabilities | |||
142 | public LLSDMapLayerResponse GetMapLayer(LLSDMapRequest mapReq) | 154 | public LLSDMapLayerResponse GetMapLayer(LLSDMapRequest mapReq) |
143 | { | 155 | { |
144 | LLSDMapLayerResponse mapResponse = new LLSDMapLayerResponse(); | 156 | LLSDMapLayerResponse mapResponse = new LLSDMapLayerResponse(); |
145 | mapResponse.LayerData.Array.Add(this.GetLLSDMapLayerResponse()); | 157 | mapResponse.LayerData.Array.Add(GetLLSDMapLayerResponse()); |
146 | return mapResponse; | 158 | return mapResponse; |
147 | } | 159 | } |
148 | 160 | ||
@@ -174,6 +186,7 @@ namespace OpenSim.Region.Capabilities | |||
174 | } | 186 | } |
175 | 187 | ||
176 | #region EventQueue (Currently not enabled) | 188 | #region EventQueue (Currently not enabled) |
189 | |||
177 | /// <summary> | 190 | /// <summary> |
178 | /// | 191 | /// |
179 | /// </summary> | 192 | /// </summary> |
@@ -184,10 +197,10 @@ namespace OpenSim.Region.Capabilities | |||
184 | public string ProcessEventQueue(string request, string path, string param) | 197 | public string ProcessEventQueue(string request, string path, string param) |
185 | { | 198 | { |
186 | string res = ""; | 199 | string res = ""; |
187 | 200 | ||
188 | if (this.CapsEventQueue.Count > 0) | 201 | if (CapsEventQueue.Count > 0) |
189 | { | 202 | { |
190 | lock (this.CapsEventQueue) | 203 | lock (CapsEventQueue) |
191 | { | 204 | { |
192 | string item = CapsEventQueue.Dequeue(); | 205 | string item = CapsEventQueue.Dequeue(); |
193 | res = item; | 206 | res = item; |
@@ -195,7 +208,7 @@ namespace OpenSim.Region.Capabilities | |||
195 | } | 208 | } |
196 | else | 209 | else |
197 | { | 210 | { |
198 | res = this.CreateEmptyEventResponse(); | 211 | res = CreateEmptyEventResponse(); |
199 | } | 212 | } |
200 | return res; | 213 | return res; |
201 | } | 214 | } |
@@ -214,8 +227,8 @@ namespace OpenSim.Region.Capabilities | |||
214 | eventItem.events.Array.Add(new LLSDEmpty()); | 227 | eventItem.events.Array.Add(new LLSDEmpty()); |
215 | string res = LLSDHelpers.SerialiseLLSDReply(eventItem); | 228 | string res = LLSDHelpers.SerialiseLLSDReply(eventItem); |
216 | eventQueueCount++; | 229 | eventQueueCount++; |
217 | 230 | ||
218 | this.CapsEventQueue.Enqueue(res); | 231 | CapsEventQueue.Enqueue(res); |
219 | return res; | 232 | return res; |
220 | } | 233 | } |
221 | 234 | ||
@@ -232,6 +245,7 @@ namespace OpenSim.Region.Capabilities | |||
232 | eventQueueCount++; | 245 | eventQueueCount++; |
233 | return res; | 246 | return res; |
234 | } | 247 | } |
248 | |||
235 | #endregion | 249 | #endregion |
236 | 250 | ||
237 | /// <summary> | 251 | /// <summary> |
@@ -243,24 +257,27 @@ namespace OpenSim.Region.Capabilities | |||
243 | /// <returns></returns> | 257 | /// <returns></returns> |
244 | public string NoteCardAgentInventory(string request, string path, string param) | 258 | public string NoteCardAgentInventory(string request, string path, string param) |
245 | { | 259 | { |
246 | Hashtable hash = (Hashtable)LLSD.LLSDDeserialize(Helpers.StringToField(request)); | 260 | Hashtable hash = (Hashtable) LLSD.LLSDDeserialize(Helpers.StringToField(request)); |
247 | LLSDItemUpdate llsdRequest = new LLSDItemUpdate(); | 261 | LLSDItemUpdate llsdRequest = new LLSDItemUpdate(); |
248 | LLSDHelpers.DeserialiseLLSDMap(hash, llsdRequest); | 262 | LLSDHelpers.DeserialiseLLSDMap(hash, llsdRequest); |
249 | 263 | ||
250 | string capsBase = "/CAPS/" + m_capsObjectPath; | 264 | string capsBase = "/CAPS/" + m_capsObjectPath; |
251 | LLUUID newInvItem = llsdRequest.item_id; | 265 | LLUUID newInvItem = llsdRequest.item_id; |
252 | string uploaderPath = Util.RandomClass.Next(5000, 8000).ToString("0000"); | 266 | string uploaderPath = Util.RandomClass.Next(5000, 8000).ToString("0000"); |
253 | 267 | ||
254 | ItemUpdater uploader = new ItemUpdater(newInvItem, capsBase + uploaderPath, this.httpListener, m_dumpAssetsToFile ); | 268 | ItemUpdater uploader = |
255 | uploader.OnUpLoad += this.ItemUpdated; | 269 | new ItemUpdater(newInvItem, capsBase + uploaderPath, httpListener, m_dumpAssetsToFile); |
270 | uploader.OnUpLoad += ItemUpdated; | ||
256 | 271 | ||
257 | httpListener.AddStreamHandler(new BinaryStreamHandler("POST", capsBase + uploaderPath, uploader.uploaderCaps)); | 272 | httpListener.AddStreamHandler( |
258 | string uploaderURL = "http://" + m_httpListenerHostName + ":" + m_httpListenPort.ToString() + capsBase + uploaderPath; | 273 | new BinaryStreamHandler("POST", capsBase + uploaderPath, uploader.uploaderCaps)); |
274 | string uploaderURL = "http://" + m_httpListenerHostName + ":" + m_httpListenPort.ToString() + capsBase + | ||
275 | uploaderPath; | ||
259 | 276 | ||
260 | LLSDAssetUploadResponse uploadResponse = new LLSDAssetUploadResponse(); | 277 | LLSDAssetUploadResponse uploadResponse = new LLSDAssetUploadResponse(); |
261 | uploadResponse.uploader = uploaderURL; | 278 | uploadResponse.uploader = uploaderURL; |
262 | uploadResponse.state = "upload"; | 279 | uploadResponse.state = "upload"; |
263 | 280 | ||
264 | return LLSDHelpers.SerialiseLLSDReply(uploadResponse); | 281 | return LLSDHelpers.SerialiseLLSDReply(uploadResponse); |
265 | } | 282 | } |
266 | 283 | ||
@@ -272,7 +289,7 @@ namespace OpenSim.Region.Capabilities | |||
272 | public LLSDAssetUploadResponse NewAgentInventoryRequest(LLSDAssetUploadRequest llsdRequest) | 289 | public LLSDAssetUploadResponse NewAgentInventoryRequest(LLSDAssetUploadRequest llsdRequest) |
273 | { | 290 | { |
274 | //Console.WriteLine("asset upload request via CAPS" + llsdRequest.inventory_type +" , "+ llsdRequest.asset_type); | 291 | //Console.WriteLine("asset upload request via CAPS" + llsdRequest.inventory_type +" , "+ llsdRequest.asset_type); |
275 | 292 | ||
276 | string assetName = llsdRequest.name; | 293 | string assetName = llsdRequest.name; |
277 | string assetDes = llsdRequest.description; | 294 | string assetDes = llsdRequest.description; |
278 | string capsBase = "/CAPS/" + m_capsObjectPath; | 295 | string capsBase = "/CAPS/" + m_capsObjectPath; |
@@ -281,14 +298,18 @@ namespace OpenSim.Region.Capabilities | |||
281 | LLUUID parentFolder = llsdRequest.folder_id; | 298 | LLUUID parentFolder = llsdRequest.folder_id; |
282 | string uploaderPath = Util.RandomClass.Next(5000, 8000).ToString("0000"); | 299 | string uploaderPath = Util.RandomClass.Next(5000, 8000).ToString("0000"); |
283 | 300 | ||
284 | AssetUploader uploader = new AssetUploader(assetName, assetDes, newAsset, newInvItem, parentFolder, llsdRequest.inventory_type, llsdRequest.asset_type, capsBase + uploaderPath, this.httpListener, m_dumpAssetsToFile); | 301 | AssetUploader uploader = |
285 | httpListener.AddStreamHandler(new BinaryStreamHandler("POST", capsBase + uploaderPath, uploader.uploaderCaps)); | 302 | new AssetUploader(assetName, assetDes, newAsset, newInvItem, parentFolder, llsdRequest.inventory_type, |
286 | string uploaderURL = "http://" + m_httpListenerHostName + ":" + m_httpListenPort.ToString() + capsBase + uploaderPath; | 303 | llsdRequest.asset_type, capsBase + uploaderPath, httpListener, m_dumpAssetsToFile); |
304 | httpListener.AddStreamHandler( | ||
305 | new BinaryStreamHandler("POST", capsBase + uploaderPath, uploader.uploaderCaps)); | ||
306 | string uploaderURL = "http://" + m_httpListenerHostName + ":" + m_httpListenPort.ToString() + capsBase + | ||
307 | uploaderPath; | ||
287 | 308 | ||
288 | LLSDAssetUploadResponse uploadResponse = new LLSDAssetUploadResponse(); | 309 | LLSDAssetUploadResponse uploadResponse = new LLSDAssetUploadResponse(); |
289 | uploadResponse.uploader = uploaderURL; | 310 | uploadResponse.uploader = uploaderURL; |
290 | uploadResponse.state = "upload"; | 311 | uploadResponse.state = "upload"; |
291 | uploader.OnUpLoad += this.UploadCompleteHandler; | 312 | uploader.OnUpLoad += UploadCompleteHandler; |
292 | return uploadResponse; | 313 | return uploadResponse; |
293 | } | 314 | } |
294 | 315 | ||
@@ -298,7 +319,9 @@ namespace OpenSim.Region.Capabilities | |||
298 | /// <param name="assetID"></param> | 319 | /// <param name="assetID"></param> |
299 | /// <param name="inventoryItem"></param> | 320 | /// <param name="inventoryItem"></param> |
300 | /// <param name="data"></param> | 321 | /// <param name="data"></param> |
301 | public void UploadCompleteHandler(string assetName, string assetDescription, LLUUID assetID, LLUUID inventoryItem, LLUUID parentFolder, byte[] data, string inventoryType, string assetType) | 322 | public void UploadCompleteHandler(string assetName, string assetDescription, LLUUID assetID, |
323 | LLUUID inventoryItem, LLUUID parentFolder, byte[] data, string inventoryType, | ||
324 | string assetType) | ||
302 | { | 325 | { |
303 | sbyte assType = 0; | 326 | sbyte assType = 0; |
304 | sbyte inType = 0; | 327 | sbyte inType = 0; |
@@ -319,14 +342,14 @@ namespace OpenSim.Region.Capabilities | |||
319 | asset.FullID = assetID; | 342 | asset.FullID = assetID; |
320 | asset.Type = assType; | 343 | asset.Type = assType; |
321 | asset.InvType = inType; | 344 | asset.InvType = inType; |
322 | asset.Name = assetName; | 345 | asset.Name = assetName; |
323 | asset.Data = data; | 346 | asset.Data = data; |
324 | this.assetCache.AddAsset(asset); | 347 | assetCache.AddAsset(asset); |
325 | 348 | ||
326 | InventoryItemBase item = new InventoryItemBase(); | 349 | InventoryItemBase item = new InventoryItemBase(); |
327 | item.avatarID = agentID; | 350 | item.avatarID = agentID; |
328 | item.creatorsID = agentID; | 351 | item.creatorsID = agentID; |
329 | item.inventoryID = inventoryItem; | 352 | item.inventoryID = inventoryItem; |
330 | item.assetID = asset.FullID; | 353 | item.assetID = asset.FullID; |
331 | item.inventoryDescription = assetDescription; | 354 | item.inventoryDescription = assetDescription; |
332 | item.inventoryName = assetName; | 355 | item.inventoryName = assetName; |
@@ -340,14 +363,13 @@ namespace OpenSim.Region.Capabilities | |||
340 | { | 363 | { |
341 | AddNewInventoryItem(agentID, item); | 364 | AddNewInventoryItem(agentID, item); |
342 | } | 365 | } |
343 | |||
344 | } | 366 | } |
345 | 367 | ||
346 | public LLUUID ItemUpdated(LLUUID itemID, byte[] data) | 368 | public LLUUID ItemUpdated(LLUUID itemID, byte[] data) |
347 | { | 369 | { |
348 | if (ItemUpdatedCall != null) | 370 | if (ItemUpdatedCall != null) |
349 | { | 371 | { |
350 | return ItemUpdatedCall(this.agentID, itemID, data); | 372 | return ItemUpdatedCall(agentID, itemID, data); |
351 | } | 373 | } |
352 | return LLUUID.Zero; | 374 | return LLUUID.Zero; |
353 | } | 375 | } |
@@ -359,7 +381,7 @@ namespace OpenSim.Region.Capabilities | |||
359 | private string uploaderPath = ""; | 381 | private string uploaderPath = ""; |
360 | private LLUUID newAssetID; | 382 | private LLUUID newAssetID; |
361 | private LLUUID inventoryItemID; | 383 | private LLUUID inventoryItemID; |
362 | private LLUUID parentFolder; | 384 | private LLUUID parentFolder; |
363 | private BaseHttpServer httpListener; | 385 | private BaseHttpServer httpListener; |
364 | private bool m_dumpAssetsToFile; | 386 | private bool m_dumpAssetsToFile; |
365 | private string m_assetName = ""; | 387 | private string m_assetName = ""; |
@@ -368,7 +390,9 @@ namespace OpenSim.Region.Capabilities | |||
368 | private string m_invType = ""; | 390 | private string m_invType = ""; |
369 | private string m_assetType = ""; | 391 | private string m_assetType = ""; |
370 | 392 | ||
371 | public AssetUploader(string assetName, string description, LLUUID assetID, LLUUID inventoryItem, LLUUID parentFolderID, string invType, string assetType, string path, BaseHttpServer httpServer, bool dumpAssetsToFile) | 393 | public AssetUploader(string assetName, string description, LLUUID assetID, LLUUID inventoryItem, |
394 | LLUUID parentFolderID, string invType, string assetType, string path, | ||
395 | BaseHttpServer httpServer, bool dumpAssetsToFile) | ||
372 | { | 396 | { |
373 | m_assetName = assetName; | 397 | m_assetName = assetName; |
374 | m_assetDes = description; | 398 | m_assetDes = description; |
@@ -391,7 +415,7 @@ namespace OpenSim.Region.Capabilities | |||
391 | /// <returns></returns> | 415 | /// <returns></returns> |
392 | public string uploaderCaps(byte[] data, string path, string param) | 416 | public string uploaderCaps(byte[] data, string path, string param) |
393 | { | 417 | { |
394 | LLUUID inv = this.inventoryItemID; | 418 | LLUUID inv = inventoryItemID; |
395 | string res = ""; | 419 | string res = ""; |
396 | LLSDAssetUploadComplete uploadComplete = new LLSDAssetUploadComplete(); | 420 | LLSDAssetUploadComplete uploadComplete = new LLSDAssetUploadComplete(); |
397 | uploadComplete.new_asset = newAssetID.ToStringHyphenated(); | 421 | uploadComplete.new_asset = newAssetID.ToStringHyphenated(); |
@@ -399,29 +423,29 @@ namespace OpenSim.Region.Capabilities | |||
399 | uploadComplete.state = "complete"; | 423 | uploadComplete.state = "complete"; |
400 | 424 | ||
401 | res = LLSDHelpers.SerialiseLLSDReply(uploadComplete); | 425 | res = LLSDHelpers.SerialiseLLSDReply(uploadComplete); |
402 | 426 | ||
403 | httpListener.RemoveStreamHandler("POST", uploaderPath); | 427 | httpListener.RemoveStreamHandler("POST", uploaderPath); |
404 | 428 | ||
405 | if (this.m_dumpAssetsToFile) | 429 | if (m_dumpAssetsToFile) |
406 | { | 430 | { |
407 | this.SaveAssetToFile(m_assetName + ".jp2", data); | 431 | SaveAssetToFile(m_assetName + ".jp2", data); |
408 | } | 432 | } |
409 | 433 | ||
410 | if (OnUpLoad != null) | 434 | if (OnUpLoad != null) |
411 | { | 435 | { |
412 | OnUpLoad(m_assetName, m_assetDes, newAssetID, inv, parentFolder, data, m_invType, m_assetType); | 436 | OnUpLoad(m_assetName, m_assetDes, newAssetID, inv, parentFolder, data, m_invType, m_assetType); |
413 | } | 437 | } |
414 | 438 | ||
415 | return res; | 439 | return res; |
416 | } | 440 | } |
417 | 441 | ||
418 | private void SaveAssetToFile(string filename, byte[] data) | 442 | private void SaveAssetToFile(string filename, byte[] data) |
419 | { | 443 | { |
420 | FileStream fs = File.Create(filename); | 444 | FileStream fs = File.Create(filename); |
421 | BinaryWriter bw = new BinaryWriter(fs); | 445 | BinaryWriter bw = new BinaryWriter(fs); |
422 | bw.Write(data); | 446 | bw.Write(data); |
423 | bw.Close(); | 447 | bw.Close(); |
424 | fs.Close(); | 448 | fs.Close(); |
425 | } | 449 | } |
426 | } | 450 | } |
427 | 451 | ||
@@ -434,7 +458,7 @@ namespace OpenSim.Region.Capabilities | |||
434 | private BaseHttpServer httpListener; | 458 | private BaseHttpServer httpListener; |
435 | private bool m_dumpAssetToFile; | 459 | private bool m_dumpAssetToFile; |
436 | 460 | ||
437 | public ItemUpdater( LLUUID inventoryItem, string path, BaseHttpServer httpServer, bool dumpAssetToFile) | 461 | public ItemUpdater(LLUUID inventoryItem, string path, BaseHttpServer httpServer, bool dumpAssetToFile) |
438 | { | 462 | { |
439 | m_dumpAssetToFile = dumpAssetToFile; | 463 | m_dumpAssetToFile = dumpAssetToFile; |
440 | 464 | ||
@@ -452,7 +476,7 @@ namespace OpenSim.Region.Capabilities | |||
452 | /// <returns></returns> | 476 | /// <returns></returns> |
453 | public string uploaderCaps(byte[] data, string path, string param) | 477 | public string uploaderCaps(byte[] data, string path, string param) |
454 | { | 478 | { |
455 | LLUUID inv = this.inventoryItemID; | 479 | LLUUID inv = inventoryItemID; |
456 | string res = ""; | 480 | string res = ""; |
457 | LLSDAssetUploadComplete uploadComplete = new LLSDAssetUploadComplete(); | 481 | LLSDAssetUploadComplete uploadComplete = new LLSDAssetUploadComplete(); |
458 | LLUUID assetID = LLUUID.Zero; | 482 | LLUUID assetID = LLUUID.Zero; |
@@ -461,7 +485,7 @@ namespace OpenSim.Region.Capabilities | |||
461 | { | 485 | { |
462 | assetID = OnUpLoad(inv, data); | 486 | assetID = OnUpLoad(inv, data); |
463 | } | 487 | } |
464 | 488 | ||
465 | uploadComplete.new_asset = assetID.ToStringHyphenated(); | 489 | uploadComplete.new_asset = assetID.ToStringHyphenated(); |
466 | uploadComplete.new_inventory_item = inv; | 490 | uploadComplete.new_inventory_item = inv; |
467 | uploadComplete.state = "complete"; | 491 | uploadComplete.state = "complete"; |
@@ -470,9 +494,9 @@ namespace OpenSim.Region.Capabilities | |||
470 | 494 | ||
471 | httpListener.RemoveStreamHandler("POST", uploaderPath); | 495 | httpListener.RemoveStreamHandler("POST", uploaderPath); |
472 | 496 | ||
473 | if (this.m_dumpAssetToFile) | 497 | if (m_dumpAssetToFile) |
474 | { | 498 | { |
475 | this.SaveAssetToFile("updateditem" + Util.RandomClass.Next(1, 1000) + ".dat", data); | 499 | SaveAssetToFile("updateditem" + Util.RandomClass.Next(1, 1000) + ".dat", data); |
476 | } | 500 | } |
477 | 501 | ||
478 | return res; | 502 | return res; |
@@ -488,6 +512,4 @@ namespace OpenSim.Region.Capabilities | |||
488 | } | 512 | } |
489 | } | 513 | } |
490 | } | 514 | } |
491 | } | 515 | } \ No newline at end of file |
492 | |||
493 | |||
diff --git a/OpenSim/Framework/Communications/Capabilities/LLSDArray.cs b/OpenSim/Framework/Communications/Capabilities/LLSDArray.cs index 2af5a4a..2ed7750 100644 --- a/OpenSim/Framework/Communications/Capabilities/LLSDArray.cs +++ b/OpenSim/Framework/Communications/Capabilities/LLSDArray.cs | |||
@@ -36,7 +36,6 @@ namespace OpenSim.Region.Capabilities | |||
36 | 36 | ||
37 | public LLSDArray() | 37 | public LLSDArray() |
38 | { | 38 | { |
39 | |||
40 | } | 39 | } |
41 | } | 40 | } |
42 | } | 41 | } \ No newline at end of file |
diff --git a/OpenSim/Framework/Communications/Capabilities/LLSDAssetUploadComplete.cs b/OpenSim/Framework/Communications/Capabilities/LLSDAssetUploadComplete.cs index e65e741..d054386 100644 --- a/OpenSim/Framework/Communications/Capabilities/LLSDAssetUploadComplete.cs +++ b/OpenSim/Framework/Communications/Capabilities/LLSDAssetUploadComplete.cs | |||
@@ -39,7 +39,6 @@ namespace OpenSim.Region.Capabilities | |||
39 | 39 | ||
40 | public LLSDAssetUploadComplete() | 40 | public LLSDAssetUploadComplete() |
41 | { | 41 | { |
42 | |||
43 | } | 42 | } |
44 | } | 43 | } |
45 | } | 44 | } \ No newline at end of file |
diff --git a/OpenSim/Framework/Communications/Capabilities/LLSDAssetUploadRequest.cs b/OpenSim/Framework/Communications/Capabilities/LLSDAssetUploadRequest.cs index 3a2fe20..7fed27a 100644 --- a/OpenSim/Framework/Communications/Capabilities/LLSDAssetUploadRequest.cs +++ b/OpenSim/Framework/Communications/Capabilities/LLSDAssetUploadRequest.cs | |||
@@ -26,9 +26,6 @@ | |||
26 | * | 26 | * |
27 | */ | 27 | */ |
28 | 28 | ||
29 | using System; | ||
30 | using System.Collections.Generic; | ||
31 | using System.Text; | ||
32 | using libsecondlife; | 29 | using libsecondlife; |
33 | 30 | ||
34 | namespace OpenSim.Region.Capabilities | 31 | namespace OpenSim.Region.Capabilities |
@@ -46,4 +43,4 @@ namespace OpenSim.Region.Capabilities | |||
46 | { | 43 | { |
47 | } | 44 | } |
48 | } | 45 | } |
49 | } | 46 | } \ No newline at end of file |
diff --git a/OpenSim/Framework/Communications/Capabilities/LLSDAssetUploadResponse.cs b/OpenSim/Framework/Communications/Capabilities/LLSDAssetUploadResponse.cs index c7a9ee6..3ad618d 100644 --- a/OpenSim/Framework/Communications/Capabilities/LLSDAssetUploadResponse.cs +++ b/OpenSim/Framework/Communications/Capabilities/LLSDAssetUploadResponse.cs | |||
@@ -26,10 +26,6 @@ | |||
26 | * | 26 | * |
27 | */ | 27 | */ |
28 | 28 | ||
29 | using System; | ||
30 | using System.Collections.Generic; | ||
31 | using System.Text; | ||
32 | |||
33 | namespace OpenSim.Region.Capabilities | 29 | namespace OpenSim.Region.Capabilities |
34 | { | 30 | { |
35 | [LLSDMap] | 31 | [LLSDMap] |
@@ -40,7 +36,6 @@ namespace OpenSim.Region.Capabilities | |||
40 | 36 | ||
41 | public LLSDAssetUploadResponse() | 37 | public LLSDAssetUploadResponse() |
42 | { | 38 | { |
43 | |||
44 | } | 39 | } |
45 | } | 40 | } |
46 | } | 41 | } \ No newline at end of file |
diff --git a/OpenSim/Framework/Communications/Capabilities/LLSDCapEvent.cs b/OpenSim/Framework/Communications/Capabilities/LLSDCapEvent.cs index d1894d4..06afac4 100644 --- a/OpenSim/Framework/Communications/Capabilities/LLSDCapEvent.cs +++ b/OpenSim/Framework/Communications/Capabilities/LLSDCapEvent.cs | |||
@@ -35,7 +35,6 @@ namespace OpenSim.Region.Capabilities | |||
35 | 35 | ||
36 | public LLSDCapEvent() | 36 | public LLSDCapEvent() |
37 | { | 37 | { |
38 | |||
39 | } | 38 | } |
40 | } | 39 | } |
41 | } | 40 | } \ No newline at end of file |
diff --git a/OpenSim/Framework/Communications/Capabilities/LLSDCapsDetails.cs b/OpenSim/Framework/Communications/Capabilities/LLSDCapsDetails.cs index 3184792..35caa15 100644 --- a/OpenSim/Framework/Communications/Capabilities/LLSDCapsDetails.cs +++ b/OpenSim/Framework/Communications/Capabilities/LLSDCapsDetails.cs | |||
@@ -34,18 +34,14 @@ namespace OpenSim.Region.Capabilities | |||
34 | public string MapLayer = ""; | 34 | public string MapLayer = ""; |
35 | public string NewFileAgentInventory = ""; | 35 | public string NewFileAgentInventory = ""; |
36 | //public string EventQueueGet = ""; | 36 | //public string EventQueueGet = ""; |
37 | // public string RequestTextureDownload = ""; | 37 | // public string RequestTextureDownload = ""; |
38 | // public string ChatSessionRequest = ""; | 38 | // public string ChatSessionRequest = ""; |
39 | public string UpdateNotecardAgentInventory = ""; | 39 | public string UpdateNotecardAgentInventory = ""; |
40 | public string UpdateScriptAgentInventory = ""; | 40 | public string UpdateScriptAgentInventory = ""; |
41 | // public string ParcelVoiceInfoRequest = ""; | 41 | // public string ParcelVoiceInfoRequest = ""; |
42 | 42 | ||
43 | public LLSDCapsDetails() | 43 | public LLSDCapsDetails() |
44 | { | 44 | { |
45 | |||
46 | } | 45 | } |
47 | } | 46 | } |
48 | } | 47 | } \ No newline at end of file |
49 | |||
50 | |||
51 | |||
diff --git a/OpenSim/Framework/Communications/Capabilities/LLSDEmpty.cs b/OpenSim/Framework/Communications/Capabilities/LLSDEmpty.cs index 0169d3c..69c525c 100644 --- a/OpenSim/Framework/Communications/Capabilities/LLSDEmpty.cs +++ b/OpenSim/Framework/Communications/Capabilities/LLSDEmpty.cs | |||
@@ -32,7 +32,6 @@ namespace OpenSim.Region.Capabilities | |||
32 | { | 32 | { |
33 | public LLSDEmpty() | 33 | public LLSDEmpty() |
34 | { | 34 | { |
35 | |||
36 | } | 35 | } |
37 | } | 36 | } |
38 | } | 37 | } \ No newline at end of file |
diff --git a/OpenSim/Framework/Communications/Capabilities/LLSDHelpers.cs b/OpenSim/Framework/Communications/Capabilities/LLSDHelpers.cs index 8a2215f..8252a63 100644 --- a/OpenSim/Framework/Communications/Capabilities/LLSDHelpers.cs +++ b/OpenSim/Framework/Communications/Capabilities/LLSDHelpers.cs | |||
@@ -51,7 +51,7 @@ namespace OpenSim.Region.Capabilities | |||
51 | public static void SerializeLLSDType(XmlTextWriter writer, object obj) | 51 | public static void SerializeLLSDType(XmlTextWriter writer, object obj) |
52 | { | 52 | { |
53 | Type myType = obj.GetType(); | 53 | Type myType = obj.GetType(); |
54 | LLSDType[] llsdattributes = (LLSDType[])myType.GetCustomAttributes(typeof(LLSDType), false); | 54 | LLSDType[] llsdattributes = (LLSDType[]) myType.GetCustomAttributes(typeof (LLSDType), false); |
55 | if (llsdattributes.Length > 0) | 55 | if (llsdattributes.Length > 0) |
56 | { | 56 | { |
57 | switch (llsdattributes[0].ObjectType) | 57 | switch (llsdattributes[0].ObjectType) |
@@ -62,7 +62,8 @@ namespace OpenSim.Region.Capabilities | |||
62 | for (int i = 0; i < fields.Length; i++) | 62 | for (int i = 0; i < fields.Length; i++) |
63 | { | 63 | { |
64 | object fieldValue = fields[i].GetValue(obj); | 64 | object fieldValue = fields[i].GetValue(obj); |
65 | LLSDType[] fieldAttributes = (LLSDType[])fieldValue.GetType().GetCustomAttributes(typeof(LLSDType), false); | 65 | LLSDType[] fieldAttributes = |
66 | (LLSDType[]) fieldValue.GetType().GetCustomAttributes(typeof (LLSDType), false); | ||
66 | if (fieldAttributes.Length > 0) | 67 | if (fieldAttributes.Length > 0) |
67 | { | 68 | { |
68 | writer.WriteStartElement(String.Empty, "key", String.Empty); | 69 | writer.WriteStartElement(String.Empty, "key", String.Empty); |
@@ -83,7 +84,7 @@ namespace OpenSim.Region.Capabilities | |||
83 | case "ARRAY": | 84 | case "ARRAY": |
84 | // LLSDArray arrayObject = obj as LLSDArray; | 85 | // LLSDArray arrayObject = obj as LLSDArray; |
85 | // ArrayList a = arrayObject.Array; | 86 | // ArrayList a = arrayObject.Array; |
86 | ArrayList a = (ArrayList)obj.GetType().GetField("Array").GetValue(obj); | 87 | ArrayList a = (ArrayList) obj.GetType().GetField("Array").GetValue(obj); |
87 | if (a != null) | 88 | if (a != null) |
88 | { | 89 | { |
89 | writer.WriteStartElement(String.Empty, "array", String.Empty); | 90 | writer.WriteStartElement(String.Empty, "array", String.Empty); |
@@ -105,7 +106,7 @@ namespace OpenSim.Region.Capabilities | |||
105 | public static object DeserialiseLLSDMap(Hashtable llsd, object obj) | 106 | public static object DeserialiseLLSDMap(Hashtable llsd, object obj) |
106 | { | 107 | { |
107 | Type myType = obj.GetType(); | 108 | Type myType = obj.GetType(); |
108 | LLSDType[] llsdattributes = (LLSDType[])myType.GetCustomAttributes(typeof(LLSDType), false); | 109 | LLSDType[] llsdattributes = (LLSDType[]) myType.GetCustomAttributes(typeof (LLSDType), false); |
109 | if (llsdattributes.Length > 0) | 110 | if (llsdattributes.Length > 0) |
110 | { | 111 | { |
111 | switch (llsdattributes[0].ObjectType) | 112 | switch (llsdattributes[0].ObjectType) |
@@ -114,7 +115,7 @@ namespace OpenSim.Region.Capabilities | |||
114 | IDictionaryEnumerator enumerator = llsd.GetEnumerator(); | 115 | IDictionaryEnumerator enumerator = llsd.GetEnumerator(); |
115 | while (enumerator.MoveNext()) | 116 | while (enumerator.MoveNext()) |
116 | { | 117 | { |
117 | FieldInfo field = myType.GetField((string)enumerator.Key); | 118 | FieldInfo field = myType.GetField((string) enumerator.Key); |
118 | if (field != null) | 119 | if (field != null) |
119 | { | 120 | { |
120 | if (enumerator.Value is Hashtable) | 121 | if (enumerator.Value is Hashtable) |
@@ -142,23 +143,4 @@ namespace OpenSim.Region.Capabilities | |||
142 | return obj; | 143 | return obj; |
143 | } | 144 | } |
144 | } | 145 | } |
145 | 146 | } \ No newline at end of file | |
146 | |||
147 | |||
148 | |||
149 | |||
150 | |||
151 | |||
152 | |||
153 | |||
154 | |||
155 | |||
156 | |||
157 | |||
158 | |||
159 | |||
160 | |||
161 | |||
162 | |||
163 | |||
164 | } | ||
diff --git a/OpenSim/Framework/Communications/Capabilities/LLSDItemUpdate.cs b/OpenSim/Framework/Communications/Capabilities/LLSDItemUpdate.cs index 57fc9e8..3842058 100644 --- a/OpenSim/Framework/Communications/Capabilities/LLSDItemUpdate.cs +++ b/OpenSim/Framework/Communications/Capabilities/LLSDItemUpdate.cs | |||
@@ -26,9 +26,6 @@ | |||
26 | * | 26 | * |
27 | */ | 27 | */ |
28 | 28 | ||
29 | using System; | ||
30 | using System.Collections.Generic; | ||
31 | using System.Text; | ||
32 | using libsecondlife; | 29 | using libsecondlife; |
33 | 30 | ||
34 | namespace OpenSim.Region.Capabilities | 31 | namespace OpenSim.Region.Capabilities |
@@ -42,4 +39,4 @@ namespace OpenSim.Region.Capabilities | |||
42 | { | 39 | { |
43 | } | 40 | } |
44 | } | 41 | } |
45 | } | 42 | } \ No newline at end of file |
diff --git a/OpenSim/Framework/Communications/Capabilities/LLSDMapLayer.cs b/OpenSim/Framework/Communications/Capabilities/LLSDMapLayer.cs index 6d17bff..683e479 100644 --- a/OpenSim/Framework/Communications/Capabilities/LLSDMapLayer.cs +++ b/OpenSim/Framework/Communications/Capabilities/LLSDMapLayer.cs | |||
@@ -40,7 +40,6 @@ namespace OpenSim.Region.Capabilities | |||
40 | 40 | ||
41 | public LLSDMapLayer() | 41 | public LLSDMapLayer() |
42 | { | 42 | { |
43 | |||
44 | } | 43 | } |
45 | } | 44 | } |
46 | } | 45 | } \ No newline at end of file |
diff --git a/OpenSim/Framework/Communications/Capabilities/LLSDMapLayerResponse.cs b/OpenSim/Framework/Communications/Capabilities/LLSDMapLayerResponse.cs index 7900290..1945a6c 100644 --- a/OpenSim/Framework/Communications/Capabilities/LLSDMapLayerResponse.cs +++ b/OpenSim/Framework/Communications/Capabilities/LLSDMapLayerResponse.cs | |||
@@ -35,7 +35,6 @@ namespace OpenSim.Region.Capabilities | |||
35 | 35 | ||
36 | public LLSDMapLayerResponse() | 36 | public LLSDMapLayerResponse() |
37 | { | 37 | { |
38 | |||
39 | } | 38 | } |
40 | } | 39 | } |
41 | } | 40 | } \ No newline at end of file |
diff --git a/OpenSim/Framework/Communications/Capabilities/LLSDMapRequest.cs b/OpenSim/Framework/Communications/Capabilities/LLSDMapRequest.cs index 5fa08c9..935f81d 100644 --- a/OpenSim/Framework/Communications/Capabilities/LLSDMapRequest.cs +++ b/OpenSim/Framework/Communications/Capabilities/LLSDMapRequest.cs | |||
@@ -35,7 +35,6 @@ namespace OpenSim.Region.Capabilities | |||
35 | 35 | ||
36 | public LLSDMapRequest() | 36 | public LLSDMapRequest() |
37 | { | 37 | { |
38 | |||
39 | } | 38 | } |
40 | } | 39 | } |
41 | } | 40 | } \ No newline at end of file |
diff --git a/OpenSim/Framework/Communications/Capabilities/LLSDMethod.cs b/OpenSim/Framework/Communications/Capabilities/LLSDMethod.cs index 67253ee..6bd47e1 100644 --- a/OpenSim/Framework/Communications/Capabilities/LLSDMethod.cs +++ b/OpenSim/Framework/Communications/Capabilities/LLSDMethod.cs | |||
@@ -26,11 +26,7 @@ | |||
26 | * | 26 | * |
27 | */ | 27 | */ |
28 | 28 | ||
29 | using System; | ||
30 | using System.Collections.Generic; | ||
31 | using System.Text; | ||
32 | |||
33 | namespace OpenSim.Region.Capabilities | 29 | namespace OpenSim.Region.Capabilities |
34 | { | 30 | { |
35 | public delegate TResponse LLSDMethod<TRequest, TResponse>(TRequest request); | 31 | public delegate TResponse LLSDMethod<TRequest, TResponse>(TRequest request); |
36 | } | 32 | } \ No newline at end of file |
diff --git a/OpenSim/Framework/Communications/Capabilities/LLSDStreamHandler.cs b/OpenSim/Framework/Communications/Capabilities/LLSDStreamHandler.cs index 894b276..08e9563 100644 --- a/OpenSim/Framework/Communications/Capabilities/LLSDStreamHandler.cs +++ b/OpenSim/Framework/Communications/Capabilities/LLSDStreamHandler.cs | |||
@@ -26,13 +26,11 @@ | |||
26 | * | 26 | * |
27 | */ | 27 | */ |
28 | 28 | ||
29 | using System; | ||
30 | using System.Collections.Generic; | ||
31 | using System.Text; | ||
32 | using OpenSim.Framework.Servers; | ||
33 | using System.IO; | ||
34 | using System.Collections; | 29 | using System.Collections; |
30 | using System.IO; | ||
31 | using System.Text; | ||
35 | using libsecondlife; | 32 | using libsecondlife; |
33 | using OpenSim.Framework.Servers; | ||
36 | 34 | ||
37 | namespace OpenSim.Region.Capabilities | 35 | namespace OpenSim.Region.Capabilities |
38 | { | 36 | { |
@@ -42,11 +40,11 @@ namespace OpenSim.Region.Capabilities | |||
42 | private LLSDMethod<TRequest, TResponse> m_method; | 40 | private LLSDMethod<TRequest, TResponse> m_method; |
43 | 41 | ||
44 | public LLSDStreamhandler(string httpMethod, string path, LLSDMethod<TRequest, TResponse> method) | 42 | public LLSDStreamhandler(string httpMethod, string path, LLSDMethod<TRequest, TResponse> method) |
45 | : base(httpMethod, path ) | 43 | : base(httpMethod, path) |
46 | { | 44 | { |
47 | m_method = method; | 45 | m_method = method; |
48 | } | 46 | } |
49 | 47 | ||
50 | public override byte[] Handle(string path, Stream request) | 48 | public override byte[] Handle(string path, Stream request) |
51 | { | 49 | { |
52 | //Encoding encoding = Encoding.UTF8; | 50 | //Encoding encoding = Encoding.UTF8; |
@@ -55,16 +53,15 @@ namespace OpenSim.Region.Capabilities | |||
55 | //string requestBody = streamReader.ReadToEnd(); | 53 | //string requestBody = streamReader.ReadToEnd(); |
56 | //streamReader.Close(); | 54 | //streamReader.Close(); |
57 | 55 | ||
58 | Hashtable hash = (Hashtable)LLSD.LLSDDeserialize( request ); | 56 | Hashtable hash = (Hashtable) LLSD.LLSDDeserialize(request); |
59 | TRequest llsdRequest = new TRequest(); | 57 | TRequest llsdRequest = new TRequest(); |
60 | LLSDHelpers.DeserialiseLLSDMap(hash, llsdRequest); | 58 | LLSDHelpers.DeserialiseLLSDMap(hash, llsdRequest); |
61 | 59 | ||
62 | TResponse response = m_method(llsdRequest); | 60 | TResponse response = m_method(llsdRequest); |
63 | 61 | ||
64 | Encoding encoding = new UTF8Encoding(false); | 62 | Encoding encoding = new UTF8Encoding(false); |
65 | |||
66 | return encoding.GetBytes( LLSDHelpers.SerialiseLLSDReply(response) ); | ||
67 | 63 | ||
64 | return encoding.GetBytes(LLSDHelpers.SerialiseLLSDReply(response)); | ||
68 | } | 65 | } |
69 | } | 66 | } |
70 | } | 67 | } \ No newline at end of file |
diff --git a/OpenSim/Framework/Communications/Capabilities/LLSDTest.cs b/OpenSim/Framework/Communications/Capabilities/LLSDTest.cs index f70fa11..c2a6054 100644 --- a/OpenSim/Framework/Communications/Capabilities/LLSDTest.cs +++ b/OpenSim/Framework/Communications/Capabilities/LLSDTest.cs | |||
@@ -35,7 +35,6 @@ namespace OpenSim.Region.Capabilities | |||
35 | 35 | ||
36 | public LLSDTest() | 36 | public LLSDTest() |
37 | { | 37 | { |
38 | |||
39 | } | 38 | } |
40 | } | 39 | } |
41 | } | 40 | } \ No newline at end of file |
diff --git a/OpenSim/Framework/Communications/Capabilities/LLSDType.cs b/OpenSim/Framework/Communications/Capabilities/LLSDType.cs index 6af7f39..a90ae03 100644 --- a/OpenSim/Framework/Communications/Capabilities/LLSDType.cs +++ b/OpenSim/Framework/Communications/Capabilities/LLSDType.cs | |||
@@ -37,23 +37,19 @@ namespace OpenSim.Region.Capabilities | |||
37 | public LLSDType(string type) | 37 | public LLSDType(string type) |
38 | { | 38 | { |
39 | myType = type; | 39 | myType = type; |
40 | |||
41 | } | 40 | } |
42 | 41 | ||
43 | public string ObjectType | 42 | public string ObjectType |
44 | { | 43 | { |
45 | get | 44 | get { return myType; } |
46 | { | ||
47 | return myType; | ||
48 | } | ||
49 | } | 45 | } |
50 | } | 46 | } |
51 | 47 | ||
52 | [AttributeUsage(AttributeTargets.Class)] | 48 | [AttributeUsage(AttributeTargets.Class)] |
53 | public class LLSDMap : LLSDType | 49 | public class LLSDMap : LLSDType |
54 | { | 50 | { |
55 | public LLSDMap() : base( "MAP" ) | 51 | public LLSDMap() : base("MAP") |
56 | { | 52 | { |
57 | } | 53 | } |
58 | } | 54 | } |
59 | } | 55 | } \ No newline at end of file |
diff --git a/OpenSim/Framework/Communications/CommunicationsManager.cs b/OpenSim/Framework/Communications/CommunicationsManager.cs index d8d198b..77c7261 100644 --- a/OpenSim/Framework/Communications/CommunicationsManager.cs +++ b/OpenSim/Framework/Communications/CommunicationsManager.cs | |||
@@ -28,69 +28,77 @@ | |||
28 | using System; | 28 | using System; |
29 | using libsecondlife; | 29 | using libsecondlife; |
30 | using OpenSim.Framework.Communications.Cache; | 30 | using OpenSim.Framework.Communications.Cache; |
31 | using OpenSim.Framework.Console; | ||
31 | using OpenSim.Framework.Interfaces; | 32 | using OpenSim.Framework.Interfaces; |
32 | using OpenSim.Framework.Servers; | 33 | using OpenSim.Framework.Servers; |
33 | using OpenSim.Framework; | ||
34 | using OpenSim.Framework.Console; | ||
35 | 34 | ||
36 | namespace OpenSim.Framework.Communications | 35 | namespace OpenSim.Framework.Communications |
37 | { | 36 | { |
38 | public class CommunicationsManager | 37 | public class CommunicationsManager |
39 | { | 38 | { |
40 | protected IUserService m_userService; | 39 | protected IUserService m_userService; |
40 | |||
41 | public IUserService UserService | 41 | public IUserService UserService |
42 | { | 42 | { |
43 | get { return m_userService; } | 43 | get { return m_userService; } |
44 | } | 44 | } |
45 | 45 | ||
46 | protected IGridServices m_gridService; | 46 | protected IGridServices m_gridService; |
47 | |||
47 | public IGridServices GridService | 48 | public IGridServices GridService |
48 | { | 49 | { |
49 | get { return m_gridService; } | 50 | get { return m_gridService; } |
50 | } | 51 | } |
51 | 52 | ||
52 | protected IInventoryServices m_inventoryService; | 53 | protected IInventoryServices m_inventoryService; |
54 | |||
53 | public IInventoryServices InventoryService | 55 | public IInventoryServices InventoryService |
54 | { | 56 | { |
55 | get { return m_inventoryService; } | 57 | get { return m_inventoryService; } |
56 | } | 58 | } |
57 | 59 | ||
58 | protected IInterRegionCommunications m_interRegion; | 60 | protected IInterRegionCommunications m_interRegion; |
61 | |||
59 | public IInterRegionCommunications InterRegion | 62 | public IInterRegionCommunications InterRegion |
60 | { | 63 | { |
61 | get { return m_interRegion; } | 64 | get { return m_interRegion; } |
62 | } | 65 | } |
63 | 66 | ||
64 | protected UserProfileCache m_userProfileCache; | 67 | protected UserProfileCache m_userProfileCache; |
68 | |||
65 | public UserProfileCache UserProfileCache | 69 | public UserProfileCache UserProfileCache |
66 | { | 70 | { |
67 | get { return m_userProfileCache; } | 71 | get { return m_userProfileCache; } |
68 | } | 72 | } |
69 | 73 | ||
70 | protected AssetTransactionManager m_transactionsManager; | 74 | protected AssetTransactionManager m_transactionsManager; |
75 | |||
71 | public AssetTransactionManager TransactionsManager | 76 | public AssetTransactionManager TransactionsManager |
72 | { | 77 | { |
73 | get { return m_transactionsManager; } | 78 | get { return m_transactionsManager; } |
74 | } | 79 | } |
75 | 80 | ||
76 | protected AssetCache m_assetCache; | 81 | protected AssetCache m_assetCache; |
82 | |||
77 | public AssetCache AssetCache | 83 | public AssetCache AssetCache |
78 | { | 84 | { |
79 | get { return m_assetCache; } | 85 | get { return m_assetCache; } |
80 | } | 86 | } |
81 | 87 | ||
82 | protected NetworkServersInfo m_networkServersInfo; | 88 | protected NetworkServersInfo m_networkServersInfo; |
89 | |||
83 | public NetworkServersInfo NetworkServersInfo | 90 | public NetworkServersInfo NetworkServersInfo |
84 | { | 91 | { |
85 | get { return m_networkServersInfo; } | 92 | get { return m_networkServersInfo; } |
86 | } | 93 | } |
87 | 94 | ||
88 | public CommunicationsManager(NetworkServersInfo serversInfo, BaseHttpServer httpServer, AssetCache assetCache, bool dumpAssetsToFile) | 95 | public CommunicationsManager(NetworkServersInfo serversInfo, BaseHttpServer httpServer, AssetCache assetCache, |
96 | bool dumpAssetsToFile) | ||
89 | { | 97 | { |
90 | m_networkServersInfo = serversInfo; | 98 | m_networkServersInfo = serversInfo; |
91 | m_assetCache = assetCache; | 99 | m_assetCache = assetCache; |
92 | m_userProfileCache = new UserProfileCache(this); | 100 | m_userProfileCache = new UserProfileCache(this); |
93 | m_transactionsManager = new AssetTransactionManager(this, dumpAssetsToFile ); | 101 | m_transactionsManager = new AssetTransactionManager(this, dumpAssetsToFile); |
94 | } | 102 | } |
95 | 103 | ||
96 | public void doCreate(string[] cmmdParams) | 104 | public void doCreate(string[] cmmdParams) |
@@ -106,7 +114,6 @@ namespace OpenSim.Framework.Communications | |||
106 | 114 | ||
107 | if (cmmdParams.Length < 2) | 115 | if (cmmdParams.Length < 2) |
108 | { | 116 | { |
109 | |||
110 | firstName = MainLog.Instance.CmdPrompt("First name", "Default"); | 117 | firstName = MainLog.Instance.CmdPrompt("First name", "Default"); |
111 | lastName = MainLog.Instance.CmdPrompt("Last name", "User"); | 118 | lastName = MainLog.Instance.CmdPrompt("Last name", "User"); |
112 | password = MainLog.Instance.PasswdPrompt("Password"); | 119 | password = MainLog.Instance.PasswdPrompt("Password"); |
@@ -120,7 +127,6 @@ namespace OpenSim.Framework.Communications | |||
120 | password = cmmdParams[3]; | 127 | password = cmmdParams[3]; |
121 | regX = Convert.ToUInt32(cmmdParams[4]); | 128 | regX = Convert.ToUInt32(cmmdParams[4]); |
122 | regY = Convert.ToUInt32(cmmdParams[5]); | 129 | regY = Convert.ToUInt32(cmmdParams[5]); |
123 | |||
124 | } | 130 | } |
125 | 131 | ||
126 | AddUser(firstName, lastName, password, regX, regY); | 132 | AddUser(firstName, lastName, password, regX, regY); |
@@ -140,7 +146,7 @@ namespace OpenSim.Framework.Communications | |||
140 | } | 146 | } |
141 | else | 147 | else |
142 | { | 148 | { |
143 | this.m_inventoryService.CreateNewUserInventory(userProf.UUID); | 149 | m_inventoryService.CreateNewUserInventory(userProf.UUID); |
144 | System.Console.WriteLine("Created new inventory set for " + firstName + " " + lastName); | 150 | System.Console.WriteLine("Created new inventory set for " + firstName + " " + lastName); |
145 | return userProf.UUID; | 151 | return userProf.UUID; |
146 | } | 152 | } |
diff --git a/OpenSim/Framework/Communications/IGridServices.cs b/OpenSim/Framework/Communications/IGridServices.cs index ccbb729..ce6205f 100644 --- a/OpenSim/Framework/Communications/IGridServices.cs +++ b/OpenSim/Framework/Communications/IGridServices.cs | |||
@@ -27,10 +27,6 @@ | |||
27 | */ | 27 | */ |
28 | 28 | ||
29 | using System.Collections.Generic; | 29 | using System.Collections.Generic; |
30 | using System.Net; | ||
31 | using libsecondlife; | ||
32 | |||
33 | using OpenSim.Framework; | ||
34 | 30 | ||
35 | namespace OpenSim.Framework.Communications | 31 | namespace OpenSim.Framework.Communications |
36 | { | 32 | { |
@@ -41,4 +37,4 @@ namespace OpenSim.Framework.Communications | |||
41 | RegionInfo RequestNeighbourInfo(ulong regionHandle); | 37 | RegionInfo RequestNeighbourInfo(ulong regionHandle); |
42 | List<MapBlockData> RequestNeighbourMapBlocks(int minX, int minY, int maxX, int maxY); | 38 | List<MapBlockData> RequestNeighbourMapBlocks(int minX, int minY, int maxX, int maxY); |
43 | } | 39 | } |
44 | } | 40 | } \ No newline at end of file |
diff --git a/OpenSim/Framework/Communications/IInterRegionCommunications.cs b/OpenSim/Framework/Communications/IInterRegionCommunications.cs index 244747d..d4fb54b 100644 --- a/OpenSim/Framework/Communications/IInterRegionCommunications.cs +++ b/OpenSim/Framework/Communications/IInterRegionCommunications.cs | |||
@@ -26,7 +26,6 @@ | |||
26 | * | 26 | * |
27 | */ | 27 | */ |
28 | using libsecondlife; | 28 | using libsecondlife; |
29 | using OpenSim.Framework; | ||
30 | 29 | ||
31 | namespace OpenSim.Framework.Communications | 30 | namespace OpenSim.Framework.Communications |
32 | { | 31 | { |
@@ -36,4 +35,4 @@ namespace OpenSim.Framework.Communications | |||
36 | bool ExpectAvatarCrossing(ulong regionHandle, LLUUID agentID, LLVector3 position, bool isFlying); | 35 | bool ExpectAvatarCrossing(ulong regionHandle, LLUUID agentID, LLVector3 position, bool isFlying); |
37 | bool AcknowledgeAgentCrossed(ulong regionHandle, LLUUID agentId); | 36 | bool AcknowledgeAgentCrossed(ulong regionHandle, LLUUID agentId); |
38 | } | 37 | } |
39 | } | 38 | } \ No newline at end of file |
diff --git a/OpenSim/Framework/Communications/IInventoryServices.cs b/OpenSim/Framework/Communications/IInventoryServices.cs index e7758c4..fc301c2 100644 --- a/OpenSim/Framework/Communications/IInventoryServices.cs +++ b/OpenSim/Framework/Communications/IInventoryServices.cs | |||
@@ -26,16 +26,14 @@ | |||
26 | * | 26 | * |
27 | */ | 27 | */ |
28 | 28 | ||
29 | using System; | ||
30 | using System.Collections.Generic; | 29 | using System.Collections.Generic; |
31 | using System.Text; | ||
32 | using libsecondlife; | 30 | using libsecondlife; |
33 | using OpenSim.Framework.Communications.Cache; | 31 | using OpenSim.Framework.Communications.Cache; |
34 | using OpenSim.Framework; | ||
35 | 32 | ||
36 | namespace OpenSim.Framework.Communications | 33 | namespace OpenSim.Framework.Communications |
37 | { | 34 | { |
38 | public delegate void InventoryFolderInfo(LLUUID userID, InventoryFolderImpl folderInfo); | 35 | public delegate void InventoryFolderInfo(LLUUID userID, InventoryFolderImpl folderInfo); |
36 | |||
39 | public delegate void InventoryItemInfo(LLUUID userID, InventoryItemBase itemInfo); | 37 | public delegate void InventoryItemInfo(LLUUID userID, InventoryItemBase itemInfo); |
40 | 38 | ||
41 | public interface IInventoryServices | 39 | public interface IInventoryServices |
@@ -53,4 +51,4 @@ namespace OpenSim.Framework.Communications | |||
53 | /// <returns></returns> | 51 | /// <returns></returns> |
54 | List<InventoryFolderBase> RequestFirstLevelFolders(LLUUID userID); | 52 | List<InventoryFolderBase> RequestFirstLevelFolders(LLUUID userID); |
55 | } | 53 | } |
56 | } | 54 | } \ No newline at end of file |
diff --git a/OpenSim/Framework/Communications/InventoryServiceBase.cs b/OpenSim/Framework/Communications/InventoryServiceBase.cs index 05183be..effe132 100644 --- a/OpenSim/Framework/Communications/InventoryServiceBase.cs +++ b/OpenSim/Framework/Communications/InventoryServiceBase.cs | |||
@@ -30,10 +30,8 @@ using System; | |||
30 | using System.Collections.Generic; | 30 | using System.Collections.Generic; |
31 | using System.Reflection; | 31 | using System.Reflection; |
32 | using libsecondlife; | 32 | using libsecondlife; |
33 | using OpenSim.Framework.Communications; | ||
34 | using OpenSim.Framework.Communications.Cache; | 33 | using OpenSim.Framework.Communications.Cache; |
35 | using OpenSim.Framework.Console; | 34 | using OpenSim.Framework.Console; |
36 | using OpenSim.Framework; | ||
37 | 35 | ||
38 | namespace OpenSim.Framework.Communications | 36 | namespace OpenSim.Framework.Communications |
39 | { | 37 | { |
@@ -67,10 +65,10 @@ namespace OpenSim.Framework.Communications | |||
67 | if (typeInterface != null) | 65 | if (typeInterface != null) |
68 | { | 66 | { |
69 | IInventoryData plug = | 67 | IInventoryData plug = |
70 | (IInventoryData)Activator.CreateInstance(pluginAssembly.GetType(pluginType.ToString())); | 68 | (IInventoryData) Activator.CreateInstance(pluginAssembly.GetType(pluginType.ToString())); |
71 | plug.Initialise(); | 69 | plug.Initialise(); |
72 | this.m_plugins.Add(plug.getName(), plug); | 70 | m_plugins.Add(plug.getName(), plug); |
73 | MainLog.Instance.Verbose("INVENTORY","Added IInventoryData Interface"); | 71 | MainLog.Instance.Verbose("INVENTORY", "Added IInventoryData Interface"); |
74 | } | 72 | } |
75 | } | 73 | } |
76 | } | 74 | } |
@@ -168,7 +166,7 @@ namespace OpenSim.Framework.Communications | |||
168 | { | 166 | { |
169 | foreach (InventoryFolderBase folder in inventory.Folders.Values) | 167 | foreach (InventoryFolderBase folder in inventory.Folders.Values) |
170 | { | 168 | { |
171 | this.AddFolder(folder); | 169 | AddFolder(folder); |
172 | } | 170 | } |
173 | } | 171 | } |
174 | 172 | ||
@@ -176,7 +174,7 @@ namespace OpenSim.Framework.Communications | |||
176 | { | 174 | { |
177 | UsersInventory inven = new UsersInventory(); | 175 | UsersInventory inven = new UsersInventory(); |
178 | inven.CreateNewInventorySet(user); | 176 | inven.CreateNewInventorySet(user); |
179 | this.AddNewInventorySet(inven); | 177 | AddNewInventorySet(inven); |
180 | } | 178 | } |
181 | 179 | ||
182 | public class UsersInventory | 180 | public class UsersInventory |
@@ -186,7 +184,6 @@ namespace OpenSim.Framework.Communications | |||
186 | 184 | ||
187 | public UsersInventory() | 185 | public UsersInventory() |
188 | { | 186 | { |
189 | |||
190 | } | 187 | } |
191 | 188 | ||
192 | public virtual void CreateNewInventorySet(LLUUID user) | 189 | public virtual void CreateNewInventorySet(LLUUID user) |
@@ -231,9 +228,11 @@ namespace OpenSim.Framework.Communications | |||
231 | } | 228 | } |
232 | } | 229 | } |
233 | 230 | ||
234 | public abstract void RequestInventoryForUser(LLUUID userID, InventoryFolderInfo folderCallBack, InventoryItemInfo itemCallBack); | 231 | public abstract void RequestInventoryForUser(LLUUID userID, InventoryFolderInfo folderCallBack, |
232 | InventoryItemInfo itemCallBack); | ||
233 | |||
235 | public abstract void AddNewInventoryFolder(LLUUID userID, InventoryFolderImpl folder); | 234 | public abstract void AddNewInventoryFolder(LLUUID userID, InventoryFolderImpl folder); |
236 | public abstract void AddNewInventoryItem(LLUUID userID, InventoryItemBase item); | 235 | public abstract void AddNewInventoryItem(LLUUID userID, InventoryItemBase item); |
237 | public abstract void DeleteInventoryItem(LLUUID userID, InventoryItemBase item); | 236 | public abstract void DeleteInventoryItem(LLUUID userID, InventoryItemBase item); |
238 | } | 237 | } |
239 | } | 238 | } \ No newline at end of file |
diff --git a/OpenSim/Framework/Communications/LoginResponse.cs b/OpenSim/Framework/Communications/LoginResponse.cs index 38bc016..4d1c35a 100644 --- a/OpenSim/Framework/Communications/LoginResponse.cs +++ b/OpenSim/Framework/Communications/LoginResponse.cs | |||
@@ -34,12 +34,10 @@ using OpenSim.Framework.Console; | |||
34 | 34 | ||
35 | namespace OpenSim.Framework.UserManagement | 35 | namespace OpenSim.Framework.UserManagement |
36 | { | 36 | { |
37 | |||
38 | /// <summary> | 37 | /// <summary> |
39 | /// A temp class to handle login response. | 38 | /// A temp class to handle login response. |
40 | /// Should make use of UserProfileManager where possible. | 39 | /// Should make use of UserProfileManager where possible. |
41 | /// </summary> | 40 | /// </summary> |
42 | |||
43 | public class LoginResponse | 41 | public class LoginResponse |
44 | { | 42 | { |
45 | private Hashtable loginFlagsHash; | 43 | private Hashtable loginFlagsHash; |
@@ -103,211 +101,222 @@ namespace OpenSim.Framework.UserManagement | |||
103 | 101 | ||
104 | public LoginResponse() | 102 | public LoginResponse() |
105 | { | 103 | { |
106 | this.loginFlags = new ArrayList(); | 104 | loginFlags = new ArrayList(); |
107 | this.globalTextures = new ArrayList(); | 105 | globalTextures = new ArrayList(); |
108 | this.eventCategories = new ArrayList(); | 106 | eventCategories = new ArrayList(); |
109 | this.uiConfig = new ArrayList(); | 107 | uiConfig = new ArrayList(); |
110 | this.classifiedCategories = new ArrayList(); | 108 | classifiedCategories = new ArrayList(); |
111 | 109 | ||
112 | this.loginError = new Hashtable(); | 110 | loginError = new Hashtable(); |
113 | this.uiConfigHash = new Hashtable(); | 111 | uiConfigHash = new Hashtable(); |
114 | 112 | ||
115 | this.defaultXmlRpcResponse = new XmlRpcResponse(); | 113 | defaultXmlRpcResponse = new XmlRpcResponse(); |
116 | this.userProfile = new UserInfo(); | 114 | userProfile = new UserInfo(); |
117 | this.inventoryRoot = new ArrayList(); | 115 | inventoryRoot = new ArrayList(); |
118 | this.initialOutfit = new ArrayList(); | 116 | initialOutfit = new ArrayList(); |
119 | this.agentInventory = new ArrayList(); | 117 | agentInventory = new ArrayList(); |
120 | this.inventoryLibrary = new ArrayList(); | 118 | inventoryLibrary = new ArrayList(); |
121 | this.inventoryLibraryOwner = new ArrayList(); | 119 | inventoryLibraryOwner = new ArrayList(); |
122 | 120 | ||
123 | this.xmlRpcResponse = new XmlRpcResponse(); | 121 | xmlRpcResponse = new XmlRpcResponse(); |
124 | this.defaultXmlRpcResponse = new XmlRpcResponse(); | 122 | defaultXmlRpcResponse = new XmlRpcResponse(); |
125 | 123 | ||
126 | this.SetDefaultValues(); | 124 | SetDefaultValues(); |
127 | } // LoginServer | 125 | } // LoginServer |
128 | 126 | ||
129 | public void SetDefaultValues() | 127 | public void SetDefaultValues() |
130 | { | 128 | { |
131 | this.DST = "N"; | 129 | DST = "N"; |
132 | this.StipendSinceLogin = "N"; | 130 | StipendSinceLogin = "N"; |
133 | this.Gendered = "Y"; | 131 | Gendered = "Y"; |
134 | this.EverLoggedIn = "Y"; | 132 | EverLoggedIn = "Y"; |
135 | this.login = "false"; | 133 | login = "false"; |
136 | this.firstname = "Test"; | 134 | firstname = "Test"; |
137 | this.lastname = "User"; | 135 | lastname = "User"; |
138 | this.agentAccess = "M"; | 136 | agentAccess = "M"; |
139 | this.startLocation = "last"; | 137 | startLocation = "last"; |
140 | this.allowFirstLife = "Y"; | 138 | allowFirstLife = "Y"; |
141 | 139 | ||
142 | this.SunTexture = "cce0f112-878f-4586-a2e2-a8f104bba271"; | 140 | SunTexture = "cce0f112-878f-4586-a2e2-a8f104bba271"; |
143 | this.CloudTexture = "fc4b9f0b-d008-45c6-96a4-01dd947ac621"; | 141 | CloudTexture = "fc4b9f0b-d008-45c6-96a4-01dd947ac621"; |
144 | this.MoonTexture = "fc4b9f0b-d008-45c6-96a4-01dd947ac621"; | 142 | MoonTexture = "fc4b9f0b-d008-45c6-96a4-01dd947ac621"; |
145 | 143 | ||
146 | this.ErrorMessage = "You have entered an invalid name/password combination. Check Caps/lock."; | 144 | ErrorMessage = "You have entered an invalid name/password combination. Check Caps/lock."; |
147 | this.ErrorReason = "key"; | 145 | ErrorReason = "key"; |
148 | this.welcomeMessage = "Welcome to OpenSim!"; | 146 | welcomeMessage = "Welcome to OpenSim!"; |
149 | this.seedCapability = ""; | 147 | seedCapability = ""; |
150 | this.home = "{'region_handle':[r" + (1000 * 256).ToString() + ",r" + (1000 * 256).ToString() + "], 'position':[r" + this.userProfile.homepos.X.ToString() + ",r" + this.userProfile.homepos.Y.ToString() + ",r" + this.userProfile.homepos.Z.ToString() + "], 'look_at':[r" + this.userProfile.homelookat.X.ToString() + ",r" + this.userProfile.homelookat.Y.ToString() + ",r" + this.userProfile.homelookat.Z.ToString() + "]}"; | 148 | home = "{'region_handle':[r" + (1000*256).ToString() + ",r" + (1000*256).ToString() + "], 'position':[r" + |
151 | this.lookAt = "[r0.99949799999999999756,r0.03166859999999999814,r0]"; | 149 | userProfile.homepos.X.ToString() + ",r" + userProfile.homepos.Y.ToString() + ",r" + |
152 | this.RegionX = (uint)255232; | 150 | userProfile.homepos.Z.ToString() + "], 'look_at':[r" + userProfile.homelookat.X.ToString() + ",r" + |
153 | this.RegionY = (uint)254976; | 151 | userProfile.homelookat.Y.ToString() + ",r" + userProfile.homelookat.Z.ToString() + "]}"; |
154 | 152 | lookAt = "[r0.99949799999999999756,r0.03166859999999999814,r0]"; | |
155 | // Classifieds; | 153 | RegionX = (uint) 255232; |
156 | this.AddClassifiedCategory((Int32)1, "Shopping"); | 154 | RegionY = (uint) 254976; |
157 | this.AddClassifiedCategory((Int32)2, "Land Rental"); | 155 | |
158 | this.AddClassifiedCategory((Int32)3, "Property Rental"); | 156 | // Classifieds; |
159 | this.AddClassifiedCategory((Int32)4, "Special Attraction"); | 157 | AddClassifiedCategory((Int32) 1, "Shopping"); |
160 | this.AddClassifiedCategory((Int32)5, "New Products"); | 158 | AddClassifiedCategory((Int32) 2, "Land Rental"); |
161 | this.AddClassifiedCategory((Int32)6, "Employment"); | 159 | AddClassifiedCategory((Int32) 3, "Property Rental"); |
162 | this.AddClassifiedCategory((Int32)7, "Wanted"); | 160 | AddClassifiedCategory((Int32) 4, "Special Attraction"); |
163 | this.AddClassifiedCategory((Int32)8, "Service"); | 161 | AddClassifiedCategory((Int32) 5, "New Products"); |
164 | this.AddClassifiedCategory((Int32)9, "Personal"); | 162 | AddClassifiedCategory((Int32) 6, "Employment"); |
165 | 163 | AddClassifiedCategory((Int32) 7, "Wanted"); | |
166 | 164 | AddClassifiedCategory((Int32) 8, "Service"); | |
167 | this.SessionID = LLUUID.Random(); | 165 | AddClassifiedCategory((Int32) 9, "Personal"); |
168 | this.SecureSessionID = LLUUID.Random(); | 166 | |
169 | this.AgentID = LLUUID.Random(); | 167 | |
170 | 168 | SessionID = LLUUID.Random(); | |
171 | Hashtable InitialOutfitHash = new Hashtable(); | 169 | SecureSessionID = LLUUID.Random(); |
172 | InitialOutfitHash["folder_name"] = "Nightclub Female"; | 170 | AgentID = LLUUID.Random(); |
173 | InitialOutfitHash["gender"] = "female"; | 171 | |
174 | this.initialOutfit.Add(InitialOutfitHash); | 172 | Hashtable InitialOutfitHash = new Hashtable(); |
175 | 173 | InitialOutfitHash["folder_name"] = "Nightclub Female"; | |
176 | 174 | InitialOutfitHash["gender"] = "female"; | |
175 | initialOutfit.Add(InitialOutfitHash); | ||
177 | } // SetDefaultValues | 176 | } // SetDefaultValues |
178 | 177 | ||
179 | #region Login Failure Methods | 178 | #region Login Failure Methods |
179 | |||
180 | public XmlRpcResponse GenerateFailureResponse(string reason, string message, string login) | 180 | public XmlRpcResponse GenerateFailureResponse(string reason, string message, string login) |
181 | { | 181 | { |
182 | // Overwrite any default values; | 182 | // Overwrite any default values; |
183 | this.xmlRpcResponse = new XmlRpcResponse(); | 183 | xmlRpcResponse = new XmlRpcResponse(); |
184 | 184 | ||
185 | // Ensure Login Failed message/reason; | 185 | // Ensure Login Failed message/reason; |
186 | this.ErrorMessage = message; | 186 | ErrorMessage = message; |
187 | this.ErrorReason = reason; | 187 | ErrorReason = reason; |
188 | 188 | ||
189 | this.loginError["reason"] = this.ErrorReason; | 189 | loginError["reason"] = ErrorReason; |
190 | this.loginError["message"] = this.ErrorMessage; | 190 | loginError["message"] = ErrorMessage; |
191 | this.loginError["login"] = login; | 191 | loginError["login"] = login; |
192 | this.xmlRpcResponse.Value = this.loginError; | 192 | xmlRpcResponse.Value = loginError; |
193 | return (this.xmlRpcResponse); | 193 | return (xmlRpcResponse); |
194 | } // GenerateResponse | 194 | } // GenerateResponse |
195 | 195 | ||
196 | public XmlRpcResponse CreateFailedResponse() | 196 | public XmlRpcResponse CreateFailedResponse() |
197 | { | 197 | { |
198 | return (this.CreateLoginFailedResponse()); | 198 | return (CreateLoginFailedResponse()); |
199 | } // CreateErrorConnectingToGridResponse() | 199 | } // CreateErrorConnectingToGridResponse() |
200 | 200 | ||
201 | public XmlRpcResponse CreateLoginFailedResponse() | 201 | public XmlRpcResponse CreateLoginFailedResponse() |
202 | { | 202 | { |
203 | return (this.GenerateFailureResponse("key", "Could not authenticate your avatar. Please check your username and password, and check the grid if problems persist.", "false")); | 203 | return |
204 | (GenerateFailureResponse("key", | ||
205 | "Could not authenticate your avatar. Please check your username and password, and check the grid if problems persist.", | ||
206 | "false")); | ||
204 | } // LoginFailedResponse | 207 | } // LoginFailedResponse |
205 | 208 | ||
206 | public XmlRpcResponse CreateAlreadyLoggedInResponse() | 209 | public XmlRpcResponse CreateAlreadyLoggedInResponse() |
207 | { | 210 | { |
208 | return (this.GenerateFailureResponse("presence", "You appear to be already logged in, if this is not the case please wait for your session to timeout, if this takes longer than a few minutes please contact the grid owner", "false")); | 211 | return |
212 | (GenerateFailureResponse("presence", | ||
213 | "You appear to be already logged in, if this is not the case please wait for your session to timeout, if this takes longer than a few minutes please contact the grid owner", | ||
214 | "false")); | ||
209 | } // CreateAlreadyLoggedInResponse() | 215 | } // CreateAlreadyLoggedInResponse() |
210 | 216 | ||
211 | public XmlRpcResponse CreateDeadRegionResponse() | 217 | public XmlRpcResponse CreateDeadRegionResponse() |
212 | { | 218 | { |
213 | return (this.GenerateFailureResponse("key", "The region you are attempting to log into is not responding. Please select another region and try again.", "false")); | 219 | return |
220 | (GenerateFailureResponse("key", | ||
221 | "The region you are attempting to log into is not responding. Please select another region and try again.", | ||
222 | "false")); | ||
214 | } | 223 | } |
215 | 224 | ||
216 | public XmlRpcResponse CreateGridErrorResponse() | 225 | public XmlRpcResponse CreateGridErrorResponse() |
217 | { | 226 | { |
218 | return (this.GenerateFailureResponse("key", "Error connecting to grid. Could not percieve credentials from login XML.", "false")); | 227 | return |
228 | (GenerateFailureResponse("key", | ||
229 | "Error connecting to grid. Could not percieve credentials from login XML.", | ||
230 | "false")); | ||
219 | } | 231 | } |
220 | 232 | ||
221 | #endregion | 233 | #endregion |
222 | 234 | ||
223 | public XmlRpcResponse ToXmlRpcResponse() | 235 | public XmlRpcResponse ToXmlRpcResponse() |
224 | { | 236 | { |
225 | try | 237 | try |
226 | { | 238 | { |
227 | |||
228 | Hashtable responseData = new Hashtable(); | 239 | Hashtable responseData = new Hashtable(); |
229 | 240 | ||
230 | this.loginFlagsHash = new Hashtable(); | 241 | loginFlagsHash = new Hashtable(); |
231 | this.loginFlagsHash["daylight_savings"] = this.DST; | 242 | loginFlagsHash["daylight_savings"] = DST; |
232 | this.loginFlagsHash["stipend_since_login"] = this.StipendSinceLogin; | 243 | loginFlagsHash["stipend_since_login"] = StipendSinceLogin; |
233 | this.loginFlagsHash["gendered"] = this.Gendered; | 244 | loginFlagsHash["gendered"] = Gendered; |
234 | this.loginFlagsHash["ever_logged_in"] = this.EverLoggedIn; | 245 | loginFlagsHash["ever_logged_in"] = EverLoggedIn; |
235 | this.loginFlags.Add(this.loginFlagsHash); | 246 | loginFlags.Add(loginFlagsHash); |
236 | 247 | ||
237 | responseData["first_name"] = this.Firstname; | 248 | responseData["first_name"] = Firstname; |
238 | responseData["last_name"] = this.Lastname; | 249 | responseData["last_name"] = Lastname; |
239 | responseData["agent_access"] = this.agentAccess; | 250 | responseData["agent_access"] = agentAccess; |
240 | 251 | ||
241 | this.globalTexturesHash = new Hashtable(); | 252 | globalTexturesHash = new Hashtable(); |
242 | this.globalTexturesHash["sun_texture_id"] = this.SunTexture; | 253 | globalTexturesHash["sun_texture_id"] = SunTexture; |
243 | this.globalTexturesHash["cloud_texture_id"] = this.CloudTexture; | 254 | globalTexturesHash["cloud_texture_id"] = CloudTexture; |
244 | this.globalTexturesHash["moon_texture_id"] = this.MoonTexture; | 255 | globalTexturesHash["moon_texture_id"] = MoonTexture; |
245 | this.globalTextures.Add(this.globalTexturesHash); | 256 | globalTextures.Add(globalTexturesHash); |
246 | // this.eventCategories.Add(this.eventCategoriesHash); | 257 | // this.eventCategories.Add(this.eventCategoriesHash); |
247 | 258 | ||
248 | this.AddToUIConfig("allow_first_life", this.allowFirstLife); | 259 | AddToUIConfig("allow_first_life", allowFirstLife); |
249 | this.uiConfig.Add(this.uiConfigHash); | 260 | uiConfig.Add(uiConfigHash); |
250 | 261 | ||
251 | responseData["sim_port"] =(Int32) this.SimPort; | 262 | responseData["sim_port"] = (Int32) SimPort; |
252 | responseData["sim_ip"] = this.SimAddress; | 263 | responseData["sim_ip"] = SimAddress; |
253 | 264 | ||
254 | responseData["agent_id"] = this.AgentID.ToStringHyphenated(); | 265 | responseData["agent_id"] = AgentID.ToStringHyphenated(); |
255 | responseData["session_id"] = this.SessionID.ToStringHyphenated(); | 266 | responseData["session_id"] = SessionID.ToStringHyphenated(); |
256 | responseData["secure_session_id"] = this.SecureSessionID.ToStringHyphenated(); | 267 | responseData["secure_session_id"] = SecureSessionID.ToStringHyphenated(); |
257 | responseData["circuit_code"] = this.CircuitCode; | 268 | responseData["circuit_code"] = CircuitCode; |
258 | responseData["seconds_since_epoch"] = (Int32)(DateTime.UtcNow - new DateTime(1970, 1, 1)).TotalSeconds; | 269 | responseData["seconds_since_epoch"] = (Int32) (DateTime.UtcNow - new DateTime(1970, 1, 1)).TotalSeconds; |
259 | responseData["login-flags"] = this.loginFlags; | 270 | responseData["login-flags"] = loginFlags; |
260 | responseData["global-textures"] = this.globalTextures; | 271 | responseData["global-textures"] = globalTextures; |
261 | responseData["seed_capability"] = this.seedCapability; | 272 | responseData["seed_capability"] = seedCapability; |
262 | 273 | ||
263 | responseData["event_categories"] = this.eventCategories; | 274 | responseData["event_categories"] = eventCategories; |
264 | responseData["event_notifications"] = new ArrayList(); // todo | 275 | responseData["event_notifications"] = new ArrayList(); // todo |
265 | responseData["classified_categories"] = this.classifiedCategories; | 276 | responseData["classified_categories"] = classifiedCategories; |
266 | responseData["ui-config"] = this.uiConfig; | 277 | responseData["ui-config"] = uiConfig; |
267 | 278 | ||
268 | responseData["inventory-skeleton"] = this.agentInventory; | 279 | responseData["inventory-skeleton"] = agentInventory; |
269 | responseData["inventory-skel-lib"] = this.inventoryLibrary; | 280 | responseData["inventory-skel-lib"] = inventoryLibrary; |
270 | responseData["inventory-root"] = this.inventoryRoot; | 281 | responseData["inventory-root"] = inventoryRoot; |
271 | responseData["gestures"] = new ArrayList(); // todo | 282 | responseData["gestures"] = new ArrayList(); // todo |
272 | responseData["inventory-lib-owner"] = this.inventoryLibraryOwner; | 283 | responseData["inventory-lib-owner"] = inventoryLibraryOwner; |
273 | responseData["initial-outfit"] = this.initialOutfit; | 284 | responseData["initial-outfit"] = initialOutfit; |
274 | responseData["start_location"] = this.startLocation; | 285 | responseData["start_location"] = startLocation; |
275 | responseData["seed_capability"] = this.seedCapability; | 286 | responseData["seed_capability"] = seedCapability; |
276 | responseData["home"] = this.home; | 287 | responseData["home"] = home; |
277 | responseData["look_at"] = this.lookAt; | 288 | responseData["look_at"] = lookAt; |
278 | responseData["message"] = this.welcomeMessage; | 289 | responseData["message"] = welcomeMessage; |
279 | responseData["region_x"] = (Int32)this.RegionX * 256; | 290 | responseData["region_x"] = (Int32) RegionX*256; |
280 | responseData["region_y"] = (Int32)this.RegionY * 256; | 291 | responseData["region_y"] = (Int32) RegionY*256; |
281 | 292 | ||
282 | //responseData["inventory-lib-root"] = new ArrayList(); // todo | 293 | //responseData["inventory-lib-root"] = new ArrayList(); // todo |
283 | //responseData["buddy-list"] = new ArrayList(); // todo | 294 | //responseData["buddy-list"] = new ArrayList(); // todo |
284 | 295 | ||
285 | responseData["login"] = "true"; | 296 | responseData["login"] = "true"; |
286 | this.xmlRpcResponse.Value = responseData; | 297 | xmlRpcResponse.Value = responseData; |
287 | 298 | ||
288 | return (this.xmlRpcResponse); | 299 | return (xmlRpcResponse); |
289 | } | 300 | } |
290 | catch (Exception e) | 301 | catch (Exception e) |
291 | { | 302 | { |
292 | MainLog.Instance.Warn( | 303 | MainLog.Instance.Warn( |
293 | "CLIENT", | 304 | "CLIENT", |
294 | "LoginResponse: Error creating XML-RPC Response: " + e.Message | 305 | "LoginResponse: Error creating XML-RPC Response: " + e.Message |
295 | ); | 306 | ); |
296 | return (this.GenerateFailureResponse("Internal Error", "Error generating Login Response", "false")); | 307 | return (GenerateFailureResponse("Internal Error", "Error generating Login Response", "false")); |
297 | |||
298 | } | 308 | } |
299 | |||
300 | } // ToXmlRpcResponse | 309 | } // ToXmlRpcResponse |
301 | 310 | ||
302 | public void SetEventCategories(string category, string value) | 311 | public void SetEventCategories(string category, string value) |
303 | { | 312 | { |
304 | // this.eventCategoriesHash[category] = value; | 313 | // this.eventCategoriesHash[category] = value; |
305 | //TODO | 314 | //TODO |
306 | } // SetEventCategories | 315 | } // SetEventCategories |
307 | 316 | ||
308 | public void AddToUIConfig(string itemName, string item) | 317 | public void AddToUIConfig(string itemName, string item) |
309 | { | 318 | { |
310 | this.uiConfigHash[itemName] = item; | 319 | uiConfigHash[itemName] = item; |
311 | } // SetUIConfig | 320 | } // SetUIConfig |
312 | 321 | ||
313 | public void AddClassifiedCategory(Int32 ID, string categoryName) | 322 | public void AddClassifiedCategory(Int32 ID, string categoryName) |
@@ -315,372 +324,193 @@ namespace OpenSim.Framework.UserManagement | |||
315 | Hashtable hash = new Hashtable(); | 324 | Hashtable hash = new Hashtable(); |
316 | hash["category_name"] = categoryName; | 325 | hash["category_name"] = categoryName; |
317 | hash["category_id"] = ID; | 326 | hash["category_id"] = ID; |
318 | this.classifiedCategories.Add(hash); | 327 | classifiedCategories.Add(hash); |
319 | // this.classifiedCategoriesHash.Clear(); | 328 | // this.classifiedCategoriesHash.Clear(); |
320 | } // SetClassifiedCategory | 329 | } // SetClassifiedCategory |
321 | 330 | ||
322 | #region Properties | 331 | #region Properties |
332 | |||
323 | public string Login | 333 | public string Login |
324 | { | 334 | { |
325 | get | 335 | get { return login; } |
326 | { | 336 | set { login = value; } |
327 | return this.login; | ||
328 | } | ||
329 | set | ||
330 | { | ||
331 | this.login = value; | ||
332 | } | ||
333 | } // Login | 337 | } // Login |
334 | 338 | ||
335 | public string DST | 339 | public string DST |
336 | { | 340 | { |
337 | get | 341 | get { return dst; } |
338 | { | 342 | set { dst = value; } |
339 | return this.dst; | ||
340 | } | ||
341 | set | ||
342 | { | ||
343 | this.dst = value; | ||
344 | } | ||
345 | } // DST | 343 | } // DST |
346 | 344 | ||
347 | public string StipendSinceLogin | 345 | public string StipendSinceLogin |
348 | { | 346 | { |
349 | get | 347 | get { return stipendSinceLogin; } |
350 | { | 348 | set { stipendSinceLogin = value; } |
351 | return this.stipendSinceLogin; | ||
352 | } | ||
353 | set | ||
354 | { | ||
355 | this.stipendSinceLogin = value; | ||
356 | } | ||
357 | } // StipendSinceLogin | 349 | } // StipendSinceLogin |
358 | 350 | ||
359 | public string Gendered | 351 | public string Gendered |
360 | { | 352 | { |
361 | get | 353 | get { return gendered; } |
362 | { | 354 | set { gendered = value; } |
363 | return this.gendered; | ||
364 | } | ||
365 | set | ||
366 | { | ||
367 | this.gendered = value; | ||
368 | } | ||
369 | } // Gendered | 355 | } // Gendered |
370 | 356 | ||
371 | public string EverLoggedIn | 357 | public string EverLoggedIn |
372 | { | 358 | { |
373 | get | 359 | get { return everLoggedIn; } |
374 | { | 360 | set { everLoggedIn = value; } |
375 | return this.everLoggedIn; | ||
376 | } | ||
377 | set | ||
378 | { | ||
379 | this.everLoggedIn = value; | ||
380 | } | ||
381 | } // EverLoggedIn | 361 | } // EverLoggedIn |
382 | 362 | ||
383 | public int SimPort | 363 | public int SimPort |
384 | { | 364 | { |
385 | get | 365 | get { return simPort; } |
386 | { | 366 | set { simPort = value; } |
387 | return this.simPort; | ||
388 | } | ||
389 | set | ||
390 | { | ||
391 | this.simPort = value; | ||
392 | } | ||
393 | } // SimPort | 367 | } // SimPort |
394 | 368 | ||
395 | public string SimAddress | 369 | public string SimAddress |
396 | { | 370 | { |
397 | get | 371 | get { return simAddress; } |
398 | { | 372 | set { simAddress = value; } |
399 | return this.simAddress; | ||
400 | } | ||
401 | set | ||
402 | { | ||
403 | this.simAddress = value; | ||
404 | } | ||
405 | } // SimAddress | 373 | } // SimAddress |
406 | 374 | ||
407 | public LLUUID AgentID | 375 | public LLUUID AgentID |
408 | { | 376 | { |
409 | get | 377 | get { return agentID; } |
410 | { | 378 | set { agentID = value; } |
411 | return this.agentID; | ||
412 | } | ||
413 | set | ||
414 | { | ||
415 | this.agentID = value; | ||
416 | } | ||
417 | } // AgentID | 379 | } // AgentID |
418 | 380 | ||
419 | public LLUUID SessionID | 381 | public LLUUID SessionID |
420 | { | 382 | { |
421 | get | 383 | get { return sessionID; } |
422 | { | 384 | set { sessionID = value; } |
423 | return this.sessionID; | ||
424 | } | ||
425 | set | ||
426 | { | ||
427 | this.sessionID = value; | ||
428 | } | ||
429 | } // SessionID | 385 | } // SessionID |
430 | 386 | ||
431 | public LLUUID SecureSessionID | 387 | public LLUUID SecureSessionID |
432 | { | 388 | { |
433 | get | 389 | get { return secureSessionID; } |
434 | { | 390 | set { secureSessionID = value; } |
435 | return this.secureSessionID; | ||
436 | } | ||
437 | set | ||
438 | { | ||
439 | this.secureSessionID = value; | ||
440 | } | ||
441 | } // SecureSessionID | 391 | } // SecureSessionID |
442 | 392 | ||
443 | public Int32 CircuitCode | 393 | public Int32 CircuitCode |
444 | { | 394 | { |
445 | get | 395 | get { return circuitCode; } |
446 | { | 396 | set { circuitCode = value; } |
447 | return this.circuitCode; | ||
448 | } | ||
449 | set | ||
450 | { | ||
451 | this.circuitCode = value; | ||
452 | } | ||
453 | } // CircuitCode | 397 | } // CircuitCode |
454 | 398 | ||
455 | public uint RegionX | 399 | public uint RegionX |
456 | { | 400 | { |
457 | get | 401 | get { return regionX; } |
458 | { | 402 | set { regionX = value; } |
459 | return this.regionX; | ||
460 | } | ||
461 | set | ||
462 | { | ||
463 | this.regionX = value; | ||
464 | } | ||
465 | } // RegionX | 403 | } // RegionX |
466 | 404 | ||
467 | public uint RegionY | 405 | public uint RegionY |
468 | { | 406 | { |
469 | get | 407 | get { return regionY; } |
470 | { | 408 | set { regionY = value; } |
471 | return this.regionY; | ||
472 | } | ||
473 | set | ||
474 | { | ||
475 | this.regionY = value; | ||
476 | } | ||
477 | } // RegionY | 409 | } // RegionY |
478 | 410 | ||
479 | public string SunTexture | 411 | public string SunTexture |
480 | { | 412 | { |
481 | get | 413 | get { return sunTexture; } |
482 | { | 414 | set { sunTexture = value; } |
483 | return this.sunTexture; | ||
484 | } | ||
485 | set | ||
486 | { | ||
487 | this.sunTexture = value; | ||
488 | } | ||
489 | } // SunTexture | 415 | } // SunTexture |
490 | 416 | ||
491 | public string CloudTexture | 417 | public string CloudTexture |
492 | { | 418 | { |
493 | get | 419 | get { return cloudTexture; } |
494 | { | 420 | set { cloudTexture = value; } |
495 | return this.cloudTexture; | ||
496 | } | ||
497 | set | ||
498 | { | ||
499 | this.cloudTexture = value; | ||
500 | } | ||
501 | } // CloudTexture | 421 | } // CloudTexture |
502 | 422 | ||
503 | public string MoonTexture | 423 | public string MoonTexture |
504 | { | 424 | { |
505 | get | 425 | get { return moonTexture; } |
506 | { | 426 | set { moonTexture = value; } |
507 | return this.moonTexture; | ||
508 | } | ||
509 | set | ||
510 | { | ||
511 | this.moonTexture = value; | ||
512 | } | ||
513 | } // MoonTexture | 427 | } // MoonTexture |
514 | 428 | ||
515 | public string Firstname | 429 | public string Firstname |
516 | { | 430 | { |
517 | get | 431 | get { return firstname; } |
518 | { | 432 | set { firstname = value; } |
519 | return this.firstname; | ||
520 | } | ||
521 | set | ||
522 | { | ||
523 | this.firstname = value; | ||
524 | } | ||
525 | } // Firstname | 433 | } // Firstname |
526 | 434 | ||
527 | public string Lastname | 435 | public string Lastname |
528 | { | 436 | { |
529 | get | 437 | get { return lastname; } |
530 | { | 438 | set { lastname = value; } |
531 | return this.lastname; | ||
532 | } | ||
533 | set | ||
534 | { | ||
535 | this.lastname = value; | ||
536 | } | ||
537 | } // Lastname | 439 | } // Lastname |
538 | 440 | ||
539 | public string AgentAccess | 441 | public string AgentAccess |
540 | { | 442 | { |
541 | get | 443 | get { return agentAccess; } |
542 | { | 444 | set { agentAccess = value; } |
543 | return this.agentAccess; | ||
544 | } | ||
545 | set | ||
546 | { | ||
547 | this.agentAccess = value; | ||
548 | } | ||
549 | } | 445 | } |
550 | 446 | ||
551 | public string StartLocation | 447 | public string StartLocation |
552 | { | 448 | { |
553 | get | 449 | get { return startLocation; } |
554 | { | 450 | set { startLocation = value; } |
555 | return this.startLocation; | ||
556 | } | ||
557 | set | ||
558 | { | ||
559 | this.startLocation = value; | ||
560 | } | ||
561 | } // StartLocation | 451 | } // StartLocation |
562 | 452 | ||
563 | public string LookAt | 453 | public string LookAt |
564 | { | 454 | { |
565 | get | 455 | get { return lookAt; } |
566 | { | 456 | set { lookAt = value; } |
567 | return this.lookAt; | ||
568 | } | ||
569 | set | ||
570 | { | ||
571 | this.lookAt = value; | ||
572 | } | ||
573 | } | 457 | } |
574 | 458 | ||
575 | public string SeedCapability | 459 | public string SeedCapability |
576 | { | 460 | { |
577 | get | 461 | get { return seedCapability; } |
578 | { | 462 | set { seedCapability = value; } |
579 | return this.seedCapability; | ||
580 | } | ||
581 | set | ||
582 | { | ||
583 | this.seedCapability = value; | ||
584 | } | ||
585 | } // SeedCapability | 463 | } // SeedCapability |
586 | 464 | ||
587 | public string ErrorReason | 465 | public string ErrorReason |
588 | { | 466 | { |
589 | get | 467 | get { return errorReason; } |
590 | { | 468 | set { errorReason = value; } |
591 | return this.errorReason; | ||
592 | } | ||
593 | set | ||
594 | { | ||
595 | this.errorReason = value; | ||
596 | } | ||
597 | } // ErrorReason | 469 | } // ErrorReason |
598 | 470 | ||
599 | public string ErrorMessage | 471 | public string ErrorMessage |
600 | { | 472 | { |
601 | get | 473 | get { return errorMessage; } |
602 | { | 474 | set { errorMessage = value; } |
603 | return this.errorMessage; | ||
604 | } | ||
605 | set | ||
606 | { | ||
607 | this.errorMessage = value; | ||
608 | } | ||
609 | } // ErrorMessage | 475 | } // ErrorMessage |
610 | 476 | ||
611 | public ArrayList InventoryRoot | 477 | public ArrayList InventoryRoot |
612 | { | 478 | { |
613 | get | 479 | get { return inventoryRoot; } |
614 | { | 480 | set { inventoryRoot = value; } |
615 | return this.inventoryRoot; | ||
616 | } | ||
617 | set | ||
618 | { | ||
619 | this.inventoryRoot = value; | ||
620 | } | ||
621 | } | 481 | } |
622 | 482 | ||
623 | public ArrayList InventorySkeleton | 483 | public ArrayList InventorySkeleton |
624 | { | 484 | { |
625 | get | 485 | get { return agentInventory; } |
626 | { | 486 | set { agentInventory = value; } |
627 | return this.agentInventory; | ||
628 | } | ||
629 | set | ||
630 | { | ||
631 | this.agentInventory = value; | ||
632 | } | ||
633 | } | 487 | } |
634 | 488 | ||
635 | public ArrayList InventoryLibrary | 489 | public ArrayList InventoryLibrary |
636 | { | 490 | { |
637 | get | 491 | get { return inventoryLibrary; } |
638 | { | 492 | set { inventoryLibrary = value; } |
639 | return this.inventoryLibrary; | ||
640 | } | ||
641 | set | ||
642 | { | ||
643 | this.inventoryLibrary = value; | ||
644 | } | ||
645 | } | 493 | } |
646 | 494 | ||
647 | public ArrayList InventoryLibraryOwner | 495 | public ArrayList InventoryLibraryOwner |
648 | { | 496 | { |
649 | get | 497 | get { return inventoryLibraryOwner; } |
650 | { | 498 | set { inventoryLibraryOwner = value; } |
651 | return this.inventoryLibraryOwner; | ||
652 | } | ||
653 | set | ||
654 | { | ||
655 | this.inventoryLibraryOwner = value; | ||
656 | } | ||
657 | } | 499 | } |
658 | 500 | ||
659 | public string Home | 501 | public string Home |
660 | { | 502 | { |
661 | get | 503 | get { return home; } |
662 | { | 504 | set { home = value; } |
663 | return this.home; | ||
664 | } | ||
665 | set | ||
666 | { | ||
667 | this.home = value; | ||
668 | } | ||
669 | } | 505 | } |
670 | 506 | ||
671 | public string Message | 507 | public string Message |
672 | { | 508 | { |
673 | get | 509 | get { return welcomeMessage; } |
674 | { | 510 | set { welcomeMessage = value; } |
675 | return this.welcomeMessage; | ||
676 | } | ||
677 | set | ||
678 | { | ||
679 | this.welcomeMessage = value; | ||
680 | } | ||
681 | } | 511 | } |
682 | #endregion | ||
683 | 512 | ||
513 | #endregion | ||
684 | 514 | ||
685 | public class UserInfo | 515 | public class UserInfo |
686 | { | 516 | { |
@@ -691,6 +521,4 @@ namespace OpenSim.Framework.UserManagement | |||
691 | public LLVector3 homelookat; | 521 | public LLVector3 homelookat; |
692 | } | 522 | } |
693 | } | 523 | } |
694 | } | 524 | } \ No newline at end of file |
695 | |||
696 | |||
diff --git a/OpenSim/Framework/Communications/LoginService.cs b/OpenSim/Framework/Communications/LoginService.cs index 66b91e1..497cc5d 100644 --- a/OpenSim/Framework/Communications/LoginService.cs +++ b/OpenSim/Framework/Communications/LoginService.cs | |||
@@ -28,16 +28,10 @@ | |||
28 | 28 | ||
29 | using System; | 29 | using System; |
30 | using System.Collections; | 30 | using System.Collections; |
31 | using System.Collections.Generic; | ||
32 | using System.Reflection; | ||
33 | using System.Security.Cryptography; | ||
34 | using libsecondlife; | 31 | using libsecondlife; |
35 | using Nwc.XmlRpc; | 32 | using Nwc.XmlRpc; |
36 | using OpenSim.Framework.Console; | 33 | using OpenSim.Framework.Console; |
37 | 34 | ||
38 | using OpenSim.Framework; | ||
39 | using InventoryFolder = OpenSim.Framework.InventoryFolder; | ||
40 | |||
41 | namespace OpenSim.Framework.UserManagement | 35 | namespace OpenSim.Framework.UserManagement |
42 | { | 36 | { |
43 | public class LoginService | 37 | public class LoginService |
@@ -61,12 +55,12 @@ namespace OpenSim.Framework.UserManagement | |||
61 | /// <returns>The response to send</returns> | 55 | /// <returns>The response to send</returns> |
62 | public XmlRpcResponse XmlRpcLoginMethod(XmlRpcRequest request) | 56 | public XmlRpcResponse XmlRpcLoginMethod(XmlRpcRequest request) |
63 | { | 57 | { |
64 | 58 | MainLog.Instance.Verbose("LOGIN", "Attempting login now..."); | |
65 | MainLog.Instance.Verbose("LOGIN","Attempting login now..."); | ||
66 | XmlRpcResponse response = new XmlRpcResponse(); | 59 | XmlRpcResponse response = new XmlRpcResponse(); |
67 | Hashtable requestData = (Hashtable)request.Params[0]; | 60 | Hashtable requestData = (Hashtable) request.Params[0]; |
68 | 61 | ||
69 | bool GoodXML = (requestData.Contains("first") && requestData.Contains("last") && requestData.Contains("passwd")); | 62 | bool GoodXML = (requestData.Contains("first") && requestData.Contains("last") && |
63 | requestData.Contains("passwd")); | ||
70 | bool GoodLogin = false; | 64 | bool GoodLogin = false; |
71 | 65 | ||
72 | UserProfileData userProfile; | 66 | UserProfileData userProfile; |
@@ -74,9 +68,9 @@ namespace OpenSim.Framework.UserManagement | |||
74 | 68 | ||
75 | if (GoodXML) | 69 | if (GoodXML) |
76 | { | 70 | { |
77 | string firstname = (string)requestData["first"]; | 71 | string firstname = (string) requestData["first"]; |
78 | string lastname = (string)requestData["last"]; | 72 | string lastname = (string) requestData["last"]; |
79 | string passwd = (string)requestData["passwd"]; | 73 | string passwd = (string) requestData["passwd"]; |
80 | 74 | ||
81 | userProfile = GetTheUser(firstname, lastname); | 75 | userProfile = GetTheUser(firstname, lastname); |
82 | if (userProfile == null) | 76 | if (userProfile == null) |
@@ -110,7 +104,7 @@ namespace OpenSim.Framework.UserManagement | |||
110 | LLUUID agentID = userProfile.UUID; | 104 | LLUUID agentID = userProfile.UUID; |
111 | 105 | ||
112 | // Inventory Library Section | 106 | // Inventory Library Section |
113 | InventoryData inventData = this.CreateInventoryData(agentID); | 107 | InventoryData inventData = CreateInventoryData(agentID); |
114 | ArrayList AgentInventoryArray = inventData.InventoryArray; | 108 | ArrayList AgentInventoryArray = inventData.InventoryArray; |
115 | 109 | ||
116 | Hashtable InventoryRootHash = new Hashtable(); | 110 | Hashtable InventoryRootHash = new Hashtable(); |
@@ -120,7 +114,7 @@ namespace OpenSim.Framework.UserManagement | |||
120 | userProfile.rootInventoryFolderID = inventData.RootFolderID; | 114 | userProfile.rootInventoryFolderID = inventData.RootFolderID; |
121 | 115 | ||
122 | // Circuit Code | 116 | // Circuit Code |
123 | uint circode = (uint)(Util.RandomClass.Next()); | 117 | uint circode = (uint) (Util.RandomClass.Next()); |
124 | 118 | ||
125 | logResponse.Lastname = userProfile.surname; | 119 | logResponse.Lastname = userProfile.surname; |
126 | logResponse.Firstname = userProfile.username; | 120 | logResponse.Firstname = userProfile.username; |
@@ -129,20 +123,20 @@ namespace OpenSim.Framework.UserManagement | |||
129 | logResponse.SecureSessionID = userProfile.currentAgent.secureSessionID.ToStringHyphenated(); | 123 | logResponse.SecureSessionID = userProfile.currentAgent.secureSessionID.ToStringHyphenated(); |
130 | logResponse.InventoryRoot = InventoryRoot; | 124 | logResponse.InventoryRoot = InventoryRoot; |
131 | logResponse.InventorySkeleton = AgentInventoryArray; | 125 | logResponse.InventorySkeleton = AgentInventoryArray; |
132 | logResponse.InventoryLibrary = this.GetInventoryLibrary(); | 126 | logResponse.InventoryLibrary = GetInventoryLibrary(); |
133 | logResponse.InventoryLibraryOwner = this.GetLibraryOwner(); | 127 | logResponse.InventoryLibraryOwner = GetLibraryOwner(); |
134 | logResponse.CircuitCode = (Int32)circode; | 128 | logResponse.CircuitCode = (Int32) circode; |
135 | //logResponse.RegionX = 0; //overwritten | 129 | //logResponse.RegionX = 0; //overwritten |
136 | //logResponse.RegionY = 0; //overwritten | 130 | //logResponse.RegionY = 0; //overwritten |
137 | logResponse.Home = "!!null temporary value {home}!!"; // Overwritten | 131 | logResponse.Home = "!!null temporary value {home}!!"; // Overwritten |
138 | //logResponse.LookAt = "\n[r" + TheUser.homeLookAt.X.ToString() + ",r" + TheUser.homeLookAt.Y.ToString() + ",r" + TheUser.homeLookAt.Z.ToString() + "]\n"; | 132 | //logResponse.LookAt = "\n[r" + TheUser.homeLookAt.X.ToString() + ",r" + TheUser.homeLookAt.Y.ToString() + ",r" + TheUser.homeLookAt.Z.ToString() + "]\n"; |
139 | //logResponse.SimAddress = "127.0.0.1"; //overwritten | 133 | //logResponse.SimAddress = "127.0.0.1"; //overwritten |
140 | //logResponse.SimPort = 0; //overwritten | 134 | //logResponse.SimPort = 0; //overwritten |
141 | logResponse.Message = this.GetMessage(); | 135 | logResponse.Message = GetMessage(); |
142 | 136 | ||
143 | try | 137 | try |
144 | { | 138 | { |
145 | this.CustomiseResponse(logResponse, userProfile); | 139 | CustomiseResponse(logResponse, userProfile); |
146 | } | 140 | } |
147 | catch (Exception e) | 141 | catch (Exception e) |
148 | { | 142 | { |
@@ -152,7 +146,6 @@ namespace OpenSim.Framework.UserManagement | |||
152 | } | 146 | } |
153 | CommitAgent(ref userProfile); | 147 | CommitAgent(ref userProfile); |
154 | return logResponse.ToXmlRpcResponse(); | 148 | return logResponse.ToXmlRpcResponse(); |
155 | |||
156 | } | 149 | } |
157 | 150 | ||
158 | catch (Exception E) | 151 | catch (Exception E) |
@@ -162,7 +155,6 @@ namespace OpenSim.Framework.UserManagement | |||
162 | //} | 155 | //} |
163 | } | 156 | } |
164 | return response; | 157 | return response; |
165 | |||
166 | } | 158 | } |
167 | 159 | ||
168 | /// <summary> | 160 | /// <summary> |
@@ -174,7 +166,7 @@ namespace OpenSim.Framework.UserManagement | |||
174 | { | 166 | { |
175 | } | 167 | } |
176 | 168 | ||
177 | /// <summary> | 169 | /// <summary> |
178 | /// Saves a target agent to the database | 170 | /// Saves a target agent to the database |
179 | /// </summary> | 171 | /// </summary> |
180 | /// <param name="profile">The users profile</param> | 172 | /// <param name="profile">The users profile</param> |
@@ -194,8 +186,7 @@ namespace OpenSim.Framework.UserManagement | |||
194 | /// <returns>Authenticated?</returns> | 186 | /// <returns>Authenticated?</returns> |
195 | public virtual bool AuthenticateUser(UserProfileData profile, string password) | 187 | public virtual bool AuthenticateUser(UserProfileData profile, string password) |
196 | { | 188 | { |
197 | 189 | MainLog.Instance.Verbose("LOGIN", "Authenticating " + profile.username + " " + profile.surname); | |
198 | MainLog.Instance.Verbose("LOGIN","Authenticating " + profile.username + " " + profile.surname); | ||
199 | 190 | ||
200 | password = password.Remove(0, 3); //remove $1$ | 191 | password = password.Remove(0, 3); //remove $1$ |
201 | 192 | ||
@@ -211,7 +202,7 @@ namespace OpenSim.Framework.UserManagement | |||
211 | /// <param name="request"></param> | 202 | /// <param name="request"></param> |
212 | public void CreateAgent(UserProfileData profile, XmlRpcRequest request) | 203 | public void CreateAgent(UserProfileData profile, XmlRpcRequest request) |
213 | { | 204 | { |
214 | this.m_userManager.CreateAgent(profile, request); | 205 | m_userManager.CreateAgent(profile, request); |
215 | } | 206 | } |
216 | 207 | ||
217 | /// <summary> | 208 | /// <summary> |
@@ -222,7 +213,7 @@ namespace OpenSim.Framework.UserManagement | |||
222 | /// <returns></returns> | 213 | /// <returns></returns> |
223 | public virtual UserProfileData GetTheUser(string firstname, string lastname) | 214 | public virtual UserProfileData GetTheUser(string firstname, string lastname) |
224 | { | 215 | { |
225 | return this.m_userManager.GetUserProfile(firstname, lastname); | 216 | return m_userManager.GetUserProfile(firstname, lastname); |
226 | } | 217 | } |
227 | 218 | ||
228 | /// <summary> | 219 | /// <summary> |
@@ -286,8 +277,8 @@ namespace OpenSim.Framework.UserManagement | |||
286 | TempHash = new Hashtable(); | 277 | TempHash = new Hashtable(); |
287 | TempHash["name"] = InvFolder.FolderName; | 278 | TempHash["name"] = InvFolder.FolderName; |
288 | TempHash["parent_id"] = InvFolder.ParentID.ToStringHyphenated(); | 279 | TempHash["parent_id"] = InvFolder.ParentID.ToStringHyphenated(); |
289 | TempHash["version"] = (Int32)InvFolder.Version; | 280 | TempHash["version"] = (Int32) InvFolder.Version; |
290 | TempHash["type_default"] = (Int32)InvFolder.DefaultType; | 281 | TempHash["type_default"] = (Int32) InvFolder.DefaultType; |
291 | TempHash["folder_id"] = InvFolder.FolderID.ToStringHyphenated(); | 282 | TempHash["folder_id"] = InvFolder.FolderID.ToStringHyphenated(); |
292 | AgentInventoryArray.Add(TempHash); | 283 | AgentInventoryArray.Add(TempHash); |
293 | } | 284 | } |
@@ -307,4 +298,4 @@ namespace OpenSim.Framework.UserManagement | |||
307 | } | 298 | } |
308 | } | 299 | } |
309 | } | 300 | } |
310 | } | 301 | } \ No newline at end of file |
diff --git a/OpenSim/Framework/Communications/Properties/AssemblyInfo.cs b/OpenSim/Framework/Communications/Properties/AssemblyInfo.cs index 43fce84..a812ac9 100644 --- a/OpenSim/Framework/Communications/Properties/AssemblyInfo.cs +++ b/OpenSim/Framework/Communications/Properties/AssemblyInfo.cs | |||
@@ -1,4 +1,4 @@ | |||
1 | /* | 1 | /* |
2 | * Copyright (c) Contributors, http://opensimulator.org/ | 2 | * Copyright (c) Contributors, http://opensimulator.org/ |
3 | * See CONTRIBUTORS.TXT for a full list of copyright holders. | 3 | * See CONTRIBUTORS.TXT for a full list of copyright holders. |
4 | * | 4 | * |
@@ -27,25 +27,29 @@ | |||
27 | */ | 27 | */ |
28 | using System.Reflection; | 28 | using System.Reflection; |
29 | using System.Runtime.InteropServices; | 29 | using System.Runtime.InteropServices; |
30 | |||
30 | // General Information about an assembly is controlled through the following | 31 | // General Information about an assembly is controlled through the following |
31 | // set of attributes. Change these attribute values to modify the information | 32 | // set of attributes. Change these attribute values to modify the information |
32 | // associated with an assembly. | 33 | // associated with an assembly. |
33 | [assembly: AssemblyTitle("OpenGrid.Framework.Communications")] | 34 | |
34 | [assembly: AssemblyDescription("")] | 35 | [assembly : AssemblyTitle("OpenGrid.Framework.Communications")] |
35 | [assembly: AssemblyConfiguration("")] | 36 | [assembly : AssemblyDescription("")] |
36 | [assembly: AssemblyCompany("")] | 37 | [assembly : AssemblyConfiguration("")] |
37 | [assembly: AssemblyProduct("OpenGrid.Framework.Communications")] | 38 | [assembly : AssemblyCompany("")] |
38 | [assembly: AssemblyCopyright("Copyright © 2007")] | 39 | [assembly : AssemblyProduct("OpenGrid.Framework.Communications")] |
39 | [assembly: AssemblyTrademark("")] | 40 | [assembly : AssemblyCopyright("Copyright © 2007")] |
40 | [assembly: AssemblyCulture("")] | 41 | [assembly : AssemblyTrademark("")] |
42 | [assembly : AssemblyCulture("")] | ||
41 | 43 | ||
42 | // Setting ComVisible to false makes the types in this assembly not visible | 44 | // Setting ComVisible to false makes the types in this assembly not visible |
43 | // to COM components. If you need to access a type in this assembly from | 45 | // to COM components. If you need to access a type in this assembly from |
44 | // COM, set the ComVisible attribute to true on that type. | 46 | // COM, set the ComVisible attribute to true on that type. |
45 | [assembly: ComVisible(false)] | 47 | |
48 | [assembly : ComVisible(false)] | ||
46 | 49 | ||
47 | // The following GUID is for the ID of the typelib if this project is exposed to COM | 50 | // The following GUID is for the ID of the typelib if this project is exposed to COM |
48 | [assembly: Guid("13e7c396-78a9-4a5c-baf2-6f980ea75d95")] | 51 | |
52 | [assembly : Guid("13e7c396-78a9-4a5c-baf2-6f980ea75d95")] | ||
49 | 53 | ||
50 | // Version information for an assembly consists of the following four values: | 54 | // Version information for an assembly consists of the following four values: |
51 | // | 55 | // |
@@ -56,5 +60,6 @@ using System.Runtime.InteropServices; | |||
56 | // | 60 | // |
57 | // You can specify all the values or you can default the Revision and Build Numbers | 61 | // You can specify all the values or you can default the Revision and Build Numbers |
58 | // by using the '*' as shown below: | 62 | // by using the '*' as shown below: |
59 | [assembly: AssemblyVersion("1.0.0.0")] | 63 | |
60 | [assembly: AssemblyFileVersion("1.0.0.0")] | 64 | [assembly : AssemblyVersion("1.0.0.0")] |
65 | [assembly : AssemblyFileVersion("1.0.0.0")] \ No newline at end of file | ||
diff --git a/OpenSim/Framework/Communications/RestClient/GenericAsyncResult.cs b/OpenSim/Framework/Communications/RestClient/GenericAsyncResult.cs index c821fa4..72d8f65 100644 --- a/OpenSim/Framework/Communications/RestClient/GenericAsyncResult.cs +++ b/OpenSim/Framework/Communications/RestClient/GenericAsyncResult.cs | |||
@@ -1,13 +1,10 @@ | |||
1 | using System; | 1 | using System; |
2 | using System.Collections.Generic; | ||
3 | using System.Text; | ||
4 | using System.Threading; | 2 | using System.Threading; |
5 | 3 | ||
6 | namespace OpenSim.Framework.Communications | 4 | namespace OpenSim.Framework.Communications |
7 | { | 5 | { |
8 | internal class SimpleAsyncResult : IAsyncResult | 6 | internal class SimpleAsyncResult : IAsyncResult |
9 | { | 7 | { |
10 | |||
11 | private readonly AsyncCallback m_callback; | 8 | private readonly AsyncCallback m_callback; |
12 | 9 | ||
13 | /// <summary> | 10 | /// <summary> |
@@ -36,7 +33,6 @@ namespace OpenSim.Framework.Communications | |||
36 | m_completedSynchronously = 1; | 33 | m_completedSynchronously = 1; |
37 | } | 34 | } |
38 | 35 | ||
39 | |||
40 | #region IAsyncResult Members | 36 | #region IAsyncResult Members |
41 | 37 | ||
42 | public object AsyncState | 38 | public object AsyncState |
@@ -45,7 +41,6 @@ namespace OpenSim.Framework.Communications | |||
45 | } | 41 | } |
46 | 42 | ||
47 | 43 | ||
48 | |||
49 | public WaitHandle AsyncWaitHandle | 44 | public WaitHandle AsyncWaitHandle |
50 | { | 45 | { |
51 | get | 46 | get |
@@ -82,19 +77,18 @@ namespace OpenSim.Framework.Communications | |||
82 | get { return Thread.VolatileRead(ref m_completed) == 1; } | 77 | get { return Thread.VolatileRead(ref m_completed) == 1; } |
83 | } | 78 | } |
84 | 79 | ||
85 | |||
86 | #endregion | 80 | #endregion |
87 | 81 | ||
88 | |||
89 | #region class Methods | 82 | #region class Methods |
83 | |||
90 | internal void SetAsCompleted(bool completedSynchronously) | 84 | internal void SetAsCompleted(bool completedSynchronously) |
91 | { | 85 | { |
92 | m_completed = 1; | 86 | m_completed = 1; |
93 | if(completedSynchronously) | 87 | if (completedSynchronously) |
94 | m_completedSynchronously = 1; | 88 | m_completedSynchronously = 1; |
95 | else | 89 | else |
96 | m_completedSynchronously = 0; | 90 | m_completedSynchronously = 0; |
97 | 91 | ||
98 | SignalCompletion(); | 92 | SignalCompletion(); |
99 | } | 93 | } |
100 | 94 | ||
@@ -112,9 +106,9 @@ namespace OpenSim.Framework.Communications | |||
112 | 106 | ||
113 | private void SignalCompletion() | 107 | private void SignalCompletion() |
114 | { | 108 | { |
115 | if(m_waitHandle != null) m_waitHandle.Set(); | 109 | if (m_waitHandle != null) m_waitHandle.Set(); |
116 | 110 | ||
117 | if(m_callback != null) m_callback(this); | 111 | if (m_callback != null) m_callback(this); |
118 | } | 112 | } |
119 | 113 | ||
120 | public void EndInvoke() | 114 | public void EndInvoke() |
@@ -125,14 +119,14 @@ namespace OpenSim.Framework.Communications | |||
125 | // If the operation isn't done, wait for it | 119 | // If the operation isn't done, wait for it |
126 | AsyncWaitHandle.WaitOne(); | 120 | AsyncWaitHandle.WaitOne(); |
127 | AsyncWaitHandle.Close(); | 121 | AsyncWaitHandle.Close(); |
128 | m_waitHandle = null; // Allow early GC | 122 | m_waitHandle = null; // Allow early GC |
129 | } | 123 | } |
130 | 124 | ||
131 | // Operation is done: if an exception occured, throw it | 125 | // Operation is done: if an exception occured, throw it |
132 | if (m_exception != null) throw m_exception; | 126 | if (m_exception != null) throw m_exception; |
133 | } | 127 | } |
134 | 128 | ||
135 | #endregion | 129 | #endregion |
136 | } | 130 | } |
137 | 131 | ||
138 | internal class AsyncResult<T> : SimpleAsyncResult | 132 | internal class AsyncResult<T> : SimpleAsyncResult |
@@ -140,10 +134,12 @@ namespace OpenSim.Framework.Communications | |||
140 | private T m_result = default(T); | 134 | private T m_result = default(T); |
141 | 135 | ||
142 | public AsyncResult(AsyncCallback asyncCallback, Object state) : | 136 | public AsyncResult(AsyncCallback asyncCallback, Object state) : |
143 | base(asyncCallback, state) { } | 137 | base(asyncCallback, state) |
138 | { | ||
139 | } | ||
144 | 140 | ||
145 | 141 | ||
146 | public void SetAsCompleted(T result, bool completedSynchronously) | 142 | public void SetAsCompleted(T result, bool completedSynchronously) |
147 | { | 143 | { |
148 | // Save the asynchronous operation's result | 144 | // Save the asynchronous operation's result |
149 | m_result = result; | 145 | m_result = result; |
@@ -153,11 +149,10 @@ namespace OpenSim.Framework.Communications | |||
153 | base.SetAsCompleted(completedSynchronously); | 149 | base.SetAsCompleted(completedSynchronously); |
154 | } | 150 | } |
155 | 151 | ||
156 | new public T EndInvoke() | 152 | public new T EndInvoke() |
157 | { | 153 | { |
158 | base.EndInvoke(); | 154 | base.EndInvoke(); |
159 | return m_result; | 155 | return m_result; |
160 | } | 156 | } |
161 | |||
162 | } | 157 | } |
163 | } | 158 | } \ No newline at end of file |
diff --git a/OpenSim/Framework/Communications/RestClient/RestClient.cs b/OpenSim/Framework/Communications/RestClient/RestClient.cs index 392669f..ac3a287 100644 --- a/OpenSim/Framework/Communications/RestClient/RestClient.cs +++ b/OpenSim/Framework/Communications/RestClient/RestClient.cs | |||
@@ -1,12 +1,10 @@ | |||
1 | using System; | 1 | using System; |
2 | using System.Collections.Generic; | ||
2 | using System.IO; | 3 | using System.IO; |
3 | using System.Net; | 4 | using System.Net; |
4 | using System.Web; | ||
5 | using System.Text; | 5 | using System.Text; |
6 | using System.Collections.Generic; | ||
7 | using System.Threading; | 6 | using System.Threading; |
8 | 7 | using System.Web; | |
9 | using OpenSim.Framework.Console; | ||
10 | 8 | ||
11 | namespace OpenSim.Framework.Communications | 9 | namespace OpenSim.Framework.Communications |
12 | { | 10 | { |
@@ -29,9 +27,10 @@ namespace OpenSim.Framework.Communications | |||
29 | /// </remarks> | 27 | /// </remarks> |
30 | public class RestClient | 28 | public class RestClient |
31 | { | 29 | { |
30 | private string realuri; | ||
32 | 31 | ||
33 | string realuri; | ||
34 | #region member variables | 32 | #region member variables |
33 | |||
35 | /// <summary> | 34 | /// <summary> |
36 | /// The base Uri of the web-service e.g. http://www.google.com | 35 | /// The base Uri of the web-service e.g. http://www.google.com |
37 | /// </summary> | 36 | /// </summary> |
@@ -60,7 +59,7 @@ namespace OpenSim.Framework.Communications | |||
60 | /// <summary> | 59 | /// <summary> |
61 | /// MemoryStream representing the resultiong resource | 60 | /// MemoryStream representing the resultiong resource |
62 | /// </summary> | 61 | /// </summary> |
63 | Stream _resource; | 62 | private Stream _resource; |
64 | 63 | ||
65 | /// <summary> | 64 | /// <summary> |
66 | /// WebRequest object, held as a member variable | 65 | /// WebRequest object, held as a member variable |
@@ -80,12 +79,12 @@ namespace OpenSim.Framework.Communications | |||
80 | /// <summary> | 79 | /// <summary> |
81 | /// Default time out period | 80 | /// Default time out period |
82 | /// </summary> | 81 | /// </summary> |
83 | const int DefaultTimeout = 10 * 1000; // 10 seconds timeout | 82 | private const int DefaultTimeout = 10*1000; // 10 seconds timeout |
84 | 83 | ||
85 | /// <summary> | 84 | /// <summary> |
86 | /// Default Buffer size of a block requested from the web-server | 85 | /// Default Buffer size of a block requested from the web-server |
87 | /// </summary> | 86 | /// </summary> |
88 | const int BufferSize = 4096; // Read blocks of 4 KB. | 87 | private const int BufferSize = 4096; // Read blocks of 4 KB. |
89 | 88 | ||
90 | 89 | ||
91 | /// <summary> | 90 | /// <summary> |
@@ -97,6 +96,7 @@ namespace OpenSim.Framework.Communications | |||
97 | #endregion member variables | 96 | #endregion member variables |
98 | 97 | ||
99 | #region constructors | 98 | #region constructors |
99 | |||
100 | /// <summary> | 100 | /// <summary> |
101 | /// Instantiate a new RestClient | 101 | /// Instantiate a new RestClient |
102 | /// </summary> | 102 | /// </summary> |
@@ -111,7 +111,8 @@ namespace OpenSim.Framework.Communications | |||
111 | _lock = new object(); | 111 | _lock = new object(); |
112 | } | 112 | } |
113 | 113 | ||
114 | object _lock; | 114 | private object _lock; |
115 | |||
115 | #endregion constructors | 116 | #endregion constructors |
116 | 117 | ||
117 | /// <summary> | 118 | /// <summary> |
@@ -120,8 +121,8 @@ namespace OpenSim.Framework.Communications | |||
120 | /// <param name="element">path entry</param> | 121 | /// <param name="element">path entry</param> |
121 | public void AddResourcePath(string element) | 122 | public void AddResourcePath(string element) |
122 | { | 123 | { |
123 | if(isSlashed(element)) | 124 | if (isSlashed(element)) |
124 | _pathElements.Add(element.Substring(0, element.Length-1)); | 125 | _pathElements.Add(element.Substring(0, element.Length - 1)); |
125 | else | 126 | else |
126 | _pathElements.Add(element); | 127 | _pathElements.Add(element); |
127 | } | 128 | } |
@@ -178,7 +179,7 @@ namespace OpenSim.Framework.Communications | |||
178 | /// Build a Uri based on the intial Url, path elements and parameters | 179 | /// Build a Uri based on the intial Url, path elements and parameters |
179 | /// </summary> | 180 | /// </summary> |
180 | /// <returns>fully constructed Uri</returns> | 181 | /// <returns>fully constructed Uri</returns> |
181 | Uri buildUri() | 182 | private Uri buildUri() |
182 | { | 183 | { |
183 | StringBuilder sb = new StringBuilder(); | 184 | StringBuilder sb = new StringBuilder(); |
184 | sb.Append(_url); | 185 | sb.Append(_url); |
@@ -196,7 +197,8 @@ namespace OpenSim.Framework.Communications | |||
196 | { | 197 | { |
197 | sb.Append("?"); | 198 | sb.Append("?"); |
198 | firstElement = false; | 199 | firstElement = false; |
199 | } else | 200 | } |
201 | else | ||
200 | sb.Append("&"); | 202 | sb.Append("&"); |
201 | 203 | ||
202 | sb.Append(kv.Key); | 204 | sb.Append(kv.Key); |
@@ -209,7 +211,9 @@ namespace OpenSim.Framework.Communications | |||
209 | realuri = sb.ToString(); | 211 | realuri = sb.ToString(); |
210 | return new Uri(sb.ToString()); | 212 | return new Uri(sb.ToString()); |
211 | } | 213 | } |
214 | |||
212 | #region Async communications with server | 215 | #region Async communications with server |
216 | |||
213 | /// <summary> | 217 | /// <summary> |
214 | /// Async method, invoked when a block of data has been received from the service | 218 | /// Async method, invoked when a block of data has been received from the service |
215 | /// </summary> | 219 | /// </summary> |
@@ -218,13 +222,14 @@ namespace OpenSim.Framework.Communications | |||
218 | { | 222 | { |
219 | try | 223 | try |
220 | { | 224 | { |
221 | Stream s = (Stream)ar.AsyncState; | 225 | Stream s = (Stream) ar.AsyncState; |
222 | int read = s.EndRead(ar); | 226 | int read = s.EndRead(ar); |
223 | 227 | ||
224 | if (read > 0) | 228 | if (read > 0) |
225 | { | 229 | { |
226 | _resource.Write(_readbuf, 0, read); | 230 | _resource.Write(_readbuf, 0, read); |
227 | IAsyncResult asynchronousResult = s.BeginRead(_readbuf, 0, BufferSize, new AsyncCallback(StreamIsReadyDelegate), s); | 231 | IAsyncResult asynchronousResult = |
232 | s.BeginRead(_readbuf, 0, BufferSize, new AsyncCallback(StreamIsReadyDelegate), s); | ||
228 | 233 | ||
229 | // TODO! Implement timeout, without killing the server | 234 | // TODO! Implement timeout, without killing the server |
230 | //ThreadPool.RegisterWaitForSingleObject(asynchronousResult.AsyncWaitHandle, new WaitOrTimerCallback(TimeoutCallback), _request, DefaultTimeout, true); | 235 | //ThreadPool.RegisterWaitForSingleObject(asynchronousResult.AsyncWaitHandle, new WaitOrTimerCallback(TimeoutCallback), _request, DefaultTimeout, true); |
@@ -251,12 +256,13 @@ namespace OpenSim.Framework.Communications | |||
251 | try | 256 | try |
252 | { | 257 | { |
253 | // grab response | 258 | // grab response |
254 | WebRequest wr = (WebRequest)ar.AsyncState; | 259 | WebRequest wr = (WebRequest) ar.AsyncState; |
255 | _response = (HttpWebResponse)wr.EndGetResponse(ar); | 260 | _response = (HttpWebResponse) wr.EndGetResponse(ar); |
256 | 261 | ||
257 | // get response stream, and setup async reading | 262 | // get response stream, and setup async reading |
258 | Stream s = _response.GetResponseStream(); | 263 | Stream s = _response.GetResponseStream(); |
259 | IAsyncResult asynchronousResult = s.BeginRead(_readbuf, 0, BufferSize, new AsyncCallback(StreamIsReadyDelegate), s); | 264 | IAsyncResult asynchronousResult = |
265 | s.BeginRead(_readbuf, 0, BufferSize, new AsyncCallback(StreamIsReadyDelegate), s); | ||
260 | 266 | ||
261 | // TODO! Implement timeout, without killing the server | 267 | // TODO! Implement timeout, without killing the server |
262 | // wait until completed, or we timed out | 268 | // wait until completed, or we timed out |
@@ -281,6 +287,7 @@ namespace OpenSim.Framework.Communications | |||
281 | } | 287 | } |
282 | } | 288 | } |
283 | } | 289 | } |
290 | |||
284 | #endregion Async communications with server | 291 | #endregion Async communications with server |
285 | 292 | ||
286 | /// <summary> | 293 | /// <summary> |
@@ -290,17 +297,17 @@ namespace OpenSim.Framework.Communications | |||
290 | { | 297 | { |
291 | lock (_lock) | 298 | lock (_lock) |
292 | { | 299 | { |
293 | _request = (HttpWebRequest)WebRequest.Create(buildUri()); | 300 | _request = (HttpWebRequest) WebRequest.Create(buildUri()); |
294 | _request.KeepAlive = false; | 301 | _request.KeepAlive = false; |
295 | _request.ContentType = "application/xml"; | 302 | _request.ContentType = "application/xml"; |
296 | _request.Timeout = 200000; | 303 | _request.Timeout = 200000; |
297 | _asyncException = null; | 304 | _asyncException = null; |
298 | 305 | ||
299 | // IAsyncResult responseAsyncResult = _request.BeginGetResponse(new AsyncCallback(ResponseIsReadyDelegate), _request); | 306 | // IAsyncResult responseAsyncResult = _request.BeginGetResponse(new AsyncCallback(ResponseIsReadyDelegate), _request); |
300 | _response = (HttpWebResponse)_request.GetResponse(); | 307 | _response = (HttpWebResponse) _request.GetResponse(); |
301 | Stream src = _response.GetResponseStream(); | 308 | Stream src = _response.GetResponseStream(); |
302 | int length = src.Read(_readbuf, 0, BufferSize); | 309 | int length = src.Read(_readbuf, 0, BufferSize); |
303 | while(length > 0) | 310 | while (length > 0) |
304 | { | 311 | { |
305 | _resource.Write(_readbuf, 0, length); | 312 | _resource.Write(_readbuf, 0, length); |
306 | length = src.Read(_readbuf, 0, BufferSize); | 313 | length = src.Read(_readbuf, 0, BufferSize); |
@@ -329,7 +336,7 @@ namespace OpenSim.Framework.Communications | |||
329 | 336 | ||
330 | public Stream Request(Stream src) | 337 | public Stream Request(Stream src) |
331 | { | 338 | { |
332 | _request = (HttpWebRequest)WebRequest.Create(buildUri()); | 339 | _request = (HttpWebRequest) WebRequest.Create(buildUri()); |
333 | _request.KeepAlive = false; | 340 | _request.KeepAlive = false; |
334 | _request.ContentType = "application/xml"; | 341 | _request.ContentType = "application/xml"; |
335 | _request.Timeout = 900000; | 342 | _request.Timeout = 900000; |
@@ -340,13 +347,13 @@ namespace OpenSim.Framework.Communications | |||
340 | src.Seek(0, SeekOrigin.Begin); | 347 | src.Seek(0, SeekOrigin.Begin); |
341 | Stream dst = _request.GetRequestStream(); | 348 | Stream dst = _request.GetRequestStream(); |
342 | byte[] buf = new byte[1024]; | 349 | byte[] buf = new byte[1024]; |
343 | int length = src.Read(buf,0, 1024); | 350 | int length = src.Read(buf, 0, 1024); |
344 | while (length > 0) | 351 | while (length > 0) |
345 | { | 352 | { |
346 | dst.Write(buf, 0, length); | 353 | dst.Write(buf, 0, length); |
347 | length = src.Read(buf, 0, 1024); | 354 | length = src.Read(buf, 0, 1024); |
348 | } | 355 | } |
349 | _response = (HttpWebResponse)_request.GetResponse(); | 356 | _response = (HttpWebResponse) _request.GetResponse(); |
350 | 357 | ||
351 | // IAsyncResult responseAsyncResult = _request.BeginGetResponse(new AsyncCallback(ResponseIsReadyDelegate), _request); | 358 | // IAsyncResult responseAsyncResult = _request.BeginGetResponse(new AsyncCallback(ResponseIsReadyDelegate), _request); |
352 | 359 | ||
@@ -357,8 +364,8 @@ namespace OpenSim.Framework.Communications | |||
357 | return null; | 364 | return null; |
358 | } | 365 | } |
359 | 366 | ||
360 | |||
361 | #region Async Invocation | 367 | #region Async Invocation |
368 | |||
362 | public IAsyncResult BeginRequest(AsyncCallback callback, object state) | 369 | public IAsyncResult BeginRequest(AsyncCallback callback, object state) |
363 | { | 370 | { |
364 | /// <summary> | 371 | /// <summary> |
@@ -371,7 +378,7 @@ namespace OpenSim.Framework.Communications | |||
371 | 378 | ||
372 | public Stream EndRequest(IAsyncResult asyncResult) | 379 | public Stream EndRequest(IAsyncResult asyncResult) |
373 | { | 380 | { |
374 | AsyncResult<Stream> ar = (AsyncResult<Stream>)asyncResult; | 381 | AsyncResult<Stream> ar = (AsyncResult<Stream>) asyncResult; |
375 | 382 | ||
376 | // Wait for operation to complete, then return result or | 383 | // Wait for operation to complete, then return result or |
377 | // throw exception | 384 | // throw exception |
@@ -381,7 +388,7 @@ namespace OpenSim.Framework.Communications | |||
381 | private void RequestHelper(Object asyncResult) | 388 | private void RequestHelper(Object asyncResult) |
382 | { | 389 | { |
383 | // We know that it's really an AsyncResult<DateTime> object | 390 | // We know that it's really an AsyncResult<DateTime> object |
384 | AsyncResult<Stream> ar = (AsyncResult<Stream>)asyncResult; | 391 | AsyncResult<Stream> ar = (AsyncResult<Stream>) asyncResult; |
385 | try | 392 | try |
386 | { | 393 | { |
387 | // Perform the operation; if sucessful set the result | 394 | // Perform the operation; if sucessful set the result |
@@ -394,6 +401,7 @@ namespace OpenSim.Framework.Communications | |||
394 | ar.HandleException(e, false); | 401 | ar.HandleException(e, false); |
395 | } | 402 | } |
396 | } | 403 | } |
404 | |||
397 | #endregion Async Invocation | 405 | #endregion Async Invocation |
398 | } | 406 | } |
399 | } | 407 | } \ No newline at end of file |
diff --git a/OpenSim/Framework/Communications/UserManagerBase.cs b/OpenSim/Framework/Communications/UserManagerBase.cs index 006c8ee..cdc3baf 100644 --- a/OpenSim/Framework/Communications/UserManagerBase.cs +++ b/OpenSim/Framework/Communications/UserManagerBase.cs | |||
@@ -33,18 +33,15 @@ using System.Reflection; | |||
33 | using System.Security.Cryptography; | 33 | using System.Security.Cryptography; |
34 | using libsecondlife; | 34 | using libsecondlife; |
35 | using Nwc.XmlRpc; | 35 | using Nwc.XmlRpc; |
36 | using OpenSim.Framework; | ||
37 | using OpenSim.Framework.Console; | 36 | using OpenSim.Framework.Console; |
38 | using OpenSim.Framework.Data; | ||
39 | using OpenSim.Framework.Interfaces; | 37 | using OpenSim.Framework.Interfaces; |
40 | 38 | ||
41 | |||
42 | namespace OpenSim.Framework.UserManagement | 39 | namespace OpenSim.Framework.UserManagement |
43 | { | 40 | { |
44 | public abstract class UserManagerBase : IUserService | 41 | public abstract class UserManagerBase : IUserService |
45 | { | 42 | { |
46 | public UserConfig _config; | 43 | public UserConfig _config; |
47 | Dictionary<string, IUserData> _plugins = new Dictionary<string, IUserData>(); | 44 | private Dictionary<string, IUserData> _plugins = new Dictionary<string, IUserData>(); |
48 | 45 | ||
49 | /// <summary> | 46 | /// <summary> |
50 | /// Adds a new user server plugin - user servers will be requested in the order they were loaded. | 47 | /// Adds a new user server plugin - user servers will be requested in the order they were loaded. |
@@ -78,11 +75,12 @@ namespace OpenSim.Framework.UserManagement | |||
78 | public void AddPlugin(IUserData plug) | 75 | public void AddPlugin(IUserData plug) |
79 | { | 76 | { |
80 | plug.Initialise(); | 77 | plug.Initialise(); |
81 | this._plugins.Add(plug.getName(), plug); | 78 | _plugins.Add(plug.getName(), plug); |
82 | MainLog.Instance.Verbose( "Userstorage: Added IUserData Interface"); | 79 | MainLog.Instance.Verbose("Userstorage: Added IUserData Interface"); |
83 | } | 80 | } |
84 | 81 | ||
85 | #region Get UserProfile | 82 | #region Get UserProfile |
83 | |||
86 | /// <summary> | 84 | /// <summary> |
87 | /// Loads a user profile from a database by UUID | 85 | /// Loads a user profile from a database by UUID |
88 | /// </summary> | 86 | /// </summary> |
@@ -100,7 +98,7 @@ namespace OpenSim.Framework.UserManagement | |||
100 | } | 98 | } |
101 | catch (Exception e) | 99 | catch (Exception e) |
102 | { | 100 | { |
103 | MainLog.Instance.Verbose( "Unable to find user via " + plugin.Key + "(" + e.ToString() + ")"); | 101 | MainLog.Instance.Verbose("Unable to find user via " + plugin.Key + "(" + e.ToString() + ")"); |
104 | } | 102 | } |
105 | } | 103 | } |
106 | 104 | ||
@@ -126,7 +124,7 @@ namespace OpenSim.Framework.UserManagement | |||
126 | catch (Exception e) | 124 | catch (Exception e) |
127 | { | 125 | { |
128 | System.Console.WriteLine("EEK!"); | 126 | System.Console.WriteLine("EEK!"); |
129 | MainLog.Instance.Verbose( "Unable to find user via " + plugin.Key + "(" + e.ToString() + ")"); | 127 | MainLog.Instance.Verbose("Unable to find user via " + plugin.Key + "(" + e.ToString() + ")"); |
130 | } | 128 | } |
131 | } | 129 | } |
132 | 130 | ||
@@ -145,7 +143,7 @@ namespace OpenSim.Framework.UserManagement | |||
145 | { | 143 | { |
146 | try | 144 | try |
147 | { | 145 | { |
148 | UserProfileData profile = plugin.Value.GetUserByName(fname,lname); | 146 | UserProfileData profile = plugin.Value.GetUserByName(fname, lname); |
149 | 147 | ||
150 | profile.currentAgent = getUserAgent(profile.UUID); | 148 | profile.currentAgent = getUserAgent(profile.UUID); |
151 | 149 | ||
@@ -153,7 +151,7 @@ namespace OpenSim.Framework.UserManagement | |||
153 | } | 151 | } |
154 | catch (Exception e) | 152 | catch (Exception e) |
155 | { | 153 | { |
156 | MainLog.Instance.Verbose( "Unable to find user via " + plugin.Key + "(" + e.ToString() + ")"); | 154 | MainLog.Instance.Verbose("Unable to find user via " + plugin.Key + "(" + e.ToString() + ")"); |
157 | } | 155 | } |
158 | } | 156 | } |
159 | 157 | ||
@@ -170,20 +168,24 @@ namespace OpenSim.Framework.UserManagement | |||
170 | { | 168 | { |
171 | foreach (KeyValuePair<string, IUserData> plugin in _plugins) | 169 | foreach (KeyValuePair<string, IUserData> plugin in _plugins) |
172 | { | 170 | { |
173 | try { | 171 | try |
172 | { | ||
174 | plugin.Value.UpdateUserProfile(data); | 173 | plugin.Value.UpdateUserProfile(data); |
175 | return true; | 174 | return true; |
176 | } catch (Exception e) { | 175 | } |
177 | MainLog.Instance.Verbose( "Unable to set user via " + plugin.Key + "(" + e.ToString() + ")"); | 176 | catch (Exception e) |
177 | { | ||
178 | MainLog.Instance.Verbose("Unable to set user via " + plugin.Key + "(" + e.ToString() + ")"); | ||
178 | } | 179 | } |
179 | } | 180 | } |
180 | 181 | ||
181 | return false; | 182 | return false; |
182 | } | 183 | } |
183 | 184 | ||
184 | #endregion | 185 | #endregion |
185 | 186 | ||
186 | #region Get UserAgent | 187 | #region Get UserAgent |
188 | |||
187 | /// <summary> | 189 | /// <summary> |
188 | /// Loads a user agent by uuid (not called directly) | 190 | /// Loads a user agent by uuid (not called directly) |
189 | /// </summary> | 191 | /// </summary> |
@@ -199,7 +201,7 @@ namespace OpenSim.Framework.UserManagement | |||
199 | } | 201 | } |
200 | catch (Exception e) | 202 | catch (Exception e) |
201 | { | 203 | { |
202 | MainLog.Instance.Verbose( "Unable to find user via " + plugin.Key + "(" + e.ToString() + ")"); | 204 | MainLog.Instance.Verbose("Unable to find user via " + plugin.Key + "(" + e.ToString() + ")"); |
203 | } | 205 | } |
204 | } | 206 | } |
205 | 207 | ||
@@ -221,7 +223,7 @@ namespace OpenSim.Framework.UserManagement | |||
221 | } | 223 | } |
222 | catch (Exception e) | 224 | catch (Exception e) |
223 | { | 225 | { |
224 | MainLog.Instance.Verbose( "Unable to find user via " + plugin.Key + "(" + e.ToString() + ")"); | 226 | MainLog.Instance.Verbose("Unable to find user via " + plugin.Key + "(" + e.ToString() + ")"); |
225 | } | 227 | } |
226 | } | 228 | } |
227 | 229 | ||
@@ -249,11 +251,11 @@ namespace OpenSim.Framework.UserManagement | |||
249 | { | 251 | { |
250 | try | 252 | try |
251 | { | 253 | { |
252 | return plugin.Value.GetAgentByName(fname,lname); | 254 | return plugin.Value.GetAgentByName(fname, lname); |
253 | } | 255 | } |
254 | catch (Exception e) | 256 | catch (Exception e) |
255 | { | 257 | { |
256 | MainLog.Instance.Verbose( "Unable to find user via " + plugin.Key + "(" + e.ToString() + ")"); | 258 | MainLog.Instance.Verbose("Unable to find user via " + plugin.Key + "(" + e.ToString() + ")"); |
257 | } | 259 | } |
258 | } | 260 | } |
259 | 261 | ||
@@ -263,6 +265,7 @@ namespace OpenSim.Framework.UserManagement | |||
263 | #endregion | 265 | #endregion |
264 | 266 | ||
265 | #region CreateAgent | 267 | #region CreateAgent |
268 | |||
266 | /// <summary> | 269 | /// <summary> |
267 | /// Creates and initialises a new user agent - make sure to use CommitAgent when done to submit to the DB | 270 | /// Creates and initialises a new user agent - make sure to use CommitAgent when done to submit to the DB |
268 | /// </summary> | 271 | /// </summary> |
@@ -270,7 +273,7 @@ namespace OpenSim.Framework.UserManagement | |||
270 | /// <param name="request">The users loginrequest</param> | 273 | /// <param name="request">The users loginrequest</param> |
271 | public void CreateAgent(UserProfileData profile, XmlRpcRequest request) | 274 | public void CreateAgent(UserProfileData profile, XmlRpcRequest request) |
272 | { | 275 | { |
273 | Hashtable requestData = (Hashtable)request.Params[0]; | 276 | Hashtable requestData = (Hashtable) request.Params[0]; |
274 | 277 | ||
275 | UserAgentData agent = new UserAgentData(); | 278 | UserAgentData agent = new UserAgentData(); |
276 | 279 | ||
@@ -297,7 +300,7 @@ namespace OpenSim.Framework.UserManagement | |||
297 | // If user specified additional start, use that | 300 | // If user specified additional start, use that |
298 | if (requestData.ContainsKey("start")) | 301 | if (requestData.ContainsKey("start")) |
299 | { | 302 | { |
300 | string startLoc = ((string)requestData["start"]).Trim(); | 303 | string startLoc = ((string) requestData["start"]).Trim(); |
301 | if (!(startLoc == "last" || startLoc == "home")) | 304 | if (!(startLoc == "last" || startLoc == "home")) |
302 | { | 305 | { |
303 | // Format: uri:Ahern&162&213&34 | 306 | // Format: uri:Ahern&162&213&34 |
@@ -312,7 +315,6 @@ namespace OpenSim.Framework.UserManagement | |||
312 | } | 315 | } |
313 | catch (Exception) | 316 | catch (Exception) |
314 | { | 317 | { |
315 | |||
316 | } | 318 | } |
317 | } | 319 | } |
318 | } | 320 | } |
@@ -323,7 +325,7 @@ namespace OpenSim.Framework.UserManagement | |||
323 | 325 | ||
324 | // Current location | 326 | // Current location |
325 | agent.regionID = new LLUUID(); // Fill in later | 327 | agent.regionID = new LLUUID(); // Fill in later |
326 | agent.currentRegion = new LLUUID(); // Fill in later | 328 | agent.currentRegion = new LLUUID(); // Fill in later |
327 | 329 | ||
328 | profile.currentAgent = agent; | 330 | profile.currentAgent = agent; |
329 | } | 331 | } |
@@ -364,7 +366,6 @@ namespace OpenSim.Framework.UserManagement | |||
364 | try | 366 | try |
365 | { | 367 | { |
366 | plugin.Value.AddNewUserProfile(user); | 368 | plugin.Value.AddNewUserProfile(user); |
367 | |||
368 | } | 369 | } |
369 | catch (Exception e) | 370 | catch (Exception e) |
370 | { | 371 | { |
@@ -376,4 +377,4 @@ namespace OpenSim.Framework.UserManagement | |||
376 | public abstract UserProfileData SetupMasterUser(string firstName, string lastName); | 377 | public abstract UserProfileData SetupMasterUser(string firstName, string lastName); |
377 | public abstract UserProfileData SetupMasterUser(string firstName, string lastName, string password); | 378 | public abstract UserProfileData SetupMasterUser(string firstName, string lastName, string password); |
378 | } | 379 | } |
379 | } | 380 | } \ No newline at end of file |