aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Framework
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--OpenSim/Framework/AgentCircuitData.cs6
-rw-r--r--OpenSim/Framework/AnimationSet.cs2
-rw-r--r--OpenSim/Framework/AssetBase.cs6
-rw-r--r--OpenSim/Framework/AssetLoader/Filesystem/Properties/AssemblyInfo.cs8
-rw-r--r--OpenSim/Framework/AssetRequestToClient.cs6
-rw-r--r--OpenSim/Framework/AvatarAppearance.cs48
-rw-r--r--OpenSim/Framework/AvatarWearable.cs8
-rw-r--r--OpenSim/Framework/BasicDOSProtector.cs14
-rw-r--r--OpenSim/Framework/BlockingQueue.cs2
-rw-r--r--OpenSim/Framework/Cache.cs4
-rw-r--r--OpenSim/Framework/CapsUtil.cs2
-rw-r--r--OpenSim/Framework/ChildAgentDataUpdate.cs8
-rw-r--r--OpenSim/Framework/CircularBuffer.cs20
-rw-r--r--OpenSim/Framework/CnmMemoryCache.cs140
-rw-r--r--OpenSim/Framework/CnmSynchronizedCache.cs106
-rw-r--r--OpenSim/Framework/Console/CommandConsole.cs40
-rwxr-xr-xOpenSim/Framework/Console/ConsoleBase.cs8
-rw-r--r--OpenSim/Framework/Console/ConsoleUtil.cs22
-rw-r--r--OpenSim/Framework/Console/LocalConsole.cs22
-rw-r--r--OpenSim/Framework/Console/MockConsole.cs4
-rw-r--r--OpenSim/Framework/Console/RemoteConsole.cs400
-rw-r--r--OpenSim/Framework/DAMap.cs40
-rw-r--r--OpenSim/Framework/DOMap.cs2
-rw-r--r--OpenSim/Framework/DoubleDictionaryThreadAbortSafe.cs124
-rw-r--r--OpenSim/Framework/EstateBan.cs2
-rw-r--r--OpenSim/Framework/EstateSettings.cs2
-rw-r--r--OpenSim/Framework/GridInstantMessage.cs2
-rw-r--r--OpenSim/Framework/IClientAPI.cs72
-rw-r--r--OpenSim/Framework/ICnmCache.cs106
-rw-r--r--OpenSim/Framework/ILandChannel.cs6
-rw-r--r--OpenSim/Framework/ILandObject.cs32
-rw-r--r--OpenSim/Framework/IPrimCounts.cs14
-rw-r--r--OpenSim/Framework/IRegistryCore.cs2
-rw-r--r--OpenSim/Framework/IScene.cs4
-rw-r--r--OpenSim/Framework/ISceneAgent.cs2
-rw-r--r--OpenSim/Framework/InventoryFolderImpl.cs2
-rw-r--r--OpenSim/Framework/InventoryItemBase.cs110
-rw-r--r--OpenSim/Framework/InventoryNodeBase.cs8
-rw-r--r--OpenSim/Framework/LandData.cs8
-rw-r--r--OpenSim/Framework/Lazy.cs4
-rw-r--r--OpenSim/Framework/LocklessQueue.cs2
-rw-r--r--OpenSim/Framework/MapAndArray.cs12
-rw-r--r--OpenSim/Framework/MapItemReplyStruct.cs2
-rw-r--r--OpenSim/Framework/MetricsCollector.cs8
-rw-r--r--OpenSim/Framework/Monitoring/BaseStatsCollector.cs2
-rw-r--r--OpenSim/Framework/Monitoring/Checks/Check.cs8
-rw-r--r--OpenSim/Framework/Monitoring/Interfaces/IStatsCollector.cs2
-rw-r--r--OpenSim/Framework/Monitoring/JobEngine.cs10
-rw-r--r--OpenSim/Framework/Monitoring/Properties/AssemblyInfo.cs8
-rw-r--r--OpenSim/Framework/Monitoring/ServerStatsCollector.cs26
-rwxr-xr-xOpenSim/Framework/Monitoring/SimExtraStatsCollector.cs28
-rw-r--r--OpenSim/Framework/Monitoring/Stats/Stat.cs38
-rw-r--r--OpenSim/Framework/Monitoring/StatsLogger.cs6
-rw-r--r--OpenSim/Framework/Monitoring/StatsManager.cs4
-rw-r--r--OpenSim/Framework/Monitoring/Watchdog.cs2
-rw-r--r--OpenSim/Framework/Monitoring/WorkManager.cs32
-rw-r--r--OpenSim/Framework/NetworkUtil.cs4
-rw-r--r--OpenSim/Framework/OutboundUrlFilter.cs16
-rw-r--r--OpenSim/Framework/PluginManager.cs54
-rw-r--r--OpenSim/Framework/PrimeNumberHelper.cs2
-rw-r--r--OpenSim/Framework/PrimitiveBaseShape.cs4
-rw-r--r--OpenSim/Framework/PriorityQueue.cs24
-rw-r--r--OpenSim/Framework/RegionInfo.cs30
-rw-r--r--OpenSim/Framework/RegionSettings.cs18
-rw-r--r--OpenSim/Framework/RestClient.cs2
-rw-r--r--OpenSim/Framework/SLUtil.cs14
-rw-r--r--OpenSim/Framework/Serialization/ArchiveConstants.cs4
-rw-r--r--OpenSim/Framework/Serialization/External/ExternalRepresentationUtils.cs6
-rw-r--r--OpenSim/Framework/Serialization/External/OspResolver.cs44
-rw-r--r--OpenSim/Framework/Serialization/External/RegionSettingsSerializer.cs34
-rw-r--r--OpenSim/Framework/Serialization/External/UserInventoryItemSerializer.cs22
-rw-r--r--OpenSim/Framework/Serialization/External/UserProfileSerializer.cs12
-rw-r--r--OpenSim/Framework/Serialization/Properties/AssemblyInfo.cs8
-rw-r--r--OpenSim/Framework/Serialization/TarArchiveWriter.cs12
-rw-r--r--OpenSim/Framework/Servers/BaseOpenSimServer.cs30
-rw-r--r--OpenSim/Framework/Servers/HttpServer/BaseHttpServer.cs46
-rw-r--r--OpenSim/Framework/Servers/HttpServer/BaseRequestHandler.cs14
-rw-r--r--OpenSim/Framework/Servers/HttpServer/BaseStreamHandler.cs4
-rw-r--r--OpenSim/Framework/Servers/HttpServer/BaseStreamHandlerBasicDOSProtector.cs8
-rw-r--r--OpenSim/Framework/Servers/HttpServer/GenericHTTPBasicDOSProtector.cs6
-rw-r--r--OpenSim/Framework/Servers/HttpServer/Interfaces/IHttpServer.cs34
-rw-r--r--OpenSim/Framework/Servers/HttpServer/Interfaces/IStreamHandler.cs2
-rw-r--r--OpenSim/Framework/Servers/HttpServer/JsonRpcRequestManager.cs4
-rw-r--r--OpenSim/Framework/Servers/HttpServer/JsonRpcResponse.cs2
-rw-r--r--OpenSim/Framework/Servers/HttpServer/OSHttpRequest.cs12
-rw-r--r--OpenSim/Framework/Servers/HttpServer/OSHttpResponse.cs2
-rw-r--r--OpenSim/Framework/Servers/HttpServer/OSHttpStatusCodes.cs2
-rw-r--r--OpenSim/Framework/Servers/HttpServer/PollServiceEventArgs.cs4
-rw-r--r--OpenSim/Framework/Servers/HttpServer/PollServiceRequestManager.cs4
-rw-r--r--OpenSim/Framework/Servers/HttpServer/Properties/AssemblyInfo.cs8
-rw-r--r--OpenSim/Framework/Servers/HttpServer/RestSessionService.cs2
-rw-r--r--OpenSim/Framework/Servers/HttpServer/WebsocketServerHandler.cs82
-rw-r--r--OpenSim/Framework/Servers/HttpServer/XmlRpcBasicDOSProtector.cs6
-rw-r--r--OpenSim/Framework/Servers/MainServer.cs14
-rw-r--r--OpenSim/Framework/Servers/Properties/AssemblyInfo.cs8
-rw-r--r--OpenSim/Framework/Servers/ServerBase.cs52
-rw-r--r--OpenSim/Framework/Servers/Tests/OSHttpTests.cs136
-rw-r--r--OpenSim/Framework/ServiceAuth/BasicHttpAuthentication.cs2
-rw-r--r--OpenSim/Framework/ServiceAuth/CompoundAuthentication.cs2
-rw-r--r--OpenSim/Framework/SimStats.cs10
-rw-r--r--OpenSim/Framework/TaskInventoryDictionary.cs6
-rw-r--r--OpenSim/Framework/TaskInventoryItem.cs2
-rw-r--r--OpenSim/Framework/Tests/AgentCircuitDataTest.cs8
-rw-r--r--OpenSim/Framework/Tests/AgentCircuitManagerTests.cs2
-rw-r--r--OpenSim/Framework/Tests/AnimationTests.cs2
-rw-r--r--OpenSim/Framework/Tests/CacheTests.cs4
-rw-r--r--OpenSim/Framework/Tests/LocationTest.cs2
-rw-r--r--OpenSim/Framework/Tests/MundaneFrameworkTests.cs12
-rw-r--r--OpenSim/Framework/Tests/PrimeNumberHelperTests.cs6
-rw-r--r--OpenSim/Framework/Tests/UtilTest.cs2
-rw-r--r--OpenSim/Framework/UserProfileData.cs10
-rw-r--r--OpenSim/Framework/UserProfiles.cs12
-rw-r--r--OpenSim/Framework/Util.cs86
-rw-r--r--OpenSim/Framework/VersionInfo.cs12
-rw-r--r--OpenSim/Framework/WearableCacheItem.cs6
-rw-r--r--OpenSim/Framework/WebUtil.cs60
116 files changed, 1323 insertions, 1323 deletions
diff --git a/OpenSim/Framework/AgentCircuitData.cs b/OpenSim/Framework/AgentCircuitData.cs
index 4529944..5a9eeb5 100644
--- a/OpenSim/Framework/AgentCircuitData.cs
+++ b/OpenSim/Framework/AgentCircuitData.cs
@@ -77,7 +77,7 @@ namespace OpenSim.Framework
77 public bool child; 77 public bool child;
78 78
79 /// <summary> 79 /// <summary>
80 /// Number given to the client when they log-in that they provide 80 /// Number given to the client when they log-in that they provide
81 /// as credentials to the UDP server 81 /// as credentials to the UDP server
82 /// </summary> 82 /// </summary>
83 public uint circuitcode; 83 public uint circuitcode;
@@ -328,7 +328,7 @@ namespace OpenSim.Framework
328 Vector3.TryParse(args["start_pos"].AsString(), out startpos); 328 Vector3.TryParse(args["start_pos"].AsString(), out startpos);
329 329
330 //m_log.InfoFormat("[AGENTCIRCUITDATA]: agentid={0}, child={1}, startpos={2}", AgentID, child, startpos); 330 //m_log.InfoFormat("[AGENTCIRCUITDATA]: agentid={0}, child={1}, startpos={2}", AgentID, child, startpos);
331 331
332 try 332 try
333 { 333 {
334 // Unpack various appearance elements 334 // Unpack various appearance elements
@@ -353,7 +353,7 @@ namespace OpenSim.Framework
353 { 353 {
354 m_log.ErrorFormat("[AGENTCIRCUITDATA] failed to unpack appearance; {0}",e.Message); 354 m_log.ErrorFormat("[AGENTCIRCUITDATA] failed to unpack appearance; {0}",e.Message);
355 } 355 }
356 356
357 ServiceURLs = new Dictionary<string, object>(); 357 ServiceURLs = new Dictionary<string, object>();
358 // Try parse the new way, OSDMap 358 // Try parse the new way, OSDMap
359 if (args.ContainsKey("serviceurls") && args["serviceurls"] != null && (args["serviceurls"]).Type == OSDType.Map) 359 if (args.ContainsKey("serviceurls") && args["serviceurls"] != null && (args["serviceurls"]).Type == OSDType.Map)
diff --git a/OpenSim/Framework/AnimationSet.cs b/OpenSim/Framework/AnimationSet.cs
index 6c5b15c..87c4a78 100644
--- a/OpenSim/Framework/AnimationSet.cs
+++ b/OpenSim/Framework/AnimationSet.cs
@@ -84,7 +84,7 @@ namespace OpenSim.Framework
84 it.GroupPermissions = 0; 84 it.GroupPermissions = 0;
85 it.EveryOnePermissions = 0; 85 it.EveryOnePermissions = 0;
86 } 86 }
87 87
88 public int AnimationCount { get; private set; } 88 public int AnimationCount { get; private set; }
89 private Dictionary<string, KeyValuePair<string, UUID>> m_animations = new Dictionary<string, KeyValuePair<string, UUID>>(); 89 private Dictionary<string, KeyValuePair<string, UUID>> m_animations = new Dictionary<string, KeyValuePair<string, UUID>>();
90 90
diff --git a/OpenSim/Framework/AssetBase.cs b/OpenSim/Framework/AssetBase.cs
index 87fd04a..88edf2f 100644
--- a/OpenSim/Framework/AssetBase.cs
+++ b/OpenSim/Framework/AssetBase.cs
@@ -112,7 +112,7 @@ namespace OpenSim.Framework
112 { 112 {
113 get 113 get
114 { 114 {
115 return 115 return
116 IsTextualAsset && ( 116 IsTextualAsset && (
117 Type != (sbyte)AssetType.Notecard 117 Type != (sbyte)AssetType.Notecard
118 && Type != (sbyte)AssetType.CallingCard 118 && Type != (sbyte)AssetType.CallingCard
@@ -137,7 +137,7 @@ namespace OpenSim.Framework
137 { 137 {
138 get 138 get
139 { 139 {
140 return 140 return
141 (Type == (sbyte)AssetType.Animation || 141 (Type == (sbyte)AssetType.Animation ||
142 Type == (sbyte)AssetType.Gesture || 142 Type == (sbyte)AssetType.Gesture ||
143 Type == (sbyte)AssetType.Simstate || 143 Type == (sbyte)AssetType.Simstate ||
@@ -282,7 +282,7 @@ namespace OpenSim.Framework
282 282
283 return m_id; 283 return m_id;
284 } 284 }
285 285
286 set 286 set
287 { 287 {
288 UUID uuid = UUID.Zero; 288 UUID uuid = UUID.Zero;
diff --git a/OpenSim/Framework/AssetLoader/Filesystem/Properties/AssemblyInfo.cs b/OpenSim/Framework/AssetLoader/Filesystem/Properties/AssemblyInfo.cs
index d269e5d..b6ea077 100644
--- a/OpenSim/Framework/AssetLoader/Filesystem/Properties/AssemblyInfo.cs
+++ b/OpenSim/Framework/AssetLoader/Filesystem/Properties/AssemblyInfo.cs
@@ -2,7 +2,7 @@
2using System.Runtime.CompilerServices; 2using System.Runtime.CompilerServices;
3using System.Runtime.InteropServices; 3using System.Runtime.InteropServices;
4 4
5// General Information about an assembly is controlled through the following 5// General Information about an assembly is controlled through the following
6// set of attributes. Change these attribute values to modify the information 6// set of attributes. Change these attribute values to modify the information
7// associated with an assembly. 7// associated with an assembly.
8[assembly: AssemblyTitle("OpenSim.Framework.AssetLoader.Filesystem")] 8[assembly: AssemblyTitle("OpenSim.Framework.AssetLoader.Filesystem")]
@@ -14,8 +14,8 @@ using System.Runtime.InteropServices;
14[assembly: AssemblyTrademark("")] 14[assembly: AssemblyTrademark("")]
15[assembly: AssemblyCulture("")] 15[assembly: AssemblyCulture("")]
16 16
17// Setting ComVisible to false makes the types in this assembly not visible 17// Setting ComVisible to false makes the types in this assembly not visible
18// to COM components. If you need to access a type in this assembly from 18// to COM components. If you need to access a type in this assembly from
19// COM, set the ComVisible attribute to true on that type. 19// COM, set the ComVisible attribute to true on that type.
20[assembly: ComVisible(false)] 20[assembly: ComVisible(false)]
21 21
@@ -25,7 +25,7 @@ using System.Runtime.InteropServices;
25// Version information for an assembly consists of the following four values: 25// Version information for an assembly consists of the following four values:
26// 26//
27// Major Version 27// Major Version
28// Minor Version 28// Minor Version
29// Build Number 29// Build Number
30// Revision 30// Revision
31// 31//
diff --git a/OpenSim/Framework/AssetRequestToClient.cs b/OpenSim/Framework/AssetRequestToClient.cs
index d602c1f..3dfbb91 100644
--- a/OpenSim/Framework/AssetRequestToClient.cs
+++ b/OpenSim/Framework/AssetRequestToClient.cs
@@ -31,10 +31,10 @@ namespace OpenSim.Framework
31{ 31{
32 /// <summary> 32 /// <summary>
33 /// This class was created to refactor OutPacket out of AssetCache 33 /// This class was created to refactor OutPacket out of AssetCache
34 /// There is a conflict between 34 /// There is a conflict between
35 /// OpenSim.Framework.Communications.Cache.AssetRequest and OpenSim.Framework.AssetRequest 35 /// OpenSim.Framework.Communications.Cache.AssetRequest and OpenSim.Framework.AssetRequest
36 /// and unifying them results in a prebuild chicken and egg problem with OpenSim.Framework requiring 36 /// and unifying them results in a prebuild chicken and egg problem with OpenSim.Framework requiring
37 /// OpenSim.Framework.Communications.Cache while OpenSim.Framework.Communications.Cache 37 /// OpenSim.Framework.Communications.Cache while OpenSim.Framework.Communications.Cache
38 /// requiring OpenSim.Framework 38 /// requiring OpenSim.Framework
39 /// </summary> 39 /// </summary>
40 public class AssetRequestToClient 40 public class AssetRequestToClient
diff --git a/OpenSim/Framework/AvatarAppearance.cs b/OpenSim/Framework/AvatarAppearance.cs
index 07c739d..77a7621 100644
--- a/OpenSim/Framework/AvatarAppearance.cs
+++ b/OpenSim/Framework/AvatarAppearance.cs
@@ -53,7 +53,7 @@ namespace OpenSim.Framework
53 // should be only used as initial default value ( V1 viewers ) 53 // should be only used as initial default value ( V1 viewers )
54 public readonly static int VISUALPARAM_COUNT = 218; 54 public readonly static int VISUALPARAM_COUNT = 218;
55 55
56// public readonly static int TEXTURE_COUNT = 21 56// public readonly static int TEXTURE_COUNT = 21
57 // 21 bad, make it be updated as libovm gets update 57 // 21 bad, make it be updated as libovm gets update
58 // also keeping in sync with it 58 // also keeping in sync with it
59 public readonly static int TEXTURE_COUNT = Primitive.TextureEntry.MAX_FACES; 59 public readonly static int TEXTURE_COUNT = Primitive.TextureEntry.MAX_FACES;
@@ -121,7 +121,7 @@ namespace OpenSim.Framework
121 get { return m_avatarHeight; } 121 get { return m_avatarHeight; }
122 set { m_avatarHeight = value; } 122 set { m_avatarHeight = value; }
123 } 123 }
124 124
125 public virtual WearableCacheItem[] WearableCacheItems 125 public virtual WearableCacheItem[] WearableCacheItems
126 { 126 {
127 get { return m_cacheitems; } 127 get { return m_cacheitems; }
@@ -219,7 +219,7 @@ namespace OpenSim.Framework
219 m_wearables[i] = new AvatarWearable(); 219 m_wearables[i] = new AvatarWearable();
220 AvatarWearable wearable = appearance.Wearables[i]; 220 AvatarWearable wearable = appearance.Wearables[i];
221 for (int j = 0; j < wearable.Count; j++) 221 for (int j = 0; j < wearable.Count; j++)
222 m_wearables[i].Add(wearable[j].ItemID, wearable[j].AssetID); 222 m_wearables[i].Add(wearable[j].ItemID, wearable[j].AssetID);
223 } 223 }
224 } 224 }
225 else 225 else
@@ -291,18 +291,18 @@ namespace OpenSim.Framework
291 public virtual void ResetAppearance() 291 public virtual void ResetAppearance()
292 { 292 {
293// m_log.WarnFormat("[AVATAR APPEARANCE]: Reset appearance"); 293// m_log.WarnFormat("[AVATAR APPEARANCE]: Reset appearance");
294 294
295 m_serial = 0; 295 m_serial = 0;
296 296
297 SetDefaultTexture(); 297 SetDefaultTexture();
298 298
299 //for (int i = 0; i < BAKE_INDICES.Length; i++) 299 //for (int i = 0; i < BAKE_INDICES.Length; i++)
300 // { 300 // {
301 // int idx = BAKE_INDICES[i]; 301 // int idx = BAKE_INDICES[i];
302 // m_texture.FaceTextures[idx].TextureID = UUID.Zero; 302 // m_texture.FaceTextures[idx].TextureID = UUID.Zero;
303 // } 303 // }
304 } 304 }
305 305
306 protected virtual void SetDefaultParams() 306 protected virtual void SetDefaultParams()
307 { 307 {
308 m_visualparams = new byte[] { 33,61,85,23,58,127,63,85,63,42,0,85,63,36,85,95,153,63,34,0,63,109,88,132,63,136,81,85,103,136,127,0,150,150,150,127,0,0,0,0,0,127,0,0,255,127,114,127,99,63,127,140,127,127,0,0,0,191,0,104,0,0,0,0,0,0,0,0,0,145,216,133,0,127,0,127,170,0,0,127,127,109,85,127,127,63,85,42,150,150,150,150,150,150,150,25,150,150,150,0,127,0,0,144,85,127,132,127,85,0,127,127,127,127,127,127,59,127,85,127,127,106,47,79,127,127,204,2,141,66,0,0,127,127,0,0,0,0,127,0,159,0,0,178,127,36,85,131,127,127,127,153,95,0,140,75,27,127,127,0,150,150,198,0,0,63,30,127,165,209,198,127,127,153,204,51,51,255,255,255,204,0,255,150,150,150,150,150,150,150,150,150,150,0,150,150,150,150,150,0,127,127,150,150,150,150,150,150,150,150,0,0,150,51,132,150,150,150 }; 308 m_visualparams = new byte[] { 33,61,85,23,58,127,63,85,63,42,0,85,63,36,85,95,153,63,34,0,63,109,88,132,63,136,81,85,103,136,127,0,150,150,150,127,0,0,0,0,0,127,0,0,255,127,114,127,99,63,127,140,127,127,0,0,0,191,0,104,0,0,0,0,0,0,0,0,0,145,216,133,0,127,0,127,170,0,0,127,127,109,85,127,127,63,85,42,150,150,150,150,150,150,150,25,150,150,150,0,127,0,0,144,85,127,132,127,85,0,127,127,127,127,127,127,59,127,85,127,127,106,47,79,127,127,204,2,141,66,0,0,127,127,0,0,0,0,127,0,159,0,0,178,127,36,85,131,127,127,127,153,95,0,140,75,27,127,127,0,150,150,198,0,0,63,30,127,165,209,198,127,127,153,204,51,51,255,255,255,204,0,255,150,150,150,150,150,150,150,150,150,150,0,150,150,150,150,150,0,127,127,150,150,150,150,150,150,150,150,0,0,150,51,132,150,150,150 };
@@ -319,14 +319,14 @@ namespace OpenSim.Framework
319 public virtual void ResetBakedTextures() 319 public virtual void ResetBakedTextures()
320 { 320 {
321 SetDefaultTexture(); 321 SetDefaultTexture();
322 322
323 //for (int i = 0; i < BAKE_INDICES.Length; i++) 323 //for (int i = 0; i < BAKE_INDICES.Length; i++)
324 // { 324 // {
325 // int idx = BAKE_INDICES[i]; 325 // int idx = BAKE_INDICES[i];
326 // m_texture.FaceTextures[idx].TextureID = UUID.Zero; 326 // m_texture.FaceTextures[idx].TextureID = UUID.Zero;
327 // } 327 // }
328 } 328 }
329 329
330 protected virtual void SetDefaultTexture() 330 protected virtual void SetDefaultTexture()
331 { 331 {
332 m_texture = new Primitive.TextureEntry(new UUID(AppearanceManager.DEFAULT_AVATAR_TEXTURE)); 332 m_texture = new Primitive.TextureEntry(new UUID(AppearanceManager.DEFAULT_AVATAR_TEXTURE));
@@ -371,7 +371,7 @@ namespace OpenSim.Framework
371 } 371 }
372 372
373 m_texture = textureEntry; 373 m_texture = textureEntry;
374 374
375 return changed; 375 return changed;
376 } 376 }
377 377
@@ -531,14 +531,14 @@ namespace OpenSim.Framework
531 { 531 {
532 lock (m_attachments) 532 lock (m_attachments)
533 { 533 {
534 List<AvatarAttachment> alist = new List<AvatarAttachment>(); 534 List<AvatarAttachment> alist = new List<AvatarAttachment>();
535 foreach (KeyValuePair<int, List<AvatarAttachment>> kvp in m_attachments) 535 foreach (KeyValuePair<int, List<AvatarAttachment>> kvp in m_attachments)
536 { 536 {
537 foreach (AvatarAttachment attach in kvp.Value) 537 foreach (AvatarAttachment attach in kvp.Value)
538 alist.Add(new AvatarAttachment(attach)); 538 alist.Add(new AvatarAttachment(attach));
539 } 539 }
540 return alist; 540 return alist;
541 } 541 }
542 } 542 }
543 543
544 internal void AppendAttachment(AvatarAttachment attach) 544 internal void AppendAttachment(AvatarAttachment attach)
@@ -551,7 +551,7 @@ namespace OpenSim.Framework
551 { 551 {
552 if (!m_attachments.ContainsKey(attach.AttachPoint)) 552 if (!m_attachments.ContainsKey(attach.AttachPoint))
553 m_attachments[attach.AttachPoint] = new List<AvatarAttachment>(); 553 m_attachments[attach.AttachPoint] = new List<AvatarAttachment>();
554 554
555 foreach (AvatarAttachment prev in m_attachments[attach.AttachPoint]) 555 foreach (AvatarAttachment prev in m_attachments[attach.AttachPoint])
556 { 556 {
557 if (prev.ItemID == attach.ItemID) 557 if (prev.ItemID == attach.ItemID)
@@ -608,7 +608,7 @@ namespace OpenSim.Framework
608 m_attachments.Remove(attachpoint); 608 m_attachments.Remove(attachpoint);
609 return true; 609 return true;
610 } 610 }
611 611
612 return false; 612 return false;
613 } 613 }
614 614
@@ -622,13 +622,13 @@ namespace OpenSim.Framework
622 if (existingAttachment != null) 622 if (existingAttachment != null)
623 { 623 {
624// m_log.DebugFormat( 624// m_log.DebugFormat(
625// "[AVATAR APPEARANCE]: Found existing attachment for {0}, asset {1} at point {2}", 625// "[AVATAR APPEARANCE]: Found existing attachment for {0}, asset {1} at point {2}",
626// existingAttachment.ItemID, existingAttachment.AssetID, existingAttachment.AttachPoint); 626// existingAttachment.ItemID, existingAttachment.AssetID, existingAttachment.AttachPoint);
627 627
628 if (existingAttachment.AssetID != UUID.Zero && existingAttachment.AttachPoint == (attachpoint & 0x7F)) 628 if (existingAttachment.AssetID != UUID.Zero && existingAttachment.AttachPoint == (attachpoint & 0x7F))
629 { 629 {
630 m_log.DebugFormat( 630 m_log.DebugFormat(
631 "[AVATAR APPEARANCE]: Ignoring attempt to attach an already attached item {0} at point {1}", 631 "[AVATAR APPEARANCE]: Ignoring attempt to attach an already attached item {0} at point {1}",
632 item, attachpoint); 632 item, attachpoint);
633 633
634 return false; 634 return false;
@@ -640,7 +640,7 @@ namespace OpenSim.Framework
640 DetachAttachment(existingAttachment.ItemID); 640 DetachAttachment(existingAttachment.ItemID);
641 } 641 }
642 } 642 }
643 643
644 // check if this is an append or a replace, 0x80 marks it as an append 644 // check if this is an append or a replace, 0x80 marks it as an append
645 if ((attachpoint & 0x80) > 0) 645 if ((attachpoint & 0x80) > 0)
646 { 646 {
@@ -701,16 +701,16 @@ namespace OpenSim.Framework
701 if (index >= 0) 701 if (index >= 0)
702 { 702 {
703// m_log.DebugFormat( 703// m_log.DebugFormat(
704// "[AVATAR APPEARANCE]: Detaching attachment {0}, index {1}, point {2}", 704// "[AVATAR APPEARANCE]: Detaching attachment {0}, index {1}, point {2}",
705// m_attachments[kvp.Key][index].ItemID, index, m_attachments[kvp.Key][index].AttachPoint); 705// m_attachments[kvp.Key][index].ItemID, index, m_attachments[kvp.Key][index].AttachPoint);
706 706
707 // Remove it from the list of attachments at that attach point 707 // Remove it from the list of attachments at that attach point
708 m_attachments[kvp.Key].RemoveAt(index); 708 m_attachments[kvp.Key].RemoveAt(index);
709 709
710 // And remove the list if there are no more attachments here 710 // And remove the list if there are no more attachments here
711 if (m_attachments[kvp.Key].Count == 0) 711 if (m_attachments[kvp.Key].Count == 0)
712 m_attachments.Remove(kvp.Key); 712 m_attachments.Remove(kvp.Key);
713 713
714 return true; 714 return true;
715 } 715 }
716 } 716 }
@@ -867,7 +867,7 @@ namespace OpenSim.Framework
867 { 867 {
868 AvatarAttachment att = new AvatarAttachment((OSDMap)attachs[i]); 868 AvatarAttachment att = new AvatarAttachment((OSDMap)attachs[i]);
869 AppendAttachment(att); 869 AppendAttachment(att);
870 870
871// m_log.DebugFormat( 871// m_log.DebugFormat(
872// "[AVATAR APPEARANCE]: Unpacked attachment itemID {0}, assetID {1}, point {2}", 872// "[AVATAR APPEARANCE]: Unpacked attachment itemID {0}, assetID {1}, point {2}",
873// att.ItemID, att.AssetID, att.AttachPoint); 873// att.ItemID, att.AssetID, att.AttachPoint);
@@ -1644,14 +1644,14 @@ namespace OpenSim.Framework
1644 SHAPE_EYELID_INNER_CORNER_UP = 214, 1644 SHAPE_EYELID_INNER_CORNER_UP = 214,
1645 SKIRT_SKIRT_RED = 215, 1645 SKIRT_SKIRT_RED = 215,
1646 SKIRT_SKIRT_GREEN = 216, 1646 SKIRT_SKIRT_GREEN = 216,
1647 SKIRT_SKIRT_BLUE = 217, 1647 SKIRT_SKIRT_BLUE = 217,
1648 1648
1649 /// <summary> 1649 /// <summary>
1650 /// Avatar Physics section. These are 0 type visual params which get transmitted. 1650 /// Avatar Physics section. These are 0 type visual params which get transmitted.
1651 /// </summary> 1651 /// </summary>
1652 1652
1653 /// <summary> 1653 /// <summary>
1654 /// Breast Part 1 1654 /// Breast Part 1
1655 /// </summary> 1655 /// </summary>
1656 BREAST_PHYSICS_MASS = 218, 1656 BREAST_PHYSICS_MASS = 218,
1657 BREAST_PHYSICS_GRAVITY = 219, 1657 BREAST_PHYSICS_GRAVITY = 219,
@@ -1697,7 +1697,7 @@ namespace OpenSim.Framework
1697 BREAST_PHYSICS_LEFTRIGHT_GAIN = 249, 1697 BREAST_PHYSICS_LEFTRIGHT_GAIN = 249,
1698 BREAST_PHYSICS_LEFTRIGHT_DAMPING = 250, 1698 BREAST_PHYSICS_LEFTRIGHT_DAMPING = 250,
1699 1699
1700 // Ubit: 07/96/2013 new parameters 1700 // Ubit: 07/96/2013 new parameters
1701 _APPEARANCEMESSAGE_VERSION = 251, //ID 11000 1701 _APPEARANCEMESSAGE_VERSION = 251, //ID 11000
1702 1702
1703 SHAPE_HOVER = 252, //ID 11001 1703 SHAPE_HOVER = 252, //ID 11001
diff --git a/OpenSim/Framework/AvatarWearable.cs b/OpenSim/Framework/AvatarWearable.cs
index 7bc46ed..0e8f960 100644
--- a/OpenSim/Framework/AvatarWearable.cs
+++ b/OpenSim/Framework/AvatarWearable.cs
@@ -96,7 +96,7 @@ namespace OpenSim.Framework
96 96
97// public static readonly UUID DEFAULT_TATTOO_ITEM = new UUID("c47e22bd-3021-4ba4-82aa-2b5cb34d35e1"); 97// public static readonly UUID DEFAULT_TATTOO_ITEM = new UUID("c47e22bd-3021-4ba4-82aa-2b5cb34d35e1");
98// public static readonly UUID DEFAULT_TATTOO_ASSET = new UUID("00000000-0000-2222-3333-100000001007"); 98// public static readonly UUID DEFAULT_TATTOO_ASSET = new UUID("00000000-0000-2222-3333-100000001007");
99 99
100 protected Dictionary<UUID, UUID> m_items = new Dictionary<UUID, UUID>(); 100 protected Dictionary<UUID, UUID> m_items = new Dictionary<UUID, UUID>();
101 protected List<UUID> m_ids = new List<UUID>(); 101 protected List<UUID> m_ids = new List<UUID>();
102 102
@@ -234,10 +234,10 @@ namespace OpenSim.Framework
234 { 234 {
235 defaultWearables[i] = new AvatarWearable(); 235 defaultWearables[i] = new AvatarWearable();
236 } 236 }
237 237
238 // Body 238 // Body
239 defaultWearables[BODY].Add(DEFAULT_BODY_ITEM, DEFAULT_BODY_ASSET); 239 defaultWearables[BODY].Add(DEFAULT_BODY_ITEM, DEFAULT_BODY_ASSET);
240 240
241 // Hair 241 // Hair
242 defaultWearables[HAIR].Add(DEFAULT_HAIR_ITEM, DEFAULT_HAIR_ASSET); 242 defaultWearables[HAIR].Add(DEFAULT_HAIR_ITEM, DEFAULT_HAIR_ASSET);
243 243
@@ -252,7 +252,7 @@ namespace OpenSim.Framework
252 252
253 // Pants 253 // Pants
254 defaultWearables[PANTS].Add(DEFAULT_PANTS_ITEM, DEFAULT_PANTS_ASSET); 254 defaultWearables[PANTS].Add(DEFAULT_PANTS_ITEM, DEFAULT_PANTS_ASSET);
255 255
256// // Alpha 256// // Alpha
257// defaultWearables[ALPHA].Add(DEFAULT_ALPHA_ITEM, DEFAULT_ALPHA_ASSET); 257// defaultWearables[ALPHA].Add(DEFAULT_ALPHA_ITEM, DEFAULT_ALPHA_ASSET);
258 258
diff --git a/OpenSim/Framework/BasicDOSProtector.cs b/OpenSim/Framework/BasicDOSProtector.cs
index 89bfa94..f1ff18f 100644
--- a/OpenSim/Framework/BasicDOSProtector.cs
+++ b/OpenSim/Framework/BasicDOSProtector.cs
@@ -31,7 +31,7 @@ using log4net;
31 31
32namespace OpenSim.Framework 32namespace OpenSim.Framework
33{ 33{
34 34
35 public class BasicDOSProtector 35 public class BasicDOSProtector
36 { 36 {
37 public enum ThrottleAction 37 public enum ThrottleAction
@@ -43,7 +43,7 @@ namespace OpenSim.Framework
43 private readonly BasicDosProtectorOptions _options; 43 private readonly BasicDosProtectorOptions _options;
44 private readonly Dictionary<string, CircularBuffer<int>> _deeperInspection; // per client request checker 44 private readonly Dictionary<string, CircularBuffer<int>> _deeperInspection; // per client request checker
45 private readonly Dictionary<string, int> _tempBlocked; // blocked list 45 private readonly Dictionary<string, int> _tempBlocked; // blocked list
46 private readonly Dictionary<string, int> _sessions; 46 private readonly Dictionary<string, int> _sessions;
47 private readonly System.Timers.Timer _forgetTimer; // Cleanup timer 47 private readonly System.Timers.Timer _forgetTimer; // Cleanup timer
48 private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); 48 private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
49 private readonly System.Threading.ReaderWriterLockSlim _blockLockSlim = new System.Threading.ReaderWriterLockSlim(); 49 private readonly System.Threading.ReaderWriterLockSlim _blockLockSlim = new System.Threading.ReaderWriterLockSlim();
@@ -133,7 +133,7 @@ namespace OpenSim.Framework
133 else 133 else
134 throw new System.Security.SecurityException("Throttled"); 134 throw new System.Security.SecurityException("Throttled");
135 } 135 }
136 136
137 _blockLockSlim.ExitReadLock(); 137 _blockLockSlim.ExitReadLock();
138 138
139 lock (_generalRequestTimes) 139 lock (_generalRequestTimes)
@@ -169,10 +169,10 @@ namespace OpenSim.Framework
169 _blockLockSlim.ExitWriteLock(); 169 _blockLockSlim.ExitWriteLock();
170 170
171 } 171 }
172 172
173 173
174 } 174 }
175 else 175 else
176 ProcessConcurrency(key, endpoint); 176 ProcessConcurrency(key, endpoint);
177 } 177 }
178 if (_generalRequestTimes.Size == _generalRequestTimes.Capacity && 178 if (_generalRequestTimes.Size == _generalRequestTimes.Capacity &&
@@ -194,7 +194,7 @@ namespace OpenSim.Framework
194 _sessionLockSlim.EnterWriteLock(); 194 _sessionLockSlim.EnterWriteLock();
195 if (_sessions.ContainsKey(key)) 195 if (_sessions.ContainsKey(key))
196 _sessions[key] = _sessions[key] + 1; 196 _sessions[key] = _sessions[key] + 1;
197 else 197 else
198 _sessions.Add(key,1); 198 _sessions.Add(key,1);
199 _sessionLockSlim.ExitWriteLock(); 199 _sessionLockSlim.ExitWriteLock();
200 } 200 }
@@ -209,7 +209,7 @@ namespace OpenSim.Framework
209 } 209 }
210 else 210 else
211 _sessions.Add(key, 1); 211 _sessions.Add(key, 1);
212 212
213 _sessionLockSlim.ExitWriteLock(); 213 _sessionLockSlim.ExitWriteLock();
214 } 214 }
215 215
diff --git a/OpenSim/Framework/BlockingQueue.cs b/OpenSim/Framework/BlockingQueue.cs
index f6861e4..2461049 100644
--- a/OpenSim/Framework/BlockingQueue.cs
+++ b/OpenSim/Framework/BlockingQueue.cs
@@ -65,7 +65,7 @@ namespace OpenSim.Framework
65 65
66 if (m_pqueue.Count > 0) 66 if (m_pqueue.Count > 0)
67 return m_pqueue.Dequeue(); 67 return m_pqueue.Dequeue();
68 68
69 if (m_queue.Count > 0) 69 if (m_queue.Count > 0)
70 return m_queue.Dequeue(); 70 return m_queue.Dequeue();
71 return default(T); 71 return default(T);
diff --git a/OpenSim/Framework/Cache.cs b/OpenSim/Framework/Cache.cs
index 80f5ff4..7ccc320 100644
--- a/OpenSim/Framework/Cache.cs
+++ b/OpenSim/Framework/Cache.cs
@@ -356,10 +356,10 @@ namespace OpenSim.Framework
356 Expire(true); 356 Expire(true);
357 return null; 357 return null;
358 } 358 }
359 359
360 item.hits++; 360 item.hits++;
361 item.lastUsed = DateTime.UtcNow; 361 item.lastUsed = DateTime.UtcNow;
362 362
363 Expire(true); 363 Expire(true);
364 } 364 }
365 365
diff --git a/OpenSim/Framework/CapsUtil.cs b/OpenSim/Framework/CapsUtil.cs
index 4baf505..020f6e2 100644
--- a/OpenSim/Framework/CapsUtil.cs
+++ b/OpenSim/Framework/CapsUtil.cs
@@ -43,7 +43,7 @@ namespace OpenSim.Framework
43 { 43 {
44 return "CAPS/" + capsObjectPath + "0000/"; 44 return "CAPS/" + capsObjectPath + "0000/";
45 } 45 }
46 46
47 /// <summary> 47 /// <summary>
48 /// Get a random CAPS object path component that will be used as the identifying part of all future CAPS requests 48 /// Get a random CAPS object path component that will be used as the identifying part of all future CAPS requests
49 /// </summary> 49 /// </summary>
diff --git a/OpenSim/Framework/ChildAgentDataUpdate.cs b/OpenSim/Framework/ChildAgentDataUpdate.cs
index 61c870e..0e5eaf2 100644
--- a/OpenSim/Framework/ChildAgentDataUpdate.cs
+++ b/OpenSim/Framework/ChildAgentDataUpdate.cs
@@ -332,7 +332,7 @@ namespace OpenSim.Framework
332 public Vector3 UpAxis; 332 public Vector3 UpAxis;
333 333
334 /// <summary> 334 /// <summary>
335 /// Signal on a V2 teleport that Scene.IncomingChildAgentDataUpdate(AgentData ad) should wait for the 335 /// Signal on a V2 teleport that Scene.IncomingChildAgentDataUpdate(AgentData ad) should wait for the
336 /// scene presence to become root (triggered when the viewer sends a CompleteAgentMovement UDP packet after 336 /// scene presence to become root (triggered when the viewer sends a CompleteAgentMovement UDP packet after
337 /// establishing the connection triggered by it's receipt of a TeleportFinish EQ message). 337 /// establishing the connection triggered by it's receipt of a TeleportFinish EQ message).
338 /// </summary> 338 /// </summary>
@@ -434,7 +434,7 @@ namespace OpenSim.Framework
434 args["active_group_name"] = OSD.FromString(ActiveGroupName); 434 args["active_group_name"] = OSD.FromString(ActiveGroupName);
435 if(ActiveGroupTitle != null) 435 if(ActiveGroupTitle != null)
436 args["active_group_title"] = OSD.FromString(ActiveGroupTitle); 436 args["active_group_title"] = OSD.FromString(ActiveGroupTitle);
437 437
438 if (ChildrenCapSeeds != null && ChildrenCapSeeds.Count > 0) 438 if (ChildrenCapSeeds != null && ChildrenCapSeeds.Count > 0)
439 { 439 {
440 OSDArray childrenSeeds = new OSDArray(ChildrenCapSeeds.Count); 440 OSDArray childrenSeeds = new OSDArray(ChildrenCapSeeds.Count);
@@ -623,7 +623,7 @@ namespace OpenSim.Framework
623 623
624 if (args.ContainsKey("active_group_name") && args["active_group_name"] != null) 624 if (args.ContainsKey("active_group_name") && args["active_group_name"] != null)
625 ActiveGroupName = args["active_group_name"].AsString(); 625 ActiveGroupName = args["active_group_name"].AsString();
626 626
627 if(args.ContainsKey("active_group_title") && args["active_group_title"] != null) 627 if(args.ContainsKey("active_group_title") && args["active_group_title"] != null)
628 ActiveGroupTitle = args["active_group_title"].AsString(); 628 ActiveGroupTitle = args["active_group_title"].AsString();
629 629
@@ -843,7 +843,7 @@ namespace OpenSim.Framework
843 843
844 public class CompleteAgentData : AgentData 844 public class CompleteAgentData : AgentData
845 { 845 {
846 public override OSDMap Pack(EntityTransferContext ctx) 846 public override OSDMap Pack(EntityTransferContext ctx)
847 { 847 {
848 return base.Pack(ctx); 848 return base.Pack(ctx);
849 } 849 }
diff --git a/OpenSim/Framework/CircularBuffer.cs b/OpenSim/Framework/CircularBuffer.cs
index e919337..e101938 100644
--- a/OpenSim/Framework/CircularBuffer.cs
+++ b/OpenSim/Framework/CircularBuffer.cs
@@ -1,21 +1,21 @@
1/* 1/*
2Copyright (c) 2012, Alex Regueiro 2Copyright (c) 2012, Alex Regueiro
3All rights reserved. 3All rights reserved.
4Redistribution and use in source and binary forms, with or without modification, are permitted provided that the 4Redistribution and use in source and binary forms, with or without modification, are permitted provided that the
5following conditions are met: 5following conditions are met:
6 6
7Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 7Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
8Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer 8Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer
9in the documentation and/or other materials provided with the distribution. 9in the documentation and/or other materials provided with the distribution.
10 10
11THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, 11THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
12BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 12BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
13IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, 13IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,
14OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, 14OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
15OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 15OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
16OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 16OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
17POSSIBILITY OF SUCH DAMAGE. 17POSSIBILITY OF SUCH DAMAGE.
18*/ 18*/
19using System; 19using System;
20using System.Collections; 20using System.Collections;
21using System.Collections.Generic; 21using System.Collections.Generic;
diff --git a/OpenSim/Framework/CnmMemoryCache.cs b/OpenSim/Framework/CnmMemoryCache.cs
index 92af331..f996cb0 100644
--- a/OpenSim/Framework/CnmMemoryCache.cs
+++ b/OpenSim/Framework/CnmMemoryCache.cs
@@ -36,14 +36,14 @@ namespace OpenSim.Framework
36 /// Cenome memory based cache to store key/value pairs (elements) limited time and/or limited size. 36 /// Cenome memory based cache to store key/value pairs (elements) limited time and/or limited size.
37 /// </summary> 37 /// </summary>
38 /// <typeparam name="TKey"> 38 /// <typeparam name="TKey">
39 /// The type of keys in the cache. 39 /// The type of keys in the cache.
40 /// </typeparam> 40 /// </typeparam>
41 /// <typeparam name="TValue"> 41 /// <typeparam name="TValue">
42 /// The type of values in the dictionary. 42 /// The type of values in the dictionary.
43 /// </typeparam> 43 /// </typeparam>
44 /// <remarks> 44 /// <remarks>
45 /// <para> 45 /// <para>
46 /// Cenome memory cache stores elements to hash table generations. When new element is being added to cache, and new size would exceed 46 /// Cenome memory cache stores elements to hash table generations. When new element is being added to cache, and new size would exceed
47 /// maximal allowed size or maximal amount of allowed element count, then elements in oldest generation are deleted. Last access time 47 /// maximal allowed size or maximal amount of allowed element count, then elements in oldest generation are deleted. Last access time
48 /// is also tracked in generation level - thus it is possible that some elements are staying in cache far beyond their expiration time. 48 /// is also tracked in generation level - thus it is possible that some elements are staying in cache far beyond their expiration time.
49 /// If elements in older generations are accessed through <see cref="TryGetValue"/> method, they are moved to newest generation. 49 /// If elements in older generations are accessed through <see cref="TryGetValue"/> method, they are moved to newest generation.
@@ -176,7 +176,7 @@ namespace OpenSim.Framework
176 } 176 }
177 177
178 /// <summary> 178 /// <summary>
179 /// Initializes a new instance of the <see cref="CnmMemoryCache{TKey,TValue}"/> class. 179 /// Initializes a new instance of the <see cref="CnmMemoryCache{TKey,TValue}"/> class.
180 /// </summary> 180 /// </summary>
181 /// <param name="maximalSize"> 181 /// <param name="maximalSize">
182 /// Maximal cache size. 182 /// Maximal cache size.
@@ -201,7 +201,7 @@ namespace OpenSim.Framework
201 } 201 }
202 202
203 /// <summary> 203 /// <summary>
204 /// Initializes a new instance of the <see cref="CnmMemoryCache{TKey,TValue}"/> class. 204 /// Initializes a new instance of the <see cref="CnmMemoryCache{TKey,TValue}"/> class.
205 /// </summary> 205 /// </summary>
206 /// <param name="maximalSize"> 206 /// <param name="maximalSize">
207 /// Maximal cache size. 207 /// Maximal cache size.
@@ -218,7 +218,7 @@ namespace OpenSim.Framework
218 } 218 }
219 219
220 /// <summary> 220 /// <summary>
221 /// Initializes a new instance of the <see cref="CnmMemoryCache{TKey,TValue}"/> class. 221 /// Initializes a new instance of the <see cref="CnmMemoryCache{TKey,TValue}"/> class.
222 /// </summary> 222 /// </summary>
223 /// <param name="maximalSize"> 223 /// <param name="maximalSize">
224 /// Maximal cache size. 224 /// Maximal cache size.
@@ -336,7 +336,7 @@ namespace OpenSim.Framework
336 /// </summary> 336 /// </summary>
337 private void CheckExpired() 337 private void CheckExpired()
338 { 338 {
339 // Do this only one in every m_operationsBetweenTimeChecks 339 // Do this only one in every m_operationsBetweenTimeChecks
340 // Fetching time is using several millisecons - it is better not to do all time. 340 // Fetching time is using several millisecons - it is better not to do all time.
341 m_operationsBetweenTimeChecks--; 341 m_operationsBetweenTimeChecks--;
342 if (m_operationsBetweenTimeChecks <= 0) 342 if (m_operationsBetweenTimeChecks <= 0)
@@ -394,7 +394,7 @@ namespace OpenSim.Framework
394 new IEnumerator<KeyValuePair<TKey, TValue>>[2]; 394 new IEnumerator<KeyValuePair<TKey, TValue>>[2];
395 395
396 /// <summary> 396 /// <summary>
397 /// Initializes a new instance of the <see cref="Enumerator"/> class. 397 /// Initializes a new instance of the <see cref="Enumerator"/> class.
398 /// </summary> 398 /// </summary>
399 /// <param name="cache"> 399 /// <param name="cache">
400 /// The cache. 400 /// The cache.
@@ -456,7 +456,7 @@ namespace OpenSim.Framework
456 /// <see langword="true"/>if the enumerator was successfully advanced to the next element; <see langword="false"/> if the enumerator has passed the end of the collection. 456 /// <see langword="true"/>if the enumerator was successfully advanced to the next element; <see langword="false"/> if the enumerator has passed the end of the collection.
457 /// </returns> 457 /// </returns>
458 /// <exception cref="T:System.InvalidOperationException"> 458 /// <exception cref="T:System.InvalidOperationException">
459 /// The collection was modified after the enumerator was created. 459 /// The collection was modified after the enumerator was created.
460 /// </exception> 460 /// </exception>
461 /// <filterpriority>2</filterpriority> 461 /// <filterpriority>2</filterpriority>
462 public bool MoveNext() 462 public bool MoveNext()
@@ -479,7 +479,7 @@ namespace OpenSim.Framework
479 /// Sets the enumerator to its initial position, which is before the first element in the collection. 479 /// Sets the enumerator to its initial position, which is before the first element in the collection.
480 /// </summary> 480 /// </summary>
481 /// <exception cref="T:System.InvalidOperationException"> 481 /// <exception cref="T:System.InvalidOperationException">
482 /// The collection was modified after the enumerator was created. 482 /// The collection was modified after the enumerator was created.
483 /// </exception> 483 /// </exception>
484 /// <filterpriority>2</filterpriority> 484 /// <filterpriority>2</filterpriority>
485 public void Reset() 485 public void Reset()
@@ -548,7 +548,7 @@ namespace OpenSim.Framework
548 private DateTime m_expirationTime1; 548 private DateTime m_expirationTime1;
549 549
550 /// <summary> 550 /// <summary>
551 /// Index to first free element. 551 /// Index to first free element.
552 /// </summary> 552 /// </summary>
553 private int m_firstFreeElement; 553 private int m_firstFreeElement;
554 554
@@ -681,8 +681,8 @@ namespace OpenSim.Framework
681 /// Next element in chain. 681 /// Next element in chain.
682 /// </summary> 682 /// </summary>
683 /// <remarks> 683 /// <remarks>
684 /// When element have value (something is stored to it), this is index of 684 /// When element have value (something is stored to it), this is index of
685 /// next element with same bucket index. When element is free, this 685 /// next element with same bucket index. When element is free, this
686 /// is index of next element in free element's list. 686 /// is index of next element in free element's list.
687 /// </remarks> 687 /// </remarks>
688 public int Next; 688 public int Next;
@@ -696,7 +696,7 @@ namespace OpenSim.Framework
696 public long Size; 696 public long Size;
697 697
698 /// <summary> 698 /// <summary>
699 /// Element's value. 699 /// Element's value.
700 /// </summary> 700 /// </summary>
701 /// <remarks> 701 /// <remarks>
702 /// It is possible that this value is <see langword="null"/> even when element 702 /// It is possible that this value is <see langword="null"/> even when element
@@ -812,7 +812,7 @@ namespace OpenSim.Framework
812 /// true if the enumerator was successfully advanced to the next element; false if the enumerator has passed the end of the collection. 812 /// true if the enumerator was successfully advanced to the next element; false if the enumerator has passed the end of the collection.
813 /// </returns> 813 /// </returns>
814 /// <exception cref="InvalidOperationException"> 814 /// <exception cref="InvalidOperationException">
815 /// The collection was modified after the enumerator was created. 815 /// The collection was modified after the enumerator was created.
816 /// </exception> 816 /// </exception>
817 public bool MoveNext() 817 public bool MoveNext()
818 { 818 {
@@ -841,7 +841,7 @@ namespace OpenSim.Framework
841 /// Sets the enumerator to its initial position, which is before the first element in the collection. 841 /// Sets the enumerator to its initial position, which is before the first element in the collection.
842 /// </summary> 842 /// </summary>
843 /// <exception cref="InvalidOperationException"> 843 /// <exception cref="InvalidOperationException">
844 /// The collection was modified after the enumerator was created. 844 /// The collection was modified after the enumerator was created.
845 /// </exception> 845 /// </exception>
846 /// <filterpriority>2</filterpriority> 846 /// <filterpriority>2</filterpriority>
847 public void Reset() 847 public void Reset()
@@ -931,7 +931,7 @@ namespace OpenSim.Framework
931 /// The key to locate in the <see cref="IGeneration"/>. 931 /// The key to locate in the <see cref="IGeneration"/>.
932 /// </param> 932 /// </param>
933 /// <returns> 933 /// <returns>
934 /// <see langword="true"/>if the <see cref="IGeneration"/> contains an element with the <see cref="key"/>; 934 /// <see langword="true"/>if the <see cref="IGeneration"/> contains an element with the <see cref="key"/>;
935 /// otherwise <see langword="false"/>. 935 /// otherwise <see langword="false"/>.
936 /// </returns> 936 /// </returns>
937 public bool Contains(int bucketIndex, TKey key) 937 public bool Contains(int bucketIndex, TKey key)
@@ -1014,7 +1014,7 @@ namespace OpenSim.Framework
1014 /// </returns> 1014 /// </returns>
1015 /// <remarks> 1015 /// <remarks>
1016 /// <para> 1016 /// <para>
1017 /// If element was already existing in generation and new element size fits to collection limits, 1017 /// If element was already existing in generation and new element size fits to collection limits,
1018 /// then it's value is replaced with new one and size information is updated. If element didn't 1018 /// then it's value is replaced with new one and size information is updated. If element didn't
1019 /// exists in generation before, then generation must have empty space for a new element and 1019 /// exists in generation before, then generation must have empty space for a new element and
1020 /// size must fit generation's limits, before element is added to generation. 1020 /// size must fit generation's limits, before element is added to generation.
@@ -1070,7 +1070,7 @@ namespace OpenSim.Framework
1070 if (Size - m_elements[ elementIndex ].Size + size > m_cache.m_generationMaxSize) 1070 if (Size - m_elements[ elementIndex ].Size + size > m_cache.m_generationMaxSize)
1071 { 1071 {
1072 // Generation is full 1072 // Generation is full
1073 // Remove existing element, because generation is going to be recycled to 1073 // Remove existing element, because generation is going to be recycled to
1074 // old generation and element is stored to new generation 1074 // old generation and element is stored to new generation
1075 RemoveElement(bucketIndex, elementIndex, previousIndex); 1075 RemoveElement(bucketIndex, elementIndex, previousIndex);
1076 return false; 1076 return false;
@@ -1110,12 +1110,12 @@ namespace OpenSim.Framework
1110 /// <remarks> 1110 /// <remarks>
1111 /// <para> 1111 /// <para>
1112 /// If element is not found from generation then <paramref name="value"/> and <paramref name="size"/> 1112 /// If element is not found from generation then <paramref name="value"/> and <paramref name="size"/>
1113 /// are set to default value (default(TValue) and 0). 1113 /// are set to default value (default(TValue) and 0).
1114 /// </para> 1114 /// </para>
1115 /// </remarks> 1115 /// </remarks>
1116 public bool TryGetValue(int bucketIndex, TKey key, out TValue value, out long size) 1116 public bool TryGetValue(int bucketIndex, TKey key, out TValue value, out long size)
1117 { 1117 {
1118 // Find entry index, 1118 // Find entry index,
1119 int previousIndex; 1119 int previousIndex;
1120 int elementIndex = FindElementIndex(bucketIndex, key, m_newGeneration, out previousIndex); 1120 int elementIndex = FindElementIndex(bucketIndex, key, m_newGeneration, out previousIndex);
1121 if (elementIndex == -1) 1121 if (elementIndex == -1)
@@ -1166,7 +1166,7 @@ namespace OpenSim.Framework
1166 /// </para> 1166 /// </para>
1167 /// <para> 1167 /// <para>
1168 /// There are two kind generations: "new generation" and "old generation(s)". All new elements 1168 /// There are two kind generations: "new generation" and "old generation(s)". All new elements
1169 /// are added to "new generation". 1169 /// are added to "new generation".
1170 /// </para> 1170 /// </para>
1171 /// </remarks> 1171 /// </remarks>
1172 protected interface IGeneration : IEnumerable<KeyValuePair<TKey, TValue>> 1172 protected interface IGeneration : IEnumerable<KeyValuePair<TKey, TValue>>
@@ -1211,7 +1211,7 @@ namespace OpenSim.Framework
1211 /// The key to locate in the <see cref="IGeneration"/>. 1211 /// The key to locate in the <see cref="IGeneration"/>.
1212 /// </param> 1212 /// </param>
1213 /// <returns> 1213 /// <returns>
1214 /// <see langword="true"/>if the <see cref="IGeneration"/> contains an element with the <see cref="key"/>; 1214 /// <see langword="true"/>if the <see cref="IGeneration"/> contains an element with the <see cref="key"/>;
1215 /// otherwise <see langword="false"/>. 1215 /// otherwise <see langword="false"/>.
1216 /// </returns> 1216 /// </returns>
1217 bool Contains(int bucketIndex, TKey key); 1217 bool Contains(int bucketIndex, TKey key);
@@ -1259,7 +1259,7 @@ namespace OpenSim.Framework
1259 /// </returns> 1259 /// </returns>
1260 /// <remarks> 1260 /// <remarks>
1261 /// <para> 1261 /// <para>
1262 /// If element was already existing in generation and new element size fits to collection limits, 1262 /// If element was already existing in generation and new element size fits to collection limits,
1263 /// then it's value is replaced with new one and size information is updated. If element didn't 1263 /// then it's value is replaced with new one and size information is updated. If element didn't
1264 /// exists in generation before, then generation must have empty space for a new element and 1264 /// exists in generation before, then generation must have empty space for a new element and
1265 /// size must fit generation's limits, before element is added to generation. 1265 /// size must fit generation's limits, before element is added to generation.
@@ -1288,7 +1288,7 @@ namespace OpenSim.Framework
1288 /// <remarks> 1288 /// <remarks>
1289 /// <para> 1289 /// <para>
1290 /// If element is not found from generation then <paramref name="value"/> and <paramref name="size"/> 1290 /// If element is not found from generation then <paramref name="value"/> and <paramref name="size"/>
1291 /// are set to default value (default(TValue) and 0). 1291 /// are set to default value (default(TValue) and 0).
1292 /// </para> 1292 /// </para>
1293 /// </remarks> 1293 /// </remarks>
1294 bool TryGetValue(int bucketIndex, TKey key, out TValue value, out long size); 1294 bool TryGetValue(int bucketIndex, TKey key, out TValue value, out long size);
@@ -1303,8 +1303,8 @@ namespace OpenSim.Framework
1303 /// </summary> 1303 /// </summary>
1304 /// <remarks> 1304 /// <remarks>
1305 /// <para> 1305 /// <para>
1306 /// When adding an new element to <see cref="ICnmCache{TKey,TValue}"/> that is limiting element count, 1306 /// When adding an new element to <see cref="ICnmCache{TKey,TValue}"/> that is limiting element count,
1307 /// <see cref="ICnmCache{TKey,TValue}"/> will remove less recently used elements until it can fit an new element. 1307 /// <see cref="ICnmCache{TKey,TValue}"/> will remove less recently used elements until it can fit an new element.
1308 /// </para> 1308 /// </para>
1309 /// </remarks> 1309 /// </remarks>
1310 /// <seealso cref="ICnmCache{TKey,TValue}.MaxCount"/> 1310 /// <seealso cref="ICnmCache{TKey,TValue}.MaxCount"/>
@@ -1324,13 +1324,13 @@ namespace OpenSim.Framework
1324 /// </value> 1324 /// </value>
1325 /// <remarks> 1325 /// <remarks>
1326 /// <para> 1326 /// <para>
1327 /// When element has been stored in <see cref="ICnmCache{TKey,TValue}"/> longer than <see cref="ICnmCache{TKey,TValue}.ExpirationTime"/> 1327 /// When element has been stored in <see cref="ICnmCache{TKey,TValue}"/> longer than <see cref="ICnmCache{TKey,TValue}.ExpirationTime"/>
1328 /// and it is not accessed through <see cref="ICnmCache{TKey,TValue}.TryGetValue"/> method or element's value is 1328 /// and it is not accessed through <see cref="ICnmCache{TKey,TValue}.TryGetValue"/> method or element's value is
1329 /// not replaced by <see cref="ICnmCache{TKey,TValue}.Set"/> method, then it is automatically removed from the 1329 /// not replaced by <see cref="ICnmCache{TKey,TValue}.Set"/> method, then it is automatically removed from the
1330 /// <see cref="ICnmCache{TKey,TValue}"/>. 1330 /// <see cref="ICnmCache{TKey,TValue}"/>.
1331 /// </para> 1331 /// </para>
1332 /// <para> 1332 /// <para>
1333 /// It is possible that <see cref="ICnmCache{TKey,TValue}"/> implementation removes element before it's expiration time, 1333 /// It is possible that <see cref="ICnmCache{TKey,TValue}"/> implementation removes element before it's expiration time,
1334 /// because total size or count of elements stored to cache is larger than <see cref="ICnmCache{TKey,TValue}.MaxSize"/> or <see cref="ICnmCache{TKey,TValue}.MaxCount"/>. 1334 /// because total size or count of elements stored to cache is larger than <see cref="ICnmCache{TKey,TValue}.MaxSize"/> or <see cref="ICnmCache{TKey,TValue}.MaxCount"/>.
1335 /// </para> 1335 /// </para>
1336 /// <para> 1336 /// <para>
@@ -1375,17 +1375,17 @@ namespace OpenSim.Framework
1375 /// Gets a value indicating whether <see cref="ICnmCache{TKey,TValue}"/> is limiting count of elements. 1375 /// Gets a value indicating whether <see cref="ICnmCache{TKey,TValue}"/> is limiting count of elements.
1376 /// </summary> 1376 /// </summary>
1377 /// <value> 1377 /// <value>
1378 /// <see langword="true"/> if the <see cref="ICnmCache{TKey,TValue}"/> count of elements is limited; 1378 /// <see langword="true"/> if the <see cref="ICnmCache{TKey,TValue}"/> count of elements is limited;
1379 /// otherwise, <see langword="false"/>. 1379 /// otherwise, <see langword="false"/>.
1380 /// </value> 1380 /// </value>
1381 /// <remarks> 1381 /// <remarks>
1382 /// <para> 1382 /// <para>
1383 /// When adding an new element to <see cref="ICnmCache{TKey,TValue}"/> that is limiting element count, 1383 /// When adding an new element to <see cref="ICnmCache{TKey,TValue}"/> that is limiting element count,
1384 /// <see cref="ICnmCache{TKey,TValue}"/> will remove less recently used elements until it can fit an new element. 1384 /// <see cref="ICnmCache{TKey,TValue}"/> will remove less recently used elements until it can fit an new element.
1385 /// </para> 1385 /// </para>
1386 /// </remarks> 1386 /// </remarks>
1387 /// <seealso cref="ICnmCache{TKey,TValue}.Count"/> 1387 /// <seealso cref="ICnmCache{TKey,TValue}.Count"/>
1388 /// <seealso cref="ICnmCache{TKey,TValue}.MaxCount"/> 1388 /// <seealso cref="ICnmCache{TKey,TValue}.MaxCount"/>
1389 /// <seealso cref="ICnmCache{TKey,TValue}.IsSizeLimited"/> 1389 /// <seealso cref="ICnmCache{TKey,TValue}.IsSizeLimited"/>
1390 /// <seealso cref="ICnmCache{TKey,TValue}.IsTimeLimited"/> 1390 /// <seealso cref="ICnmCache{TKey,TValue}.IsTimeLimited"/>
1391 public bool IsCountLimited 1391 public bool IsCountLimited
@@ -1397,13 +1397,13 @@ namespace OpenSim.Framework
1397 /// Gets a value indicating whether <see cref="ICnmCache{TKey,TValue}"/> is limiting size of elements. 1397 /// Gets a value indicating whether <see cref="ICnmCache{TKey,TValue}"/> is limiting size of elements.
1398 /// </summary> 1398 /// </summary>
1399 /// <value> 1399 /// <value>
1400 /// <see langword="true"/> if the <see cref="ICnmCache{TKey,TValue}"/> total size of elements is limited; 1400 /// <see langword="true"/> if the <see cref="ICnmCache{TKey,TValue}"/> total size of elements is limited;
1401 /// otherwise, <see langword="false"/>. 1401 /// otherwise, <see langword="false"/>.
1402 /// </value> 1402 /// </value>
1403 /// <remarks> 1403 /// <remarks>
1404 /// <para> 1404 /// <para>
1405 /// When adding an new element to <see cref="ICnmCache{TKey,TValue}"/> that is limiting total size of elements, 1405 /// When adding an new element to <see cref="ICnmCache{TKey,TValue}"/> that is limiting total size of elements,
1406 /// <see cref="ICnmCache{TKey,TValue}"/> will remove less recently used elements until it can fit an new element. 1406 /// <see cref="ICnmCache{TKey,TValue}"/> will remove less recently used elements until it can fit an new element.
1407 /// </para> 1407 /// </para>
1408 /// </remarks> 1408 /// </remarks>
1409 /// <seealso cref="ICnmCache{TKey,TValue}.MaxElementSize"/> 1409 /// <seealso cref="ICnmCache{TKey,TValue}.MaxElementSize"/>
@@ -1420,12 +1420,12 @@ namespace OpenSim.Framework
1420 /// Gets a value indicating whether or not access to the <see cref="ICnmCache{TKey,TValue}"/> is synchronized (thread safe). 1420 /// Gets a value indicating whether or not access to the <see cref="ICnmCache{TKey,TValue}"/> is synchronized (thread safe).
1421 /// </summary> 1421 /// </summary>
1422 /// <value> 1422 /// <value>
1423 /// <see langword="true"/> if access to the <see cref="ICnmCache{TKey,TValue}"/> is synchronized (thread safe); 1423 /// <see langword="true"/> if access to the <see cref="ICnmCache{TKey,TValue}"/> is synchronized (thread safe);
1424 /// otherwise, <see langword="false"/>. 1424 /// otherwise, <see langword="false"/>.
1425 /// </value> 1425 /// </value>
1426 /// <remarks> 1426 /// <remarks>
1427 /// <para> 1427 /// <para>
1428 /// To get synchronized (thread safe) access to <see cref="ICnmCache{TKey,TValue}"/> object, use 1428 /// To get synchronized (thread safe) access to <see cref="ICnmCache{TKey,TValue}"/> object, use
1429 /// <see cref="CnmSynchronizedCache{TKey,TValue}.Synchronized"/> in <see cref="CnmSynchronizedCache{TKey,TValue}"/> class 1429 /// <see cref="CnmSynchronizedCache{TKey,TValue}.Synchronized"/> in <see cref="CnmSynchronizedCache{TKey,TValue}"/> class
1430 /// to retrieve synchronized wrapper for <see cref="ICnmCache{TKey,TValue}"/> object. 1430 /// to retrieve synchronized wrapper for <see cref="ICnmCache{TKey,TValue}"/> object.
1431 /// </para> 1431 /// </para>
@@ -1441,13 +1441,13 @@ namespace OpenSim.Framework
1441 /// Gets a value indicating whether elements stored to <see cref="ICnmCache{TKey,TValue}"/> have limited inactivity time. 1441 /// Gets a value indicating whether elements stored to <see cref="ICnmCache{TKey,TValue}"/> have limited inactivity time.
1442 /// </summary> 1442 /// </summary>
1443 /// <value> 1443 /// <value>
1444 /// <see langword="true"/> if the <see cref="ICnmCache{TKey,TValue}"/> has a fixed total size of elements; 1444 /// <see langword="true"/> if the <see cref="ICnmCache{TKey,TValue}"/> has a fixed total size of elements;
1445 /// otherwise, <see langword="false"/>. 1445 /// otherwise, <see langword="false"/>.
1446 /// </value> 1446 /// </value>
1447 /// <remarks> 1447 /// <remarks>
1448 /// If <see cref="ICnmCache{TKey,TValue}"/> have limited inactivity time and element is not accessed through <see cref="ICnmCache{TKey,TValue}.Set"/> 1448 /// If <see cref="ICnmCache{TKey,TValue}"/> have limited inactivity time and element is not accessed through <see cref="ICnmCache{TKey,TValue}.Set"/>
1449 /// or <see cref="ICnmCache{TKey,TValue}.TryGetValue"/> methods in <see cref="ICnmCache{TKey,TValue}.ExpirationTime"/> , then element is automatically removed from 1449 /// or <see cref="ICnmCache{TKey,TValue}.TryGetValue"/> methods in <see cref="ICnmCache{TKey,TValue}.ExpirationTime"/> , then element is automatically removed from
1450 /// the cache. Depending on implementation of the <see cref="ICnmCache{TKey,TValue}"/>, some of the elements may 1450 /// the cache. Depending on implementation of the <see cref="ICnmCache{TKey,TValue}"/>, some of the elements may
1451 /// stay longer in cache. 1451 /// stay longer in cache.
1452 /// </remarks> 1452 /// </remarks>
1453 /// <seealso cref="ICnmCache{TKey,TValue}.ExpirationTime"/> 1453 /// <seealso cref="ICnmCache{TKey,TValue}.ExpirationTime"/>
@@ -1463,13 +1463,13 @@ namespace OpenSim.Framework
1463 /// Gets or sets maximal allowed count of elements that can be stored to <see cref="ICnmCache{TKey,TValue}"/>. 1463 /// Gets or sets maximal allowed count of elements that can be stored to <see cref="ICnmCache{TKey,TValue}"/>.
1464 /// </summary> 1464 /// </summary>
1465 /// <value> 1465 /// <value>
1466 /// <see cref="int.MaxValue"/>, if <see cref="ICnmCache{TKey,TValue}"/> is not limited by count of elements; 1466 /// <see cref="int.MaxValue"/>, if <see cref="ICnmCache{TKey,TValue}"/> is not limited by count of elements;
1467 /// otherwise maximal allowed count of elements. 1467 /// otherwise maximal allowed count of elements.
1468 /// </value> 1468 /// </value>
1469 /// <remarks> 1469 /// <remarks>
1470 /// <para> 1470 /// <para>
1471 /// When adding an new element to <see cref="ICnmCache{TKey,TValue}"/> that is limiting element count, 1471 /// When adding an new element to <see cref="ICnmCache{TKey,TValue}"/> that is limiting element count,
1472 /// <see cref="ICnmCache{TKey,TValue}"/> will remove less recently used elements until it can fit an new element. 1472 /// <see cref="ICnmCache{TKey,TValue}"/> will remove less recently used elements until it can fit an new element.
1473 /// </para> 1473 /// </para>
1474 /// </remarks> 1474 /// </remarks>
1475 public int MaxCount 1475 public int MaxCount
@@ -1496,7 +1496,7 @@ namespace OpenSim.Framework
1496 /// </value> 1496 /// </value>
1497 /// <remarks> 1497 /// <remarks>
1498 /// <para> 1498 /// <para>
1499 /// If element's size is larger than <see cref="ICnmCache{TKey,TValue}.MaxElementSize"/>, then element is 1499 /// If element's size is larger than <see cref="ICnmCache{TKey,TValue}.MaxElementSize"/>, then element is
1500 /// not added to the <see cref="ICnmCache{TKey,TValue}"/>. 1500 /// not added to the <see cref="ICnmCache{TKey,TValue}"/>.
1501 /// </para> 1501 /// </para>
1502 /// </remarks> 1502 /// </remarks>
@@ -1522,8 +1522,8 @@ namespace OpenSim.Framework
1522 /// Normally size is total bytes used by elements in the cache. But it can be any other suitable unit of measure. 1522 /// Normally size is total bytes used by elements in the cache. But it can be any other suitable unit of measure.
1523 /// </para> 1523 /// </para>
1524 /// <para> 1524 /// <para>
1525 /// When adding an new element to <see cref="ICnmCache{TKey,TValue}"/> that is limiting total size of elements, 1525 /// When adding an new element to <see cref="ICnmCache{TKey,TValue}"/> that is limiting total size of elements,
1526 /// <see cref="ICnmCache{TKey,TValue}"/> will remove less recently used elements until it can fit an new element. 1526 /// <see cref="ICnmCache{TKey,TValue}"/> will remove less recently used elements until it can fit an new element.
1527 /// </para> 1527 /// </para>
1528 /// </remarks> 1528 /// </remarks>
1529 /// <seealso cref="ICnmCache{TKey,TValue}.MaxElementSize"/> 1529 /// <seealso cref="ICnmCache{TKey,TValue}.MaxElementSize"/>
@@ -1556,11 +1556,11 @@ namespace OpenSim.Framework
1556 /// Normally bytes, but can be any suitable unit of measure. 1556 /// Normally bytes, but can be any suitable unit of measure.
1557 /// </para> 1557 /// </para>
1558 /// <para> 1558 /// <para>
1559 /// Element's size is given when element is added or replaced by <see cref="ICnmCache{TKey,TValue}.Set"/> method. 1559 /// Element's size is given when element is added or replaced by <see cref="ICnmCache{TKey,TValue}.Set"/> method.
1560 /// </para> 1560 /// </para>
1561 /// <para> 1561 /// <para>
1562 /// When adding an new element to <see cref="ICnmCache{TKey,TValue}"/> that is limiting total size of elements, 1562 /// When adding an new element to <see cref="ICnmCache{TKey,TValue}"/> that is limiting total size of elements,
1563 /// <see cref="ICnmCache{TKey,TValue}"/> will remove less recently used elements until it can fit an new element. 1563 /// <see cref="ICnmCache{TKey,TValue}"/> will remove less recently used elements until it can fit an new element.
1564 /// </para> 1564 /// </para>
1565 /// </remarks> 1565 /// </remarks>
1566 /// <seealso cref="ICnmCache{TKey,TValue}.MaxElementSize"/> 1566 /// <seealso cref="ICnmCache{TKey,TValue}.MaxElementSize"/>
@@ -1581,8 +1581,8 @@ namespace OpenSim.Framework
1581 /// </value> 1581 /// </value>
1582 /// <remarks> 1582 /// <remarks>
1583 /// <para> 1583 /// <para>
1584 /// To get synchronized (thread safe) access to <see cref="ICnmCache{TKey,TValue}"/>, use <see cref="CnmSynchronizedCache{TKey,TValue}"/> 1584 /// To get synchronized (thread safe) access to <see cref="ICnmCache{TKey,TValue}"/>, use <see cref="CnmSynchronizedCache{TKey,TValue}"/>
1585 /// method <see cref="CnmSynchronizedCache{TKey,TValue}.Synchronized"/> to retrieve synchronized wrapper interface to 1585 /// method <see cref="CnmSynchronizedCache{TKey,TValue}.Synchronized"/> to retrieve synchronized wrapper interface to
1586 /// <see cref="ICnmCache{TKey,TValue}"/>. 1586 /// <see cref="ICnmCache{TKey,TValue}"/>.
1587 /// </para> 1587 /// </para>
1588 /// </remarks> 1588 /// </remarks>
@@ -1735,7 +1735,7 @@ namespace OpenSim.Framework
1735 } 1735 }
1736 1736
1737 /// <summary> 1737 /// <summary>
1738 /// Add or replace an element with the provided <paramref name="key"/>, <paramref name="value"/> and <paramref name="size"/> to 1738 /// Add or replace an element with the provided <paramref name="key"/>, <paramref name="value"/> and <paramref name="size"/> to
1739 /// <see cref="ICnmCache{TKey,TValue}"/>. 1739 /// <see cref="ICnmCache{TKey,TValue}"/>.
1740 /// </summary> 1740 /// </summary>
1741 /// <param name="key"> 1741 /// <param name="key">
@@ -1748,7 +1748,7 @@ namespace OpenSim.Framework
1748 /// The element's size. Normally bytes, but can be any suitable unit of measure. 1748 /// The element's size. Normally bytes, but can be any suitable unit of measure.
1749 /// </param> 1749 /// </param>
1750 /// <returns> 1750 /// <returns>
1751 /// <see langword="true"/>if element has been added successfully to the <see cref="ICnmCache{TKey,TValue}"/>; 1751 /// <see langword="true"/>if element has been added successfully to the <see cref="ICnmCache{TKey,TValue}"/>;
1752 /// otherwise <see langword="false"/>. 1752 /// otherwise <see langword="false"/>.
1753 /// </returns> 1753 /// </returns>
1754 /// <exception cref="ArgumentNullException"> 1754 /// <exception cref="ArgumentNullException">
@@ -1759,17 +1759,17 @@ namespace OpenSim.Framework
1759 /// </exception> 1759 /// </exception>
1760 /// <remarks> 1760 /// <remarks>
1761 /// <para> 1761 /// <para>
1762 /// If element's <paramref name="size"/> is larger than <see cref="ICnmCache{TKey,TValue}.MaxElementSize"/>, then element is 1762 /// If element's <paramref name="size"/> is larger than <see cref="ICnmCache{TKey,TValue}.MaxElementSize"/>, then element is
1763 /// not added to the <see cref="ICnmCache{TKey,TValue}"/>, however - possible older element is 1763 /// not added to the <see cref="ICnmCache{TKey,TValue}"/>, however - possible older element is
1764 /// removed from the <see cref="ICnmCache{TKey,TValue}"/>. 1764 /// removed from the <see cref="ICnmCache{TKey,TValue}"/>.
1765 /// </para> 1765 /// </para>
1766 /// <para> 1766 /// <para>
1767 /// When adding an new element to <see cref="ICnmCache{TKey,TValue}"/> that is limiting total size of elements, 1767 /// When adding an new element to <see cref="ICnmCache{TKey,TValue}"/> that is limiting total size of elements,
1768 /// <see cref="ICnmCache{TKey,TValue}"/>will remove less recently used elements until it can fit an new element. 1768 /// <see cref="ICnmCache{TKey,TValue}"/>will remove less recently used elements until it can fit an new element.
1769 /// </para> 1769 /// </para>
1770 /// <para> 1770 /// <para>
1771 /// When adding an new element to <see cref="ICnmCache{TKey,TValue}"/> that is limiting element count, 1771 /// When adding an new element to <see cref="ICnmCache{TKey,TValue}"/> that is limiting element count,
1772 /// <see cref="ICnmCache{TKey,TValue}"/>will remove less recently used elements until it can fit an new element. 1772 /// <see cref="ICnmCache{TKey,TValue}"/>will remove less recently used elements until it can fit an new element.
1773 /// </para> 1773 /// </para>
1774 /// </remarks> 1774 /// </remarks>
1775 /// <seealso cref="ICnmCache{TKey,TValue}.IsSizeLimited"/> 1775 /// <seealso cref="ICnmCache{TKey,TValue}.IsSizeLimited"/>
@@ -1809,15 +1809,15 @@ namespace OpenSim.Framework
1809 /// Gets the <paramref name="value"/> associated with the specified <paramref name="key"/>. 1809 /// Gets the <paramref name="value"/> associated with the specified <paramref name="key"/>.
1810 /// </summary> 1810 /// </summary>
1811 /// <returns> 1811 /// <returns>
1812 /// <see langword="true"/>if the <see cref="ICnmCache{TKey,TValue}"/> contains an element with 1812 /// <see langword="true"/>if the <see cref="ICnmCache{TKey,TValue}"/> contains an element with
1813 /// the specified key; otherwise, <see langword="false"/>. 1813 /// the specified key; otherwise, <see langword="false"/>.
1814 /// </returns> 1814 /// </returns>
1815 /// <param name="key"> 1815 /// <param name="key">
1816 /// The key whose <paramref name="value"/> to get. 1816 /// The key whose <paramref name="value"/> to get.
1817 /// </param> 1817 /// </param>
1818 /// <param name="value"> 1818 /// <param name="value">
1819 /// When this method returns, the value associated with the specified <paramref name="key"/>, 1819 /// When this method returns, the value associated with the specified <paramref name="key"/>,
1820 /// if the <paramref name="key"/> is found; otherwise, the 1820 /// if the <paramref name="key"/> is found; otherwise, the
1821 /// default value for the type of the <paramref name="value"/> parameter. This parameter is passed uninitialized. 1821 /// default value for the type of the <paramref name="value"/> parameter. This parameter is passed uninitialized.
1822 /// </param> 1822 /// </param>
1823 /// <exception cref="ArgumentNullException"> 1823 /// <exception cref="ArgumentNullException">
diff --git a/OpenSim/Framework/CnmSynchronizedCache.cs b/OpenSim/Framework/CnmSynchronizedCache.cs
index 2bafbe9..b33f4f7 100644
--- a/OpenSim/Framework/CnmSynchronizedCache.cs
+++ b/OpenSim/Framework/CnmSynchronizedCache.cs
@@ -36,10 +36,10 @@ namespace OpenSim.Framework
36 /// Synchronized Cenome cache wrapper. 36 /// Synchronized Cenome cache wrapper.
37 /// </summary> 37 /// </summary>
38 /// <typeparam name="TKey"> 38 /// <typeparam name="TKey">
39 /// The type of keys in the cache. 39 /// The type of keys in the cache.
40 /// </typeparam> 40 /// </typeparam>
41 /// <typeparam name="TValue"> 41 /// <typeparam name="TValue">
42 /// The type of values in the cache. 42 /// The type of values in the cache.
43 /// </typeparam> 43 /// </typeparam>
44 /// <remarks> 44 /// <remarks>
45 /// <para> 45 /// <para>
@@ -60,7 +60,7 @@ namespace OpenSim.Framework
60 private readonly object m_syncRoot; 60 private readonly object m_syncRoot;
61 61
62 /// <summary> 62 /// <summary>
63 /// Initializes a new instance of the <see cref="CnmSynchronizedCache{TKey,TValue}"/> class. 63 /// Initializes a new instance of the <see cref="CnmSynchronizedCache{TKey,TValue}"/> class.
64 /// Initializes a new instance of the <see cref="CnmSynchronizedCache{TKey,TValue}"/> class. 64 /// Initializes a new instance of the <see cref="CnmSynchronizedCache{TKey,TValue}"/> class.
65 /// </summary> 65 /// </summary>
66 /// <param name="cache"> 66 /// <param name="cache">
@@ -73,13 +73,13 @@ namespace OpenSim.Framework
73 } 73 }
74 74
75 /// <summary> 75 /// <summary>
76 /// Returns a <see cref="ICnmCache{TKey,TValue}"/> wrapper that is synchronized (thread safe). 76 /// Returns a <see cref="ICnmCache{TKey,TValue}"/> wrapper that is synchronized (thread safe).
77 /// </summary> 77 /// </summary>
78 /// <param name="cache"> 78 /// <param name="cache">
79 /// The <see cref="ICnmCache{TKey,TValue}"/> to synchronize. 79 /// The <see cref="ICnmCache{TKey,TValue}"/> to synchronize.
80 /// </param> 80 /// </param>
81 /// <returns> 81 /// <returns>
82 /// A <see cref="ICnmCache{TKey,TValue}"/> wrapper that is synchronized (thread safe). 82 /// A <see cref="ICnmCache{TKey,TValue}"/> wrapper that is synchronized (thread safe).
83 /// </returns> 83 /// </returns>
84 /// <exception cref="ArgumentNullException"> 84 /// <exception cref="ArgumentNullException">
85 /// <paramref name="cache"/>is null. 85 /// <paramref name="cache"/>is null.
@@ -125,7 +125,7 @@ namespace OpenSim.Framework
125 } 125 }
126 126
127 /// <summary> 127 /// <summary>
128 /// Finalizes an instance of the <see cref="SynchronizedEnumerator"/> class. 128 /// Finalizes an instance of the <see cref="SynchronizedEnumerator"/> class.
129 /// </summary> 129 /// </summary>
130 ~SynchronizedEnumerator() 130 ~SynchronizedEnumerator()
131 { 131 {
@@ -184,7 +184,7 @@ namespace OpenSim.Framework
184 /// true if the enumerator was successfully advanced to the next element; false if the enumerator has passed the end of the collection. 184 /// true if the enumerator was successfully advanced to the next element; false if the enumerator has passed the end of the collection.
185 /// </returns> 185 /// </returns>
186 /// <exception cref="InvalidOperationException"> 186 /// <exception cref="InvalidOperationException">
187 /// The collection was modified after the enumerator was created. 187 /// The collection was modified after the enumerator was created.
188 /// </exception> 188 /// </exception>
189 public bool MoveNext() 189 public bool MoveNext()
190 { 190 {
@@ -195,7 +195,7 @@ namespace OpenSim.Framework
195 /// Sets the enumerator to its initial position, which is before the first element in the collection. 195 /// Sets the enumerator to its initial position, which is before the first element in the collection.
196 /// </summary> 196 /// </summary>
197 /// <exception cref="InvalidOperationException"> 197 /// <exception cref="InvalidOperationException">
198 /// The collection was modified after the enumerator was created. 198 /// The collection was modified after the enumerator was created.
199 /// </exception> 199 /// </exception>
200 public void Reset() 200 public void Reset()
201 { 201 {
@@ -214,8 +214,8 @@ namespace OpenSim.Framework
214 /// </summary> 214 /// </summary>
215 /// <remarks> 215 /// <remarks>
216 /// <para> 216 /// <para>
217 /// When adding an new element to <see cref="ICnmCache{TKey,TValue}"/> that is limiting element count, 217 /// When adding an new element to <see cref="ICnmCache{TKey,TValue}"/> that is limiting element count,
218 /// <see cref="ICnmCache{TKey,TValue}"/> will remove less recently used elements until it can fit an new element. 218 /// <see cref="ICnmCache{TKey,TValue}"/> will remove less recently used elements until it can fit an new element.
219 /// </para> 219 /// </para>
220 /// </remarks> 220 /// </remarks>
221 /// <seealso cref="ICnmCache{TKey,TValue}.MaxCount"/> 221 /// <seealso cref="ICnmCache{TKey,TValue}.MaxCount"/>
@@ -241,13 +241,13 @@ namespace OpenSim.Framework
241 /// </value> 241 /// </value>
242 /// <remarks> 242 /// <remarks>
243 /// <para> 243 /// <para>
244 /// When element has been stored in <see cref="ICnmCache{TKey,TValue}"/> longer than <see cref="ICnmCache{TKey,TValue}.ExpirationTime"/> 244 /// When element has been stored in <see cref="ICnmCache{TKey,TValue}"/> longer than <see cref="ICnmCache{TKey,TValue}.ExpirationTime"/>
245 /// and it is not accessed through <see cref="ICnmCache{TKey,TValue}.TryGetValue"/> method or element's value is 245 /// and it is not accessed through <see cref="ICnmCache{TKey,TValue}.TryGetValue"/> method or element's value is
246 /// not replaced by <see cref="ICnmCache{TKey,TValue}.Set"/> method, then it is automatically removed from the 246 /// not replaced by <see cref="ICnmCache{TKey,TValue}.Set"/> method, then it is automatically removed from the
247 /// <see cref="ICnmCache{TKey,TValue}"/>. 247 /// <see cref="ICnmCache{TKey,TValue}"/>.
248 /// </para> 248 /// </para>
249 /// <para> 249 /// <para>
250 /// It is possible that <see cref="ICnmCache{TKey,TValue}"/> implementation removes element before it's expiration time, 250 /// It is possible that <see cref="ICnmCache{TKey,TValue}"/> implementation removes element before it's expiration time,
251 /// because total size or count of elements stored to cache is larger than <see cref="ICnmCache{TKey,TValue}.MaxSize"/> or <see cref="ICnmCache{TKey,TValue}.MaxCount"/>. 251 /// because total size or count of elements stored to cache is larger than <see cref="ICnmCache{TKey,TValue}.MaxSize"/> or <see cref="ICnmCache{TKey,TValue}.MaxCount"/>.
252 /// </para> 252 /// </para>
253 /// <para> 253 /// <para>
@@ -291,17 +291,17 @@ namespace OpenSim.Framework
291 /// Gets a value indicating whether <see cref="ICnmCache{TKey,TValue}"/> is limiting count of elements. 291 /// Gets a value indicating whether <see cref="ICnmCache{TKey,TValue}"/> is limiting count of elements.
292 /// </summary> 292 /// </summary>
293 /// <value> 293 /// <value>
294 /// <see langword="true"/> if the <see cref="ICnmCache{TKey,TValue}"/> count of elements is limited; 294 /// <see langword="true"/> if the <see cref="ICnmCache{TKey,TValue}"/> count of elements is limited;
295 /// otherwise, <see langword="false"/>. 295 /// otherwise, <see langword="false"/>.
296 /// </value> 296 /// </value>
297 /// <remarks> 297 /// <remarks>
298 /// <para> 298 /// <para>
299 /// When adding an new element to <see cref="ICnmCache{TKey,TValue}"/> that is limiting element count, 299 /// When adding an new element to <see cref="ICnmCache{TKey,TValue}"/> that is limiting element count,
300 /// <see cref="ICnmCache{TKey,TValue}"/> will remove less recently used elements until it can fit an new element. 300 /// <see cref="ICnmCache{TKey,TValue}"/> will remove less recently used elements until it can fit an new element.
301 /// </para> 301 /// </para>
302 /// </remarks> 302 /// </remarks>
303 /// <seealso cref="ICnmCache{TKey,TValue}.Count"/> 303 /// <seealso cref="ICnmCache{TKey,TValue}.Count"/>
304 /// <seealso cref="ICnmCache{TKey,TValue}.MaxCount"/> 304 /// <seealso cref="ICnmCache{TKey,TValue}.MaxCount"/>
305 /// <seealso cref="ICnmCache{TKey,TValue}.IsSizeLimited"/> 305 /// <seealso cref="ICnmCache{TKey,TValue}.IsSizeLimited"/>
306 /// <seealso cref="ICnmCache{TKey,TValue}.IsTimeLimited"/> 306 /// <seealso cref="ICnmCache{TKey,TValue}.IsTimeLimited"/>
307 public bool IsCountLimited 307 public bool IsCountLimited
@@ -319,13 +319,13 @@ namespace OpenSim.Framework
319 /// Gets a value indicating whether <see cref="ICnmCache{TKey,TValue}"/> is limiting size of elements. 319 /// Gets a value indicating whether <see cref="ICnmCache{TKey,TValue}"/> is limiting size of elements.
320 /// </summary> 320 /// </summary>
321 /// <value> 321 /// <value>
322 /// <see langword="true"/> if the <see cref="ICnmCache{TKey,TValue}"/> total size of elements is limited; 322 /// <see langword="true"/> if the <see cref="ICnmCache{TKey,TValue}"/> total size of elements is limited;
323 /// otherwise, <see langword="false"/>. 323 /// otherwise, <see langword="false"/>.
324 /// </value> 324 /// </value>
325 /// <remarks> 325 /// <remarks>
326 /// <para> 326 /// <para>
327 /// When adding an new element to <see cref="ICnmCache{TKey,TValue}"/> that is limiting total size of elements, 327 /// When adding an new element to <see cref="ICnmCache{TKey,TValue}"/> that is limiting total size of elements,
328 /// <see cref="ICnmCache{TKey,TValue}"/> will remove less recently used elements until it can fit an new element. 328 /// <see cref="ICnmCache{TKey,TValue}"/> will remove less recently used elements until it can fit an new element.
329 /// </para> 329 /// </para>
330 /// </remarks> 330 /// </remarks>
331 /// <seealso cref="ICnmCache{TKey,TValue}.MaxElementSize"/> 331 /// <seealso cref="ICnmCache{TKey,TValue}.MaxElementSize"/>
@@ -348,12 +348,12 @@ namespace OpenSim.Framework
348 /// Gets a value indicating whether or not access to the <see cref="ICnmCache{TKey,TValue}"/> is synchronized (thread safe). 348 /// Gets a value indicating whether or not access to the <see cref="ICnmCache{TKey,TValue}"/> is synchronized (thread safe).
349 /// </summary> 349 /// </summary>
350 /// <value> 350 /// <value>
351 /// <see langword="true"/> if access to the <see cref="ICnmCache{TKey,TValue}"/> is synchronized (thread safe); 351 /// <see langword="true"/> if access to the <see cref="ICnmCache{TKey,TValue}"/> is synchronized (thread safe);
352 /// otherwise, <see langword="false"/>. 352 /// otherwise, <see langword="false"/>.
353 /// </value> 353 /// </value>
354 /// <remarks> 354 /// <remarks>
355 /// <para> 355 /// <para>
356 /// To get synchronized (thread safe) access to <see cref="ICnmCache{TKey,TValue}"/> object, use 356 /// To get synchronized (thread safe) access to <see cref="ICnmCache{TKey,TValue}"/> object, use
357 /// <see cref="CnmSynchronizedCache{TKey,TValue}.Synchronized"/> in <see cref="CnmSynchronizedCache{TKey,TValue}"/> class 357 /// <see cref="CnmSynchronizedCache{TKey,TValue}.Synchronized"/> in <see cref="CnmSynchronizedCache{TKey,TValue}"/> class
358 /// to retrieve synchronized wrapper for <see cref="ICnmCache{TKey,TValue}"/> object. 358 /// to retrieve synchronized wrapper for <see cref="ICnmCache{TKey,TValue}"/> object.
359 /// </para> 359 /// </para>
@@ -369,13 +369,13 @@ namespace OpenSim.Framework
369 /// Gets a value indicating whether elements stored to <see cref="ICnmCache{TKey,TValue}"/> have limited inactivity time. 369 /// Gets a value indicating whether elements stored to <see cref="ICnmCache{TKey,TValue}"/> have limited inactivity time.
370 /// </summary> 370 /// </summary>
371 /// <value> 371 /// <value>
372 /// <see langword="true"/> if the <see cref="ICnmCache{TKey,TValue}"/> has a fixed total size of elements; 372 /// <see langword="true"/> if the <see cref="ICnmCache{TKey,TValue}"/> has a fixed total size of elements;
373 /// otherwise, <see langword="false"/>. 373 /// otherwise, <see langword="false"/>.
374 /// </value> 374 /// </value>
375 /// <remarks> 375 /// <remarks>
376 /// If <see cref="ICnmCache{TKey,TValue}"/> have limited inactivity time and element is not accessed through <see cref="ICnmCache{TKey,TValue}.Set"/> 376 /// If <see cref="ICnmCache{TKey,TValue}"/> have limited inactivity time and element is not accessed through <see cref="ICnmCache{TKey,TValue}.Set"/>
377 /// or <see cref="ICnmCache{TKey,TValue}.TryGetValue"/> methods in <see cref="ICnmCache{TKey,TValue}.ExpirationTime"/> , then element is automatically removed from 377 /// or <see cref="ICnmCache{TKey,TValue}.TryGetValue"/> methods in <see cref="ICnmCache{TKey,TValue}.ExpirationTime"/> , then element is automatically removed from
378 /// the cache. Depending on implementation of the <see cref="ICnmCache{TKey,TValue}"/>, some of the elements may 378 /// the cache. Depending on implementation of the <see cref="ICnmCache{TKey,TValue}"/>, some of the elements may
379 /// stay longer in cache. 379 /// stay longer in cache.
380 /// </remarks> 380 /// </remarks>
381 /// <seealso cref="ICnmCache{TKey,TValue}.ExpirationTime"/> 381 /// <seealso cref="ICnmCache{TKey,TValue}.ExpirationTime"/>
@@ -397,13 +397,13 @@ namespace OpenSim.Framework
397 /// Gets or sets maximal allowed count of elements that can be stored to <see cref="ICnmCache{TKey,TValue}"/>. 397 /// Gets or sets maximal allowed count of elements that can be stored to <see cref="ICnmCache{TKey,TValue}"/>.
398 /// </summary> 398 /// </summary>
399 /// <value> 399 /// <value>
400 /// <see cref="int.MaxValue"/>, if <see cref="ICnmCache{TKey,TValue}"/> is not limited by count of elements; 400 /// <see cref="int.MaxValue"/>, if <see cref="ICnmCache{TKey,TValue}"/> is not limited by count of elements;
401 /// otherwise maximal allowed count of elements. 401 /// otherwise maximal allowed count of elements.
402 /// </value> 402 /// </value>
403 /// <remarks> 403 /// <remarks>
404 /// <para> 404 /// <para>
405 /// When adding an new element to <see cref="ICnmCache{TKey,TValue}"/> that is limiting element count, 405 /// When adding an new element to <see cref="ICnmCache{TKey,TValue}"/> that is limiting element count,
406 /// <see cref="ICnmCache{TKey,TValue}"/> will remove less recently used elements until it can fit an new element. 406 /// <see cref="ICnmCache{TKey,TValue}"/> will remove less recently used elements until it can fit an new element.
407 /// </para> 407 /// </para>
408 /// </remarks> 408 /// </remarks>
409 public int MaxCount 409 public int MaxCount
@@ -433,7 +433,7 @@ namespace OpenSim.Framework
433 /// </value> 433 /// </value>
434 /// <remarks> 434 /// <remarks>
435 /// <para> 435 /// <para>
436 /// If element's size is larger than <see cref="ICnmCache{TKey,TValue}.MaxElementSize"/>, then element is 436 /// If element's size is larger than <see cref="ICnmCache{TKey,TValue}.MaxElementSize"/>, then element is
437 /// not added to the <see cref="ICnmCache{TKey,TValue}"/>. 437 /// not added to the <see cref="ICnmCache{TKey,TValue}"/>.
438 /// </para> 438 /// </para>
439 /// </remarks> 439 /// </remarks>
@@ -463,8 +463,8 @@ namespace OpenSim.Framework
463 /// Normally size is total bytes used by elements in the cache. But it can be any other suitable unit of measure. 463 /// Normally size is total bytes used by elements in the cache. But it can be any other suitable unit of measure.
464 /// </para> 464 /// </para>
465 /// <para> 465 /// <para>
466 /// When adding an new element to <see cref="ICnmCache{TKey,TValue}"/> that is limiting total size of elements, 466 /// When adding an new element to <see cref="ICnmCache{TKey,TValue}"/> that is limiting total size of elements,
467 /// <see cref="ICnmCache{TKey,TValue}"/> will remove less recently used elements until it can fit an new element. 467 /// <see cref="ICnmCache{TKey,TValue}"/> will remove less recently used elements until it can fit an new element.
468 /// </para> 468 /// </para>
469 /// </remarks> 469 /// </remarks>
470 /// <exception cref="ArgumentOutOfRangeException">value is less than 0.</exception> 470 /// <exception cref="ArgumentOutOfRangeException">value is less than 0.</exception>
@@ -501,11 +501,11 @@ namespace OpenSim.Framework
501 /// Normally bytes, but can be any suitable unit of measure. 501 /// Normally bytes, but can be any suitable unit of measure.
502 /// </para> 502 /// </para>
503 /// <para> 503 /// <para>
504 /// Element's size is given when element is added or replaced by <see cref="ICnmCache{TKey,TValue}.Set"/> method. 504 /// Element's size is given when element is added or replaced by <see cref="ICnmCache{TKey,TValue}.Set"/> method.
505 /// </para> 505 /// </para>
506 /// <para> 506 /// <para>
507 /// When adding an new element to <see cref="ICnmCache{TKey,TValue}"/> that is limiting total size of elements, 507 /// When adding an new element to <see cref="ICnmCache{TKey,TValue}"/> that is limiting total size of elements,
508 /// <see cref="ICnmCache{TKey,TValue}"/> will remove less recently used elements until it can fit an new element. 508 /// <see cref="ICnmCache{TKey,TValue}"/> will remove less recently used elements until it can fit an new element.
509 /// </para> 509 /// </para>
510 /// </remarks> 510 /// </remarks>
511 /// <seealso cref="ICnmCache{TKey,TValue}.MaxElementSize"/> 511 /// <seealso cref="ICnmCache{TKey,TValue}.MaxElementSize"/>
@@ -532,8 +532,8 @@ namespace OpenSim.Framework
532 /// </value> 532 /// </value>
533 /// <remarks> 533 /// <remarks>
534 /// <para> 534 /// <para>
535 /// To get synchronized (thread safe) access to <see cref="ICnmCache{TKey,TValue}"/>, use <see cref="CnmSynchronizedCache{TKey,TValue}"/> 535 /// To get synchronized (thread safe) access to <see cref="ICnmCache{TKey,TValue}"/>, use <see cref="CnmSynchronizedCache{TKey,TValue}"/>
536 /// method <see cref="CnmSynchronizedCache{TKey,TValue}.Synchronized"/> to retrieve synchronized wrapper interface to 536 /// method <see cref="CnmSynchronizedCache{TKey,TValue}.Synchronized"/> to retrieve synchronized wrapper interface to
537 /// <see cref="ICnmCache{TKey,TValue}"/>. 537 /// <see cref="ICnmCache{TKey,TValue}"/>.
538 /// </para> 538 /// </para>
539 /// </remarks> 539 /// </remarks>
@@ -647,7 +647,7 @@ namespace OpenSim.Framework
647 } 647 }
648 648
649 /// <summary> 649 /// <summary>
650 /// Add or replace an element with the provided <paramref name="key"/>, <paramref name="value"/> and <paramref name="size"/> to 650 /// Add or replace an element with the provided <paramref name="key"/>, <paramref name="value"/> and <paramref name="size"/> to
651 /// <see cref="ICnmCache{TKey,TValue}"/>. 651 /// <see cref="ICnmCache{TKey,TValue}"/>.
652 /// </summary> 652 /// </summary>
653 /// <param name="key"> 653 /// <param name="key">
@@ -660,7 +660,7 @@ namespace OpenSim.Framework
660 /// The element's size. Normally bytes, but can be any suitable unit of measure. 660 /// The element's size. Normally bytes, but can be any suitable unit of measure.
661 /// </param> 661 /// </param>
662 /// <returns> 662 /// <returns>
663 /// <see langword="true"/>if element has been added successfully to the <see cref="ICnmCache{TKey,TValue}"/>; 663 /// <see langword="true"/>if element has been added successfully to the <see cref="ICnmCache{TKey,TValue}"/>;
664 /// otherwise <see langword="false"/>. 664 /// otherwise <see langword="false"/>.
665 /// </returns> 665 /// </returns>
666 /// <exception cref="ArgumentNullException"> 666 /// <exception cref="ArgumentNullException">
@@ -671,17 +671,17 @@ namespace OpenSim.Framework
671 /// </exception> 671 /// </exception>
672 /// <remarks> 672 /// <remarks>
673 /// <para> 673 /// <para>
674 /// If element's <paramref name="size"/> is larger than <see cref="ICnmCache{TKey,TValue}.MaxElementSize"/>, then element is 674 /// If element's <paramref name="size"/> is larger than <see cref="ICnmCache{TKey,TValue}.MaxElementSize"/>, then element is
675 /// not added to the <see cref="ICnmCache{TKey,TValue}"/>, however - possible older element is 675 /// not added to the <see cref="ICnmCache{TKey,TValue}"/>, however - possible older element is
676 /// removed from the <see cref="ICnmCache{TKey,TValue}"/>. 676 /// removed from the <see cref="ICnmCache{TKey,TValue}"/>.
677 /// </para> 677 /// </para>
678 /// <para> 678 /// <para>
679 /// When adding an new element to <see cref="ICnmCache{TKey,TValue}"/> that is limiting total size of elements, 679 /// When adding an new element to <see cref="ICnmCache{TKey,TValue}"/> that is limiting total size of elements,
680 /// <see cref="ICnmCache{TKey,TValue}"/>will remove less recently used elements until it can fit an new element. 680 /// <see cref="ICnmCache{TKey,TValue}"/>will remove less recently used elements until it can fit an new element.
681 /// </para> 681 /// </para>
682 /// <para> 682 /// <para>
683 /// When adding an new element to <see cref="ICnmCache{TKey,TValue}"/> that is limiting element count, 683 /// When adding an new element to <see cref="ICnmCache{TKey,TValue}"/> that is limiting element count,
684 /// <see cref="ICnmCache{TKey,TValue}"/>will remove less recently used elements until it can fit an new element. 684 /// <see cref="ICnmCache{TKey,TValue}"/>will remove less recently used elements until it can fit an new element.
685 /// </para> 685 /// </para>
686 /// </remarks> 686 /// </remarks>
687 /// <seealso cref="ICnmCache{TKey,TValue}.IsSizeLimited"/> 687 /// <seealso cref="ICnmCache{TKey,TValue}.IsSizeLimited"/>
@@ -703,15 +703,15 @@ namespace OpenSim.Framework
703 /// Gets the <paramref name="value"/> associated with the specified <paramref name="key"/>. 703 /// Gets the <paramref name="value"/> associated with the specified <paramref name="key"/>.
704 /// </summary> 704 /// </summary>
705 /// <returns> 705 /// <returns>
706 /// <see langword="true"/>if the <see cref="ICnmCache{TKey,TValue}"/> contains an element with 706 /// <see langword="true"/>if the <see cref="ICnmCache{TKey,TValue}"/> contains an element with
707 /// the specified key; otherwise, <see langword="false"/>. 707 /// the specified key; otherwise, <see langword="false"/>.
708 /// </returns> 708 /// </returns>
709 /// <param name="key"> 709 /// <param name="key">
710 /// The key whose <paramref name="value"/> to get. 710 /// The key whose <paramref name="value"/> to get.
711 /// </param> 711 /// </param>
712 /// <param name="value"> 712 /// <param name="value">
713 /// When this method returns, the value associated with the specified <paramref name="key"/>, 713 /// When this method returns, the value associated with the specified <paramref name="key"/>,
714 /// if the <paramref name="key"/> is found; otherwise, the 714 /// if the <paramref name="key"/> is found; otherwise, the
715 /// default value for the type of the <paramref name="value"/> parameter. This parameter is passed uninitialized. 715 /// default value for the type of the <paramref name="value"/> parameter. This parameter is passed uninitialized.
716 /// </param> 716 /// </param>
717 /// <exception cref="ArgumentNullException"> 717 /// <exception cref="ArgumentNullException">
diff --git a/OpenSim/Framework/Console/CommandConsole.cs b/OpenSim/Framework/Console/CommandConsole.cs
index 6b7cdf8..52360b4 100644
--- a/OpenSim/Framework/Console/CommandConsole.cs
+++ b/OpenSim/Framework/Console/CommandConsole.cs
@@ -52,27 +52,27 @@ namespace OpenSim.Framework.Console
52 /// The module from which this command comes 52 /// The module from which this command comes
53 /// </value> 53 /// </value>
54 public string module; 54 public string module;
55 55
56 /// <value> 56 /// <value>
57 /// Whether the module is shared 57 /// Whether the module is shared
58 /// </value> 58 /// </value>
59 public bool shared; 59 public bool shared;
60 60
61 /// <value> 61 /// <value>
62 /// Very short BNF description 62 /// Very short BNF description
63 /// </value> 63 /// </value>
64 public string help_text; 64 public string help_text;
65 65
66 /// <value> 66 /// <value>
67 /// Longer one line help text 67 /// Longer one line help text
68 /// </value> 68 /// </value>
69 public string long_help; 69 public string long_help;
70 70
71 /// <value> 71 /// <value>
72 /// Full descriptive help for this command 72 /// Full descriptive help for this command
73 /// </value> 73 /// </value>
74 public string descriptive_help; 74 public string descriptive_help;
75 75
76 /// <value> 76 /// <value>
77 /// The method to invoke for this command 77 /// The method to invoke for this command
78 /// </value> 78 /// </value>
@@ -106,7 +106,7 @@ namespace OpenSim.Framework.Console
106 { 106 {
107 List<string> help = new List<string>(); 107 List<string> help = new List<string>();
108 List<string> helpParts = new List<string>(cmd); 108 List<string> helpParts = new List<string>(cmd);
109 109
110 // Remove initial help keyword 110 // Remove initial help keyword
111 helpParts.RemoveAt(0); 111 helpParts.RemoveAt(0);
112 112
@@ -154,7 +154,7 @@ namespace OpenSim.Framework.Console
154 154
155 return help; 155 return help;
156 } 156 }
157 157
158 /// <summary> 158 /// <summary>
159 /// See if we can find the requested command in order to display longer help 159 /// See if we can find the requested command in order to display longer help
160 /// </summary> 160 /// </summary>
@@ -171,23 +171,23 @@ namespace OpenSim.Framework.Console
171 help.Insert(0, ItemHelpText); 171 help.Insert(0, ItemHelpText);
172 return help; 172 return help;
173 } 173 }
174 174
175 Dictionary<string, object> dict = tree; 175 Dictionary<string, object> dict = tree;
176 while (helpParts.Count > 0) 176 while (helpParts.Count > 0)
177 { 177 {
178 string helpPart = helpParts[0]; 178 string helpPart = helpParts[0];
179 179
180 if (!dict.ContainsKey(helpPart)) 180 if (!dict.ContainsKey(helpPart))
181 break; 181 break;
182 182
183 //m_log.Debug("Found {0}", helpParts[0]); 183 //m_log.Debug("Found {0}", helpParts[0]);
184 184
185 if (dict[helpPart] is Dictionary<string, Object>) 185 if (dict[helpPart] is Dictionary<string, Object>)
186 dict = (Dictionary<string, object>)dict[helpPart]; 186 dict = (Dictionary<string, object>)dict[helpPart];
187 187
188 helpParts.RemoveAt(0); 188 helpParts.RemoveAt(0);
189 } 189 }
190 190
191 // There was a command for the given help string 191 // There was a command for the given help string
192 if (dict.ContainsKey(String.Empty)) 192 if (dict.ContainsKey(String.Empty))
193 { 193 {
@@ -200,14 +200,14 @@ namespace OpenSim.Framework.Console
200 // If we do have some descriptive help then insert a spacing line before for readability. 200 // If we do have some descriptive help then insert a spacing line before for readability.
201 if (descriptiveHelp != string.Empty) 201 if (descriptiveHelp != string.Empty)
202 help.Add(string.Empty); 202 help.Add(string.Empty);
203 203
204 help.Add(commandInfo.descriptive_help); 204 help.Add(commandInfo.descriptive_help);
205 } 205 }
206 else 206 else
207 { 207 {
208 help.Add(string.Format("No help is available for {0}", originalHelpRequest)); 208 help.Add(string.Format("No help is available for {0}", originalHelpRequest));
209 } 209 }
210 210
211 return help; 211 return help;
212 } 212 }
213 213
@@ -268,7 +268,7 @@ namespace OpenSim.Framework.Console
268// } 268// }
269// return result; 269// return result;
270// } 270// }
271 271
272 /// <summary> 272 /// <summary>
273 /// Add a command to those which can be invoked from the console. 273 /// Add a command to those which can be invoked from the console.
274 /// </summary> 274 /// </summary>
@@ -299,7 +299,7 @@ namespace OpenSim.Framework.Console
299 string[] parts = Parser.Parse(command); 299 string[] parts = Parser.Parse(command);
300 300
301 Dictionary<string, Object> current = tree; 301 Dictionary<string, Object> current = tree;
302 302
303 foreach (string part in parts) 303 foreach (string part in parts)
304 { 304 {
305 if (current.ContainsKey(part)) 305 if (current.ContainsKey(part))
@@ -326,7 +326,7 @@ namespace OpenSim.Framework.Console
326 326
327 return; 327 return;
328 } 328 }
329 329
330 info = new CommandInfo(); 330 info = new CommandInfo();
331 info.module = module; 331 info.module = module;
332 info.shared = shared; 332 info.shared = shared;
@@ -471,7 +471,7 @@ namespace OpenSim.Framework.Console
471 471
472 return null; 472 return null;
473 } 473 }
474 474
475 public bool HasCommand(string command) 475 public bool HasCommand(string command)
476 { 476 {
477 string[] result; 477 string[] result;
diff --git a/OpenSim/Framework/Console/ConsoleBase.cs b/OpenSim/Framework/Console/ConsoleBase.cs
index 2d8e723..64cddea 100755
--- a/OpenSim/Framework/Console/ConsoleBase.cs
+++ b/OpenSim/Framework/Console/ConsoleBase.cs
@@ -67,7 +67,7 @@ namespace OpenSim.Framework.Console
67 { 67 {
68 System.Console.WriteLine(text); 68 System.Console.WriteLine(text);
69 } 69 }
70 70
71 public virtual void OutputFormat(string format, params object[] components) 71 public virtual void OutputFormat(string format, params object[] components)
72 { 72 {
73 Output(string.Format(format, components)); 73 Output(string.Format(format, components));
@@ -86,7 +86,7 @@ namespace OpenSim.Framework.Console
86 86
87 return ret; 87 return ret;
88 } 88 }
89 89
90 public string CmdPrompt(string p, List<char> excludedCharacters) 90 public string CmdPrompt(string p, List<char> excludedCharacters)
91 { 91 {
92 bool itisdone = false; 92 bool itisdone = false;
@@ -95,7 +95,7 @@ namespace OpenSim.Framework.Console
95 { 95 {
96 itisdone = true; 96 itisdone = true;
97 ret = CmdPrompt(p); 97 ret = CmdPrompt(p);
98 98
99 foreach (char c in excludedCharacters) 99 foreach (char c in excludedCharacters)
100 { 100 {
101 if (ret.Contains(c.ToString())) 101 if (ret.Contains(c.ToString()))
@@ -117,7 +117,7 @@ namespace OpenSim.Framework.Console
117 { 117 {
118 itisdone = true; 118 itisdone = true;
119 ret = CmdPrompt(p, def); 119 ret = CmdPrompt(p, def);
120 120
121 if (ret == String.Empty) 121 if (ret == String.Empty)
122 { 122 {
123 ret = def; 123 ret = def;
diff --git a/OpenSim/Framework/Console/ConsoleUtil.cs b/OpenSim/Framework/Console/ConsoleUtil.cs
index 44f6dc1..bfa05a2 100644
--- a/OpenSim/Framework/Console/ConsoleUtil.cs
+++ b/OpenSim/Framework/Console/ConsoleUtil.cs
@@ -40,7 +40,7 @@ namespace OpenSim.Framework.Console
40 // private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); 40 // private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
41 41
42 public const int LocalIdNotFound = 0; 42 public const int LocalIdNotFound = 0;
43 43
44 /// <summary> 44 /// <summary>
45 /// Used by modules to display stock co-ordinate help, though possibly this should be under some general section 45 /// Used by modules to display stock co-ordinate help, though possibly this should be under some general section
46 /// rather than in each help summary. 46 /// rather than in each help summary.
@@ -57,10 +57,10 @@ namespace OpenSim.Framework.Console
57 show object pos ,20,20 to ,40,40 57 show object pos ,20,20 to ,40,40
58 delete object pos ,,30 to ,,~ 58 delete object pos ,,30 to ,,~
59 show object pos ,,-~ to ,,30"; 59 show object pos ,,-~ to ,,30";
60 60
61 public const string MinRawConsoleVectorValue = "-~"; 61 public const string MinRawConsoleVectorValue = "-~";
62 public const string MaxRawConsoleVectorValue = "~"; 62 public const string MaxRawConsoleVectorValue = "~";
63 63
64 public const string VectorSeparator = ","; 64 public const string VectorSeparator = ",";
65 public static char[] VectorSeparatorChars = VectorSeparator.ToCharArray(); 65 public static char[] VectorSeparatorChars = VectorSeparator.ToCharArray();
66 66
@@ -81,7 +81,7 @@ namespace OpenSim.Framework.Console
81 81
82 return true; 82 return true;
83 } 83 }
84 84
85 /// <summary> 85 /// <summary>
86 /// Try to parse a console UUID from the console. 86 /// Try to parse a console UUID from the console.
87 /// </summary> 87 /// </summary>
@@ -101,7 +101,7 @@ namespace OpenSim.Framework.Console
101 101
102 return false; 102 return false;
103 } 103 }
104 104
105 return true; 105 return true;
106 } 106 }
107 107
@@ -259,7 +259,7 @@ namespace OpenSim.Framework.Console
259 259
260 return false; 260 return false;
261 } 261 }
262 262
263 /// <summary> 263 /// <summary>
264 /// Convert a minimum vector input from the console to an OpenMetaverse.Vector3 264 /// Convert a minimum vector input from the console to an OpenMetaverse.Vector3
265 /// </summary> 265 /// </summary>
@@ -270,7 +270,7 @@ namespace OpenSim.Framework.Console
270 { 270 {
271 return TryParseConsoleVector(rawConsoleVector, c => float.MinValue.ToString(), out vector); 271 return TryParseConsoleVector(rawConsoleVector, c => float.MinValue.ToString(), out vector);
272 } 272 }
273 273
274 /// <summary> 274 /// <summary>
275 /// Convert a maximum vector input from the console to an OpenMetaverse.Vector3 275 /// Convert a maximum vector input from the console to an OpenMetaverse.Vector3
276 /// </summary> 276 /// </summary>
@@ -281,7 +281,7 @@ namespace OpenSim.Framework.Console
281 { 281 {
282 return TryParseConsoleVector(rawConsoleVector, c => float.MaxValue.ToString(), out vector); 282 return TryParseConsoleVector(rawConsoleVector, c => float.MaxValue.ToString(), out vector);
283 } 283 }
284 284
285 /// <summary> 285 /// <summary>
286 /// Convert a vector input from the console to an OpenMetaverse.Vector3 286 /// Convert a vector input from the console to an OpenMetaverse.Vector3
287 /// </summary> 287 /// </summary>
@@ -354,10 +354,10 @@ namespace OpenSim.Framework.Console
354 string rawConsoleVector, int dimensions, Func<string, string> blankComponentFunc) 354 string rawConsoleVector, int dimensions, Func<string, string> blankComponentFunc)
355 { 355 {
356 List<string> components = rawConsoleVector.Split(VectorSeparatorChars).ToList(); 356 List<string> components = rawConsoleVector.Split(VectorSeparatorChars).ToList();
357 357
358 if (components.Count < 1 || components.Count > dimensions) 358 if (components.Count < 1 || components.Count > dimensions)
359 return null; 359 return null;
360 360
361 if (components.Count < dimensions) 361 if (components.Count < dimensions)
362 { 362 {
363 if (blankComponentFunc == null) 363 if (blankComponentFunc == null)
@@ -380,7 +380,7 @@ namespace OpenSim.Framework.Console
380 else 380 else
381 return c; 381 return c;
382 }); 382 });
383 383
384 return string.Join(VectorSeparator, cookedComponents.ToArray()); 384 return string.Join(VectorSeparator, cookedComponents.ToArray());
385 } 385 }
386 } 386 }
diff --git a/OpenSim/Framework/Console/LocalConsole.cs b/OpenSim/Framework/Console/LocalConsole.cs
index 28293c0..73f0323 100644
--- a/OpenSim/Framework/Console/LocalConsole.cs
+++ b/OpenSim/Framework/Console/LocalConsole.cs
@@ -51,7 +51,7 @@ namespace OpenSim.Framework.Console
51 private const string LOGLEVEL_NONE = "(none)"; 51 private const string LOGLEVEL_NONE = "(none)";
52 52
53 // Used to extract categories for colourization. 53 // Used to extract categories for colourization.
54 private Regex m_categoryRegex 54 private Regex m_categoryRegex
55 = new Regex( 55 = new Regex(
56 @"^(?<Front>.*?)\[(?<Category>[^\]]+)\]:?(?<End>.*)", RegexOptions.Singleline | RegexOptions.Compiled); 56 @"^(?<Front>.*?)\[(?<Category>[^\]]+)\]:?(?<End>.*)", RegexOptions.Singleline | RegexOptions.Compiled);
57 57
@@ -167,15 +167,15 @@ namespace OpenSim.Framework.Console
167 { 167 {
168 System.Console.CursorLeft = 0; 168 System.Console.CursorLeft = 0;
169 } 169 }
170 else 170 else
171 { 171 {
172 int bufferWidth = System.Console.BufferWidth; 172 int bufferWidth = System.Console.BufferWidth;
173 173
174 // On Mono 2.4.2.3 (and possibly above), the buffer value is sometimes erroneously zero (Mantis 4657) 174 // On Mono 2.4.2.3 (and possibly above), the buffer value is sometimes erroneously zero (Mantis 4657)
175 if (bufferWidth > 0 && left >= bufferWidth) 175 if (bufferWidth > 0 && left >= bufferWidth)
176 System.Console.CursorLeft = bufferWidth - 1; 176 System.Console.CursorLeft = bufferWidth - 1;
177 } 177 }
178 178
179 if (top < 0) 179 if (top < 0)
180 { 180 {
181 top = 0; 181 top = 0;
@@ -183,7 +183,7 @@ namespace OpenSim.Framework.Console
183 else 183 else
184 { 184 {
185 int bufferHeight = System.Console.BufferHeight; 185 int bufferHeight = System.Console.BufferHeight;
186 186
187 // On Mono 2.4.2.3 (and possibly above), the buffer value is sometimes erroneously zero (Mantis 4657) 187 // On Mono 2.4.2.3 (and possibly above), the buffer value is sometimes erroneously zero (Mantis 4657)
188 if (bufferHeight > 0 && top >= bufferHeight) 188 if (bufferHeight > 0 && top >= bufferHeight)
189 top = bufferHeight - 1; 189 top = bufferHeight - 1;
@@ -216,14 +216,14 @@ namespace OpenSim.Framework.Console
216 { 216 {
217 System.Console.CursorTop = 0; 217 System.Console.CursorTop = 0;
218 } 218 }
219 else 219 else
220 { 220 {
221 int bufferHeight = System.Console.BufferHeight; 221 int bufferHeight = System.Console.BufferHeight;
222 // On Mono 2.4.2.3 (and possibly above), the buffer value is sometimes erroneously zero (Mantis 4657) 222 // On Mono 2.4.2.3 (and possibly above), the buffer value is sometimes erroneously zero (Mantis 4657)
223 if (bufferHeight > 0 && top >= bufferHeight) 223 if (bufferHeight > 0 && top >= bufferHeight)
224 System.Console.CursorTop = bufferHeight - 1; 224 System.Console.CursorTop = bufferHeight - 1;
225 } 225 }
226 226
227 if (left < 0) 227 if (left < 0)
228 { 228 {
229 left = 0; 229 left = 0;
@@ -339,7 +339,7 @@ namespace OpenSim.Framework.Console
339 string outText = text; 339 string outText = text;
340 340
341 if (level != LOGLEVEL_NONE) 341 if (level != LOGLEVEL_NONE)
342 { 342 {
343 MatchCollection matches = m_categoryRegex.Matches(text); 343 MatchCollection matches = m_categoryRegex.Matches(text);
344 344
345 if (matches.Count == 1) 345 if (matches.Count == 1)
@@ -364,7 +364,7 @@ namespace OpenSim.Framework.Console
364 WriteColorText(ConsoleColor.Yellow, outText); 364 WriteColorText(ConsoleColor.Yellow, outText);
365 else 365 else
366 System.Console.Write(outText); 366 System.Console.Write(outText);
367 367
368 System.Console.WriteLine(); 368 System.Console.WriteLine();
369 } 369 }
370 370
@@ -551,7 +551,7 @@ namespace OpenSim.Framework.Console
551 } 551 }
552 552
553 string commandLine = m_commandLine.ToString(); 553 string commandLine = m_commandLine.ToString();
554 554
555 if (isCommand) 555 if (isCommand)
556 { 556 {
557 string[] cmd = Commands.Resolve(Parser.Parse(commandLine)); 557 string[] cmd = Commands.Resolve(Parser.Parse(commandLine));
@@ -573,7 +573,7 @@ namespace OpenSim.Framework.Console
573 // If we're not echoing to screen (e.g. a password) then we probably don't want it in history 573 // If we're not echoing to screen (e.g. a password) then we probably don't want it in history
574 if (m_echo && commandLine != "") 574 if (m_echo && commandLine != "")
575 AddToHistory(commandLine); 575 AddToHistory(commandLine);
576 576
577 return commandLine; 577 return commandLine;
578 default: 578 default:
579 break; 579 break;
diff --git a/OpenSim/Framework/Console/MockConsole.cs b/OpenSim/Framework/Console/MockConsole.cs
index 1a142df..e1ff720 100644
--- a/OpenSim/Framework/Console/MockConsole.cs
+++ b/OpenSim/Framework/Console/MockConsole.cs
@@ -35,7 +35,7 @@ namespace OpenSim.Framework.Console
35{ 35{
36 /// <summary> 36 /// <summary>
37 /// This is a Fake console that's used when setting up the Scene in Unit Tests 37 /// This is a Fake console that's used when setting up the Scene in Unit Tests
38 /// Don't use this except for Unit Testing or you're in for a world of hurt when the 38 /// Don't use this except for Unit Testing or you're in for a world of hurt when the
39 /// sim gets to ReadLine 39 /// sim gets to ReadLine
40 /// </summary> 40 /// </summary>
41 public class MockConsole : ICommandConsole 41 public class MockConsole : ICommandConsole
@@ -56,7 +56,7 @@ namespace OpenSim.Framework.Console
56 56
57 public string ReadLine(string p, bool isCommand, bool e) { return ""; } 57 public string ReadLine(string p, bool isCommand, bool e) { return ""; }
58 58
59 public object ConsoleScene { 59 public object ConsoleScene {
60 get { return null; } 60 get { return null; }
61 set {} 61 set {}
62 } 62 }
diff --git a/OpenSim/Framework/Console/RemoteConsole.cs b/OpenSim/Framework/Console/RemoteConsole.cs
index 9049b4b..f59c902 100644
--- a/OpenSim/Framework/Console/RemoteConsole.cs
+++ b/OpenSim/Framework/Console/RemoteConsole.cs
@@ -46,93 +46,93 @@ namespace OpenSim.Framework.Console
46 // 46 //
47 public class RemoteConsole : CommandConsole 47 public class RemoteConsole : CommandConsole
48 { 48 {
49 // Connection specific data, indexed by a session ID 49 // Connection specific data, indexed by a session ID
50 // we create when a client connects. 50 // we create when a client connects.
51 protected class ConsoleConnection 51 protected class ConsoleConnection
52 { 52 {
53 // Last activity from the client 53 // Last activity from the client
54 public int last; 54 public int last;
55 55
56 // Last line of scrollback posted to this client 56 // Last line of scrollback posted to this client
57 public long lastLineSeen; 57 public long lastLineSeen;
58 58
59 // True if this is a new connection, e.g. has never 59 // True if this is a new connection, e.g. has never
60 // displayed a prompt to the user. 60 // displayed a prompt to the user.
61 public bool newConnection = true; 61 public bool newConnection = true;
62 } 62 }
63 63
64 // A line in the scrollback buffer. 64 // A line in the scrollback buffer.
65 protected class ScrollbackEntry 65 protected class ScrollbackEntry
66 { 66 {
67 // The line number of this entry 67 // The line number of this entry
68 public long lineNumber; 68 public long lineNumber;
69 69
70 // The text to send to the client 70 // The text to send to the client
71 public string text; 71 public string text;
72 72
73 // The level this should be logged as. Omitted for 73 // The level this should be logged as. Omitted for
74 // prompts and input echo. 74 // prompts and input echo.
75 public string level; 75 public string level;
76 76
77 // True if the text above is a prompt, e.g. the 77 // True if the text above is a prompt, e.g. the
78 // client should turn on the cursor / accept input 78 // client should turn on the cursor / accept input
79 public bool isPrompt; 79 public bool isPrompt;
80 80
81 // True if the requested input is a command. A 81 // True if the requested input is a command. A
82 // client may offer help or validate input if 82 // client may offer help or validate input if
83 // this is set. If false, input should be sent 83 // this is set. If false, input should be sent
84 // as typed. 84 // as typed.
85 public bool isCommand; 85 public bool isCommand;
86 86
87 // True if this text represents a line of text that 87 // True if this text represents a line of text that
88 // was input in response to a prompt. A client should 88 // was input in response to a prompt. A client should
89 // turn off the cursor and refrain from sending commands 89 // turn off the cursor and refrain from sending commands
90 // until a new prompt is received. 90 // until a new prompt is received.
91 public bool isInput; 91 public bool isInput;
92 } 92 }
93 93
94 // Data that is relevant to all connections 94 // Data that is relevant to all connections
95 95
96 // The scrollback buffer 96 // The scrollback buffer
97 protected List<ScrollbackEntry> m_Scrollback = new List<ScrollbackEntry>(); 97 protected List<ScrollbackEntry> m_Scrollback = new List<ScrollbackEntry>();
98 98
99 // Monotonously incrementing line number. This may eventually 99 // Monotonously incrementing line number. This may eventually
100 // wrap. No provision is made for that case because 64 bits 100 // wrap. No provision is made for that case because 64 bits
101 // is a long, long time. 101 // is a long, long time.
102 protected long m_lineNumber = 0; 102 protected long m_lineNumber = 0;
103 103
104 // These two variables allow us to send the correct 104 // These two variables allow us to send the correct
105 // information about the prompt status to the client, 105 // information about the prompt status to the client,
106 // irrespective of what may have run off the top of the 106 // irrespective of what may have run off the top of the
107 // scrollback buffer; 107 // scrollback buffer;
108 protected bool m_expectingInput = false; 108 protected bool m_expectingInput = false;
109 protected bool m_expectingCommand = true; 109 protected bool m_expectingCommand = true;
110 protected string m_lastPromptUsed; 110 protected string m_lastPromptUsed;
111 111
112 // This is the list of things received from clients. 112 // This is the list of things received from clients.
113 // Note: Race conditions can happen. If a client sends 113 // Note: Race conditions can happen. If a client sends
114 // something while nothing is expected, it will be 114 // something while nothing is expected, it will be
115 // intepreted as input to the next prompt. For 115 // intepreted as input to the next prompt. For
116 // commands this is largely correct. For other prompts, 116 // commands this is largely correct. For other prompts,
117 // YMMV. 117 // YMMV.
118 // TODO: Find a better way to fix this 118 // TODO: Find a better way to fix this
119 protected List<string> m_InputData = new List<string>(); 119 protected List<string> m_InputData = new List<string>();
120 120
121 // Event to allow ReadLine to wait synchronously even though 121 // Event to allow ReadLine to wait synchronously even though
122 // everthing else is asynchronous here. 122 // everthing else is asynchronous here.
123 protected ManualResetEvent m_DataEvent = new ManualResetEvent(false); 123 protected ManualResetEvent m_DataEvent = new ManualResetEvent(false);
124 124
125 // The list of sessions we maintain. Unlike other console types, 125 // The list of sessions we maintain. Unlike other console types,
126 // multiple users on the same console are explicitly allowed. 126 // multiple users on the same console are explicitly allowed.
127 protected Dictionary<UUID, ConsoleConnection> m_Connections = 127 protected Dictionary<UUID, ConsoleConnection> m_Connections =
128 new Dictionary<UUID, ConsoleConnection>(); 128 new Dictionary<UUID, ConsoleConnection>();
129 129
130 // Timer to control expiration of sessions that have been 130 // Timer to control expiration of sessions that have been
131 // disconnected. 131 // disconnected.
132 protected System.Timers.Timer m_expireTimer = new System.Timers.Timer(5000); 132 protected System.Timers.Timer m_expireTimer = new System.Timers.Timer(5000);
133 133
134 // The less interesting stuff that makes the actual server 134 // The less interesting stuff that makes the actual server
135 // work. 135 // work.
136 protected IHttpServer m_Server = null; 136 protected IHttpServer m_Server = null;
137 protected IConfigSource m_Config = null; 137 protected IConfigSource m_Config = null;
138 138
@@ -143,130 +143,130 @@ namespace OpenSim.Framework.Console
143 143
144 public RemoteConsole(string defaultPrompt) : base(defaultPrompt) 144 public RemoteConsole(string defaultPrompt) : base(defaultPrompt)
145 { 145 {
146 // There is something wrong with this architecture. 146 // There is something wrong with this architecture.
147 // A prompt is sent on every single input, so why have this? 147 // A prompt is sent on every single input, so why have this?
148 // TODO: Investigate and fix. 148 // TODO: Investigate and fix.
149 m_lastPromptUsed = defaultPrompt; 149 m_lastPromptUsed = defaultPrompt;
150 150
151 // Start expiration of sesssions. 151 // Start expiration of sesssions.
152 m_expireTimer.Elapsed += DoExpire; 152 m_expireTimer.Elapsed += DoExpire;
153 m_expireTimer.Start(); 153 m_expireTimer.Start();
154 } 154 }
155 155
156 public void ReadConfig(IConfigSource config) 156 public void ReadConfig(IConfigSource config)
157 { 157 {
158 m_Config = config; 158 m_Config = config;
159 159
160 // We're pulling this from the 'Network' section for legacy 160 // We're pulling this from the 'Network' section for legacy
161 // compatibility. However, this is so essentially insecure 161 // compatibility. However, this is so essentially insecure
162 // that TLS and client certs should be used instead of 162 // that TLS and client certs should be used instead of
163 // a username / password. 163 // a username / password.
164 IConfig netConfig = m_Config.Configs["Network"]; 164 IConfig netConfig = m_Config.Configs["Network"];
165 165
166 if (netConfig == null) 166 if (netConfig == null)
167 return; 167 return;
168 168
169 // Get the username and password. 169 // Get the username and password.
170 m_UserName = netConfig.GetString("ConsoleUser", String.Empty); 170 m_UserName = netConfig.GetString("ConsoleUser", String.Empty);
171 m_Password = netConfig.GetString("ConsolePass", String.Empty); 171 m_Password = netConfig.GetString("ConsolePass", String.Empty);
172 172
173 // Woefully underdocumented, this is what makes javascript 173 // Woefully underdocumented, this is what makes javascript
174 // console clients work. Set to "*" for anywhere or (better) 174 // console clients work. Set to "*" for anywhere or (better)
175 // to specific addresses. 175 // to specific addresses.
176 m_AllowedOrigin = netConfig.GetString("ConsoleAllowedOrigin", String.Empty); 176 m_AllowedOrigin = netConfig.GetString("ConsoleAllowedOrigin", String.Empty);
177 } 177 }
178 178
179 public void SetServer(IHttpServer server) 179 public void SetServer(IHttpServer server)
180 { 180 {
181 // This is called by the framework to give us the server 181 // This is called by the framework to give us the server
182 // instance (means: port) to work with. 182 // instance (means: port) to work with.
183 m_Server = server; 183 m_Server = server;
184 184
185 // Add our handlers 185 // Add our handlers
186 m_Server.AddHTTPHandler("/StartSession/", HandleHttpStartSession); 186 m_Server.AddHTTPHandler("/StartSession/", HandleHttpStartSession);
187 m_Server.AddHTTPHandler("/CloseSession/", HandleHttpCloseSession); 187 m_Server.AddHTTPHandler("/CloseSession/", HandleHttpCloseSession);
188 m_Server.AddHTTPHandler("/SessionCommand/", HandleHttpSessionCommand); 188 m_Server.AddHTTPHandler("/SessionCommand/", HandleHttpSessionCommand);
189 } 189 }
190 190
191 public override void Output(string text, string level) 191 public override void Output(string text, string level)
192 { 192 {
193 Output(text, level, false, false, false); 193 Output(text, level, false, false, false);
194 } 194 }
195 195
196 protected void Output(string text, string level, bool isPrompt, bool isCommand, bool isInput) 196 protected void Output(string text, string level, bool isPrompt, bool isCommand, bool isInput)
197 { 197 {
198 // Increment the line number. It was 0 and they start at 1 198 // Increment the line number. It was 0 and they start at 1
199 // so we need to pre-increment. 199 // so we need to pre-increment.
200 m_lineNumber++; 200 m_lineNumber++;
201 201
202 // Create and populate the new entry. 202 // Create and populate the new entry.
203 ScrollbackEntry newEntry = new ScrollbackEntry(); 203 ScrollbackEntry newEntry = new ScrollbackEntry();
204 204
205 newEntry.lineNumber = m_lineNumber; 205 newEntry.lineNumber = m_lineNumber;
206 newEntry.text = text; 206 newEntry.text = text;
207 newEntry.level = level; 207 newEntry.level = level;
208 newEntry.isPrompt = isPrompt; 208 newEntry.isPrompt = isPrompt;
209 newEntry.isCommand = isCommand; 209 newEntry.isCommand = isCommand;
210 newEntry.isInput = isInput; 210 newEntry.isInput = isInput;
211 211
212 // Add a line to the scrollback. In some cases, that may not 212 // Add a line to the scrollback. In some cases, that may not
213 // actually be a line of text. 213 // actually be a line of text.
214 lock (m_Scrollback) 214 lock (m_Scrollback)
215 { 215 {
216 // Prune the scrollback to the length se send as connect 216 // Prune the scrollback to the length se send as connect
217 // burst to give the user some context. 217 // burst to give the user some context.
218 while (m_Scrollback.Count >= 1000) 218 while (m_Scrollback.Count >= 1000)
219 m_Scrollback.RemoveAt(0); 219 m_Scrollback.RemoveAt(0);
220 220
221 m_Scrollback.Add(newEntry); 221 m_Scrollback.Add(newEntry);
222 } 222 }
223 223
224 // Let the rest of the system know we have output something. 224 // Let the rest of the system know we have output something.
225 FireOnOutput(text.Trim()); 225 FireOnOutput(text.Trim());
226 226
227 // Also display it for debugging. 227 // Also display it for debugging.
228 System.Console.WriteLine(text.Trim()); 228 System.Console.WriteLine(text.Trim());
229 } 229 }
230 230
231 public override void Output(string text) 231 public override void Output(string text)
232 { 232 {
233 // Output plain (non-logging style) text. 233 // Output plain (non-logging style) text.
234 Output(text, String.Empty, false, false, false); 234 Output(text, String.Empty, false, false, false);
235 } 235 }
236 236
237 public override string ReadLine(string p, bool isCommand, bool e) 237 public override string ReadLine(string p, bool isCommand, bool e)
238 { 238 {
239 // Output the prompt an prepare to wait. This 239 // Output the prompt an prepare to wait. This
240 // is called on a dedicated console thread and 240 // is called on a dedicated console thread and
241 // needs to be synchronous. Old architecture but 241 // needs to be synchronous. Old architecture but
242 // not worth upgrading. 242 // not worth upgrading.
243 if (isCommand) 243 if (isCommand)
244 { 244 {
245 m_expectingInput = true; 245 m_expectingInput = true;
246 m_expectingCommand = true; 246 m_expectingCommand = true;
247 Output(p, String.Empty, true, true, false); 247 Output(p, String.Empty, true, true, false);
248 m_lastPromptUsed = p; 248 m_lastPromptUsed = p;
249 } 249 }
250 else 250 else
251 { 251 {
252 m_expectingInput = true; 252 m_expectingInput = true;
253 Output(p, String.Empty, true, false, false); 253 Output(p, String.Empty, true, false, false);
254 } 254 }
255 255
256 256
257 // Here is where we wait for the user to input something. 257 // Here is where we wait for the user to input something.
258 m_DataEvent.WaitOne(); 258 m_DataEvent.WaitOne();
259 259
260 string cmdinput; 260 string cmdinput;
261 261
262 // Check for empty input. Read input if not empty. 262 // Check for empty input. Read input if not empty.
263 lock (m_InputData) 263 lock (m_InputData)
264 { 264 {
265 if (m_InputData.Count == 0) 265 if (m_InputData.Count == 0)
266 { 266 {
267 m_DataEvent.Reset(); 267 m_DataEvent.Reset();
268 m_expectingInput = false; 268 m_expectingInput = false;
269 m_expectingCommand = false; 269 m_expectingCommand = false;
270 270
271 return ""; 271 return "";
272 } 272 }
@@ -278,19 +278,19 @@ namespace OpenSim.Framework.Console
278 278
279 } 279 }
280 280
281 m_expectingInput = false; 281 m_expectingInput = false;
282 m_expectingCommand = false; 282 m_expectingCommand = false;
283 283
284 // Echo to all the other users what we have done. This 284 // Echo to all the other users what we have done. This
285 // will also go to ourselves. 285 // will also go to ourselves.
286 Output (cmdinput, String.Empty, false, false, true); 286 Output (cmdinput, String.Empty, false, false, true);
287 287
288 // If this is a command, we need to resolve and execute it. 288 // If this is a command, we need to resolve and execute it.
289 if (isCommand) 289 if (isCommand)
290 { 290 {
291 // This call will actually execute the command and create 291 // This call will actually execute the command and create
292 // any output associated with it. The core just gets an 292 // any output associated with it. The core just gets an
293 // empty string so it will call again immediately. 293 // empty string so it will call again immediately.
294 string[] cmd = Commands.Resolve(Parser.Parse(cmdinput)); 294 string[] cmd = Commands.Resolve(Parser.Parse(cmdinput));
295 295
296 if (cmd.Length != 0) 296 if (cmd.Length != 0)
@@ -306,11 +306,11 @@ namespace OpenSim.Framework.Console
306 } 306 }
307 } 307 }
308 308
309 // Return the raw input string if not a command. 309 // Return the raw input string if not a command.
310 return cmdinput; 310 return cmdinput;
311 } 311 }
312 312
313 // Very simplistic static access control header. 313 // Very simplistic static access control header.
314 protected Hashtable CheckOrigin(Hashtable result) 314 protected Hashtable CheckOrigin(Hashtable result)
315 { 315 {
316 if (!string.IsNullOrEmpty(m_AllowedOrigin)) 316 if (!string.IsNullOrEmpty(m_AllowedOrigin))
@@ -338,21 +338,21 @@ namespace OpenSim.Framework.Console
338 338
339 protected void DoExpire(Object sender, ElapsedEventArgs e) 339 protected void DoExpire(Object sender, ElapsedEventArgs e)
340 { 340 {
341 // Iterate the list of console connections and find those we 341 // Iterate the list of console connections and find those we
342 // haven't heard from for longer then the longpoll interval. 342 // haven't heard from for longer then the longpoll interval.
343 // Remove them. 343 // Remove them.
344 List<UUID> expired = new List<UUID>(); 344 List<UUID> expired = new List<UUID>();
345 345
346 lock (m_Connections) 346 lock (m_Connections)
347 { 347 {
348 // Mark the expired ones 348 // Mark the expired ones
349 foreach (KeyValuePair<UUID, ConsoleConnection> kvp in m_Connections) 349 foreach (KeyValuePair<UUID, ConsoleConnection> kvp in m_Connections)
350 { 350 {
351 if (System.Environment.TickCount - kvp.Value.last > 500000) 351 if (System.Environment.TickCount - kvp.Value.last > 500000)
352 expired.Add(kvp.Key); 352 expired.Add(kvp.Key);
353 } 353 }
354 354
355 // Delete them 355 // Delete them
356 foreach (UUID id in expired) 356 foreach (UUID id in expired)
357 { 357 {
358 m_Connections.Remove(id); 358 m_Connections.Remove(id);
@@ -361,10 +361,10 @@ namespace OpenSim.Framework.Console
361 } 361 }
362 } 362 }
363 363
364 // Start a new session. 364 // Start a new session.
365 protected Hashtable HandleHttpStartSession(Hashtable request) 365 protected Hashtable HandleHttpStartSession(Hashtable request)
366 { 366 {
367 // The login is in the form of a http form post 367 // The login is in the form of a http form post
368 Hashtable post = DecodePostString(request["body"].ToString()); 368 Hashtable post = DecodePostString(request["body"].ToString());
369 Hashtable reply = new Hashtable(); 369 Hashtable reply = new Hashtable();
370 370
@@ -372,7 +372,7 @@ namespace OpenSim.Framework.Console
372 reply["int_response_code"] = 401; 372 reply["int_response_code"] = 401;
373 reply["content_type"] = "text/plain"; 373 reply["content_type"] = "text/plain";
374 374
375 // Check user name and password 375 // Check user name and password
376 if (m_UserName == String.Empty) 376 if (m_UserName == String.Empty)
377 return reply; 377 return reply;
378 378
@@ -385,28 +385,28 @@ namespace OpenSim.Framework.Console
385 return reply; 385 return reply;
386 } 386 }
387 387
388 // Set up the new console connection record 388 // Set up the new console connection record
389 ConsoleConnection c = new ConsoleConnection(); 389 ConsoleConnection c = new ConsoleConnection();
390 c.last = System.Environment.TickCount; 390 c.last = System.Environment.TickCount;
391 c.lastLineSeen = 0; 391 c.lastLineSeen = 0;
392 392
393 // Assign session ID 393 // Assign session ID
394 UUID sessionID = UUID.Random(); 394 UUID sessionID = UUID.Random();
395 395
396 // Add connection to list. 396 // Add connection to list.
397 lock (m_Connections) 397 lock (m_Connections)
398 { 398 {
399 m_Connections[sessionID] = c; 399 m_Connections[sessionID] = c;
400 } 400 }
401 401
402 // This call is a CAP. The URL is the authentication. 402 // This call is a CAP. The URL is the authentication.
403 string uri = "/ReadResponses/" + sessionID.ToString() + "/"; 403 string uri = "/ReadResponses/" + sessionID.ToString() + "/";
404 404
405 m_Server.AddPollServiceHTTPHandler( 405 m_Server.AddPollServiceHTTPHandler(
406 uri, new PollServiceEventArgs(null, uri, HasEvents, GetEvents, NoEvents, sessionID,25000)); // 25 secs timeout 406 uri, new PollServiceEventArgs(null, uri, HasEvents, GetEvents, NoEvents, sessionID,25000)); // 25 secs timeout
407 407
408 // Our reply is an XML document. 408 // Our reply is an XML document.
409 // TODO: Change this to Linq.Xml 409 // TODO: Change this to Linq.Xml
410 XmlDocument xmldoc = new XmlDocument(); 410 XmlDocument xmldoc = new XmlDocument();
411 XmlNode xmlnode = xmldoc.CreateNode(XmlNodeType.XmlDeclaration, 411 XmlNode xmlnode = xmldoc.CreateNode(XmlNodeType.XmlDeclaration,
412 "", ""); 412 "", "");
@@ -429,7 +429,7 @@ namespace OpenSim.Framework.Console
429 429
430 rootElement.AppendChild(MainConsole.Instance.Commands.GetXml(xmldoc)); 430 rootElement.AppendChild(MainConsole.Instance.Commands.GetXml(xmldoc));
431 431
432 // Set up the response and check origin 432 // Set up the response and check origin
433 reply["str_response_string"] = xmldoc.InnerXml; 433 reply["str_response_string"] = xmldoc.InnerXml;
434 reply["int_response_code"] = 200; 434 reply["int_response_code"] = 200;
435 reply["content_type"] = "text/xml"; 435 reply["content_type"] = "text/xml";
@@ -438,7 +438,7 @@ namespace OpenSim.Framework.Console
438 return reply; 438 return reply;
439 } 439 }
440 440
441 // Client closes session. Clean up. 441 // Client closes session. Clean up.
442 protected Hashtable HandleHttpCloseSession(Hashtable request) 442 protected Hashtable HandleHttpCloseSession(Hashtable request)
443 { 443 {
444 Hashtable post = DecodePostString(request["body"].ToString()); 444 Hashtable post = DecodePostString(request["body"].ToString());
@@ -487,7 +487,7 @@ namespace OpenSim.Framework.Console
487 return reply; 487 return reply;
488 } 488 }
489 489
490 // Command received from the client. 490 // Command received from the client.
491 protected Hashtable HandleHttpSessionCommand(Hashtable request) 491 protected Hashtable HandleHttpSessionCommand(Hashtable request)
492 { 492 {
493 Hashtable post = DecodePostString(request["body"].ToString()); 493 Hashtable post = DecodePostString(request["body"].ToString());
@@ -497,7 +497,7 @@ namespace OpenSim.Framework.Console
497 reply["int_response_code"] = 404; 497 reply["int_response_code"] = 404;
498 reply["content_type"] = "text/plain"; 498 reply["content_type"] = "text/plain";
499 499
500 // Check the ID 500 // Check the ID
501 if (post["ID"] == null) 501 if (post["ID"] == null)
502 return reply; 502 return reply;
503 503
@@ -505,25 +505,25 @@ namespace OpenSim.Framework.Console
505 if (!UUID.TryParse(post["ID"].ToString(), out id)) 505 if (!UUID.TryParse(post["ID"].ToString(), out id))
506 return reply; 506 return reply;
507 507
508 // Find the connection for that ID. 508 // Find the connection for that ID.
509 lock (m_Connections) 509 lock (m_Connections)
510 { 510 {
511 if (!m_Connections.ContainsKey(id)) 511 if (!m_Connections.ContainsKey(id))
512 return reply; 512 return reply;
513 } 513 }
514 514
515 // Empty post. Just error out. 515 // Empty post. Just error out.
516 if (post["COMMAND"] == null) 516 if (post["COMMAND"] == null)
517 return reply; 517 return reply;
518 518
519 // Place the input data in the buffer. 519 // Place the input data in the buffer.
520 lock (m_InputData) 520 lock (m_InputData)
521 { 521 {
522 m_DataEvent.Set(); 522 m_DataEvent.Set();
523 m_InputData.Add(post["COMMAND"].ToString()); 523 m_InputData.Add(post["COMMAND"].ToString());
524 } 524 }
525 525
526 // Create the XML reply document. 526 // Create the XML reply document.
527 XmlDocument xmldoc = new XmlDocument(); 527 XmlDocument xmldoc = new XmlDocument();
528 XmlNode xmlnode = xmldoc.CreateNode(XmlNodeType.XmlDeclaration, 528 XmlNode xmlnode = xmldoc.CreateNode(XmlNodeType.XmlDeclaration,
529 "", ""); 529 "", "");
@@ -547,7 +547,7 @@ namespace OpenSim.Framework.Console
547 return reply; 547 return reply;
548 } 548 }
549 549
550 // Decode a HTTP form post to a Hashtable 550 // Decode a HTTP form post to a Hashtable
551 protected Hashtable DecodePostString(string data) 551 protected Hashtable DecodePostString(string data)
552 { 552 {
553 Hashtable result = new Hashtable(); 553 Hashtable result = new Hashtable();
@@ -565,14 +565,14 @@ namespace OpenSim.Framework.Console
565 565
566 if (elems.Length > 1) 566 if (elems.Length > 1)
567 value = System.Web.HttpUtility.UrlDecode(elems[1]); 567 value = System.Web.HttpUtility.UrlDecode(elems[1]);
568 568
569 result[name] = value; 569 result[name] = value;
570 } 570 }
571 571
572 return result; 572 return result;
573 } 573 }
574 574
575 // Close the CAP receiver for the responses for a given client. 575 // Close the CAP receiver for the responses for a given client.
576 public void CloseConnection(UUID id) 576 public void CloseConnection(UUID id)
577 { 577 {
578 try 578 try
@@ -586,8 +586,8 @@ namespace OpenSim.Framework.Console
586 } 586 }
587 } 587 }
588 588
589 // Check if there is anything to send. Return true if this client has 589 // Check if there is anything to send. Return true if this client has
590 // lines pending. 590 // lines pending.
591 protected bool HasEvents(UUID RequestID, UUID sessionID) 591 protected bool HasEvents(UUID RequestID, UUID sessionID)
592 { 592 {
593 ConsoleConnection c = null; 593 ConsoleConnection c = null;
@@ -604,10 +604,10 @@ namespace OpenSim.Framework.Console
604 return false; 604 return false;
605 } 605 }
606 606
607 // Send all pending output to the client. 607 // Send all pending output to the client.
608 protected Hashtable GetEvents(UUID RequestID, UUID sessionID) 608 protected Hashtable GetEvents(UUID RequestID, UUID sessionID)
609 { 609 {
610 // Find the connection that goes with this client. 610 // Find the connection that goes with this client.
611 ConsoleConnection c = null; 611 ConsoleConnection c = null;
612 612
613 lock (m_Connections) 613 lock (m_Connections)
@@ -617,14 +617,14 @@ namespace OpenSim.Framework.Console
617 c = m_Connections[sessionID]; 617 c = m_Connections[sessionID];
618 } 618 }
619 619
620 // If we have nothing to send, send the no events response. 620 // If we have nothing to send, send the no events response.
621 c.last = System.Environment.TickCount; 621 c.last = System.Environment.TickCount;
622 if (c.lastLineSeen >= m_lineNumber) 622 if (c.lastLineSeen >= m_lineNumber)
623 return NoEvents(RequestID, UUID.Zero); 623 return NoEvents(RequestID, UUID.Zero);
624 624
625 Hashtable result = new Hashtable(); 625 Hashtable result = new Hashtable();
626 626
627 // Create the response document. 627 // Create the response document.
628 XmlDocument xmldoc = new XmlDocument(); 628 XmlDocument xmldoc = new XmlDocument();
629 XmlNode xmlnode = xmldoc.CreateNode(XmlNodeType.XmlDeclaration, 629 XmlNode xmlnode = xmldoc.CreateNode(XmlNodeType.XmlDeclaration,
630 "", ""); 630 "", "");
@@ -648,29 +648,29 @@ namespace OpenSim.Framework.Console
648 648
649 for (long i = sendStart ; i < m_lineNumber ; i++) 649 for (long i = sendStart ; i < m_lineNumber ; i++)
650 { 650 {
651 ScrollbackEntry e = m_Scrollback[(int)(i - startLine)]; 651 ScrollbackEntry e = m_Scrollback[(int)(i - startLine)];
652 652
653 XmlElement res = xmldoc.CreateElement("", "Line", ""); 653 XmlElement res = xmldoc.CreateElement("", "Line", "");
654 res.SetAttribute("Number", e.lineNumber.ToString()); 654 res.SetAttribute("Number", e.lineNumber.ToString());
655 res.SetAttribute("Level", e.level); 655 res.SetAttribute("Level", e.level);
656 // Don't include these for the scrollback, we'll send the 656 // Don't include these for the scrollback, we'll send the
657 // real state later. 657 // real state later.
658 if (!c.newConnection) 658 if (!c.newConnection)
659 { 659 {
660 res.SetAttribute("Prompt", e.isPrompt ? "true" : "false"); 660 res.SetAttribute("Prompt", e.isPrompt ? "true" : "false");
661 res.SetAttribute("Command", e.isCommand ? "true" : "false"); 661 res.SetAttribute("Command", e.isCommand ? "true" : "false");
662 res.SetAttribute("Input", e.isInput ? "true" : "false"); 662 res.SetAttribute("Input", e.isInput ? "true" : "false");
663 } 663 }
664 else if (i == m_lineNumber - 1) // Last line for a new connection 664 else if (i == m_lineNumber - 1) // Last line for a new connection
665 { 665 {
666 res.SetAttribute("Prompt", m_expectingInput ? "true" : "false"); 666 res.SetAttribute("Prompt", m_expectingInput ? "true" : "false");
667 res.SetAttribute("Command", m_expectingCommand ? "true" : "false"); 667 res.SetAttribute("Command", m_expectingCommand ? "true" : "false");
668 res.SetAttribute("Input", (!m_expectingInput) ? "true" : "false"); 668 res.SetAttribute("Input", (!m_expectingInput) ? "true" : "false");
669 } 669 }
670 else 670 else
671 { 671 {
672 res.SetAttribute("Input", e.isInput ? "true" : "false"); 672 res.SetAttribute("Input", e.isInput ? "true" : "false");
673 } 673 }
674 674
675 res.AppendChild(xmldoc.CreateTextNode(e.text)); 675 res.AppendChild(xmldoc.CreateTextNode(e.text));
676 676
@@ -679,7 +679,7 @@ namespace OpenSim.Framework.Console
679 } 679 }
680 680
681 c.lastLineSeen = m_lineNumber; 681 c.lastLineSeen = m_lineNumber;
682 c.newConnection = false; 682 c.newConnection = false;
683 683
684 xmldoc.AppendChild(rootElement); 684 xmldoc.AppendChild(rootElement);
685 685
@@ -693,8 +693,8 @@ namespace OpenSim.Framework.Console
693 return result; 693 return result;
694 } 694 }
695 695
696 // This is really just a no-op. It generates what is sent 696 // This is really just a no-op. It generates what is sent
697 // to the client if the poll times out without any events. 697 // to the client if the poll times out without any events.
698 protected Hashtable NoEvents(UUID RequestID, UUID id) 698 protected Hashtable NoEvents(UUID RequestID, UUID id)
699 { 699 {
700 Hashtable result = new Hashtable(); 700 Hashtable result = new Hashtable();
diff --git a/OpenSim/Framework/DAMap.cs b/OpenSim/Framework/DAMap.cs
index 4995a92..1915fa5 100644
--- a/OpenSim/Framework/DAMap.cs
+++ b/OpenSim/Framework/DAMap.cs
@@ -63,9 +63,9 @@ namespace OpenSim.Framework
63 { 63 {
64 get { return m_map; } 64 get { return m_map; }
65 set { m_map = value; } 65 set { m_map = value; }
66 } 66 }
67 67
68 public XmlSchema GetSchema() { return null; } 68 public XmlSchema GetSchema() { return null; }
69 69
70 public static DAMap FromXml(string rawXml) 70 public static DAMap FromXml(string rawXml)
71 { 71 {
@@ -73,19 +73,19 @@ namespace OpenSim.Framework
73 map.ReadXml(rawXml); 73 map.ReadXml(rawXml);
74 return map; 74 return map;
75 } 75 }
76 76
77 public void ReadXml(XmlReader reader) 77 public void ReadXml(XmlReader reader)
78 { 78 {
79 ReadXml(reader.ReadInnerXml()); 79 ReadXml(reader.ReadInnerXml());
80 } 80 }
81 81
82 public void ReadXml(string rawXml) 82 public void ReadXml(string rawXml)
83 { 83 {
84 // System.Console.WriteLine("Trying to deserialize [{0}]", rawXml); 84 // System.Console.WriteLine("Trying to deserialize [{0}]", rawXml);
85 85
86 lock (this) 86 lock (this)
87 { 87 {
88 m_map = (OSDMap)OSDParser.DeserializeLLSDXml(rawXml); 88 m_map = (OSDMap)OSDParser.DeserializeLLSDXml(rawXml);
89 SanitiseMap(this); 89 SanitiseMap(this);
90 } 90 }
91 } 91 }
@@ -104,7 +104,7 @@ namespace OpenSim.Framework
104 public void CopyFrom(DAMap other) 104 public void CopyFrom(DAMap other)
105 { 105 {
106 // Deep copy 106 // Deep copy
107 107
108 string data = null; 108 string data = null;
109 lock (other) 109 lock (other)
110 { 110 {
@@ -113,7 +113,7 @@ namespace OpenSim.Framework
113 data = OSDParser.SerializeLLSDXmlString(other.m_map); 113 data = OSDParser.SerializeLLSDXmlString(other.m_map);
114 } 114 }
115 } 115 }
116 116
117 lock (this) 117 lock (this)
118 { 118 {
119 if (data == null) 119 if (data == null)
@@ -185,9 +185,9 @@ namespace OpenSim.Framework
185 /// <summary> 185 /// <summary>
186 /// Get the number of stores. 186 /// Get the number of stores.
187 /// </summary> 187 /// </summary>
188 public int CountStores 188 public int CountStores
189 { 189 {
190 get 190 get
191 { 191 {
192 int count = 0; 192 int count = 0;
193 193
@@ -263,8 +263,8 @@ namespace OpenSim.Framework
263 throw new Exception("Minimum namespace length is " + MIN_NAMESPACE_LENGTH); 263 throw new Exception("Minimum namespace length is " + MIN_NAMESPACE_LENGTH);
264 } 264 }
265 265
266 public bool ContainsStore(string ns, string storeName) 266 public bool ContainsStore(string ns, string storeName)
267 { 267 {
268 OSD namespaceOsd; 268 OSD namespaceOsd;
269 269
270 lock (this) 270 lock (this)
@@ -276,7 +276,7 @@ namespace OpenSim.Framework
276 } 276 }
277 277
278 return false; 278 return false;
279 } 279 }
280 280
281 public bool TryGetStore(string ns, string storeName, out OSDMap store) 281 public bool TryGetStore(string ns, string storeName, out OSDMap store)
282 { 282 {
@@ -297,17 +297,17 @@ namespace OpenSim.Framework
297 297
298 store = null; 298 store = null;
299 return false; 299 return false;
300 } 300 }
301 301
302 public void Clear() 302 public void Clear()
303 { 303 {
304 lock (this) 304 lock (this)
305 m_map.Clear(); 305 m_map.Clear();
306 } 306 }
307 307
308 public bool RemoveStore(string ns, string storeName) 308 public bool RemoveStore(string ns, string storeName)
309 { 309 {
310 OSD namespaceOsd; 310 OSD namespaceOsd;
311 311
312 lock (this) 312 lock (this)
313 { 313 {
@@ -323,6 +323,6 @@ namespace OpenSim.Framework
323 } 323 }
324 324
325 return false; 325 return false;
326 } 326 }
327 } 327 }
328} \ No newline at end of file 328} \ No newline at end of file
diff --git a/OpenSim/Framework/DOMap.cs b/OpenSim/Framework/DOMap.cs
index f5b650b..033cbf9 100644
--- a/OpenSim/Framework/DOMap.cs
+++ b/OpenSim/Framework/DOMap.cs
@@ -47,7 +47,7 @@ namespace OpenSim.Framework
47 public class DOMap 47 public class DOMap
48 { 48 {
49 private IDictionary<string, object> m_map; 49 private IDictionary<string, object> m_map;
50 50
51 public void Add(string ns, string objName, object dynObj) 51 public void Add(string ns, string objName, object dynObj)
52 { 52 {
53 DAMap.ValidateNamespace(ns); 53 DAMap.ValidateNamespace(ns);
diff --git a/OpenSim/Framework/DoubleDictionaryThreadAbortSafe.cs b/OpenSim/Framework/DoubleDictionaryThreadAbortSafe.cs
index 4ff8cba..55ec13e 100644
--- a/OpenSim/Framework/DoubleDictionaryThreadAbortSafe.cs
+++ b/OpenSim/Framework/DoubleDictionaryThreadAbortSafe.cs
@@ -69,7 +69,7 @@ namespace OpenSim.Framework
69 // Avoid an asynchronous Thread.Abort() from possibly never existing an acquired lock by placing 69 // Avoid an asynchronous Thread.Abort() from possibly never existing an acquired lock by placing
70 // the acquision inside the main try. The inner finally block is needed because thread aborts cannot 70 // the acquision inside the main try. The inner finally block is needed because thread aborts cannot
71 // interrupt code in these blocks (hence gotLock is guaranteed to be set correctly). 71 // interrupt code in these blocks (hence gotLock is guaranteed to be set correctly).
72 try {} 72 try {}
73 finally 73 finally
74 { 74 {
75 rwLock.EnterWriteLock(); 75 rwLock.EnterWriteLock();
@@ -90,10 +90,10 @@ namespace OpenSim.Framework
90 Dictionary1[key1] = value; 90 Dictionary1[key1] = value;
91 Dictionary2[key2] = value; 91 Dictionary2[key2] = value;
92 } 92 }
93 finally 93 finally
94 { 94 {
95 if (gotLock) 95 if (gotLock)
96 rwLock.ExitWriteLock(); 96 rwLock.ExitWriteLock();
97 } 97 }
98 } 98 }
99 99
@@ -107,7 +107,7 @@ namespace OpenSim.Framework
107 // Avoid an asynchronous Thread.Abort() from possibly never existing an acquired lock by placing 107 // Avoid an asynchronous Thread.Abort() from possibly never existing an acquired lock by placing
108 // the acquision inside the main try. The inner finally block is needed because thread aborts cannot 108 // the acquision inside the main try. The inner finally block is needed because thread aborts cannot
109 // interrupt code in these blocks (hence gotLock is guaranteed to be set correctly). 109 // interrupt code in these blocks (hence gotLock is guaranteed to be set correctly).
110 try {} 110 try {}
111 finally 111 finally
112 { 112 {
113 rwLock.EnterWriteLock(); 113 rwLock.EnterWriteLock();
@@ -117,10 +117,10 @@ namespace OpenSim.Framework
117 Dictionary1.Remove(key1); 117 Dictionary1.Remove(key1);
118 success = Dictionary2.Remove(key2); 118 success = Dictionary2.Remove(key2);
119 } 119 }
120 finally 120 finally
121 { 121 {
122 if (gotLock) 122 if (gotLock)
123 rwLock.ExitWriteLock(); 123 rwLock.ExitWriteLock();
124 } 124 }
125 125
126 return success; 126 return success;
@@ -136,7 +136,7 @@ namespace OpenSim.Framework
136 // Avoid an asynchronous Thread.Abort() from possibly never existing an acquired lock by placing 136 // Avoid an asynchronous Thread.Abort() from possibly never existing an acquired lock by placing
137 // the acquision inside the main try. The inner finally block is needed because thread aborts cannot 137 // the acquision inside the main try. The inner finally block is needed because thread aborts cannot
138 // interrupt code in these blocks (hence gotLock is guaranteed to be set correctly). 138 // interrupt code in these blocks (hence gotLock is guaranteed to be set correctly).
139 try {} 139 try {}
140 finally 140 finally
141 { 141 {
142 rwLock.EnterWriteLock(); 142 rwLock.EnterWriteLock();
@@ -159,10 +159,10 @@ namespace OpenSim.Framework
159 } 159 }
160 } 160 }
161 } 161 }
162 finally 162 finally
163 { 163 {
164 if (gotLock) 164 if (gotLock)
165 rwLock.ExitWriteLock(); 165 rwLock.ExitWriteLock();
166 } 166 }
167 167
168 return found; 168 return found;
@@ -178,7 +178,7 @@ namespace OpenSim.Framework
178 // Avoid an asynchronous Thread.Abort() from possibly never existing an acquired lock by placing 178 // Avoid an asynchronous Thread.Abort() from possibly never existing an acquired lock by placing
179 // the acquision inside the main try. The inner finally block is needed because thread aborts cannot 179 // the acquision inside the main try. The inner finally block is needed because thread aborts cannot
180 // interrupt code in these blocks (hence gotLock is guaranteed to be set correctly). 180 // interrupt code in these blocks (hence gotLock is guaranteed to be set correctly).
181 try {} 181 try {}
182 finally 182 finally
183 { 183 {
184 rwLock.EnterWriteLock(); 184 rwLock.EnterWriteLock();
@@ -201,10 +201,10 @@ namespace OpenSim.Framework
201 } 201 }
202 } 202 }
203 } 203 }
204 finally 204 finally
205 { 205 {
206 if (gotLock) 206 if (gotLock)
207 rwLock.ExitWriteLock(); 207 rwLock.ExitWriteLock();
208 } 208 }
209 209
210 return found; 210 return found;
@@ -219,7 +219,7 @@ namespace OpenSim.Framework
219 // Avoid an asynchronous Thread.Abort() from possibly never existing an acquired lock by placing 219 // Avoid an asynchronous Thread.Abort() from possibly never existing an acquired lock by placing
220 // the acquision inside the main try. The inner finally block is needed because thread aborts cannot 220 // the acquision inside the main try. The inner finally block is needed because thread aborts cannot
221 // interrupt code in these blocks (hence gotLock is guaranteed to be set correctly). 221 // interrupt code in these blocks (hence gotLock is guaranteed to be set correctly).
222 try {} 222 try {}
223 finally 223 finally
224 { 224 {
225 rwLock.EnterWriteLock(); 225 rwLock.EnterWriteLock();
@@ -229,10 +229,10 @@ namespace OpenSim.Framework
229 Dictionary1.Clear(); 229 Dictionary1.Clear();
230 Dictionary2.Clear(); 230 Dictionary2.Clear();
231 } 231 }
232 finally 232 finally
233 { 233 {
234 if (gotLock) 234 if (gotLock)
235 rwLock.ExitWriteLock(); 235 rwLock.ExitWriteLock();
236 } 236 }
237 } 237 }
238 238
@@ -256,24 +256,24 @@ namespace OpenSim.Framework
256 bool success; 256 bool success;
257 bool gotLock = false; 257 bool gotLock = false;
258 258
259 try 259 try
260 { 260 {
261 // Avoid an asynchronous Thread.Abort() from possibly never existing an acquired lock by placing 261 // Avoid an asynchronous Thread.Abort() from possibly never existing an acquired lock by placing
262 // the acquision inside the main try. The inner finally block is needed because thread aborts cannot 262 // the acquision inside the main try. The inner finally block is needed because thread aborts cannot
263 // interrupt code in these blocks (hence gotLock is guaranteed to be set correctly). 263 // interrupt code in these blocks (hence gotLock is guaranteed to be set correctly).
264 try {} 264 try {}
265 finally 265 finally
266 { 266 {
267 rwLock.EnterReadLock(); 267 rwLock.EnterReadLock();
268 gotLock = true; 268 gotLock = true;
269 } 269 }
270 270
271 success = Dictionary1.TryGetValue(key, out value); 271 success = Dictionary1.TryGetValue(key, out value);
272 } 272 }
273 finally 273 finally
274 { 274 {
275 if (gotLock) 275 if (gotLock)
276 rwLock.ExitReadLock(); 276 rwLock.ExitReadLock();
277 } 277 }
278 278
279 return success; 279 return success;
@@ -284,24 +284,24 @@ namespace OpenSim.Framework
284 bool success; 284 bool success;
285 bool gotLock = false; 285 bool gotLock = false;
286 286
287 try 287 try
288 { 288 {
289 // Avoid an asynchronous Thread.Abort() from possibly never existing an acquired lock by placing 289 // Avoid an asynchronous Thread.Abort() from possibly never existing an acquired lock by placing
290 // the acquision inside the main try. The inner finally block is needed because thread aborts cannot 290 // the acquision inside the main try. The inner finally block is needed because thread aborts cannot
291 // interrupt code in these blocks (hence gotLock is guaranteed to be set correctly). 291 // interrupt code in these blocks (hence gotLock is guaranteed to be set correctly).
292 try {} 292 try {}
293 finally 293 finally
294 { 294 {
295 rwLock.EnterReadLock(); 295 rwLock.EnterReadLock();
296 gotLock = true; 296 gotLock = true;
297 } 297 }
298 298
299 success = Dictionary2.TryGetValue(key, out value); 299 success = Dictionary2.TryGetValue(key, out value);
300 } 300 }
301 finally 301 finally
302 { 302 {
303 if (gotLock) 303 if (gotLock)
304 rwLock.ExitReadLock(); 304 rwLock.ExitReadLock();
305 } 305 }
306 306
307 return success; 307 return success;
@@ -316,7 +316,7 @@ namespace OpenSim.Framework
316 // Avoid an asynchronous Thread.Abort() from possibly never existing an acquired lock by placing 316 // Avoid an asynchronous Thread.Abort() from possibly never existing an acquired lock by placing
317 // the acquision inside the main try. The inner finally block is needed because thread aborts cannot 317 // the acquision inside the main try. The inner finally block is needed because thread aborts cannot
318 // interrupt code in these blocks (hence gotLock is guaranteed to be set correctly). 318 // interrupt code in these blocks (hence gotLock is guaranteed to be set correctly).
319 try {} 319 try {}
320 finally 320 finally
321 { 321 {
322 rwLock.EnterReadLock(); 322 rwLock.EnterReadLock();
@@ -326,10 +326,10 @@ namespace OpenSim.Framework
326 foreach (TValue value in Dictionary1.Values) 326 foreach (TValue value in Dictionary1.Values)
327 action(value); 327 action(value);
328 } 328 }
329 finally 329 finally
330 { 330 {
331 if (gotLock) 331 if (gotLock)
332 rwLock.ExitReadLock(); 332 rwLock.ExitReadLock();
333 } 333 }
334 } 334 }
335 335
@@ -342,7 +342,7 @@ namespace OpenSim.Framework
342 // Avoid an asynchronous Thread.Abort() from possibly never existing an acquired lock by placing 342 // Avoid an asynchronous Thread.Abort() from possibly never existing an acquired lock by placing
343 // the acquision inside the main try. The inner finally block is needed because thread aborts cannot 343 // the acquision inside the main try. The inner finally block is needed because thread aborts cannot
344 // interrupt code in these blocks (hence gotLock is guaranteed to be set correctly). 344 // interrupt code in these blocks (hence gotLock is guaranteed to be set correctly).
345 try {} 345 try {}
346 finally 346 finally
347 { 347 {
348 rwLock.EnterReadLock(); 348 rwLock.EnterReadLock();
@@ -352,10 +352,10 @@ namespace OpenSim.Framework
352 foreach (KeyValuePair<TKey1, TValue> entry in Dictionary1) 352 foreach (KeyValuePair<TKey1, TValue> entry in Dictionary1)
353 action(entry); 353 action(entry);
354 } 354 }
355 finally 355 finally
356 { 356 {
357 if (gotLock) 357 if (gotLock)
358 rwLock.ExitReadLock(); 358 rwLock.ExitReadLock();
359 } 359 }
360 } 360 }
361 361
@@ -368,7 +368,7 @@ namespace OpenSim.Framework
368 // Avoid an asynchronous Thread.Abort() from possibly never existing an acquired lock by placing 368 // Avoid an asynchronous Thread.Abort() from possibly never existing an acquired lock by placing
369 // the acquision inside the main try. The inner finally block is needed because thread aborts cannot 369 // the acquision inside the main try. The inner finally block is needed because thread aborts cannot
370 // interrupt code in these blocks (hence gotLock is guaranteed to be set correctly). 370 // interrupt code in these blocks (hence gotLock is guaranteed to be set correctly).
371 try {} 371 try {}
372 finally 372 finally
373 { 373 {
374 rwLock.EnterReadLock(); 374 rwLock.EnterReadLock();
@@ -378,10 +378,10 @@ namespace OpenSim.Framework
378 foreach (KeyValuePair<TKey2, TValue> entry in Dictionary2) 378 foreach (KeyValuePair<TKey2, TValue> entry in Dictionary2)
379 action(entry); 379 action(entry);
380 } 380 }
381 finally 381 finally
382 { 382 {
383 if (gotLock) 383 if (gotLock)
384 rwLock.ExitReadLock(); 384 rwLock.ExitReadLock();
385 } 385 }
386 } 386 }
387 387
@@ -394,7 +394,7 @@ namespace OpenSim.Framework
394 // Avoid an asynchronous Thread.Abort() from possibly never existing an acquired lock by placing 394 // Avoid an asynchronous Thread.Abort() from possibly never existing an acquired lock by placing
395 // the acquision inside the main try. The inner finally block is needed because thread aborts cannot 395 // the acquision inside the main try. The inner finally block is needed because thread aborts cannot
396 // interrupt code in these blocks (hence gotLock is guaranteed to be set correctly). 396 // interrupt code in these blocks (hence gotLock is guaranteed to be set correctly).
397 try {} 397 try {}
398 finally 398 finally
399 { 399 {
400 rwLock.EnterReadLock(); 400 rwLock.EnterReadLock();
@@ -407,10 +407,10 @@ namespace OpenSim.Framework
407 return value; 407 return value;
408 } 408 }
409 } 409 }
410 finally 410 finally
411 { 411 {
412 if (gotLock) 412 if (gotLock)
413 rwLock.ExitReadLock(); 413 rwLock.ExitReadLock();
414 } 414 }
415 415
416 return default(TValue); 416 return default(TValue);
@@ -426,7 +426,7 @@ namespace OpenSim.Framework
426 // Avoid an asynchronous Thread.Abort() from possibly never existing an acquired lock by placing 426 // Avoid an asynchronous Thread.Abort() from possibly never existing an acquired lock by placing
427 // the acquision inside the main try. The inner finally block is needed because thread aborts cannot 427 // the acquision inside the main try. The inner finally block is needed because thread aborts cannot
428 // interrupt code in these blocks (hence gotLock is guaranteed to be set correctly). 428 // interrupt code in these blocks (hence gotLock is guaranteed to be set correctly).
429 try {} 429 try {}
430 finally 430 finally
431 { 431 {
432 rwLock.EnterReadLock(); 432 rwLock.EnterReadLock();
@@ -439,10 +439,10 @@ namespace OpenSim.Framework
439 list.Add(value); 439 list.Add(value);
440 } 440 }
441 } 441 }
442 finally 442 finally
443 { 443 {
444 if (gotLock) 444 if (gotLock)
445 rwLock.ExitReadLock(); 445 rwLock.ExitReadLock();
446 } 446 }
447 447
448 return list; 448 return list;
@@ -458,7 +458,7 @@ namespace OpenSim.Framework
458 // Avoid an asynchronous Thread.Abort() from possibly never existing an acquired lock by placing 458 // Avoid an asynchronous Thread.Abort() from possibly never existing an acquired lock by placing
459 // the acquision inside the main try. The inner finally block is needed because thread aborts cannot 459 // the acquision inside the main try. The inner finally block is needed because thread aborts cannot
460 // interrupt code in these blocks (hence gotLock is guaranteed to be set correctly). 460 // interrupt code in these blocks (hence gotLock is guaranteed to be set correctly).
461 try {} 461 try {}
462 finally 462 finally
463 { 463 {
464 rwLock.EnterUpgradeableReadLock(); 464 rwLock.EnterUpgradeableReadLock();
@@ -482,7 +482,7 @@ namespace OpenSim.Framework
482 482
483 try 483 try
484 { 484 {
485 try {} 485 try {}
486 finally 486 finally
487 { 487 {
488 rwLock.EnterUpgradeableReadLock(); 488 rwLock.EnterUpgradeableReadLock();
@@ -495,16 +495,16 @@ namespace OpenSim.Framework
495 for (int i = 0; i < list2.Count; i++) 495 for (int i = 0; i < list2.Count; i++)
496 Dictionary2.Remove(list2[i]); 496 Dictionary2.Remove(list2[i]);
497 } 497 }
498 finally 498 finally
499 { 499 {
500 if (gotWriteLock) 500 if (gotWriteLock)
501 rwLock.ExitWriteLock(); 501 rwLock.ExitWriteLock();
502 } 502 }
503 } 503 }
504 finally 504 finally
505 { 505 {
506 if (gotUpgradeableLock) 506 if (gotUpgradeableLock)
507 rwLock.ExitUpgradeableReadLock(); 507 rwLock.ExitUpgradeableReadLock();
508 } 508 }
509 509
510 return list.Count; 510 return list.Count;
diff --git a/OpenSim/Framework/EstateBan.cs b/OpenSim/Framework/EstateBan.cs
index ebed794..12a92bb 100644
--- a/OpenSim/Framework/EstateBan.cs
+++ b/OpenSim/Framework/EstateBan.cs
@@ -43,7 +43,7 @@ namespace OpenSim.Framework
43 { 43 {
44 get 44 get
45 { 45 {
46 return m_estateID; 46 return m_estateID;
47 } 47 }
48 set 48 set
49 { 49 {
diff --git a/OpenSim/Framework/EstateSettings.cs b/OpenSim/Framework/EstateSettings.cs
index 844230b..7134cbf 100644
--- a/OpenSim/Framework/EstateSettings.cs
+++ b/OpenSim/Framework/EstateSettings.cs
@@ -430,7 +430,7 @@ namespace OpenSim.Framework
430 { 430 {
431 if (ban == null) 431 if (ban == null)
432 return; 432 return;
433 if (!IsBanned(ban.BannedUserID, 32) && 433 if (!IsBanned(ban.BannedUserID, 32) &&
434 (l_EstateBans.Count < (int)Constants.EstateAccessLimits.EstateBans)) //Ignore age-based bans 434 (l_EstateBans.Count < (int)Constants.EstateAccessLimits.EstateBans)) //Ignore age-based bans
435 l_EstateBans.Add(ban); 435 l_EstateBans.Add(ban);
436 } 436 }
diff --git a/OpenSim/Framework/GridInstantMessage.cs b/OpenSim/Framework/GridInstantMessage.cs
index 6954c64..1605005 100644
--- a/OpenSim/Framework/GridInstantMessage.cs
+++ b/OpenSim/Framework/GridInstantMessage.cs
@@ -67,7 +67,7 @@ namespace OpenSim.Framework
67 binaryBucket = im.binaryBucket; 67 binaryBucket = im.binaryBucket;
68 RegionID = im.RegionID; 68 RegionID = im.RegionID;
69 ParentEstateID = im.ParentEstateID; 69 ParentEstateID = im.ParentEstateID;
70 70
71 if (addTimestamp) 71 if (addTimestamp)
72 timestamp = (uint)Util.UnixTimeSinceEpoch(); 72 timestamp = (uint)Util.UnixTimeSinceEpoch();
73 } 73 }
diff --git a/OpenSim/Framework/IClientAPI.cs b/OpenSim/Framework/IClientAPI.cs
index 1541b3a..1267993 100644
--- a/OpenSim/Framework/IClientAPI.cs
+++ b/OpenSim/Framework/IClientAPI.cs
@@ -60,7 +60,7 @@ namespace OpenSim.Framework
60 public delegate void ObjectAttach( 60 public delegate void ObjectAttach(
61 IClientAPI remoteClient, uint objectLocalID, uint AttachmentPt, bool silent); 61 IClientAPI remoteClient, uint objectLocalID, uint AttachmentPt, bool silent);
62 62
63 public delegate void ModifyTerrain(UUID user, 63 public delegate void ModifyTerrain(UUID user,
64 float height, float seconds, byte size, byte action, float north, float west, float south, float east, 64 float height, float seconds, byte size, byte action, float north, float west, float south, float east,
65 UUID agentId); 65 UUID agentId);
66 66
@@ -473,46 +473,46 @@ namespace OpenSim.Framework
473 public delegate void PlacesQuery(UUID QueryID, UUID TransactionID, string QueryText, uint QueryFlags, byte Category, string SimName, IClientAPI client); 473 public delegate void PlacesQuery(UUID QueryID, UUID TransactionID, string QueryText, uint QueryFlags, byte Category, string SimName, IClientAPI client);
474 474
475 public delegate void AgentFOV(IClientAPI client, float verticalAngle); 475 public delegate void AgentFOV(IClientAPI client, float verticalAngle);
476 476
477 public delegate void MuteListEntryUpdate(IClientAPI client, UUID MuteID, string Name, int type, uint flags); 477 public delegate void MuteListEntryUpdate(IClientAPI client, UUID MuteID, string Name, int type, uint flags);
478 478
479 public delegate void MuteListEntryRemove(IClientAPI client, UUID MuteID, string Name); 479 public delegate void MuteListEntryRemove(IClientAPI client, UUID MuteID, string Name);
480 480
481 public delegate void AvatarInterestReply(IClientAPI client,UUID target, uint wantmask, string wanttext, uint skillsmask, string skillstext, string languages); 481 public delegate void AvatarInterestReply(IClientAPI client,UUID target, uint wantmask, string wanttext, uint skillsmask, string skillstext, string languages);
482 482
483 public delegate void FindAgentUpdate(IClientAPI client, UUID hunter, UUID target); 483 public delegate void FindAgentUpdate(IClientAPI client, UUID hunter, UUID target);
484 484
485 public delegate void TrackAgentUpdate(IClientAPI client, UUID hunter, UUID target); 485 public delegate void TrackAgentUpdate(IClientAPI client, UUID hunter, UUID target);
486 486
487 public delegate void FreezeUserUpdate(IClientAPI client, UUID parcelowner,uint flags, UUID target); 487 public delegate void FreezeUserUpdate(IClientAPI client, UUID parcelowner,uint flags, UUID target);
488 488
489 public delegate void EjectUserUpdate(IClientAPI client, UUID parcelowner,uint flags, UUID target); 489 public delegate void EjectUserUpdate(IClientAPI client, UUID parcelowner,uint flags, UUID target);
490 490
491 public delegate void NewUserReport(IClientAPI client, string regionName,UUID abuserID, byte catagory, byte checkflags, string details, UUID objectID, Vector3 postion, byte reportType ,UUID screenshotID, string Summary, UUID reporter); 491 public delegate void NewUserReport(IClientAPI client, string regionName,UUID abuserID, byte catagory, byte checkflags, string details, UUID objectID, Vector3 postion, byte reportType ,UUID screenshotID, string Summary, UUID reporter);
492 492
493 public delegate void GodUpdateRegionInfoUpdate(IClientAPI client, float BillableFactor, ulong EstateID, ulong RegionFlags, byte[] SimName,int RedirectX, int RedirectY); 493 public delegate void GodUpdateRegionInfoUpdate(IClientAPI client, float BillableFactor, ulong EstateID, ulong RegionFlags, byte[] SimName,int RedirectX, int RedirectY);
494 494
495 public delegate void GodlikeMessage(IClientAPI client, UUID requester, byte[] Method, byte[] Parameter); 495 public delegate void GodlikeMessage(IClientAPI client, UUID requester, byte[] Method, byte[] Parameter);
496 496
497 public delegate void SaveStateHandler(IClientAPI client,UUID agentID); 497 public delegate void SaveStateHandler(IClientAPI client,UUID agentID);
498 498
499 public delegate void GroupAccountSummaryRequest(IClientAPI client,UUID agentID, UUID groupID); 499 public delegate void GroupAccountSummaryRequest(IClientAPI client,UUID agentID, UUID groupID);
500 500
501 public delegate void GroupAccountDetailsRequest(IClientAPI client,UUID agentID, UUID groupID, UUID transactionID, UUID sessionID); 501 public delegate void GroupAccountDetailsRequest(IClientAPI client,UUID agentID, UUID groupID, UUID transactionID, UUID sessionID);
502 502
503 public delegate void GroupAccountTransactionsRequest(IClientAPI client,UUID agentID, UUID groupID, UUID transactionID, UUID sessionID); 503 public delegate void GroupAccountTransactionsRequest(IClientAPI client,UUID agentID, UUID groupID, UUID transactionID, UUID sessionID);
504 504
505 public delegate void ParcelBuyPass(IClientAPI client, UUID agentID, int ParcelLocalID); 505 public delegate void ParcelBuyPass(IClientAPI client, UUID agentID, int ParcelLocalID);
506 506
507 public delegate void ParcelGodMark(IClientAPI client, UUID agentID, int ParcelLocalID); 507 public delegate void ParcelGodMark(IClientAPI client, UUID agentID, int ParcelLocalID);
508 508
509 public delegate void GroupActiveProposalsRequest(IClientAPI client,UUID agentID, UUID groupID, UUID transactionID, UUID sessionID); 509 public delegate void GroupActiveProposalsRequest(IClientAPI client,UUID agentID, UUID groupID, UUID transactionID, UUID sessionID);
510 510
511 public delegate void GroupVoteHistoryRequest(IClientAPI client,UUID agentID, UUID groupID, UUID transactionID, UUID sessionID); 511 public delegate void GroupVoteHistoryRequest(IClientAPI client,UUID agentID, UUID groupID, UUID transactionID, UUID sessionID);
512 512
513 513
514 public delegate void SimWideDeletesDelegate(IClientAPI client,UUID agentID, int flags, UUID targetID); 514 public delegate void SimWideDeletesDelegate(IClientAPI client,UUID agentID, int flags, UUID targetID);
515 515
516 public delegate void SendPostcard(IClientAPI client); 516 public delegate void SendPostcard(IClientAPI client);
517 public delegate void ChangeInventoryItemFlags(IClientAPI client, UUID itemID, uint flags); 517 public delegate void ChangeInventoryItemFlags(IClientAPI client, UUID itemID, uint flags);
518 518
@@ -763,7 +763,7 @@ namespace OpenSim.Framework
763 /// Only set for root agents. 763 /// Only set for root agents.
764 /// </remarks> 764 /// </remarks>
765 bool IsLoggingOut { get; set; } 765 bool IsLoggingOut { get; set; }
766 766
767 bool SendLogoutPacketWhenClosing { set; } 767 bool SendLogoutPacketWhenClosing { set; }
768 768
769 // [Obsolete("LLClientView Specific - Circuits are unique to LLClientView")] 769 // [Obsolete("LLClientView Specific - Circuits are unique to LLClientView")]
@@ -1034,7 +1034,7 @@ namespace OpenSim.Framework
1034 event MuteListRequest OnMuteListRequest; 1034 event MuteListRequest OnMuteListRequest;
1035 1035
1036 event PlacesQuery OnPlacesQuery; 1036 event PlacesQuery OnPlacesQuery;
1037 1037
1038 event FindAgentUpdate OnFindAgent; 1038 event FindAgentUpdate OnFindAgent;
1039 event TrackAgentUpdate OnTrackAgent; 1039 event TrackAgentUpdate OnTrackAgent;
1040 event NewUserReport OnUserReport; 1040 event NewUserReport OnUserReport;
@@ -1079,12 +1079,12 @@ namespace OpenSim.Framework
1079 void Close(bool sendStop, bool force); 1079 void Close(bool sendStop, bool force);
1080 1080
1081 void Kick(string message); 1081 void Kick(string message);
1082 1082
1083 /// <summary> 1083 /// <summary>
1084 /// Start processing for this client. 1084 /// Start processing for this client.
1085 /// </summary> 1085 /// </summary>
1086 void Start(); 1086 void Start();
1087 1087
1088 void Stop(); 1088 void Stop();
1089 1089
1090 // void ActivateGesture(UUID assetId, UUID gestureId); 1090 // void ActivateGesture(UUID assetId, UUID gestureId);
@@ -1155,7 +1155,7 @@ namespace OpenSim.Framework
1155 void MoveAgentIntoRegion(RegionInfo regInfo, Vector3 pos, Vector3 look); 1155 void MoveAgentIntoRegion(RegionInfo regInfo, Vector3 pos, Vector3 look);
1156 1156
1157 void InformClientOfNeighbour(ulong neighbourHandle, IPEndPoint neighbourExternalEndPoint); 1157 void InformClientOfNeighbour(ulong neighbourHandle, IPEndPoint neighbourExternalEndPoint);
1158 1158
1159 /// <summary> 1159 /// <summary>
1160 /// Return circuit information for this client. 1160 /// Return circuit information for this client.
1161 /// </summary> 1161 /// </summary>
@@ -1223,10 +1223,10 @@ namespace OpenSim.Framework
1223 /// <summary> 1223 /// <summary>
1224 /// Used by the server to inform the client of new inventory items and folders. 1224 /// Used by the server to inform the client of new inventory items and folders.
1225 /// </summary> 1225 /// </summary>
1226 /// 1226 ///
1227 /// If the node is a folder then the contents will be transferred 1227 /// If the node is a folder then the contents will be transferred
1228 /// (including all descendent folders) as well as the folder itself. 1228 /// (including all descendent folders) as well as the folder itself.
1229 /// 1229 ///
1230 /// <param name="node"></param> 1230 /// <param name="node"></param>
1231 void SendBulkUpdateInventory(InventoryNodeBase node); 1231 void SendBulkUpdateInventory(InventoryNodeBase node);
1232 1232
@@ -1289,7 +1289,7 @@ namespace OpenSim.Framework
1289 /// <param name="OrbitalPosition">The orbital position is given in radians, and must be "adjusted" for the linden client, see LLClientView</param> 1289 /// <param name="OrbitalPosition">The orbital position is given in radians, and must be "adjusted" for the linden client, see LLClientView</param>
1290 void SendSunPos(Vector3 sunPos, Vector3 sunVel, ulong CurrentTime, uint SecondsPerSunCycle, uint SecondsPerYear, 1290 void SendSunPos(Vector3 sunPos, Vector3 sunVel, ulong CurrentTime, uint SecondsPerSunCycle, uint SecondsPerYear,
1291 float OrbitalPosition); 1291 float OrbitalPosition);
1292 1292
1293 void SendViewerEffect(ViewerEffectPacket.EffectBlock[] effectBlocks); 1293 void SendViewerEffect(ViewerEffectPacket.EffectBlock[] effectBlocks);
1294 void SendViewerTime(int phase); 1294 void SendViewerTime(int phase);
1295 1295
@@ -1357,7 +1357,7 @@ namespace OpenSim.Framework
1357 void SendImageFirstPart(ushort numParts, UUID ImageUUID, uint ImageSize, byte[] ImageData, byte imageCodec); 1357 void SendImageFirstPart(ushort numParts, UUID ImageUUID, uint ImageSize, byte[] ImageData, byte imageCodec);
1358 1358
1359 /// <summary> 1359 /// <summary>
1360 /// Send the next packet for a series of packets making up a single texture, 1360 /// Send the next packet for a series of packets making up a single texture,
1361 /// as established by SendImageFirstPart() 1361 /// as established by SendImageFirstPart()
1362 /// </summary> 1362 /// </summary>
1363 /// <param name="partNumber"></param> 1363 /// <param name="partNumber"></param>
@@ -1481,7 +1481,7 @@ namespace OpenSim.Framework
1481 void SendParcelDwellReply(int localID, UUID parcelID, float dwell); 1481 void SendParcelDwellReply(int localID, UUID parcelID, float dwell);
1482 1482
1483 void SendUserInfoReply(bool imViaEmail, bool visible, string email); 1483 void SendUserInfoReply(bool imViaEmail, bool visible, string email);
1484 1484
1485 void SendUseCachedMuteList(); 1485 void SendUseCachedMuteList();
1486 1486
1487 void SendMuteListUpdate(string filename); 1487 void SendMuteListUpdate(string filename);
@@ -1495,13 +1495,13 @@ namespace OpenSim.Framework
1495 void SendRebakeAvatarTextures(UUID textureID); 1495 void SendRebakeAvatarTextures(UUID textureID);
1496 1496
1497 void SendAvatarInterestsReply(UUID avatarID, uint wantMask, string wantText, uint skillsMask, string skillsText, string languages); 1497 void SendAvatarInterestsReply(UUID avatarID, uint wantMask, string wantText, uint skillsMask, string skillsText, string languages);
1498 1498
1499 void SendGroupAccountingDetails(IClientAPI sender,UUID groupID, UUID transactionID, UUID sessionID, int amt); 1499 void SendGroupAccountingDetails(IClientAPI sender,UUID groupID, UUID transactionID, UUID sessionID, int amt);
1500 1500
1501 void SendGroupAccountingSummary(IClientAPI sender,UUID groupID, uint moneyAmt, int totalTier, int usedTier); 1501 void SendGroupAccountingSummary(IClientAPI sender,UUID groupID, uint moneyAmt, int totalTier, int usedTier);
1502 1502
1503 void SendGroupTransactionsSummaryDetails(IClientAPI sender,UUID groupID, UUID transactionID, UUID sessionID,int amt); 1503 void SendGroupTransactionsSummaryDetails(IClientAPI sender,UUID groupID, UUID transactionID, UUID sessionID,int amt);
1504 1504
1505 void SendChangeUserRights(UUID agentID, UUID friendID, int rights); 1505 void SendChangeUserRights(UUID agentID, UUID friendID, int rights);
1506 void SendTextBoxRequest(string message, int chatChannel, string objectname, UUID ownerID, string ownerFirstName, string ownerLastName, UUID objectId); 1506 void SendTextBoxRequest(string message, int chatChannel, string objectname, UUID ownerID, string ownerFirstName, string ownerLastName, UUID objectId);
1507 1507
diff --git a/OpenSim/Framework/ICnmCache.cs b/OpenSim/Framework/ICnmCache.cs
index 27b9c56..69b5b42 100644
--- a/OpenSim/Framework/ICnmCache.cs
+++ b/OpenSim/Framework/ICnmCache.cs
@@ -34,10 +34,10 @@ namespace OpenSim.Framework
34 /// Represent generic cache to store key/value pairs (elements) limited by time, size and count of elements. 34 /// Represent generic cache to store key/value pairs (elements) limited by time, size and count of elements.
35 /// </summary> 35 /// </summary>
36 /// <typeparam name="TKey"> 36 /// <typeparam name="TKey">
37 /// The type of keys in the cache. 37 /// The type of keys in the cache.
38 /// </typeparam> 38 /// </typeparam>
39 /// <typeparam name="TValue"> 39 /// <typeparam name="TValue">
40 /// The type of values in the cache. 40 /// The type of values in the cache.
41 /// </typeparam> 41 /// </typeparam>
42 /// <remarks> 42 /// <remarks>
43 /// <para> 43 /// <para>
@@ -51,8 +51,8 @@ namespace OpenSim.Framework
51 /// <item> 51 /// <item>
52 /// <term>Time</term> 52 /// <term>Time</term>
53 /// <description> 53 /// <description>
54 /// Element that is not accessed through <see cref="TryGetValue"/> or <see cref="Set"/> in last <see cref="ExpirationTime"/> are 54 /// Element that is not accessed through <see cref="TryGetValue"/> or <see cref="Set"/> in last <see cref="ExpirationTime"/> are
55 /// removed from the cache automatically. Depending on implementation of the cache some of elements may stay longer in cache. 55 /// removed from the cache automatically. Depending on implementation of the cache some of elements may stay longer in cache.
56 /// <see cref="IsTimeLimited"/> returns <see langword="true"/>, if cache is limited by time. 56 /// <see cref="IsTimeLimited"/> returns <see langword="true"/>, if cache is limited by time.
57 /// </description> 57 /// </description>
58 /// </item> 58 /// </item>
@@ -60,7 +60,7 @@ namespace OpenSim.Framework
60 /// <term>Count</term> 60 /// <term>Count</term>
61 /// <description> 61 /// <description>
62 /// When adding an new element to cache that already have <see cref="MaxCount"/> of elements, cache will remove less recently 62 /// When adding an new element to cache that already have <see cref="MaxCount"/> of elements, cache will remove less recently
63 /// used element(s) from the cache, until element fits to cache. 63 /// used element(s) from the cache, until element fits to cache.
64 /// <see cref="IsCountLimited"/> returns <see langword="true"/>, if cache is limiting element count. 64 /// <see cref="IsCountLimited"/> returns <see langword="true"/>, if cache is limiting element count.
65 /// </description> 65 /// </description>
66 /// </item> 66 /// </item>
@@ -69,8 +69,8 @@ namespace OpenSim.Framework
69 /// <description> 69 /// <description>
70 /// <description> 70 /// <description>
71 /// When adding an new element to cache that already have <see cref="MaxSize"/> of elements, cache will remove less recently 71 /// When adding an new element to cache that already have <see cref="MaxSize"/> of elements, cache will remove less recently
72 /// used element(s) from the cache, until element fits to cache. 72 /// used element(s) from the cache, until element fits to cache.
73 /// <see cref="IsSizeLimited"/> returns <see langword="true"/>, if cache is limiting total size of elements. 73 /// <see cref="IsSizeLimited"/> returns <see langword="true"/>, if cache is limiting total size of elements.
74 /// Normally size is bytes used by element in the cache. But it can be any other suitable unit of measure. 74 /// Normally size is bytes used by element in the cache. But it can be any other suitable unit of measure.
75 /// </description> 75 /// </description>
76 /// </description> 76 /// </description>
@@ -84,8 +84,8 @@ namespace OpenSim.Framework
84 /// </summary> 84 /// </summary>
85 /// <remarks> 85 /// <remarks>
86 /// <para> 86 /// <para>
87 /// When adding an new element to <see cref="ICnmCache{TKey,TValue}"/> that is limiting element count, 87 /// When adding an new element to <see cref="ICnmCache{TKey,TValue}"/> that is limiting element count,
88 /// <see cref="ICnmCache{TKey,TValue}"/> will remove less recently used elements until it can fit an new element. 88 /// <see cref="ICnmCache{TKey,TValue}"/> will remove less recently used elements until it can fit an new element.
89 /// </para> 89 /// </para>
90 /// </remarks> 90 /// </remarks>
91 /// <seealso cref="MaxCount"/> 91 /// <seealso cref="MaxCount"/>
@@ -102,13 +102,13 @@ namespace OpenSim.Framework
102 /// </value> 102 /// </value>
103 /// <remarks> 103 /// <remarks>
104 /// <para> 104 /// <para>
105 /// When element has been stored in <see cref="ICnmCache{TKey,TValue}"/> longer than <see cref="ExpirationTime"/> 105 /// When element has been stored in <see cref="ICnmCache{TKey,TValue}"/> longer than <see cref="ExpirationTime"/>
106 /// and it is not accessed through <see cref="TryGetValue"/> method or element's value is 106 /// and it is not accessed through <see cref="TryGetValue"/> method or element's value is
107 /// not replaced by <see cref="Set"/> method, then it is automatically removed from the 107 /// not replaced by <see cref="Set"/> method, then it is automatically removed from the
108 /// <see cref="ICnmCache{TKey,TValue}"/>. 108 /// <see cref="ICnmCache{TKey,TValue}"/>.
109 /// </para> 109 /// </para>
110 /// <para> 110 /// <para>
111 /// It is possible that <see cref="ICnmCache{TKey,TValue}"/> implementation removes element before it's expiration time, 111 /// It is possible that <see cref="ICnmCache{TKey,TValue}"/> implementation removes element before it's expiration time,
112 /// because total size or count of elements stored to cache is larger than <see cref="MaxSize"/> or <see cref="MaxCount"/>. 112 /// because total size or count of elements stored to cache is larger than <see cref="MaxSize"/> or <see cref="MaxCount"/>.
113 /// </para> 113 /// </para>
114 /// <para> 114 /// <para>
@@ -135,12 +135,12 @@ namespace OpenSim.Framework
135 /// Gets a value indicating whether or not access to the <see cref="ICnmCache{TKey,TValue}"/> is synchronized (thread safe). 135 /// Gets a value indicating whether or not access to the <see cref="ICnmCache{TKey,TValue}"/> is synchronized (thread safe).
136 /// </summary> 136 /// </summary>
137 /// <value> 137 /// <value>
138 /// <see langword="true"/> if access to the <see cref="ICnmCache{TKey,TValue}"/> is synchronized (thread safe); 138 /// <see langword="true"/> if access to the <see cref="ICnmCache{TKey,TValue}"/> is synchronized (thread safe);
139 /// otherwise, <see langword="false"/>. 139 /// otherwise, <see langword="false"/>.
140 /// </value> 140 /// </value>
141 /// <remarks> 141 /// <remarks>
142 /// <para> 142 /// <para>
143 /// To get synchronized (thread safe) access to <see cref="ICnmCache{TKey,TValue}"/> object, use 143 /// To get synchronized (thread safe) access to <see cref="ICnmCache{TKey,TValue}"/> object, use
144 /// <see cref="CnmSynchronizedCache{TKey,TValue}.Synchronized"/> in <see cref="CnmSynchronizedCache{TKey,TValue}"/> class 144 /// <see cref="CnmSynchronizedCache{TKey,TValue}.Synchronized"/> in <see cref="CnmSynchronizedCache{TKey,TValue}"/> class
145 /// to retrieve synchronized wrapper for <see cref="ICnmCache{TKey,TValue}"/> object. 145 /// to retrieve synchronized wrapper for <see cref="ICnmCache{TKey,TValue}"/> object.
146 /// </para> 146 /// </para>
@@ -153,17 +153,17 @@ namespace OpenSim.Framework
153 /// Gets a value indicating whether <see cref="ICnmCache{TKey,TValue}"/> is limiting count of elements. 153 /// Gets a value indicating whether <see cref="ICnmCache{TKey,TValue}"/> is limiting count of elements.
154 /// </summary> 154 /// </summary>
155 /// <value> 155 /// <value>
156 /// <see langword="true"/> if the <see cref="ICnmCache{TKey,TValue}"/> count of elements is limited; 156 /// <see langword="true"/> if the <see cref="ICnmCache{TKey,TValue}"/> count of elements is limited;
157 /// otherwise, <see langword="false"/>. 157 /// otherwise, <see langword="false"/>.
158 /// </value> 158 /// </value>
159 /// <remarks> 159 /// <remarks>
160 /// <para> 160 /// <para>
161 /// When adding an new element to <see cref="ICnmCache{TKey,TValue}"/> that is limiting element count, 161 /// When adding an new element to <see cref="ICnmCache{TKey,TValue}"/> that is limiting element count,
162 /// <see cref="ICnmCache{TKey,TValue}"/> will remove less recently used elements until it can fit an new element. 162 /// <see cref="ICnmCache{TKey,TValue}"/> will remove less recently used elements until it can fit an new element.
163 /// </para> 163 /// </para>
164 /// </remarks> 164 /// </remarks>
165 /// <seealso cref="Count"/> 165 /// <seealso cref="Count"/>
166 /// <seealso cref="MaxCount"/> 166 /// <seealso cref="MaxCount"/>
167 /// <seealso cref="IsSizeLimited"/> 167 /// <seealso cref="IsSizeLimited"/>
168 /// <seealso cref="IsTimeLimited"/> 168 /// <seealso cref="IsTimeLimited"/>
169 bool IsCountLimited { get; } 169 bool IsCountLimited { get; }
@@ -172,13 +172,13 @@ namespace OpenSim.Framework
172 /// Gets a value indicating whether <see cref="ICnmCache{TKey,TValue}"/> is limiting size of elements. 172 /// Gets a value indicating whether <see cref="ICnmCache{TKey,TValue}"/> is limiting size of elements.
173 /// </summary> 173 /// </summary>
174 /// <value> 174 /// <value>
175 /// <see langword="true"/> if the <see cref="ICnmCache{TKey,TValue}"/> total size of elements is limited; 175 /// <see langword="true"/> if the <see cref="ICnmCache{TKey,TValue}"/> total size of elements is limited;
176 /// otherwise, <see langword="false"/>. 176 /// otherwise, <see langword="false"/>.
177 /// </value> 177 /// </value>
178 /// <remarks> 178 /// <remarks>
179 /// <para> 179 /// <para>
180 /// When adding an new element to <see cref="ICnmCache{TKey,TValue}"/> that is limiting total size of elements, 180 /// When adding an new element to <see cref="ICnmCache{TKey,TValue}"/> that is limiting total size of elements,
181 /// <see cref="ICnmCache{TKey,TValue}"/> will remove less recently used elements until it can fit an new element. 181 /// <see cref="ICnmCache{TKey,TValue}"/> will remove less recently used elements until it can fit an new element.
182 /// </para> 182 /// </para>
183 /// </remarks> 183 /// </remarks>
184 /// <seealso cref="MaxElementSize"/> 184 /// <seealso cref="MaxElementSize"/>
@@ -192,13 +192,13 @@ namespace OpenSim.Framework
192 /// Gets a value indicating whether elements stored to <see cref="ICnmCache{TKey,TValue}"/> have limited inactivity time. 192 /// Gets a value indicating whether elements stored to <see cref="ICnmCache{TKey,TValue}"/> have limited inactivity time.
193 /// </summary> 193 /// </summary>
194 /// <value> 194 /// <value>
195 /// <see langword="true"/> if the <see cref="ICnmCache{TKey,TValue}"/> has a fixed total size of elements; 195 /// <see langword="true"/> if the <see cref="ICnmCache{TKey,TValue}"/> has a fixed total size of elements;
196 /// otherwise, <see langword="false"/>. 196 /// otherwise, <see langword="false"/>.
197 /// </value> 197 /// </value>
198 /// <remarks> 198 /// <remarks>
199 /// If <see cref="ICnmCache{TKey,TValue}"/> have limited inactivity time and element is not accessed through <see cref="Set"/> 199 /// If <see cref="ICnmCache{TKey,TValue}"/> have limited inactivity time and element is not accessed through <see cref="Set"/>
200 /// or <see cref="TryGetValue"/> methods in <see cref="ExpirationTime"/> , then element is automatically removed from 200 /// or <see cref="TryGetValue"/> methods in <see cref="ExpirationTime"/> , then element is automatically removed from
201 /// the cache. Depending on implementation of the <see cref="ICnmCache{TKey,TValue}"/>, some of the elements may 201 /// the cache. Depending on implementation of the <see cref="ICnmCache{TKey,TValue}"/>, some of the elements may
202 /// stay longer in cache. 202 /// stay longer in cache.
203 /// </remarks> 203 /// </remarks>
204 /// <seealso cref="ExpirationTime"/> 204 /// <seealso cref="ExpirationTime"/>
@@ -206,18 +206,18 @@ namespace OpenSim.Framework
206 /// <seealso cref="IsCountLimited"/> 206 /// <seealso cref="IsCountLimited"/>
207 /// <seealso cref="IsSizeLimited"/> 207 /// <seealso cref="IsSizeLimited"/>
208 bool IsTimeLimited { get; } 208 bool IsTimeLimited { get; }
209 209
210 /// <summary> 210 /// <summary>
211 /// Gets or sets maximal allowed count of elements that can be stored to <see cref="ICnmCache{TKey,TValue}"/>. 211 /// Gets or sets maximal allowed count of elements that can be stored to <see cref="ICnmCache{TKey,TValue}"/>.
212 /// </summary> 212 /// </summary>
213 /// <value> 213 /// <value>
214 /// <see cref="int.MaxValue"/>, if <see cref="ICnmCache{TKey,TValue}"/> is not limited by count of elements; 214 /// <see cref="int.MaxValue"/>, if <see cref="ICnmCache{TKey,TValue}"/> is not limited by count of elements;
215 /// otherwise maximal allowed count of elements. 215 /// otherwise maximal allowed count of elements.
216 /// </value> 216 /// </value>
217 /// <remarks> 217 /// <remarks>
218 /// <para> 218 /// <para>
219 /// When adding an new element to <see cref="ICnmCache{TKey,TValue}"/> that is limiting element count, 219 /// When adding an new element to <see cref="ICnmCache{TKey,TValue}"/> that is limiting element count,
220 /// <see cref="ICnmCache{TKey,TValue}"/> will remove less recently used elements until it can fit an new element. 220 /// <see cref="ICnmCache{TKey,TValue}"/> will remove less recently used elements until it can fit an new element.
221 /// </para> 221 /// </para>
222 /// </remarks> 222 /// </remarks>
223 int MaxCount { get; set; } 223 int MaxCount { get; set; }
@@ -230,7 +230,7 @@ namespace OpenSim.Framework
230 /// </value> 230 /// </value>
231 /// <remarks> 231 /// <remarks>
232 /// <para> 232 /// <para>
233 /// If element's size is larger than <see cref="MaxElementSize"/>, then element is 233 /// If element's size is larger than <see cref="MaxElementSize"/>, then element is
234 /// not added to the <see cref="ICnmCache{TKey,TValue}"/>. 234 /// not added to the <see cref="ICnmCache{TKey,TValue}"/>.
235 /// </para> 235 /// </para>
236 /// </remarks> 236 /// </remarks>
@@ -251,8 +251,8 @@ namespace OpenSim.Framework
251 /// Normally size is total bytes used by elements in the cache. But it can be any other suitable unit of measure. 251 /// Normally size is total bytes used by elements in the cache. But it can be any other suitable unit of measure.
252 /// </para> 252 /// </para>
253 /// <para> 253 /// <para>
254 /// When adding an new element to <see cref="ICnmCache{TKey,TValue}"/> that is limiting total size of elements, 254 /// When adding an new element to <see cref="ICnmCache{TKey,TValue}"/> that is limiting total size of elements,
255 /// <see cref="ICnmCache{TKey,TValue}"/> will remove less recently used elements until it can fit an new element. 255 /// <see cref="ICnmCache{TKey,TValue}"/> will remove less recently used elements until it can fit an new element.
256 /// </para> 256 /// </para>
257 /// </remarks> 257 /// </remarks>
258 /// <exception cref="ArgumentOutOfRangeException">value is less than 0.</exception> 258 /// <exception cref="ArgumentOutOfRangeException">value is less than 0.</exception>
@@ -272,11 +272,11 @@ namespace OpenSim.Framework
272 /// Normally bytes, but can be any suitable unit of measure. 272 /// Normally bytes, but can be any suitable unit of measure.
273 /// </para> 273 /// </para>
274 /// <para> 274 /// <para>
275 /// Element's size is given when element is added or replaced by <see cref="Set"/> method. 275 /// Element's size is given when element is added or replaced by <see cref="Set"/> method.
276 /// </para> 276 /// </para>
277 /// <para> 277 /// <para>
278 /// When adding an new element to <see cref="ICnmCache{TKey,TValue}"/> that is limiting total size of elements, 278 /// When adding an new element to <see cref="ICnmCache{TKey,TValue}"/> that is limiting total size of elements,
279 /// <see cref="ICnmCache{TKey,TValue}"/> will remove less recently used elements until it can fit an new element. 279 /// <see cref="ICnmCache{TKey,TValue}"/> will remove less recently used elements until it can fit an new element.
280 /// </para> 280 /// </para>
281 /// </remarks> 281 /// </remarks>
282 /// <seealso cref="MaxElementSize"/> 282 /// <seealso cref="MaxElementSize"/>
@@ -294,8 +294,8 @@ namespace OpenSim.Framework
294 /// </value> 294 /// </value>
295 /// <remarks> 295 /// <remarks>
296 /// <para> 296 /// <para>
297 /// To get synchronized (thread safe) access to <see cref="ICnmCache{TKey,TValue}"/>, use <see cref="CnmSynchronizedCache{TKey,TValue}"/> 297 /// To get synchronized (thread safe) access to <see cref="ICnmCache{TKey,TValue}"/>, use <see cref="CnmSynchronizedCache{TKey,TValue}"/>
298 /// method <see cref="CnmSynchronizedCache{TKey,TValue}.Synchronized"/> to retrieve synchronized wrapper interface to 298 /// method <see cref="CnmSynchronizedCache{TKey,TValue}.Synchronized"/> to retrieve synchronized wrapper interface to
299 /// <see cref="ICnmCache{TKey,TValue}"/>. 299 /// <see cref="ICnmCache{TKey,TValue}"/>.
300 /// </para> 300 /// </para>
301 /// </remarks> 301 /// </remarks>
@@ -367,7 +367,7 @@ namespace OpenSim.Framework
367 void RemoveRange(IEnumerable<TKey> keys); 367 void RemoveRange(IEnumerable<TKey> keys);
368 368
369 /// <summary> 369 /// <summary>
370 /// Add or replace an element with the provided <paramref name="key"/>, <paramref name="value"/> and <paramref name="size"/> to 370 /// Add or replace an element with the provided <paramref name="key"/>, <paramref name="value"/> and <paramref name="size"/> to
371 /// <see cref="ICnmCache{TKey,TValue}"/>. 371 /// <see cref="ICnmCache{TKey,TValue}"/>.
372 /// </summary> 372 /// </summary>
373 /// <param name="key"> 373 /// <param name="key">
@@ -380,7 +380,7 @@ namespace OpenSim.Framework
380 /// The element's size. Normally bytes, but can be any suitable unit of measure. 380 /// The element's size. Normally bytes, but can be any suitable unit of measure.
381 /// </param> 381 /// </param>
382 /// <returns> 382 /// <returns>
383 /// <see langword="true"/> if element has been added successfully to the <see cref="ICnmCache{TKey,TValue}"/>; 383 /// <see langword="true"/> if element has been added successfully to the <see cref="ICnmCache{TKey,TValue}"/>;
384 /// otherwise <see langword="false"/>. 384 /// otherwise <see langword="false"/>.
385 /// </returns> 385 /// </returns>
386 /// <exception cref="ArgumentNullException"> 386 /// <exception cref="ArgumentNullException">
@@ -391,17 +391,17 @@ namespace OpenSim.Framework
391 /// </exception> 391 /// </exception>
392 /// <remarks> 392 /// <remarks>
393 /// <para> 393 /// <para>
394 /// If element's <paramref name="size"/> is larger than <see cref="MaxElementSize"/>, then element is 394 /// If element's <paramref name="size"/> is larger than <see cref="MaxElementSize"/>, then element is
395 /// not added to the <see cref="ICnmCache{TKey,TValue}"/>, however - possible older element is 395 /// not added to the <see cref="ICnmCache{TKey,TValue}"/>, however - possible older element is
396 /// removed from the <see cref="ICnmCache{TKey,TValue}"/>. 396 /// removed from the <see cref="ICnmCache{TKey,TValue}"/>.
397 /// </para> 397 /// </para>
398 /// <para> 398 /// <para>
399 /// When adding an new element to <see cref="ICnmCache{TKey,TValue}"/> that is limiting total size of elements, 399 /// When adding an new element to <see cref="ICnmCache{TKey,TValue}"/> that is limiting total size of elements,
400 /// <see cref="ICnmCache{TKey,TValue}"/>will remove less recently used elements until it can fit an new element. 400 /// <see cref="ICnmCache{TKey,TValue}"/>will remove less recently used elements until it can fit an new element.
401 /// </para> 401 /// </para>
402 /// <para> 402 /// <para>
403 /// When adding an new element to <see cref="ICnmCache{TKey,TValue}"/> that is limiting element count, 403 /// When adding an new element to <see cref="ICnmCache{TKey,TValue}"/> that is limiting element count,
404 /// <see cref="ICnmCache{TKey,TValue}"/>will remove less recently used elements until it can fit an new element. 404 /// <see cref="ICnmCache{TKey,TValue}"/>will remove less recently used elements until it can fit an new element.
405 /// </para> 405 /// </para>
406 /// </remarks> 406 /// </remarks>
407 /// <seealso cref="IsSizeLimited"/> 407 /// <seealso cref="IsSizeLimited"/>
@@ -417,15 +417,15 @@ namespace OpenSim.Framework
417 /// Gets the <paramref name="value"/> associated with the specified <paramref name="key"/>. 417 /// Gets the <paramref name="value"/> associated with the specified <paramref name="key"/>.
418 /// </summary> 418 /// </summary>
419 /// <returns> 419 /// <returns>
420 /// <see langword="true"/>if the <see cref="ICnmCache{TKey,TValue}"/> contains an element with 420 /// <see langword="true"/>if the <see cref="ICnmCache{TKey,TValue}"/> contains an element with
421 /// the specified key; otherwise, <see langword="false"/>. 421 /// the specified key; otherwise, <see langword="false"/>.
422 /// </returns> 422 /// </returns>
423 /// <param name="key"> 423 /// <param name="key">
424 /// The key whose <paramref name="value"/> to get. 424 /// The key whose <paramref name="value"/> to get.
425 /// </param> 425 /// </param>
426 /// <param name="value"> 426 /// <param name="value">
427 /// When this method returns, the value associated with the specified <paramref name="key"/>, 427 /// When this method returns, the value associated with the specified <paramref name="key"/>,
428 /// if the <paramref name="key"/> is found; otherwise, the 428 /// if the <paramref name="key"/> is found; otherwise, the
429 /// default value for the type of the <paramref name="value"/> parameter. This parameter is passed uninitialized. 429 /// default value for the type of the <paramref name="value"/> parameter. This parameter is passed uninitialized.
430 /// </param> 430 /// </param>
431 /// <exception cref="ArgumentNullException"> 431 /// <exception cref="ArgumentNullException">
diff --git a/OpenSim/Framework/ILandChannel.cs b/OpenSim/Framework/ILandChannel.cs
index 63cc7eb..44a24b9 100644
--- a/OpenSim/Framework/ILandChannel.cs
+++ b/OpenSim/Framework/ILandChannel.cs
@@ -38,7 +38,7 @@ namespace OpenSim.Region.Framework.Interfaces
38 /// </summary> 38 /// </summary>
39 /// <returns></returns> 39 /// <returns></returns>
40 List<ILandObject> AllParcels(); 40 List<ILandObject> AllParcels();
41 41
42 /// <summary> 42 /// <summary>
43 /// Get the parcel at the specified point 43 /// Get the parcel at the specified point
44 /// </summary> 44 /// </summary>
@@ -75,7 +75,7 @@ namespace OpenSim.Region.Framework.Interfaces
75 /// <param name="localID"></param> 75 /// <param name="localID"></param>
76 /// <returns></returns> 76 /// <returns></returns>
77 ILandObject GetLandObject(int localID); 77 ILandObject GetLandObject(int localID);
78 78
79 /// <summary> 79 /// <summary>
80 /// Clear the land channel of all parcels. 80 /// Clear the land channel of all parcels.
81 /// </summary> 81 /// </summary>
@@ -83,7 +83,7 @@ namespace OpenSim.Region.Framework.Interfaces
83 /// If true, set up a default parcel covering the whole region owned by the estate owner. 83 /// If true, set up a default parcel covering the whole region owned by the estate owner.
84 /// </param> 84 /// </param>
85 void Clear(bool setupDefaultParcel); 85 void Clear(bool setupDefaultParcel);
86 86
87 bool IsForcefulBansAllowed(); 87 bool IsForcefulBansAllowed();
88 void UpdateLandObject(int localID, LandData data); 88 void UpdateLandObject(int localID, LandData data);
89 void ReturnObjectsInParcel(int localID, uint returnType, UUID[] agentIDs, UUID[] taskIDs, IClientAPI remoteClient); 89 void ReturnObjectsInParcel(int localID, uint returnType, UUID[] agentIDs, UUID[] taskIDs, IClientAPI remoteClient);
diff --git a/OpenSim/Framework/ILandObject.cs b/OpenSim/Framework/ILandObject.cs
index af072fe..f3b850d 100644
--- a/OpenSim/Framework/ILandObject.cs
+++ b/OpenSim/Framework/ILandObject.cs
@@ -43,33 +43,33 @@ namespace OpenSim.Framework
43 LandData LandData { get; set; } 43 LandData LandData { get; set; }
44 bool[,] LandBitmap { get; set; } 44 bool[,] LandBitmap { get; set; }
45 UUID RegionUUID { get; } 45 UUID RegionUUID { get; }
46 46
47 /// <summary> 47 /// <summary>
48 /// Prim counts for this land object. 48 /// Prim counts for this land object.
49 /// </summary> 49 /// </summary>
50 IPrimCounts PrimCounts { get; set; } 50 IPrimCounts PrimCounts { get; set; }
51 51
52 /// <summary> 52 /// <summary>
53 /// The start point for the land object. This is the northern-most point as one scans land working from 53 /// The start point for the land object. This is the northern-most point as one scans land working from
54 /// west to east. 54 /// west to east.
55 /// </summary> 55 /// </summary>
56 Vector2 StartPoint { get; } 56 Vector2 StartPoint { get; }
57 57
58 /// <summary> 58 /// <summary>
59 /// The end point for the land object. This is the southern-most point as one scans land working from 59 /// The end point for the land object. This is the southern-most point as one scans land working from
60 /// west to east. 60 /// west to east.
61 /// </summary> 61 /// </summary>
62 Vector2 EndPoint { get; } 62 Vector2 EndPoint { get; }
63 63
64 // a estimation of a parcel center. 64 // a estimation of a parcel center.
65 Vector2 CenterPoint { get; } 65 Vector2 CenterPoint { get; }
66 66
67 // get positions 67 // get positions
68 Vector2? GetNearestPoint(Vector3 pos); 68 Vector2? GetNearestPoint(Vector3 pos);
69 Vector2? GetNearestPointAlongDirection(Vector3 pos, Vector3 pdirection); 69 Vector2? GetNearestPointAlongDirection(Vector3 pos, Vector3 pdirection);
70 70
71 bool ContainsPoint(int x, int y); 71 bool ContainsPoint(int x, int y);
72 72
73 ILandObject Copy(); 73 ILandObject Copy();
74 74
75 void SendLandUpdateToAvatarsOverMe(); 75 void SendLandUpdateToAvatarsOverMe();
@@ -97,16 +97,16 @@ namespace OpenSim.Framework
97 /// </summary> 97 /// </summary>
98 /// <returns>The bitmap created.</returns> 98 /// <returns>The bitmap created.</returns>
99 bool[,] BasicFullRegionLandBitmap(); 99 bool[,] BasicFullRegionLandBitmap();
100 100
101 /// <summary> 101 /// <summary>
102 /// Create a square land bitmap. 102 /// Create a square land bitmap.
103 /// </summary> 103 /// </summary>
104 /// <remarks> 104 /// <remarks>
105 /// Land co-ordinates are zero indexed. The inputs are treated as points. So if you want to create a bitmap 105 /// Land co-ordinates are zero indexed. The inputs are treated as points. So if you want to create a bitmap
106 /// that covers an entire 256 x 256m region apart from a strip of land on the east, then you would need to 106 /// that covers an entire 256 x 256m region apart from a strip of land on the east, then you would need to
107 /// specify start_x = 0, start_y = 0, end_x = 252 (or anything up to 255), end_y = 255. 107 /// specify start_x = 0, start_y = 0, end_x = 252 (or anything up to 255), end_y = 255.
108 /// 108 ///
109 /// At the moment, the smallest parcel of land is 4m x 4m, so if the 109 /// At the moment, the smallest parcel of land is 4m x 4m, so if the
110 /// region is 256 x 256m (the SL size), the bitmap returned will start at (0,0) and end at (63,63). 110 /// region is 256 x 256m (the SL size), the bitmap returned will start at (0,0) and end at (63,63).
111 /// The value of the set_value needs to be true to define an active parcel of the given size. 111 /// The value of the set_value needs to be true to define an active parcel of the given size.
112 /// </remarks> 112 /// </remarks>
@@ -117,7 +117,7 @@ namespace OpenSim.Framework
117 /// <param name="set_value"></param> 117 /// <param name="set_value"></param>
118 /// <returns>The bitmap created.</returns> 118 /// <returns>The bitmap created.</returns>
119 bool[,] GetSquareLandBitmap(int start_x, int start_y, int end_x, int end_y, bool set_value = true); 119 bool[,] GetSquareLandBitmap(int start_x, int start_y, int end_x, int end_y, bool set_value = true);
120 120
121 bool[,] ModifyLandBitmapSquare(bool[,] land_bitmap, int start_x, int start_y, int end_x, int end_y, bool set_value); 121 bool[,] ModifyLandBitmapSquare(bool[,] land_bitmap, int start_x, int start_y, int end_x, int end_y, bool set_value);
122 122
123 /// <summary> 123 /// <summary>
@@ -153,7 +153,7 @@ namespace OpenSim.Framework
153 /// <param name="isEmptyNow">out: This is set if the resultant bitmap is now empty</param> 153 /// <param name="isEmptyNow">out: This is set if the resultant bitmap is now empty</param>
154 /// <param name="AABBMin">out: parcel.AABBMin &lt;x,y,0&gt;</param> 154 /// <param name="AABBMin">out: parcel.AABBMin &lt;x,y,0&gt;</param>
155 /// <param name="AABBMax">out: parcel.AABBMax &lt;x,y,0&gt</param> 155 /// <param name="AABBMax">out: parcel.AABBMax &lt;x,y,0&gt</param>
156 /// <returns>New parcel bitmap</returns> 156 /// <returns>New parcel bitmap</returns>
157 bool[,] RemoveFromLandBitmap(bool[,] bitmap_base, bool[,] bitmap_new, out bool isEmptyNow, out Vector3 AABBMin, out Vector3 AABBMax); 157 bool[,] RemoveFromLandBitmap(bool[,] bitmap_base, bool[,] bitmap_new, out bool isEmptyNow, out Vector3 AABBMin, out Vector3 AABBMax);
158 158
159 byte[] ConvertLandBitmapToBytes(); 159 byte[] ConvertLandBitmapToBytes();
@@ -177,7 +177,7 @@ namespace OpenSim.Framework
177 /// </summary> 177 /// </summary>
178 /// <param name="url"></param> 178 /// <param name="url"></param>
179 void SetMediaUrl(string url); 179 void SetMediaUrl(string url);
180 180
181 /// <summary> 181 /// <summary>
182 /// Set the music url for this land parcel 182 /// Set the music url for this land parcel
183 /// </summary> 183 /// </summary>
diff --git a/OpenSim/Framework/IPrimCounts.cs b/OpenSim/Framework/IPrimCounts.cs
index 3e12348..3b62ad3 100644
--- a/OpenSim/Framework/IPrimCounts.cs
+++ b/OpenSim/Framework/IPrimCounts.cs
@@ -35,12 +35,12 @@ namespace OpenSim.Framework
35 /// Parcel owner owned prims 35 /// Parcel owner owned prims
36 /// </summary> 36 /// </summary>
37 int Owner { get; } 37 int Owner { get; }
38 38
39 /// <summary> 39 /// <summary>
40 /// Parcel group owned prims 40 /// Parcel group owned prims
41 /// </summary> 41 /// </summary>
42 int Group { get; } 42 int Group { get; }
43 43
44 /// <summary> 44 /// <summary>
45 /// Prims owned by others (not parcel owner or parcel group). 45 /// Prims owned by others (not parcel owner or parcel group).
46 /// </summary> 46 /// </summary>
@@ -48,19 +48,19 @@ namespace OpenSim.Framework
48 48
49 /// <summary> 49 /// <summary>
50 /// Selected prims 50 /// Selected prims
51 /// </summary> 51 /// </summary>
52 int Selected { get; } 52 int Selected { get; }
53 53
54 /// <summary> 54 /// <summary>
55 /// Total prims on the parcel. 55 /// Total prims on the parcel.
56 /// </summary> 56 /// </summary>
57 int Total { get; } 57 int Total { get; }
58 58
59 /// <summary> 59 /// <summary>
60 /// Prims on the simulator that are owned by the parcel owner, even if they are in other parcels. 60 /// Prims on the simulator that are owned by the parcel owner, even if they are in other parcels.
61 /// </summary> 61 /// </summary>
62 int Simulator { get; } 62 int Simulator { get; }
63 63
64 /// <summary> 64 /// <summary>
65 /// Prims per individual users. 65 /// Prims per individual users.
66 /// </summary> 66 /// </summary>
diff --git a/OpenSim/Framework/IRegistryCore.cs b/OpenSim/Framework/IRegistryCore.cs
index a94b65d..cf3ecc0 100644
--- a/OpenSim/Framework/IRegistryCore.cs
+++ b/OpenSim/Framework/IRegistryCore.cs
@@ -31,7 +31,7 @@ using System.Text;
31 31
32namespace OpenSim.Framework 32namespace OpenSim.Framework
33{ 33{
34 public interface IRegistryCore 34 public interface IRegistryCore
35 { 35 {
36 T Get<T>(); 36 T Get<T>();
37 void RegisterInterface<T>(T iface); 37 void RegisterInterface<T>(T iface);
diff --git a/OpenSim/Framework/IScene.cs b/OpenSim/Framework/IScene.cs
index e1b6d1e..37a064f 100644
--- a/OpenSim/Framework/IScene.cs
+++ b/OpenSim/Framework/IScene.cs
@@ -40,7 +40,7 @@ namespace OpenSim.Framework
40 Crashed = 2, 40 Crashed = 2,
41 Starting = 3, 41 Starting = 3,
42 }; 42 };
43 43
44 /// <value> 44 /// <value>
45 /// Indicate what action to take on an object derez request 45 /// Indicate what action to take on an object derez request
46 /// </value> 46 /// </value>
@@ -118,7 +118,7 @@ namespace OpenSim.Framework
118 /// </summary> 118 /// </summary>
119 /// <param name="mod"></param> 119 /// <param name="mod"></param>
120 void RegisterModuleInterface<M>(M mod); 120 void RegisterModuleInterface<M>(M mod);
121 121
122 void StackModuleInterface<M>(M mod); 122 void StackModuleInterface<M>(M mod);
123 123
124 /// <summary> 124 /// <summary>
diff --git a/OpenSim/Framework/ISceneAgent.cs b/OpenSim/Framework/ISceneAgent.cs
index c8424e3..5534e24 100644
--- a/OpenSim/Framework/ISceneAgent.cs
+++ b/OpenSim/Framework/ISceneAgent.cs
@@ -81,6 +81,6 @@ namespace OpenSim.Framework
81 /// Direction in which the scene presence is looking. 81 /// Direction in which the scene presence is looking.
82 /// </summary> 82 /// </summary>
83 /// <remarks>Will be Vector3.Zero for a child agent.</remarks> 83 /// <remarks>Will be Vector3.Zero for a child agent.</remarks>
84 Vector3 Lookat { get; } 84 Vector3 Lookat { get; }
85 } 85 }
86} \ No newline at end of file 86} \ No newline at end of file
diff --git a/OpenSim/Framework/InventoryFolderImpl.cs b/OpenSim/Framework/InventoryFolderImpl.cs
index 139776b..d14f3be 100644
--- a/OpenSim/Framework/InventoryFolderImpl.cs
+++ b/OpenSim/Framework/InventoryFolderImpl.cs
@@ -314,7 +314,7 @@ namespace OpenSim.Framework
314 /// XPath like expression 314 /// XPath like expression
315 /// 315 ///
316 /// FIXME: Delimitors which occur in names themselves are not currently escapable. 316 /// FIXME: Delimitors which occur in names themselves are not currently escapable.
317 /// 317 ///
318 /// <param name="path"> 318 /// <param name="path">
319 /// The path to the required folder. 319 /// The path to the required folder.
320 /// It this is empty or consists only of the PATH_DELIMTER then this folder itself is returned. 320 /// It this is empty or consists only of the PATH_DELIMTER then this folder itself is returned.
diff --git a/OpenSim/Framework/InventoryItemBase.cs b/OpenSim/Framework/InventoryItemBase.cs
index f9fd752..c359a0c 100644
--- a/OpenSim/Framework/InventoryItemBase.cs
+++ b/OpenSim/Framework/InventoryItemBase.cs
@@ -34,17 +34,17 @@ namespace OpenSim.Framework
34 /// Inventory Item - contains all the properties associated with an individual inventory piece. 34 /// Inventory Item - contains all the properties associated with an individual inventory piece.
35 /// </summary> 35 /// </summary>
36 public class InventoryItemBase : InventoryNodeBase, ICloneable 36 public class InventoryItemBase : InventoryNodeBase, ICloneable
37 { 37 {
38 /// <value> 38 /// <value>
39 /// The inventory type of the item. This is slightly different from the asset type in some situations. 39 /// The inventory type of the item. This is slightly different from the asset type in some situations.
40 /// </value> 40 /// </value>
41 public int InvType 41 public int InvType
42 { 42 {
43 get 43 get
44 { 44 {
45 return m_invType; 45 return m_invType;
46 } 46 }
47 47
48 set 48 set
49 { 49 {
50 m_invType = value; 50 m_invType = value;
@@ -55,13 +55,13 @@ namespace OpenSim.Framework
55 /// <value> 55 /// <value>
56 /// The folder this item is contained in 56 /// The folder this item is contained in
57 /// </value> 57 /// </value>
58 public UUID Folder 58 public UUID Folder
59 { 59 {
60 get 60 get
61 { 61 {
62 return m_folder; 62 return m_folder;
63 } 63 }
64 64
65 set 65 set
66 { 66 {
67 m_folder = value; 67 m_folder = value;
@@ -72,17 +72,17 @@ namespace OpenSim.Framework
72 /// <value> 72 /// <value>
73 /// The creator of this item 73 /// The creator of this item
74 /// </value> 74 /// </value>
75 public string CreatorId 75 public string CreatorId
76 { 76 {
77 get 77 get
78 { 78 {
79 return m_creatorId; 79 return m_creatorId;
80 } 80 }
81 81
82 set 82 set
83 { 83 {
84 m_creatorId = value; 84 m_creatorId = value;
85 85
86 if ((m_creatorId == null) || !UUID.TryParse(m_creatorId, out m_creatorIdAsUuid)) 86 if ((m_creatorId == null) || !UUID.TryParse(m_creatorId, out m_creatorIdAsUuid))
87 m_creatorIdAsUuid = UUID.Zero; 87 m_creatorIdAsUuid = UUID.Zero;
88 } 88 }
@@ -92,7 +92,7 @@ namespace OpenSim.Framework
92 /// <value> 92 /// <value>
93 /// The CreatorId expressed as a UUID. 93 /// The CreatorId expressed as a UUID.
94 /// </value> 94 /// </value>
95 public UUID CreatorIdAsUuid 95 public UUID CreatorIdAsUuid
96 { 96 {
97 get 97 get
98 { 98 {
@@ -161,13 +161,13 @@ namespace OpenSim.Framework
161 /// <value> 161 /// <value>
162 /// The description of the inventory item (must be less than 64 characters) 162 /// The description of the inventory item (must be less than 64 characters)
163 /// </value> 163 /// </value>
164 public string Description 164 public string Description
165 { 165 {
166 get 166 get
167 { 167 {
168 return m_description; 168 return m_description;
169 } 169 }
170 170
171 set 171 set
172 { 172 {
173 m_description = value; 173 m_description = value;
@@ -178,13 +178,13 @@ namespace OpenSim.Framework
178 /// <value> 178 /// <value>
179 /// 179 ///
180 /// </value> 180 /// </value>
181 public uint NextPermissions 181 public uint NextPermissions
182 { 182 {
183 get 183 get
184 { 184 {
185 return m_nextPermissions; 185 return m_nextPermissions;
186 } 186 }
187 187
188 set 188 set
189 { 189 {
190 m_nextPermissions = value; 190 m_nextPermissions = value;
@@ -195,13 +195,13 @@ namespace OpenSim.Framework
195 /// <value> 195 /// <value>
196 /// A mask containing permissions for the current owner (cannot be enforced) 196 /// A mask containing permissions for the current owner (cannot be enforced)
197 /// </value> 197 /// </value>
198 public uint CurrentPermissions 198 public uint CurrentPermissions
199 { 199 {
200 get 200 get
201 { 201 {
202 return m_currentPermissions; 202 return m_currentPermissions;
203 } 203 }
204 204
205 set 205 set
206 { 206 {
207 m_currentPermissions = value; 207 m_currentPermissions = value;
@@ -212,13 +212,13 @@ namespace OpenSim.Framework
212 /// <value> 212 /// <value>
213 /// 213 ///
214 /// </value> 214 /// </value>
215 public uint BasePermissions 215 public uint BasePermissions
216 { 216 {
217 get 217 get
218 { 218 {
219 return m_basePermissions; 219 return m_basePermissions;
220 } 220 }
221 221
222 set 222 set
223 { 223 {
224 m_basePermissions = value; 224 m_basePermissions = value;
@@ -229,13 +229,13 @@ namespace OpenSim.Framework
229 /// <value> 229 /// <value>
230 /// 230 ///
231 /// </value> 231 /// </value>
232 public uint EveryOnePermissions 232 public uint EveryOnePermissions
233 { 233 {
234 get 234 get
235 { 235 {
236 return m_everyonePermissions; 236 return m_everyonePermissions;
237 } 237 }
238 238
239 set 239 set
240 { 240 {
241 m_everyonePermissions = value; 241 m_everyonePermissions = value;
@@ -246,13 +246,13 @@ namespace OpenSim.Framework
246 /// <value> 246 /// <value>
247 /// 247 ///
248 /// </value> 248 /// </value>
249 public uint GroupPermissions 249 public uint GroupPermissions
250 { 250 {
251 get 251 get
252 { 252 {
253 return m_groupPermissions; 253 return m_groupPermissions;
254 } 254 }
255 255
256 set 256 set
257 { 257 {
258 m_groupPermissions = value; 258 m_groupPermissions = value;
@@ -263,13 +263,13 @@ namespace OpenSim.Framework
263 /// <value> 263 /// <value>
264 /// This is an enumerated value determining the type of asset (eg Notecard, Sound, Object, etc) 264 /// This is an enumerated value determining the type of asset (eg Notecard, Sound, Object, etc)
265 /// </value> 265 /// </value>
266 public int AssetType 266 public int AssetType
267 { 267 {
268 get 268 get
269 { 269 {
270 return m_assetType; 270 return m_assetType;
271 } 271 }
272 272
273 set 273 set
274 { 274 {
275 m_assetType = value; 275 m_assetType = value;
@@ -280,13 +280,13 @@ namespace OpenSim.Framework
280 /// <value> 280 /// <value>
281 /// The UUID of the associated asset on the asset server 281 /// The UUID of the associated asset on the asset server
282 /// </value> 282 /// </value>
283 public UUID AssetID 283 public UUID AssetID
284 { 284 {
285 get 285 get
286 { 286 {
287 return m_assetID; 287 return m_assetID;
288 } 288 }
289 289
290 set 290 set
291 { 291 {
292 m_assetID = value; 292 m_assetID = value;
@@ -297,13 +297,13 @@ namespace OpenSim.Framework
297 /// <value> 297 /// <value>
298 /// 298 ///
299 /// </value> 299 /// </value>
300 public UUID GroupID 300 public UUID GroupID
301 { 301 {
302 get 302 get
303 { 303 {
304 return m_groupID; 304 return m_groupID;
305 } 305 }
306 306
307 set 307 set
308 { 308 {
309 m_groupID = value; 309 m_groupID = value;
@@ -314,13 +314,13 @@ namespace OpenSim.Framework
314 /// <value> 314 /// <value>
315 /// 315 ///
316 /// </value> 316 /// </value>
317 public bool GroupOwned 317 public bool GroupOwned
318 { 318 {
319 get 319 get
320 { 320 {
321 return m_groupOwned; 321 return m_groupOwned;
322 } 322 }
323 323
324 set 324 set
325 { 325 {
326 m_groupOwned = value; 326 m_groupOwned = value;
@@ -331,13 +331,13 @@ namespace OpenSim.Framework
331 /// <value> 331 /// <value>
332 /// 332 ///
333 /// </value> 333 /// </value>
334 public int SalePrice 334 public int SalePrice
335 { 335 {
336 get 336 get
337 { 337 {
338 return m_salePrice; 338 return m_salePrice;
339 } 339 }
340 340
341 set 341 set
342 { 342 {
343 m_salePrice = value; 343 m_salePrice = value;
@@ -348,13 +348,13 @@ namespace OpenSim.Framework
348 /// <value> 348 /// <value>
349 /// 349 ///
350 /// </value> 350 /// </value>
351 public byte SaleType 351 public byte SaleType
352 { 352 {
353 get 353 get
354 { 354 {
355 return m_saleType; 355 return m_saleType;
356 } 356 }
357 357
358 set 358 set
359 { 359 {
360 m_saleType = value; 360 m_saleType = value;
@@ -365,13 +365,13 @@ namespace OpenSim.Framework
365 /// <value> 365 /// <value>
366 /// 366 ///
367 /// </value> 367 /// </value>
368 public uint Flags 368 public uint Flags
369 { 369 {
370 get 370 get
371 { 371 {
372 return m_flags; 372 return m_flags;
373 } 373 }
374 374
375 set 375 set
376 { 376 {
377 m_flags = value; 377 m_flags = value;
@@ -382,13 +382,13 @@ namespace OpenSim.Framework
382 /// <value> 382 /// <value>
383 /// 383 ///
384 /// </value> 384 /// </value>
385 public int CreationDate 385 public int CreationDate
386 { 386 {
387 get 387 get
388 { 388 {
389 return m_creationDate; 389 return m_creationDate;
390 } 390 }
391 391
392 set 392 set
393 { 393 {
394 m_creationDate = value; 394 m_creationDate = value;
diff --git a/OpenSim/Framework/InventoryNodeBase.cs b/OpenSim/Framework/InventoryNodeBase.cs
index 31c3fd1..9ef36b7 100644
--- a/OpenSim/Framework/InventoryNodeBase.cs
+++ b/OpenSim/Framework/InventoryNodeBase.cs
@@ -41,19 +41,19 @@ namespace OpenSim.Framework
41 { 41 {
42 get { return m_name; } 42 get { return m_name; }
43 set { m_name = value; } 43 set { m_name = value; }
44 } 44 }
45 private string m_name = string.Empty; 45 private string m_name = string.Empty;
46 46
47 /// <summary> 47 /// <summary>
48 /// A UUID containing the ID for the inventory node itself 48 /// A UUID containing the ID for the inventory node itself
49 /// </summary> 49 /// </summary>
50 public UUID ID 50 public UUID ID
51 { 51 {
52 get { return m_id; } 52 get { return m_id; }
53 set { m_id = value; } 53 set { m_id = value; }
54 } 54 }
55 private UUID m_id; 55 private UUID m_id;
56 56
57 /// <summary> 57 /// <summary>
58 /// The agent who's inventory this is contained by 58 /// The agent who's inventory this is contained by
59 /// </summary> 59 /// </summary>
diff --git a/OpenSim/Framework/LandData.cs b/OpenSim/Framework/LandData.cs
index cfefe3e..13d2977 100644
--- a/OpenSim/Framework/LandData.cs
+++ b/OpenSim/Framework/LandData.cs
@@ -411,7 +411,7 @@ namespace OpenSim.Framework
411 } 411 }
412 412
413 /// <summary> 413 /// <summary>
414 /// Determines if people are able to teleport where they please on the parcel or if they 414 /// Determines if people are able to teleport where they please on the parcel or if they
415 /// get constrainted to a specific point on teleport within the parcel 415 /// get constrainted to a specific point on teleport within the parcel
416 /// </summary> 416 /// </summary>
417 public byte LandingType 417 public byte LandingType
@@ -667,7 +667,7 @@ namespace OpenSim.Framework
667 } 667 }
668 668
669 /// <summary> 669 /// <summary>
670 /// When teleporting is restricted to a certain point, this is the location 670 /// When teleporting is restricted to a certain point, this is the location
671 /// that the user will be redirected to 671 /// that the user will be redirected to
672 /// </summary> 672 /// </summary>
673 public Vector3 UserLocation 673 public Vector3 UserLocation
@@ -683,7 +683,7 @@ namespace OpenSim.Framework
683 } 683 }
684 684
685 /// <summary> 685 /// <summary>
686 /// When teleporting is restricted to a certain point, this is the rotation 686 /// When teleporting is restricted to a certain point, this is the rotation
687 /// that the user will be positioned 687 /// that the user will be positioned
688 /// </summary> 688 /// </summary>
689 public Vector3 UserLookAt 689 public Vector3 UserLookAt
@@ -699,7 +699,7 @@ namespace OpenSim.Framework
699 } 699 }
700 700
701 /// <summary> 701 /// <summary>
702 /// Autoreturn number of minutes to return SceneObjectGroup that are owned by someone who doesn't own 702 /// Autoreturn number of minutes to return SceneObjectGroup that are owned by someone who doesn't own
703 /// the parcel and isn't set to the same 'group' as the parcel. 703 /// the parcel and isn't set to the same 'group' as the parcel.
704 /// </summary> 704 /// </summary>
705 public int OtherCleanTime 705 public int OtherCleanTime
diff --git a/OpenSim/Framework/Lazy.cs b/OpenSim/Framework/Lazy.cs
index 91de4bd..ea07d0e 100644
--- a/OpenSim/Framework/Lazy.cs
+++ b/OpenSim/Framework/Lazy.cs
@@ -14,10 +14,10 @@
14// distribute, sublicense, and/or sell copies of the Software, and to 14// distribute, sublicense, and/or sell copies of the Software, and to
15// permit persons to whom the Software is furnished to do so, subject to 15// permit persons to whom the Software is furnished to do so, subject to
16// the following conditions: 16// the following conditions:
17// 17//
18// The above copyright notice and this permission notice shall be 18// The above copyright notice and this permission notice shall be
19// included in all copies or substantial portions of the Software. 19// included in all copies or substantial portions of the Software.
20// 20//
21// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 21// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
22// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 22// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
23// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 23// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
diff --git a/OpenSim/Framework/LocklessQueue.cs b/OpenSim/Framework/LocklessQueue.cs
index 7ccbba7..21b8178 100644
--- a/OpenSim/Framework/LocklessQueue.cs
+++ b/OpenSim/Framework/LocklessQueue.cs
@@ -102,7 +102,7 @@ namespace OpenSim.Framework
102 } 102 }
103 else 103 else
104 { 104 {
105 item = oldHeadNext.Item; 105 item = oldHeadNext.Item;
106 haveAdvancedHead = CAS(ref head, oldHead, oldHeadNext); 106 haveAdvancedHead = CAS(ref head, oldHead, oldHeadNext);
107 if (haveAdvancedHead) 107 if (haveAdvancedHead)
108 { 108 {
diff --git a/OpenSim/Framework/MapAndArray.cs b/OpenSim/Framework/MapAndArray.cs
index c98d3cc..32d6978 100644
--- a/OpenSim/Framework/MapAndArray.cs
+++ b/OpenSim/Framework/MapAndArray.cs
@@ -45,9 +45,9 @@ namespace OpenSim.Framework
45 45
46 /// <summary>Number of values currently stored in the collection</summary> 46 /// <summary>Number of values currently stored in the collection</summary>
47 public int Count { get { return m_array.Length; } } 47 public int Count { get { return m_array.Length; } }
48 /// <summary>NOTE: This collection is thread safe. You do not need to 48 /// <summary>NOTE: This collection is thread safe. You do not need to
49 /// acquire a lock to add, remove, or enumerate entries. This 49 /// acquire a lock to add, remove, or enumerate entries. This
50 /// synchronization object should only be locked for larger 50 /// synchronization object should only be locked for larger
51 /// transactions</summary> 51 /// transactions</summary>
52 public object SyncRoot { get { return m_syncRoot; } } 52 public object SyncRoot { get { return m_syncRoot; } }
53 53
@@ -92,7 +92,7 @@ namespace OpenSim.Framework
92 } 92 }
93 93
94 /// <summary> 94 /// <summary>
95 /// Adds a key/value pair to the collection. This will throw an 95 /// Adds a key/value pair to the collection. This will throw an
96 /// exception if the key is already present in the collection 96 /// exception if the key is already present in the collection
97 /// </summary> 97 /// </summary>
98 /// <param name="key">Key to add or update</param> 98 /// <param name="key">Key to add or update</param>
@@ -166,7 +166,7 @@ namespace OpenSim.Framework
166 /// Gets a reference to the immutable array of values stored in this 166 /// Gets a reference to the immutable array of values stored in this
167 /// collection. This array is thread safe for iteration 167 /// collection. This array is thread safe for iteration
168 /// </summary> 168 /// </summary>
169 /// <returns>A thread safe reference ton an array of all of the stored 169 /// <returns>A thread safe reference ton an array of all of the stored
170 /// values</returns> 170 /// values</returns>
171 public TValue[] GetArray() 171 public TValue[] GetArray()
172 { 172 {
@@ -175,7 +175,7 @@ namespace OpenSim.Framework
175 175
176 private void CreateArray() 176 private void CreateArray()
177 { 177 {
178 // Rebuild the array from the dictionary. This method must be 178 // Rebuild the array from the dictionary. This method must be
179 // called from inside a lock 179 // called from inside a lock
180 TValue[] array = new TValue[m_dict.Count]; 180 TValue[] array = new TValue[m_dict.Count];
181 int i = 0; 181 int i = 0;
diff --git a/OpenSim/Framework/MapItemReplyStruct.cs b/OpenSim/Framework/MapItemReplyStruct.cs
index c8693ae..348a240 100644
--- a/OpenSim/Framework/MapItemReplyStruct.cs
+++ b/OpenSim/Framework/MapItemReplyStruct.cs
@@ -60,7 +60,7 @@ namespace OpenSim.Framework
60 map["Extra2"] = OSD.FromInteger(Extra2); 60 map["Extra2"] = OSD.FromInteger(Extra2);
61 return map; 61 return map;
62 } 62 }
63 63
64 public void FromOSD(OSDMap map) 64 public void FromOSD(OSDMap map)
65 { 65 {
66 x = (uint) map["X"].AsInteger(); 66 x = (uint) map["X"].AsInteger();
diff --git a/OpenSim/Framework/MetricsCollector.cs b/OpenSim/Framework/MetricsCollector.cs
index c8f4a33..391f57e 100644
--- a/OpenSim/Framework/MetricsCollector.cs
+++ b/OpenSim/Framework/MetricsCollector.cs
@@ -42,23 +42,23 @@ namespace OpenSim.Framework
42 } 42 }
43 } 43 }
44 44
45 45
46 struct MetricsBucket<T> 46 struct MetricsBucket<T>
47 { 47 {
48 public T value; 48 public T value;
49 public int count; 49 public int count;
50 } 50 }
51 51
52 52
53 /// <summary> 53 /// <summary>
54 /// Collects metrics in a sliding window. 54 /// Collects metrics in a sliding window.
55 /// </summary> 55 /// </summary>
56 /// <remarks> 56 /// <remarks>
57 /// MetricsCollector provides the current Sum of the metrics that it collects. It can easily be extended 57 /// MetricsCollector provides the current Sum of the metrics that it collects. It can easily be extended
58 /// to provide the Average, too. It uses a sliding window to keep these values current. 58 /// to provide the Average, too. It uses a sliding window to keep these values current.
59 /// 59 ///
60 /// This class is not thread-safe. 60 /// This class is not thread-safe.
61 /// 61 ///
62 /// Subclass MetricsCollector to have it use a concrete value type. Override the abstract methods. 62 /// Subclass MetricsCollector to have it use a concrete value type. Override the abstract methods.
63 /// </remarks> 63 /// </remarks>
64 public abstract class MetricsCollector<T> 64 public abstract class MetricsCollector<T>
diff --git a/OpenSim/Framework/Monitoring/BaseStatsCollector.cs b/OpenSim/Framework/Monitoring/BaseStatsCollector.cs
index 8c2bec6..e513abd 100644
--- a/OpenSim/Framework/Monitoring/BaseStatsCollector.cs
+++ b/OpenSim/Framework/Monitoring/BaseStatsCollector.cs
@@ -78,7 +78,7 @@ namespace OpenSim.Framework.Monitoring
78 78
79 return sb.ToString(); 79 return sb.ToString();
80 } 80 }
81 81
82 public virtual string XReport(string uptime, string version) 82 public virtual string XReport(string uptime, string version)
83 { 83 {
84 return (string) Math.Round(GC.GetTotalMemory(false) / 1024.0 / 1024.0).ToString() ; 84 return (string) Math.Round(GC.GetTotalMemory(false) / 1024.0 / 1024.0).ToString() ;
diff --git a/OpenSim/Framework/Monitoring/Checks/Check.cs b/OpenSim/Framework/Monitoring/Checks/Check.cs
index 594386a..9a1bd45 100644
--- a/OpenSim/Framework/Monitoring/Checks/Check.cs
+++ b/OpenSim/Framework/Monitoring/Checks/Check.cs
@@ -79,7 +79,7 @@ namespace OpenSim.Framework.Monitoring
79 string category, 79 string category,
80 string container, 80 string container,
81 Func<Check, bool> checkFunc, 81 Func<Check, bool> checkFunc,
82 StatVerbosity verbosity) 82 StatVerbosity verbosity)
83 { 83 {
84 if (ChecksManager.SubCommands.Contains(category)) 84 if (ChecksManager.SubCommands.Contains(category))
85 throw new Exception( 85 throw new Exception(
@@ -108,9 +108,9 @@ namespace OpenSim.Framework.Monitoring
108 public virtual string ToConsoleString() 108 public virtual string ToConsoleString()
109 { 109 {
110 return string.Format( 110 return string.Format(
111 "{0}.{1}.{2} - {3}", 111 "{0}.{1}.{2} - {3}",
112 Category, 112 Category,
113 Container, 113 Container,
114 ShortName, 114 ShortName,
115 Description); 115 Description);
116 } 116 }
diff --git a/OpenSim/Framework/Monitoring/Interfaces/IStatsCollector.cs b/OpenSim/Framework/Monitoring/Interfaces/IStatsCollector.cs
index 40df562..e326e8b 100644
--- a/OpenSim/Framework/Monitoring/Interfaces/IStatsCollector.cs
+++ b/OpenSim/Framework/Monitoring/Interfaces/IStatsCollector.cs
@@ -39,7 +39,7 @@ namespace OpenSim.Framework.Monitoring
39 /// </summary> 39 /// </summary>
40 /// <returns></returns> 40 /// <returns></returns>
41 string Report(); 41 string Report();
42 42
43 /// <summary> 43 /// <summary>
44 /// Report back collected statistical information in json 44 /// Report back collected statistical information in json
45 /// </summary> 45 /// </summary>
diff --git a/OpenSim/Framework/Monitoring/JobEngine.cs b/OpenSim/Framework/Monitoring/JobEngine.cs
index df6b806..0a39e4b 100644
--- a/OpenSim/Framework/Monitoring/JobEngine.cs
+++ b/OpenSim/Framework/Monitoring/JobEngine.cs
@@ -49,7 +49,7 @@ namespace OpenSim.Framework.Monitoring
49 /// <summary> 49 /// <summary>
50 /// Is this engine running? 50 /// Is this engine running?
51 /// </summary> 51 /// </summary>
52 public bool IsRunning { get; private set; } 52 public bool IsRunning { get; private set; }
53 53
54 /// <summary> 54 /// <summary>
55 /// The current job that the engine is running. 55 /// The current job that the engine is running.
@@ -73,7 +73,7 @@ namespace OpenSim.Framework.Monitoring
73 /// Controls whether we need to warn in the log about exceeding the max queue size. 73 /// Controls whether we need to warn in the log about exceeding the max queue size.
74 /// </summary> 74 /// </summary>
75 /// <remarks> 75 /// <remarks>
76 /// This is flipped to false once queue max has been exceeded and back to true when it falls below max, in 76 /// This is flipped to false once queue max has been exceeded and back to true when it falls below max, in
77 /// order to avoid spamming the log with lots of warnings. 77 /// order to avoid spamming the log with lots of warnings.
78 /// </remarks> 78 /// </remarks>
79 private bool m_warnOverMaxQueue = true; 79 private bool m_warnOverMaxQueue = true;
@@ -120,7 +120,7 @@ namespace OpenSim.Framework.Monitoring
120 } 120 }
121 121
122 public void Stop() 122 public void Stop()
123 { 123 {
124 lock (JobLock) 124 lock (JobLock)
125 { 125 {
126 try 126 try
@@ -150,7 +150,7 @@ namespace OpenSim.Framework.Monitoring
150 /// Make a job. 150 /// Make a job.
151 /// </summary> 151 /// </summary>
152 /// <remarks> 152 /// <remarks>
153 /// We provide this method to replace the constructor so that we can later pool job objects if necessary to 153 /// We provide this method to replace the constructor so that we can later pool job objects if necessary to
154 /// reduce memory churn. Normally one would directly call QueueJob() with parameters anyway. 154 /// reduce memory churn. Normally one would directly call QueueJob() with parameters anyway.
155 /// </remarks> 155 /// </remarks>
156 /// <returns></returns> 156 /// <returns></returns>
@@ -304,7 +304,7 @@ namespace OpenSim.Framework.Monitoring
304 CommonId = commonId; 304 CommonId = commonId;
305 Action = action; 305 Action = action;
306 } 306 }
307 307
308 /// <summary> 308 /// <summary>
309 /// Make a job. It needs to be separately queued. 309 /// Make a job. It needs to be separately queued.
310 /// </summary> 310 /// </summary>
diff --git a/OpenSim/Framework/Monitoring/Properties/AssemblyInfo.cs b/OpenSim/Framework/Monitoring/Properties/AssemblyInfo.cs
index 756e4ed..2ff2014 100644
--- a/OpenSim/Framework/Monitoring/Properties/AssemblyInfo.cs
+++ b/OpenSim/Framework/Monitoring/Properties/AssemblyInfo.cs
@@ -2,7 +2,7 @@
2using System.Runtime.CompilerServices; 2using System.Runtime.CompilerServices;
3using System.Runtime.InteropServices; 3using System.Runtime.InteropServices;
4 4
5// General Information about an assembly is controlled through the following 5// General Information about an assembly is controlled through the following
6// set of attributes. Change these attribute values to modify the information 6// set of attributes. Change these attribute values to modify the information
7// associated with an assembly. 7// associated with an assembly.
8[assembly: AssemblyTitle("OpenSim.Framework.Monitoring")] 8[assembly: AssemblyTitle("OpenSim.Framework.Monitoring")]
@@ -14,8 +14,8 @@ using System.Runtime.InteropServices;
14[assembly: AssemblyTrademark("")] 14[assembly: AssemblyTrademark("")]
15[assembly: AssemblyCulture("")] 15[assembly: AssemblyCulture("")]
16 16
17// Setting ComVisible to false makes the types in this assembly not visible 17// Setting ComVisible to false makes the types in this assembly not visible
18// to COM components. If you need to access a type in this assembly from 18// to COM components. If you need to access a type in this assembly from
19// COM, set the ComVisible attribute to true on that type. 19// COM, set the ComVisible attribute to true on that type.
20[assembly: ComVisible(false)] 20[assembly: ComVisible(false)]
21 21
@@ -25,7 +25,7 @@ using System.Runtime.InteropServices;
25// Version information for an assembly consists of the following four values: 25// Version information for an assembly consists of the following four values:
26// 26//
27// Major Version 27// Major Version
28// Minor Version 28// Minor Version
29// Build Number 29// Build Number
30// Revision 30// Revision
31// 31//
diff --git a/OpenSim/Framework/Monitoring/ServerStatsCollector.cs b/OpenSim/Framework/Monitoring/ServerStatsCollector.cs
index be4a8b4..3391240 100644
--- a/OpenSim/Framework/Monitoring/ServerStatsCollector.cs
+++ b/OpenSim/Framework/Monitoring/ServerStatsCollector.cs
@@ -167,18 +167,18 @@ namespace OpenSim.Framework.Monitoring
167 } 167 }
168 168
169 MakeStat("BuiltinThreadpoolWorkerThreadsAvailable", null, "threads", ContainerThreadpool, 169 MakeStat("BuiltinThreadpoolWorkerThreadsAvailable", null, "threads", ContainerThreadpool,
170 s => 170 s =>
171 { 171 {
172 int workerThreads, iocpThreads; 172 int workerThreads, iocpThreads;
173 ThreadPool.GetAvailableThreads(out workerThreads, out iocpThreads); 173 ThreadPool.GetAvailableThreads(out workerThreads, out iocpThreads);
174 s.Value = workerThreads; 174 s.Value = workerThreads;
175 }); 175 });
176 176
177 MakeStat("BuiltinThreadpoolIOCPThreadsAvailable", null, "threads", ContainerThreadpool, 177 MakeStat("BuiltinThreadpoolIOCPThreadsAvailable", null, "threads", ContainerThreadpool,
178 s => 178 s =>
179 { 179 {
180 int workerThreads, iocpThreads; 180 int workerThreads, iocpThreads;
181 ThreadPool.GetAvailableThreads(out workerThreads, out iocpThreads); 181 ThreadPool.GetAvailableThreads(out workerThreads, out iocpThreads);
182 s.Value = iocpThreads; 182 s.Value = iocpThreads;
183 }); 183 });
184 184
@@ -193,10 +193,10 @@ namespace OpenSim.Framework.Monitoring
193 } 193 }
194 194
195 MakeStat( 195 MakeStat(
196 "HTTPRequestsMade", 196 "HTTPRequestsMade",
197 "Number of outbound HTTP requests made", 197 "Number of outbound HTTP requests made",
198 "requests", 198 "requests",
199 ContainerNetwork, 199 ContainerNetwork,
200 s => s.Value = WebUtil.RequestNumber, 200 s => s.Value = WebUtil.RequestNumber,
201 MeasuresOfInterest.AverageChangeOverTime); 201 MeasuresOfInterest.AverageChangeOverTime);
202 202
@@ -294,7 +294,7 @@ namespace OpenSim.Framework.Monitoring
294 }); 294 });
295 } 295 }
296 296
297 // Notes on performance counters: 297 // Notes on performance counters:
298 // "How To Read Performance Counters": http://blogs.msdn.com/b/bclteam/archive/2006/06/02/618156.aspx 298 // "How To Read Performance Counters": http://blogs.msdn.com/b/bclteam/archive/2006/06/02/618156.aspx
299 // "How to get the CPU Usage in C#": http://stackoverflow.com/questions/278071/how-to-get-the-cpu-usage-in-c 299 // "How to get the CPU Usage in C#": http://stackoverflow.com/questions/278071/how-to-get-the-cpu-usage-in-c
300 // "Mono Performance Counters": http://www.mono-project.com/Mono_Performance_Counters 300 // "Mono Performance Counters": http://www.mono-project.com/Mono_Performance_Counters
diff --git a/OpenSim/Framework/Monitoring/SimExtraStatsCollector.cs b/OpenSim/Framework/Monitoring/SimExtraStatsCollector.cs
index 08c2409..88a0297 100755
--- a/OpenSim/Framework/Monitoring/SimExtraStatsCollector.cs
+++ b/OpenSim/Framework/Monitoring/SimExtraStatsCollector.cs
@@ -90,17 +90,17 @@ namespace OpenSim.Framework.Monitoring
90// /// haven't yet been implemented... 90// /// haven't yet been implemented...
91// /// </summary> 91// /// </summary>
92// public long AssetsInCache { get { return assetsInCache; } } 92// public long AssetsInCache { get { return assetsInCache; } }
93// 93//
94// /// <value> 94// /// <value>
95// /// Currently unused 95// /// Currently unused
96// /// </value> 96// /// </value>
97// public long TexturesInCache { get { return texturesInCache; } } 97// public long TexturesInCache { get { return texturesInCache; } }
98// 98//
99// /// <value> 99// /// <value>
100// /// Currently misleading since we can't currently subtract removed asset memory usage without a performance hit 100// /// Currently misleading since we can't currently subtract removed asset memory usage without a performance hit
101// /// </value> 101// /// </value>
102// public long AssetCacheMemoryUsage { get { return assetCacheMemoryUsage; } } 102// public long AssetCacheMemoryUsage { get { return assetCacheMemoryUsage; } }
103// 103//
104// /// <value> 104// /// <value>
105// /// Currently unused 105// /// Currently unused
106// /// </value> 106// /// </value>
@@ -127,7 +127,7 @@ namespace OpenSim.Framework.Monitoring
127 public float PendingUploads { get { return pendingUploads; } } 127 public float PendingUploads { get { return pendingUploads; } }
128 public float ActiveScripts { get { return activeScripts; } } 128 public float ActiveScripts { get { return activeScripts; } }
129 public float ScriptLinesPerSecond { get { return scriptLinesPerSecond; } } 129 public float ScriptLinesPerSecond { get { return scriptLinesPerSecond; } }
130 130
131// /// <summary> 131// /// <summary>
132// /// This is the time it took for the last asset request made in response to a cache miss. 132// /// This is the time it took for the last asset request made in response to a cache miss.
133// /// </summary> 133// /// </summary>
@@ -177,7 +177,7 @@ namespace OpenSim.Framework.Monitoring
177// assetsInCache++; 177// assetsInCache++;
178// //assetCacheMemoryUsage += asset.Data.Length; 178// //assetCacheMemoryUsage += asset.Data.Length;
179// } 179// }
180// 180//
181// public void RemoveAsset(UUID uuid) 181// public void RemoveAsset(UUID uuid)
182// { 182// {
183// assetsInCache--; 183// assetsInCache--;
@@ -204,7 +204,7 @@ namespace OpenSim.Framework.Monitoring
204// texturesInCache = 0; 204// texturesInCache = 0;
205// textureCacheMemoryUsage = 0; 205// textureCacheMemoryUsage = 0;
206// } 206// }
207// 207//
208// public void AddAssetRequestTimeAfterCacheMiss(TimeSpan ts) 208// public void AddAssetRequestTimeAfterCacheMiss(TimeSpan ts)
209// { 209// {
210// assetRequestTimeAfterCacheMiss = ts; 210// assetRequestTimeAfterCacheMiss = ts;
@@ -306,7 +306,7 @@ namespace OpenSim.Framework.Monitoring
306 StringBuilder sb = new StringBuilder(Environment.NewLine); 306 StringBuilder sb = new StringBuilder(Environment.NewLine);
307// sb.Append("ASSET STATISTICS"); 307// sb.Append("ASSET STATISTICS");
308// sb.Append(Environment.NewLine); 308// sb.Append(Environment.NewLine);
309 309
310 /* 310 /*
311 sb.Append( 311 sb.Append(
312 string.Format( 312 string.Format(
@@ -342,7 +342,7 @@ Asset service request failures: {3}" + Environment.NewLine,
342 List<Stat> stats = StatsManager.GetStatsFromEachContainer("clientstack", "ClientLogoutsDueToNoReceives"); 342 List<Stat> stats = StatsManager.GetStatsFromEachContainer("clientstack", "ClientLogoutsDueToNoReceives");
343 343
344 sb.AppendFormat( 344 sb.AppendFormat(
345 "Client logouts due to no data receive timeout: {0}\n\n", 345 "Client logouts due to no data receive timeout: {0}\n\n",
346 stats != null ? stats.Sum(s => s.Value).ToString() : "unknown"); 346 stats != null ? stats.Sum(s => s.Value).ToString() : "unknown");
347 347
348// sb.Append(Environment.NewLine); 348// sb.Append(Environment.NewLine);
@@ -443,10 +443,10 @@ Asset service request failures: {3}" + Environment.NewLine,
443 foreach (ProcessThread currentThread in 443 foreach (ProcessThread currentThread in
444 Process.GetCurrentProcess().Threads) 444 Process.GetCurrentProcess().Threads)
445 { 445 {
446 // A known issue with the current process .Threads property is 446 // A known issue with the current process .Threads property is
447 // that it can return null threads, thus don't count those as 447 // that it can return null threads, thus don't count those as
448 // running threads and prevent the program function from failing 448 // running threads and prevent the program function from failing
449 if (currentThread != null && 449 if (currentThread != null &&
450 currentThread.ThreadState == ThreadState.Running) 450 currentThread.ThreadState == ThreadState.Running)
451 { 451 {
452 numberThreadsRunning++; 452 numberThreadsRunning++;
@@ -505,7 +505,7 @@ Asset service request failures: {3}" + Environment.NewLine,
505 "{0:0.##}", numberThreadsRunning)); 505 "{0:0.##}", numberThreadsRunning));
506 args["ProcMem"] = OSD.FromString(String.Format("{0:#,###,###.##}", 506 args["ProcMem"] = OSD.FromString(String.Format("{0:#,###,###.##}",
507 memUsage)); 507 memUsage));
508 508
509 return args; 509 return args;
510 } 510 }
511 } 511 }
@@ -531,12 +531,12 @@ Asset service request failures: {3}" + Environment.NewLine,
531 { 531 {
532 return m_statsProvider.GetStats(); 532 return m_statsProvider.GetStats();
533 } 533 }
534 534
535 public string XReport(string uptime, string version) 535 public string XReport(string uptime, string version)
536 { 536 {
537 return ""; 537 return "";
538 } 538 }
539 539
540 public OSDMap OReport(string uptime, string version) 540 public OSDMap OReport(string uptime, string version)
541 { 541 {
542 OSDMap ret = new OSDMap(); 542 OSDMap ret = new OSDMap();
diff --git a/OpenSim/Framework/Monitoring/Stats/Stat.cs b/OpenSim/Framework/Monitoring/Stats/Stat.cs
index 916fa53..2402acd 100644
--- a/OpenSim/Framework/Monitoring/Stats/Stat.cs
+++ b/OpenSim/Framework/Monitoring/Stats/Stat.cs
@@ -121,17 +121,17 @@ namespace OpenSim.Framework.Monitoring
121 string container, 121 string container,
122 StatType type, 122 StatType type,
123 Action<Stat> pullAction, 123 Action<Stat> pullAction,
124 StatVerbosity verbosity) 124 StatVerbosity verbosity)
125 : this( 125 : this(
126 shortName, 126 shortName,
127 name, 127 name,
128 description, 128 description,
129 unitName, 129 unitName,
130 category, 130 category,
131 container, 131 container,
132 type, 132 type,
133 MeasuresOfInterest.None, 133 MeasuresOfInterest.None,
134 pullAction, 134 pullAction,
135 verbosity) 135 verbosity)
136 { 136 {
137 } 137 }
@@ -227,11 +227,11 @@ namespace OpenSim.Framework.Monitoring
227 { 227 {
228 StringBuilder sb = new StringBuilder(); 228 StringBuilder sb = new StringBuilder();
229 sb.AppendFormat( 229 sb.AppendFormat(
230 "{0}.{1}.{2} : {3}{4}", 230 "{0}.{1}.{2} : {3}{4}",
231 Category, 231 Category,
232 Container, 232 Container,
233 ShortName, 233 ShortName,
234 Value, 234 Value,
235 string.IsNullOrEmpty(UnitName) ? "" : string.Format(" {0}", UnitName)); 235 string.IsNullOrEmpty(UnitName) ? "" : string.Format(" {0}", UnitName));
236 236
237 AppendMeasuresOfInterest(sb); 237 AppendMeasuresOfInterest(sb);
@@ -290,7 +290,7 @@ namespace OpenSim.Framework.Monitoring
290 lock (m_samples) 290 lock (m_samples)
291 { 291 {
292 // m_log.DebugFormat( 292 // m_log.DebugFormat(
293 // "[STAT]: Samples for {0} are {1}", 293 // "[STAT]: Samples for {0} are {1}",
294 // Name, string.Join(",", m_samples.Select(s => s.ToString()).ToArray())); 294 // Name, string.Join(",", m_samples.Select(s => s.ToString()).ToArray()));
295 295
296 foreach (double s in m_samples) 296 foreach (double s in m_samples)
@@ -326,9 +326,9 @@ namespace OpenSim.Framework.Monitoring
326 if (ComputeMeasuresOfInterest(out lastChangeOverTime, out averageChangeOverTime)) 326 if (ComputeMeasuresOfInterest(out lastChangeOverTime, out averageChangeOverTime))
327 { 327 {
328 sb.AppendFormat( 328 sb.AppendFormat(
329 ", {0:0.##}{1}/s, {2:0.##}{3}/s", 329 ", {0:0.##}{1}/s, {2:0.##}{3}/s",
330 lastChangeOverTime, 330 lastChangeOverTime,
331 string.IsNullOrEmpty(UnitName) ? "" : string.Format(" {0}", UnitName), 331 string.IsNullOrEmpty(UnitName) ? "" : string.Format(" {0}", UnitName),
332 averageChangeOverTime, 332 averageChangeOverTime,
333 string.IsNullOrEmpty(UnitName) ? "" : string.Format(" {0}", UnitName)); 333 string.IsNullOrEmpty(UnitName) ? "" : string.Format(" {0}", UnitName));
334 } 334 }
diff --git a/OpenSim/Framework/Monitoring/StatsLogger.cs b/OpenSim/Framework/Monitoring/StatsLogger.cs
index 15a37aa..b719af9 100644
--- a/OpenSim/Framework/Monitoring/StatsLogger.cs
+++ b/OpenSim/Framework/Monitoring/StatsLogger.cs
@@ -99,13 +99,13 @@ namespace OpenSim.Framework.Monitoring
99 } 99 }
100 100
101 string path = cmd[2]; 101 string path = cmd[2];
102 102
103 using (StreamWriter sw = new StreamWriter(path, true)) 103 using (StreamWriter sw = new StreamWriter(path, true))
104 { 104 {
105 foreach (string line in GetReport()) 105 foreach (string line in GetReport())
106 sw.WriteLine(line); 106 sw.WriteLine(line);
107 } 107 }
108 108
109 MainConsole.Instance.OutputFormat("Stats saved to file {0}", path); 109 MainConsole.Instance.OutputFormat("Stats saved to file {0}", path);
110 } 110 }
111 111
diff --git a/OpenSim/Framework/Monitoring/StatsManager.cs b/OpenSim/Framework/Monitoring/StatsManager.cs
index 30926d8..55c3276 100644
--- a/OpenSim/Framework/Monitoring/StatsManager.cs
+++ b/OpenSim/Framework/Monitoring/StatsManager.cs
@@ -274,7 +274,7 @@ namespace OpenSim.Framework.Monitoring
274 { 274 {
275 if (!(string.IsNullOrEmpty(pContainerName) || pContainerName == AllSubCommand || pContainerName == contName)) 275 if (!(string.IsNullOrEmpty(pContainerName) || pContainerName == AllSubCommand || pContainerName == contName))
276 continue; 276 continue;
277 277
278 OSDMap statMap = new OSDMap(); 278 OSDMap statMap = new OSDMap();
279 279
280 SortedDictionary<string, Stat> theStats = RegisteredStats[catName][contName]; 280 SortedDictionary<string, Stat> theStats = RegisteredStats[catName][contName];
@@ -398,7 +398,7 @@ namespace OpenSim.Framework.Monitoring
398 { 398 {
399 if (!TryGetStatParents(stat, out category, out container)) 399 if (!TryGetStatParents(stat, out category, out container))
400 return false; 400 return false;
401 401
402 if(container != null) 402 if(container != null)
403 { 403 {
404 container.Remove(stat.ShortName); 404 container.Remove(stat.ShortName);
diff --git a/OpenSim/Framework/Monitoring/Watchdog.cs b/OpenSim/Framework/Monitoring/Watchdog.cs
index ff439f5..9cc61ee 100644
--- a/OpenSim/Framework/Monitoring/Watchdog.cs
+++ b/OpenSim/Framework/Monitoring/Watchdog.cs
@@ -96,7 +96,7 @@ namespace OpenSim.Framework.Monitoring
96 FirstTick = Environment.TickCount & Int32.MaxValue; 96 FirstTick = Environment.TickCount & Int32.MaxValue;
97 LastTick = FirstTick; 97 LastTick = FirstTick;
98 98
99 Stat 99 Stat
100 = new Stat( 100 = new Stat(
101 name, 101 name,
102 string.Format("Last update of thread {0}", name), 102 string.Format("Last update of thread {0}", name),
diff --git a/OpenSim/Framework/Monitoring/WorkManager.cs b/OpenSim/Framework/Monitoring/WorkManager.cs
index a7a03a0..43130f9 100644
--- a/OpenSim/Framework/Monitoring/WorkManager.cs
+++ b/OpenSim/Framework/Monitoring/WorkManager.cs
@@ -36,16 +36,16 @@ namespace OpenSim.Framework.Monitoring
36 /// Manages various work items in the simulator. 36 /// Manages various work items in the simulator.
37 /// </summary> 37 /// </summary>
38 /// <remarks> 38 /// <remarks>
39 /// Currently, here work can be started 39 /// Currently, here work can be started
40 /// * As a long-running and monitored thread. 40 /// * As a long-running and monitored thread.
41 /// * In a thread that will never timeout but where the job is expected to eventually complete. 41 /// * In a thread that will never timeout but where the job is expected to eventually complete.
42 /// * In a threadpool thread that will timeout if it takes a very long time to complete (> 10 mins). 42 /// * In a threadpool thread that will timeout if it takes a very long time to complete (> 10 mins).
43 /// * As a job which will be run in a single-threaded job engine. Such jobs must not incorporate delays (sleeps, 43 /// * As a job which will be run in a single-threaded job engine. Such jobs must not incorporate delays (sleeps,
44 /// network waits, etc.). 44 /// network waits, etc.).
45 /// 45 ///
46 /// This is an evolving approach to better manage the work that OpenSimulator is asked to do from a very diverse 46 /// This is an evolving approach to better manage the work that OpenSimulator is asked to do from a very diverse
47 /// range of sources (client actions, incoming network, outgoing network calls, etc.). 47 /// range of sources (client actions, incoming network, outgoing network calls, etc.).
48 /// 48 ///
49 /// Util.FireAndForget is still available to insert jobs in the threadpool, though this is equivalent to 49 /// Util.FireAndForget is still available to insert jobs in the threadpool, though this is equivalent to
50 /// WorkManager.RunInThreadPool(). 50 /// WorkManager.RunInThreadPool().
51 /// </remarks> 51 /// </remarks>
@@ -122,7 +122,7 @@ namespace OpenSim.Framework.Monitoring
122 thread.Priority = priority; 122 thread.Priority = priority;
123 thread.IsBackground = isBackground; 123 thread.IsBackground = isBackground;
124 thread.Name = name; 124 thread.Name = name;
125 125
126 Watchdog.ThreadWatchdogInfo twi 126 Watchdog.ThreadWatchdogInfo twi
127 = new Watchdog.ThreadWatchdogInfo(thread, timeout, name) 127 = new Watchdog.ThreadWatchdogInfo(thread, timeout, name)
128 { AlarmIfTimeout = alarmIfTimeout, AlarmMethod = alarmMethod }; 128 { AlarmIfTimeout = alarmIfTimeout, AlarmMethod = alarmMethod };
@@ -144,7 +144,7 @@ namespace OpenSim.Framework.Monitoring
144 /// <param name="name">Name of the thread</param> 144 /// <param name="name">Name of the thread</param>
145 public static void RunInThread(WaitCallback callback, object obj, string name, bool log = false) 145 public static void RunInThread(WaitCallback callback, object obj, string name, bool log = false)
146 { 146 {
147 if (Util.FireAndForgetMethod == FireAndForgetMethod.RegressionTest) 147 if (Util.FireAndForgetMethod == FireAndForgetMethod.RegressionTest)
148 { 148 {
149 Culture.SetCurrentCulture(); 149 Culture.SetCurrentCulture();
150 callback(obj); 150 callback(obj);
@@ -169,7 +169,7 @@ namespace OpenSim.Framework.Monitoring
169 } 169 }
170 170
171 /// <summary> 171 /// <summary>
172 /// Run the callback via a threadpool thread. 172 /// Run the callback via a threadpool thread.
173 /// </summary> 173 /// </summary>
174 /// <remarks> 174 /// <remarks>
175 /// Such jobs may run after some delay but must always complete. 175 /// Such jobs may run after some delay but must always complete.
@@ -188,17 +188,17 @@ namespace OpenSim.Framework.Monitoring
188 /// <remarks> 188 /// <remarks>
189 /// This differs from direct scheduling (e.g. Util.FireAndForget) in that a job can be run in the job 189 /// This differs from direct scheduling (e.g. Util.FireAndForget) in that a job can be run in the job
190 /// engine if it is running, where all jobs are currently performed in sequence on a single thread. This is 190 /// engine if it is running, where all jobs are currently performed in sequence on a single thread. This is
191 /// to prevent observed overload and server freeze problems when there are hundreds of connections which all attempt to 191 /// to prevent observed overload and server freeze problems when there are hundreds of connections which all attempt to
192 /// perform work at once (e.g. in conference situations). With lower numbers of connections, the small 192 /// perform work at once (e.g. in conference situations). With lower numbers of connections, the small
193 /// delay in performing jobs in sequence rather than concurrently has not been notiecable in testing, though a future more 193 /// delay in performing jobs in sequence rather than concurrently has not been notiecable in testing, though a future more
194 /// sophisticated implementation could perform jobs concurrently when the server is under low load. 194 /// sophisticated implementation could perform jobs concurrently when the server is under low load.
195 /// 195 ///
196 /// However, be advised that some callers of this function rely on all jobs being performed in sequence if any 196 /// However, be advised that some callers of this function rely on all jobs being performed in sequence if any
197 /// jobs are performed in sequence (i.e. if jobengine is active or not). Therefore, expanding the jobengine 197 /// jobs are performed in sequence (i.e. if jobengine is active or not). Therefore, expanding the jobengine
198 /// beyond a single thread will require considerable thought. 198 /// beyond a single thread will require considerable thought.
199 /// 199 ///
200 /// Also, any jobs submitted must be guaranteed to complete within a reasonable timeframe (e.g. they cannot 200 /// Also, any jobs submitted must be guaranteed to complete within a reasonable timeframe (e.g. they cannot
201 /// incorporate a network delay with a long timeout). At the moment, work that could suffer such issues 201 /// incorporate a network delay with a long timeout). At the moment, work that could suffer such issues
202 /// should still be run directly with RunInThread(), Util.FireAndForget(), etc. This is another area where 202 /// should still be run directly with RunInThread(), Util.FireAndForget(), etc. This is another area where
203 /// the job engine could be improved and so CPU utilization improved by better management of concurrency within 203 /// the job engine could be improved and so CPU utilization improved by better management of concurrency within
204 /// OpenSimulator. 204 /// OpenSimulator.
@@ -212,10 +212,10 @@ namespace OpenSim.Framework.Monitoring
212 /// <param name="log">If set to true then extra logging is performed.</param> 212 /// <param name="log">If set to true then extra logging is performed.</param>
213 public static void RunJob( 213 public static void RunJob(
214 string jobType, WaitCallback callback, object obj, string name, 214 string jobType, WaitCallback callback, object obj, string name,
215 bool canRunInThisThread = false, bool mustNotTimeout = false, 215 bool canRunInThisThread = false, bool mustNotTimeout = false,
216 bool log = false) 216 bool log = false)
217 { 217 {
218 if (Util.FireAndForgetMethod == FireAndForgetMethod.RegressionTest) 218 if (Util.FireAndForgetMethod == FireAndForgetMethod.RegressionTest)
219 { 219 {
220 Culture.SetCurrentCulture(); 220 Culture.SetCurrentCulture();
221 callback(obj); 221 callback(obj);
@@ -273,16 +273,16 @@ namespace OpenSim.Framework.Monitoring
273 MainConsole.Instance.Output("Usage: debug jobengine log <level>"); 273 MainConsole.Instance.Output("Usage: debug jobengine log <level>");
274 return; 274 return;
275 } 275 }
276 276
277 // int logLevel; 277 // int logLevel;
278 int logLevel = int.Parse(args[3]); 278 int logLevel = int.Parse(args[3]);
279 // if (ConsoleUtil.TryParseConsoleInt(MainConsole.Instance, args[4], out logLevel)) 279 // if (ConsoleUtil.TryParseConsoleInt(MainConsole.Instance, args[4], out logLevel))
280 // { 280 // {
281 JobEngine.LogLevel = logLevel; 281 JobEngine.LogLevel = logLevel;
282 MainConsole.Instance.OutputFormat("Set debug log level to {0}", JobEngine.LogLevel); 282 MainConsole.Instance.OutputFormat("Set debug log level to {0}", JobEngine.LogLevel);
283 // } 283 // }
284 } 284 }
285 else 285 else
286 { 286 {
287 MainConsole.Instance.OutputFormat("Unrecognized job engine subcommand {0}", subCommand); 287 MainConsole.Instance.OutputFormat("Unrecognized job engine subcommand {0}", subCommand);
288 } 288 }
diff --git a/OpenSim/Framework/NetworkUtil.cs b/OpenSim/Framework/NetworkUtil.cs
index 2e94b0d..93c9446 100644
--- a/OpenSim/Framework/NetworkUtil.cs
+++ b/OpenSim/Framework/NetworkUtil.cs
@@ -40,7 +40,7 @@ namespace OpenSim.Framework
40 /// Handles NAT translation in a 'manner of speaking' 40 /// Handles NAT translation in a 'manner of speaking'
41 /// Allows you to return multiple different external 41 /// Allows you to return multiple different external
42 /// hostnames depending on the requestors network 42 /// hostnames depending on the requestors network
43 /// 43 ///
44 /// This enables standard port forwarding techniques 44 /// This enables standard port forwarding techniques
45 /// to work correctly with OpenSim. 45 /// to work correctly with OpenSim.
46 /// </summary> 46 /// </summary>
@@ -145,7 +145,7 @@ namespace OpenSim.Framework
145 byte[] subnetBytes = subnet.Value.GetAddressBytes(); 145 byte[] subnetBytes = subnet.Value.GetAddressBytes();
146 byte[] localBytes = subnet.Key.GetAddressBytes(); 146 byte[] localBytes = subnet.Key.GetAddressBytes();
147 byte[] destBytes = destination.GetAddressBytes(); 147 byte[] destBytes = destination.GetAddressBytes();
148 148
149 if (subnetBytes.Length != destBytes.Length || subnetBytes.Length != localBytes.Length) 149 if (subnetBytes.Length != destBytes.Length || subnetBytes.Length != localBytes.Length)
150 return null; 150 return null;
151 151
diff --git a/OpenSim/Framework/OutboundUrlFilter.cs b/OpenSim/Framework/OutboundUrlFilter.cs
index baa3647..ee4707f 100644
--- a/OpenSim/Framework/OutboundUrlFilter.cs
+++ b/OpenSim/Framework/OutboundUrlFilter.cs
@@ -49,8 +49,8 @@ namespace OpenSim.Framework
49 private List<IPEndPoint> m_blacklistExceptionEndPoints; 49 private List<IPEndPoint> m_blacklistExceptionEndPoints;
50 50
51 public OutboundUrlFilter( 51 public OutboundUrlFilter(
52 string name, 52 string name,
53 List<IPNetwork> blacklistNetworks, List<IPEndPoint> blacklistEndPoints, 53 List<IPNetwork> blacklistNetworks, List<IPEndPoint> blacklistEndPoints,
54 List<IPNetwork> blacklistExceptionNetworks, List<IPEndPoint> blacklistExceptionEndPoints) 54 List<IPNetwork> blacklistExceptionNetworks, List<IPEndPoint> blacklistExceptionEndPoints)
55 { 55 {
56 Name = name; 56 Name = name;
@@ -79,7 +79,7 @@ namespace OpenSim.Framework
79 if (networkConfig != null) 79 if (networkConfig != null)
80 { 80 {
81 configBlacklist = networkConfig.GetString("OutboundDisallowForUserScripts", configBlacklist); 81 configBlacklist = networkConfig.GetString("OutboundDisallowForUserScripts", configBlacklist);
82 configBlacklistExceptions 82 configBlacklistExceptions
83 = networkConfig.GetString("OutboundDisallowForUserScriptsExcept", configBlacklistExceptions); 83 = networkConfig.GetString("OutboundDisallowForUserScriptsExcept", configBlacklistExceptions);
84 } 84 }
85 85
@@ -98,7 +98,7 @@ namespace OpenSim.Framework
98 string fullConfigEntry, string filterName, out List<IPNetwork> networks, out List<IPEndPoint> endPoints) 98 string fullConfigEntry, string filterName, out List<IPNetwork> networks, out List<IPEndPoint> endPoints)
99 { 99 {
100 // Parse blacklist 100 // Parse blacklist
101 string[] configBlacklistEntries 101 string[] configBlacklistEntries
102 = fullConfigEntry.Split(new char[] { '|' }, StringSplitOptions.RemoveEmptyEntries); 102 = fullConfigEntry.Split(new char[] { '|' }, StringSplitOptions.RemoveEmptyEntries);
103 103
104 configBlacklistEntries = configBlacklistEntries.Select(e => e.Trim()).ToArray(); 104 configBlacklistEntries = configBlacklistEntries.Select(e => e.Trim()).ToArray();
@@ -129,7 +129,7 @@ namespace OpenSim.Framework
129 if (!Uri.TryCreate("http://" + configEntry, UriKind.Absolute, out configEntryUri)) 129 if (!Uri.TryCreate("http://" + configEntry, UriKind.Absolute, out configEntryUri))
130 { 130 {
131 m_log.ErrorFormat( 131 m_log.ErrorFormat(
132 "[OUTBOUND URL FILTER]: EndPoint entry [{0}] is invalid endpoint for {1}", 132 "[OUTBOUND URL FILTER]: EndPoint entry [{0}] is invalid endpoint for {1}",
133 configEntry, filterName); 133 configEntry, filterName);
134 134
135 continue; 135 continue;
@@ -184,14 +184,14 @@ namespace OpenSim.Framework
184 foreach (IPEndPoint ep in endPoints) 184 foreach (IPEndPoint ep in endPoints)
185 { 185 {
186// m_log.DebugFormat( 186// m_log.DebugFormat(
187// "[OUTBOUND URL FILTER]: Checking [{0}:{1}] against endpoint [{2}]", 187// "[OUTBOUND URL FILTER]: Checking [{0}:{1}] against endpoint [{2}]",
188// addr, port, ep); 188// addr, port, ep);
189 189
190 if (addr.Equals(ep.Address) && port == ep.Port) 190 if (addr.Equals(ep.Address) && port == ep.Port)
191 { 191 {
192// m_log.DebugFormat( 192// m_log.DebugFormat(
193// "[OUTBOUND URL FILTER]: Found [{0}:{1}] in endpoint [{2}]", addr, port, ep); 193// "[OUTBOUND URL FILTER]: Found [{0}:{1}] in endpoint [{2}]", addr, port, ep);
194 194
195 return true; 195 return true;
196 } 196 }
197 } 197 }
@@ -228,7 +228,7 @@ namespace OpenSim.Framework
228// m_log.DebugFormat("[OUTBOUND URL FILTER]: Found [{0}] in blacklist for {1}", url, Name); 228// m_log.DebugFormat("[OUTBOUND URL FILTER]: Found [{0}] in blacklist for {1}", url, Name);
229 229
230 // Check blacklist exceptions 230 // Check blacklist exceptions
231 allowed 231 allowed
232 = OutboundUrlFilter.IsInNetwork( 232 = OutboundUrlFilter.IsInNetwork(
233 addr, url.Port, m_blacklistExceptionNetworks, m_blacklistExceptionEndPoints, Name); 233 addr, url.Port, m_blacklistExceptionNetworks, m_blacklistExceptionEndPoints, Name);
234 234
diff --git a/OpenSim/Framework/PluginManager.cs b/OpenSim/Framework/PluginManager.cs
index 0117096..0c94fcb 100644
--- a/OpenSim/Framework/PluginManager.cs
+++ b/OpenSim/Framework/PluginManager.cs
@@ -44,17 +44,17 @@ namespace OpenSim.Framework
44 /// <summary> 44 /// <summary>
45 /// Manager for registries and plugins 45 /// Manager for registries and plugins
46 /// </summary> 46 /// </summary>
47 public class PluginManager : SetupService 47 public class PluginManager : SetupService
48 { 48 {
49 public AddinRegistry PluginRegistry; 49 public AddinRegistry PluginRegistry;
50 50
51 public PluginManager(AddinRegistry registry): base (registry) 51 public PluginManager(AddinRegistry registry): base (registry)
52 { 52 {
53 PluginRegistry = registry; 53 PluginRegistry = registry;
54 54
55 } 55 }
56 56
57 /// <summary> 57 /// <summary>
58 /// Installs the plugin. 58 /// Installs the plugin.
59 /// </summary> 59 /// </summary>
60 /// <returns> 60 /// <returns>
@@ -97,14 +97,14 @@ namespace OpenSim.Framework
97 Addin addin = PluginRegistry.GetAddin(aentry.Addin.Id); 97 Addin addin = PluginRegistry.GetAddin(aentry.Addin.Id);
98 PluginRegistry.DisableAddin(addin.Id); 98 PluginRegistry.DisableAddin(addin.Id);
99 addin.Enabled = false; 99 addin.Enabled = false;
100 100
101 MainConsole.Instance.Output("Installation Success"); 101 MainConsole.Instance.Output("Installation Success");
102 ListInstalledAddins(out res); 102 ListInstalledAddins(out res);
103 result = res; 103 result = res;
104 return true; 104 return true;
105 } 105 }
106 else 106 else
107 { 107 {
108 MainConsole.Instance.Output("Installation Failed"); 108 MainConsole.Instance.Output("Installation Failed");
109 result = res; 109 result = res;
110 return false; 110 return false;
@@ -159,11 +159,11 @@ namespace OpenSim.Framework
159 { 159 {
160 Dictionary<string, object> res = new Dictionary<string, object>(); 160 Dictionary<string, object> res = new Dictionary<string, object>();
161 161
162 Addin[] addins = GetSortedAddinList("RobustPlugin"); 162 Addin[] addins = GetSortedAddinList("RobustPlugin");
163 if(addins.Count() < 1) 163 if(addins.Count() < 1)
164 { 164 {
165 MainConsole.Instance.Output("Error!"); 165 MainConsole.Instance.Output("Error!");
166 } 166 }
167 int count = 0; 167 int count = 0;
168 foreach (Addin addin in addins) 168 foreach (Addin addin in addins)
169 { 169 {
@@ -377,7 +377,7 @@ namespace OpenSim.Framework
377 r["enabled"] = rep.Enabled == true ? true : false; 377 r["enabled"] = rep.Enabled == true ? true : false;
378 r["name"] = rep.Name; 378 r["name"] = rep.Name;
379 r["url"] = rep.Url; 379 r["url"] = rep.Url;
380 380
381 res.Add(count.ToString(), r); 381 res.Add(count.ToString(), r);
382 count++; 382 count++;
383 } 383 }
@@ -493,7 +493,7 @@ namespace OpenSim.Framework
493 } 493 }
494 494
495 495
496 496
497 #region Util 497 #region Util
498 private void Testing() 498 private void Testing()
499 { 499 {
@@ -537,15 +537,15 @@ namespace OpenSim.Framework
537 537
538 ArrayList xlist = new ArrayList(); 538 ArrayList xlist = new ArrayList();
539 ArrayList list = new ArrayList(); 539 ArrayList list = new ArrayList();
540 try 540 try
541 { 541 {
542 list.AddRange(PluginRegistry.GetAddins()); 542 list.AddRange(PluginRegistry.GetAddins());
543 } 543 }
544 catch (Exception) 544 catch (Exception)
545 { 545 {
546 Addin[] x = xlist.ToArray(typeof(Addin)) as Addin[]; 546 Addin[] x = xlist.ToArray(typeof(Addin)) as Addin[];
547 return x; 547 return x;
548 } 548 }
549 549
550 foreach (Addin addin in list) 550 foreach (Addin addin in list)
551 { 551 {
@@ -559,5 +559,5 @@ namespace OpenSim.Framework
559 return addins; 559 return addins;
560 } 560 }
561 #endregion Util 561 #endregion Util
562 } 562 }
563} 563}
diff --git a/OpenSim/Framework/PrimeNumberHelper.cs b/OpenSim/Framework/PrimeNumberHelper.cs
index 477c274..5a1b3b2 100644
--- a/OpenSim/Framework/PrimeNumberHelper.cs
+++ b/OpenSim/Framework/PrimeNumberHelper.cs
@@ -35,7 +35,7 @@ namespace OpenSim.Framework
35 public static class PrimeNumberHelper 35 public static class PrimeNumberHelper
36 { 36 {
37 /// <summary> 37 /// <summary>
38 /// Precalculated prime numbers. 38 /// Precalculated prime numbers.
39 /// </summary> 39 /// </summary>
40 private static readonly int[] Primes = new int[] 40 private static readonly int[] Primes = new int[]
41 { 41 {
diff --git a/OpenSim/Framework/PrimitiveBaseShape.cs b/OpenSim/Framework/PrimitiveBaseShape.cs
index 6a12a45..29985d2 100644
--- a/OpenSim/Framework/PrimitiveBaseShape.cs
+++ b/OpenSim/Framework/PrimitiveBaseShape.cs
@@ -238,8 +238,8 @@ namespace OpenSim.Framework
238 SculptTexture = prim.Sculpt.SculptTexture; 238 SculptTexture = prim.Sculpt.SculptTexture;
239 SculptType = (byte)prim.Sculpt.Type; 239 SculptType = (byte)prim.Sculpt.Type;
240 } 240 }
241 else 241 else
242 { 242 {
243 SculptType = (byte)OpenMetaverse.SculptType.None; 243 SculptType = (byte)OpenMetaverse.SculptType.None;
244 } 244 }
245 } 245 }
diff --git a/OpenSim/Framework/PriorityQueue.cs b/OpenSim/Framework/PriorityQueue.cs
index fec01da..5b9185e 100644
--- a/OpenSim/Framework/PriorityQueue.cs
+++ b/OpenSim/Framework/PriorityQueue.cs
@@ -57,11 +57,11 @@ namespace OpenSim.Framework
57 private Dictionary<uint, LookupItem> m_lookupTable; 57 private Dictionary<uint, LookupItem> m_lookupTable;
58 58
59 // internal state used to ensure the deqeues are spread across the priority 59 // internal state used to ensure the deqeues are spread across the priority
60 // queues "fairly". queuecounts is the amount to pull from each queue in 60 // queues "fairly". queuecounts is the amount to pull from each queue in
61 // each pass. weighted towards the higher priority queues 61 // each pass. weighted towards the higher priority queues
62 private uint m_nextQueue = 0; 62 private uint m_nextQueue = 0;
63 private uint m_countFromQueue = 0; 63 private uint m_countFromQueue = 0;
64 // first queues are imediate, so no counts 64 // first queues are imediate, so no counts
65// private uint[] m_queueCounts = { 0, 0, 8, 4, 4, 2, 2, 2, 2, 1, 1, 1 }; 65// private uint[] m_queueCounts = { 0, 0, 8, 4, 4, 2, 2, 2, 2, 1, 1, 1 };
66 private uint[] m_queueCounts = {0, 0, 8, 8, 5, 4, 3, 2, 1, 1, 1, 1}; 66 private uint[] m_queueCounts = {0, 0, 8, 8, 5, 4, 3, 2, 1, 1, 1, 1};
67 // this is ava, ava, attach, <10m, 20,40,80,160m,320,640,1280, + 67 // this is ava, ava, attach, <10m, 20,40,80,160m,320,640,1280, +
@@ -105,7 +105,7 @@ namespace OpenSim.Framework
105 int count = 0; 105 int count = 0;
106 for (int i = 0; i < m_heaps.Length; ++i) 106 for (int i = 0; i < m_heaps.Length; ++i)
107 count += m_heaps[i].Count; 107 count += m_heaps[i].Count;
108 108
109 return count; 109 return count;
110 } 110 }
111 } 111 }
@@ -170,26 +170,26 @@ namespace OpenSim.Framework
170 return true; 170 return true;
171 } 171 }
172 } 172 }
173 173
174 // To get the fair queing, we cycle through each of the 174 // To get the fair queing, we cycle through each of the
175 // queues when finding an element to dequeue. 175 // queues when finding an element to dequeue.
176 // We pull (NumberOfQueues - QueueIndex) items from each queue in order 176 // We pull (NumberOfQueues - QueueIndex) items from each queue in order
177 // to give lower numbered queues a higher priority and higher percentage 177 // to give lower numbered queues a higher priority and higher percentage
178 // of the bandwidth. 178 // of the bandwidth.
179 179
180 // Check for more items to be pulled from the current queue 180 // Check for more items to be pulled from the current queue
181 if (m_heaps[m_nextQueue].Count > 0 && m_countFromQueue > 0) 181 if (m_heaps[m_nextQueue].Count > 0 && m_countFromQueue > 0)
182 { 182 {
183 m_countFromQueue--; 183 m_countFromQueue--;
184 184
185 MinHeapItem item = m_heaps[m_nextQueue].RemoveMin(); 185 MinHeapItem item = m_heaps[m_nextQueue].RemoveMin();
186 m_lookupTable.Remove(item.Value.Entity.LocalId); 186 m_lookupTable.Remove(item.Value.Entity.LocalId);
187 timeinqueue = Util.EnvironmentTickCountSubtract(item.EntryTime); 187 timeinqueue = Util.EnvironmentTickCountSubtract(item.EntryTime);
188 value = item.Value; 188 value = item.Value;
189 189
190 return true; 190 return true;
191 } 191 }
192 192
193 // Find the next non-immediate queue with updates in it 193 // Find the next non-immediate queue with updates in it
194 for (uint i = NumberOfImmediateQueues; i < NumberOfQueues; ++i) 194 for (uint i = NumberOfImmediateQueues; i < NumberOfQueues; ++i)
195 { 195 {
@@ -198,7 +198,7 @@ namespace OpenSim.Framework
198 m_nextQueue = NumberOfImmediateQueues; 198 m_nextQueue = NumberOfImmediateQueues;
199 199
200 m_countFromQueue = m_queueCounts[m_nextQueue]; 200 m_countFromQueue = m_queueCounts[m_nextQueue];
201 201
202 if (m_heaps[m_nextQueue].Count > 0) 202 if (m_heaps[m_nextQueue].Count > 0)
203 { 203 {
204 m_countFromQueue--; 204 m_countFromQueue--;
@@ -218,7 +218,7 @@ namespace OpenSim.Framework
218 218
219 /// <summary> 219 /// <summary>
220 /// Reapply the prioritization function to each of the updates currently 220 /// Reapply the prioritization function to each of the updates currently
221 /// stored in the priority queues. 221 /// stored in the priority queues.
222 /// </summary 222 /// </summary
223 public void Reprioritize(UpdatePriorityHandler handler) 223 public void Reprioritize(UpdatePriorityHandler handler)
224 { 224 {
diff --git a/OpenSim/Framework/RegionInfo.cs b/OpenSim/Framework/RegionInfo.cs
index 8f754a5..99e97e8 100644
--- a/OpenSim/Framework/RegionInfo.cs
+++ b/OpenSim/Framework/RegionInfo.cs
@@ -376,7 +376,7 @@ namespace OpenSim.Framework
376 } 376 }
377 377
378 public string MaptileStaticFile { get; private set; } 378 public string MaptileStaticFile { get; private set; }
379 379
380 /// <summary> 380 /// <summary>
381 /// The port by which http communication occurs with the region (most noticeably, CAPS communication) 381 /// The port by which http communication occurs with the region (most noticeably, CAPS communication)
382 /// </summary> 382 /// </summary>
@@ -389,17 +389,17 @@ namespace OpenSim.Framework
389 /// <summary> 389 /// <summary>
390 /// A well-formed URI for the host region server (namely "http://" + ExternalHostName) 390 /// A well-formed URI for the host region server (namely "http://" + ExternalHostName)
391 /// </summary> 391 /// </summary>
392 392
393 public string ServerURI 393 public string ServerURI
394 { 394 {
395 get { 395 get {
396 if ( m_serverURI != string.Empty ) { 396 if ( m_serverURI != string.Empty ) {
397 return m_serverURI; 397 return m_serverURI;
398 } else { 398 } else {
399 return "http://" + m_externalHostName + ":" + m_httpPort + "/"; 399 return "http://" + m_externalHostName + ":" + m_httpPort + "/";
400 } 400 }
401 } 401 }
402 set { 402 set {
403 if ( value.EndsWith("/") ) { 403 if ( value.EndsWith("/") ) {
404 m_serverURI = value; 404 m_serverURI = value;
405 } else { 405 } else {
@@ -749,10 +749,10 @@ namespace OpenSim.Framework
749 749
750 m_physPrimMax = config.GetInt("PhysicalPrimMax", 0); 750 m_physPrimMax = config.GetInt("PhysicalPrimMax", 0);
751 allKeys.Remove("PhysicalPrimMax"); 751 allKeys.Remove("PhysicalPrimMax");
752 752
753 m_clampPrimSize = config.GetBoolean("ClampPrimSize", false); 753 m_clampPrimSize = config.GetBoolean("ClampPrimSize", false);
754 allKeys.Remove("ClampPrimSize"); 754 allKeys.Remove("ClampPrimSize");
755 755
756 m_objectCapacity = config.GetInt("MaxPrims", 15000); 756 m_objectCapacity = config.GetInt("MaxPrims", 15000);
757 allKeys.Remove("MaxPrims"); 757 allKeys.Remove("MaxPrims");
758 758
@@ -766,12 +766,12 @@ namespace OpenSim.Framework
766 string mapTileStaticUUID = config.GetString("MaptileStaticUUID", UUID.Zero.ToString()); 766 string mapTileStaticUUID = config.GetString("MaptileStaticUUID", UUID.Zero.ToString());
767 if (UUID.TryParse(mapTileStaticUUID.Trim(), out m_maptileStaticUUID)) 767 if (UUID.TryParse(mapTileStaticUUID.Trim(), out m_maptileStaticUUID))
768 { 768 {
769 config.Set("MaptileStaticUUID", m_maptileStaticUUID.ToString()); 769 config.Set("MaptileStaticUUID", m_maptileStaticUUID.ToString());
770 } 770 }
771 771
772 MaptileStaticFile = config.GetString("MaptileStaticFile", String.Empty); 772 MaptileStaticFile = config.GetString("MaptileStaticFile", String.Empty);
773 allKeys.Remove("MaptileStaticFile"); 773 allKeys.Remove("MaptileStaticFile");
774 774
775 #endregion 775 #endregion
776 776
777 AgentCapacity = config.GetInt("MaxAgents", 100); 777 AgentCapacity = config.GetInt("MaxAgents", 100);
@@ -919,10 +919,10 @@ namespace OpenSim.Framework
919 919
920 if (m_physPrimMin > 0) 920 if (m_physPrimMin > 0)
921 config.Set("PhysicalPrimMax", m_physPrimMin); 921 config.Set("PhysicalPrimMax", m_physPrimMin);
922 922
923 if (m_physPrimMax > 0) 923 if (m_physPrimMax > 0)
924 config.Set("PhysicalPrimMax", m_physPrimMax); 924 config.Set("PhysicalPrimMax", m_physPrimMax);
925 925
926 config.Set("ClampPrimSize", m_clampPrimSize.ToString()); 926 config.Set("ClampPrimSize", m_clampPrimSize.ToString());
927 927
928 if (m_objectCapacity > 0) 928 if (m_objectCapacity > 0)
@@ -1038,7 +1038,7 @@ namespace OpenSim.Framework
1038 1038
1039 configMember.addConfigurationOption("region_type", ConfigurationOption.ConfigurationTypes.TYPE_STRING, 1039 configMember.addConfigurationOption("region_type", ConfigurationOption.ConfigurationTypes.TYPE_STRING,
1040 "Free form string describing the type of region", String.Empty, true); 1040 "Free form string describing the type of region", String.Empty, true);
1041 1041
1042 configMember.addConfigurationOption("region_static_maptile", ConfigurationOption.ConfigurationTypes.TYPE_UUID, 1042 configMember.addConfigurationOption("region_static_maptile", ConfigurationOption.ConfigurationTypes.TYPE_UUID,
1043 "UUID of a texture to use as the map for this region", m_maptileStaticUUID.ToString(), true); 1043 "UUID of a texture to use as the map for this region", m_maptileStaticUUID.ToString(), true);
1044 } 1044 }
@@ -1090,7 +1090,7 @@ namespace OpenSim.Framework
1090 1090
1091 configMember.addConfigurationOption("object_capacity", ConfigurationOption.ConfigurationTypes.TYPE_INT32, 1091 configMember.addConfigurationOption("object_capacity", ConfigurationOption.ConfigurationTypes.TYPE_INT32,
1092 "Max objects this sim will hold", "15000", true); 1092 "Max objects this sim will hold", "15000", true);
1093 1093
1094 configMember.addConfigurationOption("agent_capacity", ConfigurationOption.ConfigurationTypes.TYPE_INT32, 1094 configMember.addConfigurationOption("agent_capacity", ConfigurationOption.ConfigurationTypes.TYPE_INT32,
1095 "Max avatars this sim will hold", "100", true); 1095 "Max avatars this sim will hold", "100", true);
1096 1096
@@ -1307,8 +1307,8 @@ namespace OpenSim.Framework
1307 kvp["http_port"] = HttpPort.ToString(); 1307 kvp["http_port"] = HttpPort.ToString();
1308 kvp["internal_ip_address"] = InternalEndPoint.Address.ToString(); 1308 kvp["internal_ip_address"] = InternalEndPoint.Address.ToString();
1309 kvp["internal_port"] = InternalEndPoint.Port.ToString(); 1309 kvp["internal_port"] = InternalEndPoint.Port.ToString();
1310 // TODO: Remove in next major version 1310 // TODO: Remove in next major version
1311 kvp["alternate_ports"] = "False"; 1311 kvp["alternate_ports"] = "False";
1312 kvp["server_uri"] = ServerURI; 1312 kvp["server_uri"] = ServerURI;
1313 1313
1314 return kvp; 1314 return kvp;
diff --git a/OpenSim/Framework/RegionSettings.cs b/OpenSim/Framework/RegionSettings.cs
index dec01ea..c2947a2 100644
--- a/OpenSim/Framework/RegionSettings.cs
+++ b/OpenSim/Framework/RegionSettings.cs
@@ -91,7 +91,7 @@ namespace OpenSim.Framework
91 string[] parts = str.Split(','); 91 string[] parts = str.Split(',');
92 if (parts.Length != 3) 92 if (parts.Length != 3)
93 throw new ArgumentException("Invalid string: " + str); 93 throw new ArgumentException("Invalid string: " + str);
94 94
95 SpawnPoint sp = new SpawnPoint(); 95 SpawnPoint sp = new SpawnPoint();
96 sp.Yaw = float.Parse(parts[0]); 96 sp.Yaw = float.Parse(parts[0]);
97 sp.Pitch = float.Parse(parts[1]); 97 sp.Pitch = float.Parse(parts[1]);
@@ -105,7 +105,7 @@ namespace OpenSim.Framework
105 public delegate void SaveDelegate(RegionSettings rs); 105 public delegate void SaveDelegate(RegionSettings rs);
106 106
107 public event SaveDelegate OnSave; 107 public event SaveDelegate OnSave;
108 108
109 /// <value> 109 /// <value>
110 /// These appear to be terrain textures that are shipped with the client. 110 /// These appear to be terrain textures that are shipped with the client.
111 /// </value> 111 /// </value>
@@ -454,24 +454,24 @@ namespace OpenSim.Framework
454 get { return m_LoadedCreationDateTime; } 454 get { return m_LoadedCreationDateTime; }
455 set { m_LoadedCreationDateTime = value; } 455 set { m_LoadedCreationDateTime = value; }
456 } 456 }
457 457
458 public String LoadedCreationDate 458 public String LoadedCreationDate
459 { 459 {
460 get 460 get
461 { 461 {
462 TimeSpan ts = new TimeSpan(0, 0, LoadedCreationDateTime); 462 TimeSpan ts = new TimeSpan(0, 0, LoadedCreationDateTime);
463 DateTime stamp = new DateTime(1970, 1, 1) + ts; 463 DateTime stamp = new DateTime(1970, 1, 1) + ts;
464 return stamp.ToLongDateString(); 464 return stamp.ToLongDateString();
465 } 465 }
466 } 466 }
467 467
468 public String LoadedCreationTime 468 public String LoadedCreationTime
469 { 469 {
470 get 470 get
471 { 471 {
472 TimeSpan ts = new TimeSpan(0, 0, LoadedCreationDateTime); 472 TimeSpan ts = new TimeSpan(0, 0, LoadedCreationDateTime);
473 DateTime stamp = new DateTime(1970, 1, 1) + ts; 473 DateTime stamp = new DateTime(1970, 1, 1) + ts;
474 return stamp.ToLongTimeString(); 474 return stamp.ToLongTimeString();
475 } 475 }
476 } 476 }
477 477
diff --git a/OpenSim/Framework/RestClient.cs b/OpenSim/Framework/RestClient.cs
index 26237de..0166d9d 100644
--- a/OpenSim/Framework/RestClient.cs
+++ b/OpenSim/Framework/RestClient.cs
@@ -156,7 +156,7 @@ namespace OpenSim.Framework
156 public void Dispose() 156 public void Dispose()
157 { 157 {
158 Dispose(true); 158 Dispose(true);
159 GC.SuppressFinalize(this); 159 GC.SuppressFinalize(this);
160 } 160 }
161 161
162 protected virtual void Dispose(bool disposing) 162 protected virtual void Dispose(bool disposing)
diff --git a/OpenSim/Framework/SLUtil.cs b/OpenSim/Framework/SLUtil.cs
index e66d5be..9458625 100644
--- a/OpenSim/Framework/SLUtil.cs
+++ b/OpenSim/Framework/SLUtil.cs
@@ -44,7 +44,7 @@ namespace OpenSim.Framework
44 Material = -2 44 Material = -2
45 } 45 }
46 46
47 47
48 #region SL / file extension / content-type conversions 48 #region SL / file extension / content-type conversions
49 49
50 /// <summary> 50 /// <summary>
@@ -175,10 +175,10 @@ namespace OpenSim.Framework
175 new TypeMapping(AssetType.Folder, FolderType.CurrentOutfit, "application/vnd.ll.currentoutfitfolder", "currentoutfitfolder"), 175 new TypeMapping(AssetType.Folder, FolderType.CurrentOutfit, "application/vnd.ll.currentoutfitfolder", "currentoutfitfolder"),
176 new TypeMapping(AssetType.Folder, FolderType.Outfit, "application/vnd.ll.outfitfolder", "outfitfolder"), 176 new TypeMapping(AssetType.Folder, FolderType.Outfit, "application/vnd.ll.outfitfolder", "outfitfolder"),
177 new TypeMapping(AssetType.Folder, FolderType.MyOutfits, "application/vnd.ll.myoutfitsfolder", "myoutfitsfolder"), 177 new TypeMapping(AssetType.Folder, FolderType.MyOutfits, "application/vnd.ll.myoutfitsfolder", "myoutfitsfolder"),
178 178
179 // This next mappping is an asset to inventory item mapping. 179 // This next mappping is an asset to inventory item mapping.
180 // Note: LL stores folders as assets of type Folder = 8, and it has a corresponding InventoryType = 8 180 // Note: LL stores folders as assets of type Folder = 8, and it has a corresponding InventoryType = 8
181 // OpenSim doesn't store folders as assets, so this mapping should only be used when parsing things from the viewer to the server 181 // OpenSim doesn't store folders as assets, so this mapping should only be used when parsing things from the viewer to the server
182 new TypeMapping(AssetType.Folder, InventoryType.Folder, "application/vnd.ll.folder", "folder"), 182 new TypeMapping(AssetType.Folder, InventoryType.Folder, "application/vnd.ll.folder", "folder"),
183 183
184 // OpenSim specific 184 // OpenSim specific
@@ -198,7 +198,7 @@ namespace OpenSim.Framework
198 inventory2Content = new Dictionary<sbyte, string>(); 198 inventory2Content = new Dictionary<sbyte, string>();
199 content2Asset = new Dictionary<string, sbyte>(); 199 content2Asset = new Dictionary<string, sbyte>();
200 content2Inventory = new Dictionary<string, sbyte>(); 200 content2Inventory = new Dictionary<string, sbyte>();
201 201
202 foreach (TypeMapping mapping in MAPPINGS) 202 foreach (TypeMapping mapping in MAPPINGS)
203 { 203 {
204 sbyte assetType = mapping.AssetTypeCode; 204 sbyte assetType = mapping.AssetTypeCode;
@@ -226,7 +226,7 @@ namespace OpenSim.Framework
226 } 226 }
227 } 227 }
228 } 228 }
229 229
230 public static string SLAssetTypeToContentType(int assetType) 230 public static string SLAssetTypeToContentType(int assetType)
231 { 231 {
232 string contentType; 232 string contentType;
@@ -406,7 +406,7 @@ namespace OpenSim.Framework
406 if(data[0] == "inv_item") 406 if(data[0] == "inv_item")
407 { 407 {
408 skipInventoryItem(reader); 408 skipInventoryItem(reader);
409 } 409 }
410 else if (line.IndexOf('{') >= 0) 410 else if (line.IndexOf('{') >= 0)
411 { 411 {
412 throw new NotANotecardFormatException(reader.LineNumber); 412 throw new NotANotecardFormatException(reader.LineNumber);
@@ -462,7 +462,7 @@ namespace OpenSim.Framework
462 { 462 {
463 int length = Int32.Parse(data[2]); 463 int length = Int32.Parse(data[2]);
464 notecardString = reader.getBlock(length); 464 notecardString = reader.getBlock(length);
465 } 465 }
466 else if (line.IndexOf('{') >= 0) 466 else if (line.IndexOf('{') >= 0)
467 { 467 {
468 throw new NotANotecardFormatException(reader.LineNumber); 468 throw new NotANotecardFormatException(reader.LineNumber);
diff --git a/OpenSim/Framework/Serialization/ArchiveConstants.cs b/OpenSim/Framework/Serialization/ArchiveConstants.cs
index ab3c285..9081411 100644
--- a/OpenSim/Framework/Serialization/ArchiveConstants.cs
+++ b/OpenSim/Framework/Serialization/ArchiveConstants.cs
@@ -72,12 +72,12 @@ namespace OpenSim.Framework.Serialization
72 /// Path for region settings. 72 /// Path for region settings.
73 /// </value> 73 /// </value>
74 public const string SETTINGS_PATH = "settings/"; 74 public const string SETTINGS_PATH = "settings/";
75 75
76 /// <value> 76 /// <value>
77 /// Path for region settings. 77 /// Path for region settings.
78 /// </value> 78 /// </value>
79 public const string LANDDATA_PATH = "landdata/"; 79 public const string LANDDATA_PATH = "landdata/";
80 80
81 /// <value> 81 /// <value>
82 /// Path for user profiles 82 /// Path for user profiles
83 /// </value> 83 /// </value>
diff --git a/OpenSim/Framework/Serialization/External/ExternalRepresentationUtils.cs b/OpenSim/Framework/Serialization/External/ExternalRepresentationUtils.cs
index 55640ac..1523fa9 100644
--- a/OpenSim/Framework/Serialization/External/ExternalRepresentationUtils.cs
+++ b/OpenSim/Framework/Serialization/External/ExternalRepresentationUtils.cs
@@ -106,13 +106,13 @@ namespace OpenSim.Framework.Serialization.External
106 { 106 {
107 errors = true; 107 errors = true;
108 parseExceptionAction(nodeToFill, nodeName, e); 108 parseExceptionAction(nodeToFill, nodeName, e);
109 109
110 if (xtr.EOF) 110 if (xtr.EOF)
111 { 111 {
112 m_log.Debug("[ExternalRepresentationUtils]: Aborting ExecuteReadProcessors due to unexpected end of XML"); 112 m_log.Debug("[ExternalRepresentationUtils]: Aborting ExecuteReadProcessors due to unexpected end of XML");
113 break; 113 break;
114 } 114 }
115 115
116 if (++numErrors == 10) 116 if (++numErrors == 10)
117 { 117 {
118 m_log.Debug("[ExternalRepresentationUtils]: Aborting ExecuteReadProcessors due to too many parsing errors"); 118 m_log.Debug("[ExternalRepresentationUtils]: Aborting ExecuteReadProcessors due to too many parsing errors");
@@ -369,7 +369,7 @@ namespace OpenSim.Framework.Serialization.External
369 break; 369 break;
370 370
371 case XmlNodeType.XmlDeclaration: 371 case XmlNodeType.XmlDeclaration:
372 // For various reasons, not all serializations have xml declarations (or consistent ones) 372 // For various reasons, not all serializations have xml declarations (or consistent ones)
373 // and as it's embedded inside a byte stream we don't need it anyway, so ignore. 373 // and as it's embedded inside a byte stream we don't need it anyway, so ignore.
374 break; 374 break;
375 375
diff --git a/OpenSim/Framework/Serialization/External/OspResolver.cs b/OpenSim/Framework/Serialization/External/OspResolver.cs
index fa7160f..a1e9d55 100644
--- a/OpenSim/Framework/Serialization/External/OspResolver.cs
+++ b/OpenSim/Framework/Serialization/External/OspResolver.cs
@@ -35,13 +35,13 @@ using OpenSim.Services.Interfaces;
35namespace OpenSim.Framework.Serialization 35namespace OpenSim.Framework.Serialization
36{ 36{
37 /// <summary> 37 /// <summary>
38 /// Resolves OpenSim Profile Anchors (OSPA). An OSPA is a string used to provide information for 38 /// Resolves OpenSim Profile Anchors (OSPA). An OSPA is a string used to provide information for
39 /// identifying user profiles or supplying a simple name if no profile is available. 39 /// identifying user profiles or supplying a simple name if no profile is available.
40 /// </summary> 40 /// </summary>
41 public class OspResolver 41 public class OspResolver
42 { 42 {
43 private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); 43 private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
44 44
45 public const string OSPA_PREFIX = "ospa:"; 45 public const string OSPA_PREFIX = "ospa:";
46 public const string OSPA_NAME_KEY = "n"; 46 public const string OSPA_NAME_KEY = "n";
47 public const string OSPA_NAME_VALUE_SEPARATOR = " "; 47 public const string OSPA_NAME_VALUE_SEPARATOR = " ";
@@ -76,7 +76,7 @@ namespace OpenSim.Framework.Serialization
76 76
77 return null; 77 return null;
78 } 78 }
79 79
80 /// <summary> 80 /// <summary>
81 /// Make an OSPA given a user name 81 /// Make an OSPA given a user name
82 /// </summary> 82 /// </summary>
@@ -89,17 +89,17 @@ namespace OpenSim.Framework.Serialization
89 89
90// m_log.DebugFormat("[OSP RESOLVER]: Made OSPA {0} for {1} {2}", ospa, firstName, lastName); 90// m_log.DebugFormat("[OSP RESOLVER]: Made OSPA {0} for {1} {2}", ospa, firstName, lastName);
91// System.Console.WriteLine("[OSP RESOLVER]: Made OSPA {0} for {1} {2}", ospa, firstName, lastName); 91// System.Console.WriteLine("[OSP RESOLVER]: Made OSPA {0} for {1} {2}", ospa, firstName, lastName);
92 92
93 return ospa; 93 return ospa;
94 } 94 }
95 95
96 /// <summary> 96 /// <summary>
97 /// Resolve an osp string into the most suitable internal OpenSim identifier. 97 /// Resolve an osp string into the most suitable internal OpenSim identifier.
98 /// </summary> 98 /// </summary>
99 /// 99 ///
100 /// In some cases this will be a UUID if a suitable profile exists on the system. In other cases, this may 100 /// In some cases this will be a UUID if a suitable profile exists on the system. In other cases, this may
101 /// just return the same identifier after creating a temporary profile. 101 /// just return the same identifier after creating a temporary profile.
102 /// 102 ///
103 /// <param name="ospa"></param> 103 /// <param name="ospa"></param>
104 /// <param name="commsManager"></param> 104 /// <param name="commsManager"></param>
105 /// <returns> 105 /// <returns>
@@ -111,14 +111,14 @@ namespace OpenSim.Framework.Serialization
111 if (!ospa.StartsWith(OSPA_PREFIX)) 111 if (!ospa.StartsWith(OSPA_PREFIX))
112 { 112 {
113// m_log.DebugFormat("[OSP RESOLVER]: ResolveOspa() got unrecognized format [{0}]", ospa); 113// m_log.DebugFormat("[OSP RESOLVER]: ResolveOspa() got unrecognized format [{0}]", ospa);
114 return UUID.Zero; 114 return UUID.Zero;
115 } 115 }
116 116
117// m_log.DebugFormat("[OSP RESOLVER]: Resolving {0}", ospa); 117// m_log.DebugFormat("[OSP RESOLVER]: Resolving {0}", ospa);
118 118
119 string ospaMeat = ospa.Substring(OSPA_PREFIX.Length); 119 string ospaMeat = ospa.Substring(OSPA_PREFIX.Length);
120 string[] ospaTuples = ospaMeat.Split(OSPA_TUPLE_SEPARATOR_ARRAY); 120 string[] ospaTuples = ospaMeat.Split(OSPA_TUPLE_SEPARATOR_ARRAY);
121 121
122 foreach (string tuple in ospaTuples) 122 foreach (string tuple in ospaTuples)
123 { 123 {
124 int tupleSeparatorIndex = tuple.IndexOf(OSPA_PAIR_SEPARATOR); 124 int tupleSeparatorIndex = tuple.IndexOf(OSPA_PAIR_SEPARATOR);
@@ -128,17 +128,17 @@ namespace OpenSim.Framework.Serialization
128 m_log.WarnFormat("[OSP RESOLVER]: Ignoring non-tuple component {0} in OSPA {1}", tuple, ospa); 128 m_log.WarnFormat("[OSP RESOLVER]: Ignoring non-tuple component {0} in OSPA {1}", tuple, ospa);
129 continue; 129 continue;
130 } 130 }
131 131
132 string key = tuple.Remove(tupleSeparatorIndex).Trim(); 132 string key = tuple.Remove(tupleSeparatorIndex).Trim();
133 string value = tuple.Substring(tupleSeparatorIndex + 1).Trim(); 133 string value = tuple.Substring(tupleSeparatorIndex + 1).Trim();
134 134
135 if (OSPA_NAME_KEY == key) 135 if (OSPA_NAME_KEY == key)
136 return ResolveOspaName(value, userService); 136 return ResolveOspaName(value, userService);
137 } 137 }
138 138
139 return UUID.Zero; 139 return UUID.Zero;
140 } 140 }
141 141
142 /// <summary> 142 /// <summary>
143 /// Hash a profile name into a UUID 143 /// Hash a profile name into a UUID
144 /// </summary> 144 /// </summary>
@@ -148,7 +148,7 @@ namespace OpenSim.Framework.Serialization
148 { 148 {
149 return new UUID(Utils.MD5(Encoding.Unicode.GetBytes(name)), 0); 149 return new UUID(Utils.MD5(Encoding.Unicode.GetBytes(name)), 0);
150 } 150 }
151 151
152 /// <summary> 152 /// <summary>
153 /// Resolve an OSPI name by querying existing persistent user profiles. If there is no persistent user profile 153 /// Resolve an OSPI name by querying existing persistent user profiles. If there is no persistent user profile
154 /// then a temporary user profile is inserted in the cache. 154 /// then a temporary user profile is inserted in the cache.
@@ -164,13 +164,13 @@ namespace OpenSim.Framework.Serialization
164 return UUID.Zero; 164 return UUID.Zero;
165 165
166 int nameSeparatorIndex = name.IndexOf(OSPA_NAME_VALUE_SEPARATOR); 166 int nameSeparatorIndex = name.IndexOf(OSPA_NAME_VALUE_SEPARATOR);
167 167
168 if (nameSeparatorIndex < 0) 168 if (nameSeparatorIndex < 0)
169 { 169 {
170 m_log.WarnFormat("[OSP RESOLVER]: Ignoring unseparated name {0}", name); 170 m_log.WarnFormat("[OSP RESOLVER]: Ignoring unseparated name {0}", name);
171 return UUID.Zero; 171 return UUID.Zero;
172 } 172 }
173 173
174 string firstName = name.Remove(nameSeparatorIndex).TrimEnd(); 174 string firstName = name.Remove(nameSeparatorIndex).TrimEnd();
175 string lastName = name.Substring(nameSeparatorIndex + 1).TrimStart(); 175 string lastName = name.Substring(nameSeparatorIndex + 1).TrimStart();
176 176
@@ -178,14 +178,14 @@ namespace OpenSim.Framework.Serialization
178 if (account != null) 178 if (account != null)
179 { 179 {
180// m_log.DebugFormat( 180// m_log.DebugFormat(
181// "[OSP RESOLVER]: Found user account with uuid {0} for {1} {2}", 181// "[OSP RESOLVER]: Found user account with uuid {0} for {1} {2}",
182// account.PrincipalID, firstName, lastName); 182// account.PrincipalID, firstName, lastName);
183 183
184 return account.PrincipalID; 184 return account.PrincipalID;
185 } 185 }
186// else 186// else
187// { 187// {
188// m_log.DebugFormat("[OSP RESOLVER]: No resolved OSPA user account for {0}", name); 188// m_log.DebugFormat("[OSP RESOLVER]: No resolved OSPA user account for {0}", name);
189// } 189// }
190 190
191 // XXX: Disable temporary user profile creation for now as implementation is incomplete - justincc 191 // XXX: Disable temporary user profile creation for now as implementation is incomplete - justincc
@@ -194,11 +194,11 @@ namespace OpenSim.Framework.Serialization
194 tempUserProfile.FirstName = firstName; 194 tempUserProfile.FirstName = firstName;
195 tempUserProfile.SurName = lastName; 195 tempUserProfile.SurName = lastName;
196 tempUserProfile.ID = HashName(tempUserProfile.Name); 196 tempUserProfile.ID = HashName(tempUserProfile.Name);
197 197
198 m_log.DebugFormat( 198 m_log.DebugFormat(
199 "[OSP RESOLVER]: Adding temporary user profile for {0} {1}", tempUserProfile.Name, tempUserProfile.ID); 199 "[OSP RESOLVER]: Adding temporary user profile for {0} {1}", tempUserProfile.Name, tempUserProfile.ID);
200 commsManager.UserService.AddTemporaryUserProfile(tempUserProfile); 200 commsManager.UserService.AddTemporaryUserProfile(tempUserProfile);
201 201
202 return tempUserProfile.ID; 202 return tempUserProfile.ID;
203 */ 203 */
204 204
diff --git a/OpenSim/Framework/Serialization/External/RegionSettingsSerializer.cs b/OpenSim/Framework/Serialization/External/RegionSettingsSerializer.cs
index 19468c3..617c451 100644
--- a/OpenSim/Framework/Serialization/External/RegionSettingsSerializer.cs
+++ b/OpenSim/Framework/Serialization/External/RegionSettingsSerializer.cs
@@ -50,7 +50,7 @@ namespace OpenSim.Framework.Serialization.External
50 { 50 {
51 return Deserialize(Encoding.ASCII.GetString(serializedSettings, 0, serializedSettings.Length)); 51 return Deserialize(Encoding.ASCII.GetString(serializedSettings, 0, serializedSettings.Length));
52 } 52 }
53 53
54 /// <summary> 54 /// <summary>
55 /// Deserialize settings 55 /// Deserialize settings
56 /// </summary> 56 /// </summary>
@@ -60,14 +60,14 @@ namespace OpenSim.Framework.Serialization.External
60 public static RegionSettings Deserialize(string serializedSettings) 60 public static RegionSettings Deserialize(string serializedSettings)
61 { 61 {
62 RegionSettings settings = new RegionSettings(); 62 RegionSettings settings = new RegionSettings();
63 63
64 StringReader sr = new StringReader(serializedSettings); 64 StringReader sr = new StringReader(serializedSettings);
65 XmlTextReader xtr = new XmlTextReader(sr); 65 XmlTextReader xtr = new XmlTextReader(sr);
66 66
67 xtr.ReadStartElement("RegionSettings"); 67 xtr.ReadStartElement("RegionSettings");
68 68
69 xtr.ReadStartElement("General"); 69 xtr.ReadStartElement("General");
70 70
71 while (xtr.Read() && xtr.NodeType != XmlNodeType.EndElement) 71 while (xtr.Read() && xtr.NodeType != XmlNodeType.EndElement)
72 { 72 {
73 switch (xtr.Name) 73 switch (xtr.Name)
@@ -113,10 +113,10 @@ namespace OpenSim.Framework.Serialization.External
113 break; 113 break;
114 } 114 }
115 } 115 }
116 116
117 xtr.ReadEndElement(); 117 xtr.ReadEndElement();
118 xtr.ReadStartElement("GroundTextures"); 118 xtr.ReadStartElement("GroundTextures");
119 119
120 while (xtr.Read() && xtr.NodeType != XmlNodeType.EndElement) 120 while (xtr.Read() && xtr.NodeType != XmlNodeType.EndElement)
121 { 121 {
122 switch (xtr.Name) 122 switch (xtr.Name)
@@ -159,10 +159,10 @@ namespace OpenSim.Framework.Serialization.External
159 break; 159 break;
160 } 160 }
161 } 161 }
162 162
163 xtr.ReadEndElement(); 163 xtr.ReadEndElement();
164 xtr.ReadStartElement("Terrain"); 164 xtr.ReadStartElement("Terrain");
165 165
166 while (xtr.Read() && xtr.NodeType != XmlNodeType.EndElement) 166 while (xtr.Read() && xtr.NodeType != XmlNodeType.EndElement)
167 { 167 {
168 switch (xtr.Name) 168 switch (xtr.Name)
@@ -212,19 +212,19 @@ namespace OpenSim.Framework.Serialization.External
212 212
213 xtr.Close(); 213 xtr.Close();
214 sr.Close(); 214 sr.Close();
215 215
216 return settings; 216 return settings;
217 } 217 }
218 218
219 public static string Serialize(RegionSettings settings) 219 public static string Serialize(RegionSettings settings)
220 { 220 {
221 StringWriter sw = new StringWriter(); 221 StringWriter sw = new StringWriter();
222 XmlTextWriter xtw = new XmlTextWriter(sw); 222 XmlTextWriter xtw = new XmlTextWriter(sw);
223 xtw.Formatting = Formatting.Indented; 223 xtw.Formatting = Formatting.Indented;
224 xtw.WriteStartDocument(); 224 xtw.WriteStartDocument();
225 225
226 xtw.WriteStartElement("RegionSettings"); 226 xtw.WriteStartElement("RegionSettings");
227 227
228 xtw.WriteStartElement("General"); 228 xtw.WriteStartElement("General");
229 xtw.WriteElementString("AllowDamage", settings.AllowDamage.ToString()); 229 xtw.WriteElementString("AllowDamage", settings.AllowDamage.ToString());
230 xtw.WriteElementString("AllowLandResell", settings.AllowLandResell.ToString()); 230 xtw.WriteElementString("AllowLandResell", settings.AllowLandResell.ToString());
@@ -255,7 +255,7 @@ namespace OpenSim.Framework.Serialization.External
255 xtw.WriteElementString("ElevationHighSE", settings.Elevation2SE.ToString()); 255 xtw.WriteElementString("ElevationHighSE", settings.Elevation2SE.ToString());
256 xtw.WriteElementString("ElevationHighNE", settings.Elevation2NE.ToString()); 256 xtw.WriteElementString("ElevationHighNE", settings.Elevation2NE.ToString());
257 xtw.WriteEndElement(); 257 xtw.WriteEndElement();
258 258
259 xtw.WriteStartElement("Terrain"); 259 xtw.WriteStartElement("Terrain");
260 xtw.WriteElementString("WaterHeight", settings.WaterHeight.ToString()); 260 xtw.WriteElementString("WaterHeight", settings.WaterHeight.ToString());
261 xtw.WriteElementString("TerrainRaiseLimit", settings.TerrainRaiseLimit.ToString()); 261 xtw.WriteElementString("TerrainRaiseLimit", settings.TerrainRaiseLimit.ToString());
@@ -275,12 +275,12 @@ namespace OpenSim.Framework.Serialization.External
275 xtw.WriteElementString("SpawnPoint", sp.ToString()); 275 xtw.WriteElementString("SpawnPoint", sp.ToString());
276 } 276 }
277 xtw.WriteEndElement(); 277 xtw.WriteEndElement();
278 278
279 xtw.WriteEndElement(); 279 xtw.WriteEndElement();
280 280
281 xtw.Close(); 281 xtw.Close();
282 sw.Close(); 282 sw.Close();
283 283
284 return sw.ToString(); 284 return sw.ToString();
285 } 285 }
286 } 286 }
diff --git a/OpenSim/Framework/Serialization/External/UserInventoryItemSerializer.cs b/OpenSim/Framework/Serialization/External/UserInventoryItemSerializer.cs
index 994cede..9b02553 100644
--- a/OpenSim/Framework/Serialization/External/UserInventoryItemSerializer.cs
+++ b/OpenSim/Framework/Serialization/External/UserInventoryItemSerializer.cs
@@ -36,9 +36,9 @@ using log4net;
36using OpenMetaverse; 36using OpenMetaverse;
37using OpenSim.Framework; 37using OpenSim.Framework;
38using OpenSim.Services.Interfaces; 38using OpenSim.Services.Interfaces;
39 39
40namespace OpenSim.Framework.Serialization.External 40namespace OpenSim.Framework.Serialization.External
41{ 41{
42 /// <summary> 42 /// <summary>
43 /// Serialize and deserialize user inventory items as an external format. 43 /// Serialize and deserialize user inventory items as an external format.
44 /// </summary> 44 /// </summary>
@@ -49,14 +49,14 @@ namespace OpenSim.Framework.Serialization.External
49 private static Dictionary<string, Action<InventoryItemBase, XmlReader>> m_InventoryItemXmlProcessors 49 private static Dictionary<string, Action<InventoryItemBase, XmlReader>> m_InventoryItemXmlProcessors
50 = new Dictionary<string, Action<InventoryItemBase, XmlReader>>(); 50 = new Dictionary<string, Action<InventoryItemBase, XmlReader>>();
51 51
52 #region InventoryItemBase Processor initialization 52 #region InventoryItemBase Processor initialization
53 static UserInventoryItemSerializer() 53 static UserInventoryItemSerializer()
54 { 54 {
55 m_InventoryItemXmlProcessors.Add("Name", ProcessName); 55 m_InventoryItemXmlProcessors.Add("Name", ProcessName);
56 m_InventoryItemXmlProcessors.Add("ID", ProcessID); 56 m_InventoryItemXmlProcessors.Add("ID", ProcessID);
57 m_InventoryItemXmlProcessors.Add("InvType", ProcessInvType); 57 m_InventoryItemXmlProcessors.Add("InvType", ProcessInvType);
58 m_InventoryItemXmlProcessors.Add("CreatorUUID", ProcessCreatorUUID); 58 m_InventoryItemXmlProcessors.Add("CreatorUUID", ProcessCreatorUUID);
59 m_InventoryItemXmlProcessors.Add("CreatorID", ProcessCreatorID); 59 m_InventoryItemXmlProcessors.Add("CreatorID", ProcessCreatorID);
60 m_InventoryItemXmlProcessors.Add("CreatorData", ProcessCreatorData); 60 m_InventoryItemXmlProcessors.Add("CreatorData", ProcessCreatorData);
61 m_InventoryItemXmlProcessors.Add("CreationDate", ProcessCreationDate); 61 m_InventoryItemXmlProcessors.Add("CreationDate", ProcessCreationDate);
62 m_InventoryItemXmlProcessors.Add("Owner", ProcessOwner); 62 m_InventoryItemXmlProcessors.Add("Owner", ProcessOwner);
@@ -73,7 +73,7 @@ namespace OpenSim.Framework.Serialization.External
73 m_InventoryItemXmlProcessors.Add("GroupID", ProcessGroupID); 73 m_InventoryItemXmlProcessors.Add("GroupID", ProcessGroupID);
74 m_InventoryItemXmlProcessors.Add("GroupOwned", ProcessGroupOwned); 74 m_InventoryItemXmlProcessors.Add("GroupOwned", ProcessGroupOwned);
75 } 75 }
76 #endregion 76 #endregion
77 77
78 #region InventoryItemBase Processors 78 #region InventoryItemBase Processors
79 private static void ProcessName(InventoryItemBase item, XmlReader reader) 79 private static void ProcessName(InventoryItemBase item, XmlReader reader)
@@ -189,7 +189,7 @@ namespace OpenSim.Framework.Serialization.External
189 { 189 {
190 return Deserialize(Encoding.ASCII.GetString(serialization, 0, serialization.Length)); 190 return Deserialize(Encoding.ASCII.GetString(serialization, 0, serialization.Length));
191 } 191 }
192 192
193 /// <summary> 193 /// <summary>
194 /// Deserialize settings 194 /// Deserialize settings
195 /// </summary> 195 /// </summary>
@@ -212,8 +212,8 @@ namespace OpenSim.Framework.Serialization.External
212 212
213 //m_log.DebugFormat("[XXX]: parsed InventoryItemBase {0} - {1}", obj.Name, obj.UUID); 213 //m_log.DebugFormat("[XXX]: parsed InventoryItemBase {0} - {1}", obj.Name, obj.UUID);
214 return item; 214 return item;
215 } 215 }
216 216
217 public static string Serialize(InventoryItemBase inventoryItem, Dictionary<string, object> options, IUserAccountService userAccountService) 217 public static string Serialize(InventoryItemBase inventoryItem, Dictionary<string, object> options, IUserAccountService userAccountService)
218 { 218 {
219 StringWriter sw = new StringWriter(); 219 StringWriter sw = new StringWriter();
@@ -294,11 +294,11 @@ namespace OpenSim.Framework.Serialization.External
294 } 294 }
295 295
296 writer.WriteEndElement(); 296 writer.WriteEndElement();
297 297
298 writer.Close(); 298 writer.Close();
299 sw.Close(); 299 sw.Close();
300 300
301 return sw.ToString(); 301 return sw.ToString();
302 } 302 }
303 } 303 }
304} 304}
diff --git a/OpenSim/Framework/Serialization/External/UserProfileSerializer.cs b/OpenSim/Framework/Serialization/External/UserProfileSerializer.cs
index c685a15..34eaa99 100644
--- a/OpenSim/Framework/Serialization/External/UserProfileSerializer.cs
+++ b/OpenSim/Framework/Serialization/External/UserProfileSerializer.cs
@@ -42,31 +42,31 @@ namespace OpenSim.Framework.Serialization.External
42 { 42 {
43 public const int MAJOR_VERSION = 0; 43 public const int MAJOR_VERSION = 0;
44 public const int MINOR_VERSION = 1; 44 public const int MINOR_VERSION = 1;
45 45
46 public static string Serialize(UUID userID, string firstName, string lastName) 46 public static string Serialize(UUID userID, string firstName, string lastName)
47 { 47 {
48 StringWriter sw = new StringWriter(); 48 StringWriter sw = new StringWriter();
49 XmlTextWriter xtw = new XmlTextWriter(sw); 49 XmlTextWriter xtw = new XmlTextWriter(sw);
50 xtw.Formatting = Formatting.Indented; 50 xtw.Formatting = Formatting.Indented;
51 xtw.WriteStartDocument(); 51 xtw.WriteStartDocument();
52 52
53 xtw.WriteStartElement("user_profile"); 53 xtw.WriteStartElement("user_profile");
54 xtw.WriteAttributeString("major_version", MAJOR_VERSION.ToString()); 54 xtw.WriteAttributeString("major_version", MAJOR_VERSION.ToString());
55 xtw.WriteAttributeString("minor_version", MINOR_VERSION.ToString()); 55 xtw.WriteAttributeString("minor_version", MINOR_VERSION.ToString());
56 56
57 xtw.WriteElementString("name", firstName + " " + lastName); 57 xtw.WriteElementString("name", firstName + " " + lastName);
58 xtw.WriteElementString("id", userID.ToString()); 58 xtw.WriteElementString("id", userID.ToString());
59 xtw.WriteElementString("about", ""); 59 xtw.WriteElementString("about", "");
60 60
61 // Not sure if we're storing this yet, need to take a look 61 // Not sure if we're storing this yet, need to take a look
62// xtw.WriteElementString("Url", profile.Url); 62// xtw.WriteElementString("Url", profile.Url);
63 // or, indeed, interests 63 // or, indeed, interests
64 64
65 xtw.WriteEndElement(); 65 xtw.WriteEndElement();
66 66
67 xtw.Close(); 67 xtw.Close();
68 sw.Close(); 68 sw.Close();
69 69
70 return sw.ToString(); 70 return sw.ToString();
71 } 71 }
72 } 72 }
diff --git a/OpenSim/Framework/Serialization/Properties/AssemblyInfo.cs b/OpenSim/Framework/Serialization/Properties/AssemblyInfo.cs
index f2060ab..7dfb87b 100644
--- a/OpenSim/Framework/Serialization/Properties/AssemblyInfo.cs
+++ b/OpenSim/Framework/Serialization/Properties/AssemblyInfo.cs
@@ -2,7 +2,7 @@
2using System.Runtime.CompilerServices; 2using System.Runtime.CompilerServices;
3using System.Runtime.InteropServices; 3using System.Runtime.InteropServices;
4 4
5// General Information about an assembly is controlled through the following 5// General Information about an assembly is controlled through the following
6// set of attributes. Change these attribute values to modify the information 6// set of attributes. Change these attribute values to modify the information
7// associated with an assembly. 7// associated with an assembly.
8[assembly: AssemblyTitle("OpenSim.Framework.Serialization")] 8[assembly: AssemblyTitle("OpenSim.Framework.Serialization")]
@@ -14,8 +14,8 @@ using System.Runtime.InteropServices;
14[assembly: AssemblyTrademark("")] 14[assembly: AssemblyTrademark("")]
15[assembly: AssemblyCulture("")] 15[assembly: AssemblyCulture("")]
16 16
17// Setting ComVisible to false makes the types in this assembly not visible 17// Setting ComVisible to false makes the types in this assembly not visible
18// to COM components. If you need to access a type in this assembly from 18// to COM components. If you need to access a type in this assembly from
19// COM, set the ComVisible attribute to true on that type. 19// COM, set the ComVisible attribute to true on that type.
20[assembly: ComVisible(false)] 20[assembly: ComVisible(false)]
21 21
@@ -25,7 +25,7 @@ using System.Runtime.InteropServices;
25// Version information for an assembly consists of the following four values: 25// Version information for an assembly consists of the following four values:
26// 26//
27// Major Version 27// Major Version
28// Minor Version 28// Minor Version
29// Build Number 29// Build Number
30// Revision 30// Revision
31// 31//
diff --git a/OpenSim/Framework/Serialization/TarArchiveWriter.cs b/OpenSim/Framework/Serialization/TarArchiveWriter.cs
index 2a3bc48..a5c3d0a 100644
--- a/OpenSim/Framework/Serialization/TarArchiveWriter.cs
+++ b/OpenSim/Framework/Serialization/TarArchiveWriter.cs
@@ -113,7 +113,7 @@ namespace OpenSim.Framework.Serialization
113 lock (m_bw) 113 lock (m_bw)
114 { 114 {
115 m_bw.Write(finalZeroPadding); 115 m_bw.Write(finalZeroPadding);
116 116
117 m_bw.Flush(); 117 m_bw.Flush();
118 m_bw.Close(); 118 m_bw.Close();
119 } 119 }
@@ -149,7 +149,7 @@ namespace OpenSim.Framework.Serialization
149 { 149 {
150// m_log.DebugFormat( 150// m_log.DebugFormat(
151// "[TAR ARCHIVE WRITER]: Data for {0} is {1} bytes", filePath, (null == data ? "null" : data.Length.ToString())); 151// "[TAR ARCHIVE WRITER]: Data for {0} is {1} bytes", filePath, (null == data ? "null" : data.Length.ToString()));
152 152
153 byte[] header = new byte[512]; 153 byte[] header = new byte[512];
154 154
155 // file path field (100) 155 // file path field (100)
@@ -208,18 +208,18 @@ namespace OpenSim.Framework.Serialization
208 { 208 {
209 // Write out header 209 // Write out header
210 m_bw.Write(header); 210 m_bw.Write(header);
211 211
212 // Write out data 212 // Write out data
213 // An IOException occurs if we try to write out an empty array in Mono 2.6 213 // An IOException occurs if we try to write out an empty array in Mono 2.6
214 if (data.Length > 0) 214 if (data.Length > 0)
215 m_bw.Write(data); 215 m_bw.Write(data);
216 216
217 if (data.Length % 512 != 0) 217 if (data.Length % 512 != 0)
218 { 218 {
219 int paddingRequired = 512 - (data.Length % 512); 219 int paddingRequired = 512 - (data.Length % 512);
220 220
221 //m_log.DebugFormat("[TAR ARCHIVE WRITER]: Padding data with {0} bytes", paddingRequired); 221 //m_log.DebugFormat("[TAR ARCHIVE WRITER]: Padding data with {0} bytes", paddingRequired);
222 222
223 byte[] padding = new byte[paddingRequired]; 223 byte[] padding = new byte[paddingRequired];
224 m_bw.Write(padding); 224 m_bw.Write(padding);
225 } 225 }
diff --git a/OpenSim/Framework/Servers/BaseOpenSimServer.cs b/OpenSim/Framework/Servers/BaseOpenSimServer.cs
index 1d4deac..f761813 100644
--- a/OpenSim/Framework/Servers/BaseOpenSimServer.cs
+++ b/OpenSim/Framework/Servers/BaseOpenSimServer.cs
@@ -68,9 +68,9 @@ namespace OpenSim.Framework.Servers
68 68
69 private int m_periodDiagnosticTimerMS = 60 * 60 * 1000; 69 private int m_periodDiagnosticTimerMS = 60 * 60 * 1000;
70 private Timer m_periodicDiagnosticsTimer = new Timer(60 * 60 * 1000); 70 private Timer m_periodicDiagnosticsTimer = new Timer(60 * 60 * 1000);
71 71
72 /// <summary> 72 /// <summary>
73 /// Random uuid for private data 73 /// Random uuid for private data
74 /// </summary> 74 /// </summary>
75 protected string m_osSecret = String.Empty; 75 protected string m_osSecret = String.Empty;
76 76
@@ -85,7 +85,7 @@ namespace OpenSim.Framework.Servers
85 // Random uuid for private data 85 // Random uuid for private data
86 m_osSecret = UUID.Random().ToString(); 86 m_osSecret = UUID.Random().ToString();
87 } 87 }
88 88
89 /// <summary> 89 /// <summary>
90 /// Must be overriden by child classes for their own server specific startup behaviour. 90 /// Must be overriden by child classes for their own server specific startup behaviour.
91 /// </summary> 91 /// </summary>
@@ -104,10 +104,10 @@ namespace OpenSim.Framework.Servers
104 m_periodicDiagnosticsTimer.Interval = m_periodDiagnosticTimerMS; 104 m_periodicDiagnosticsTimer.Interval = m_periodDiagnosticTimerMS;
105 m_periodicDiagnosticsTimer.Enabled = true; 105 m_periodicDiagnosticsTimer.Enabled = true;
106 } 106 }
107 } 107 }
108 108
109 protected override void ShutdownSpecific() 109 protected override void ShutdownSpecific()
110 { 110 {
111 m_log.Info("[SHUTDOWN]: Shutdown processing on main thread complete. Exiting..."); 111 m_log.Info("[SHUTDOWN]: Shutdown processing on main thread complete. Exiting...");
112 112
113 RemovePIDFile(); 113 RemovePIDFile();
@@ -117,12 +117,12 @@ namespace OpenSim.Framework.Servers
117 if (!SuppressExit) 117 if (!SuppressExit)
118 Environment.Exit(0); 118 Environment.Exit(0);
119 } 119 }
120 120
121 /// <summary> 121 /// <summary>
122 /// Provides a list of help topics that are available. Overriding classes should append their topics to the 122 /// Provides a list of help topics that are available. Overriding classes should append their topics to the
123 /// information returned when the base method is called. 123 /// information returned when the base method is called.
124 /// </summary> 124 /// </summary>
125 /// 125 ///
126 /// <returns> 126 /// <returns>
127 /// A list of strings that represent different help topics on which more information is available 127 /// A list of strings that represent different help topics on which more information is available
128 /// </returns> 128 /// </returns>
@@ -148,7 +148,7 @@ namespace OpenSim.Framework.Servers
148 public virtual void Startup() 148 public virtual void Startup()
149 { 149 {
150 m_log.Info("[STARTUP]: Beginning startup processing"); 150 m_log.Info("[STARTUP]: Beginning startup processing");
151 151
152 m_log.Info("[STARTUP]: version: " + m_version + Environment.NewLine); 152 m_log.Info("[STARTUP]: version: " + m_version + Environment.NewLine);
153 // clr version potentially is more confusing than helpful, since it doesn't tell us if we're running under Mono/MS .NET and 153 // clr version potentially is more confusing than helpful, since it doesn't tell us if we're running under Mono/MS .NET and
154 // the clr version number doesn't match the project version number under Mono. 154 // the clr version number doesn't match the project version number under Mono.
@@ -156,7 +156,7 @@ namespace OpenSim.Framework.Servers
156 m_log.InfoFormat( 156 m_log.InfoFormat(
157 "[STARTUP]: Operating system version: {0}, .NET platform {1}, {2}-bit\n", 157 "[STARTUP]: Operating system version: {0}, .NET platform {1}, {2}-bit\n",
158 Environment.OSVersion, Environment.OSVersion.Platform, Util.Is64BitProcess() ? "64" : "32"); 158 Environment.OSVersion, Environment.OSVersion.Platform, Util.Is64BitProcess() ? "64" : "32");
159 159
160 try 160 try
161 { 161 {
162 StartupSpecific(); 162 StartupSpecific();
@@ -167,18 +167,18 @@ namespace OpenSim.Framework.Servers
167 (e.Message == null || e.Message == String.Empty) ? "Unknown reason":e.Message ); 167 (e.Message == null || e.Message == String.Empty) ? "Unknown reason":e.Message );
168 Environment.Exit(1); 168 Environment.Exit(1);
169 } 169 }
170 170
171 TimeSpan timeTaken = DateTime.Now - m_startuptime; 171 TimeSpan timeTaken = DateTime.Now - m_startuptime;
172 172
173// MainConsole.Instance.OutputFormat( 173// MainConsole.Instance.OutputFormat(
174// "PLEASE WAIT FOR LOGINS TO BE ENABLED ON REGIONS ONCE SCRIPTS HAVE STARTED. Non-script portion of startup took {0}m {1}s.", 174// "PLEASE WAIT FOR LOGINS TO BE ENABLED ON REGIONS ONCE SCRIPTS HAVE STARTED. Non-script portion of startup took {0}m {1}s.",
175// timeTaken.Minutes, timeTaken.Seconds); 175// timeTaken.Minutes, timeTaken.Seconds);
176 } 176 }
177 177
178 public string osSecret 178 public string osSecret
179 { 179 {
180 // Secret uuid for the simulator 180 // Secret uuid for the simulator
181 get { return m_osSecret; } 181 get { return m_osSecret; }
182 } 182 }
183 183
184 public string StatReport(IOSHttpRequest httpRequest) 184 public string StatReport(IOSHttpRequest httpRequest)
@@ -187,8 +187,8 @@ namespace OpenSim.Framework.Servers
187 if (httpRequest.Query.ContainsKey("callback")) 187 if (httpRequest.Query.ContainsKey("callback"))
188 { 188 {
189 return httpRequest.Query["callback"].ToString() + "(" + StatsManager.SimExtraStats.XReport((DateTime.Now - m_startuptime).ToString() , m_version) + ");"; 189 return httpRequest.Query["callback"].ToString() + "(" + StatsManager.SimExtraStats.XReport((DateTime.Now - m_startuptime).ToString() , m_version) + ");";
190 } 190 }
191 else 191 else
192 { 192 {
193 return StatsManager.SimExtraStats.XReport((DateTime.Now - m_startuptime).ToString() , m_version); 193 return StatsManager.SimExtraStats.XReport((DateTime.Now - m_startuptime).ToString() , m_version);
194 } 194 }
diff --git a/OpenSim/Framework/Servers/HttpServer/BaseHttpServer.cs b/OpenSim/Framework/Servers/HttpServer/BaseHttpServer.cs
index e431042..fb92b92 100644
--- a/OpenSim/Framework/Servers/HttpServer/BaseHttpServer.cs
+++ b/OpenSim/Framework/Servers/HttpServer/BaseHttpServer.cs
@@ -58,7 +58,7 @@ namespace OpenSim.Framework.Servers.HttpServer
58 58
59 /// <summary> 59 /// <summary>
60 /// This is a pending websocket request before it got an sucessful upgrade response. 60 /// This is a pending websocket request before it got an sucessful upgrade response.
61 /// The consumer must call handler.HandshakeAndUpgrade() to signal to the handler to 61 /// The consumer must call handler.HandshakeAndUpgrade() to signal to the handler to
62 /// start the connection and optionally provide an origin authentication method. 62 /// start the connection and optionally provide an origin authentication method.
63 /// </summary> 63 /// </summary>
64 /// <param name="servicepath"></param> 64 /// <param name="servicepath"></param>
@@ -104,7 +104,7 @@ namespace OpenSim.Framework.Servers.HttpServer
104 new Dictionary<string, PollServiceEventArgs>(); 104 new Dictionary<string, PollServiceEventArgs>();
105 105
106 protected Dictionary<string, WebSocketRequestDelegate> m_WebSocketHandlers = 106 protected Dictionary<string, WebSocketRequestDelegate> m_WebSocketHandlers =
107 new Dictionary<string, WebSocketRequestDelegate>(); 107 new Dictionary<string, WebSocketRequestDelegate>();
108 108
109 protected uint m_port; 109 protected uint m_port;
110 protected uint m_sslport; 110 protected uint m_sslport;
@@ -253,7 +253,7 @@ namespace OpenSim.Framework.Servers.HttpServer
253 return new List<string>(m_rpcHandlers.Keys); 253 return new List<string>(m_rpcHandlers.Keys);
254 } 254 }
255 255
256 // JsonRPC 256 // JsonRPC
257 public bool AddJsonRPCHandler(string method, JsonRPCMethod handler) 257 public bool AddJsonRPCHandler(string method, JsonRPCMethod handler)
258 { 258 {
259 lock(jsonRpcHandlers) 259 lock(jsonRpcHandlers)
@@ -459,11 +459,11 @@ namespace OpenSim.Framework.Servers.HttpServer
459 dWebSocketRequestDelegate(req.Url.AbsolutePath, new WebSocketHttpServerHandler(req, context, 8192)); 459 dWebSocketRequestDelegate(req.Url.AbsolutePath, new WebSocketHttpServerHandler(req, context, 8192));
460 return; 460 return;
461 } 461 }
462 462
463 OSHttpResponse resp = new OSHttpResponse(new HttpResponse(context, request),context); 463 OSHttpResponse resp = new OSHttpResponse(new HttpResponse(context, request),context);
464 resp.ReuseContext = true; 464 resp.ReuseContext = true;
465// resp.ReuseContext = false; 465// resp.ReuseContext = false;
466 HandleRequest(req, resp); 466 HandleRequest(req, resp);
467 467
468 // !!!HACK ALERT!!! 468 // !!!HACK ALERT!!!
469 // There seems to be a bug in the underlying http code that makes subsequent requests 469 // There seems to be a bug in the underlying http code that makes subsequent requests
@@ -554,7 +554,7 @@ namespace OpenSim.Framework.Servers.HttpServer
554 LogIncomingToStreamHandler(request, requestHandler); 554 LogIncomingToStreamHandler(request, requestHandler);
555 555
556 response.ContentType = requestHandler.ContentType; // Lets do this defaulting before in case handler has varying content type. 556 response.ContentType = requestHandler.ContentType; // Lets do this defaulting before in case handler has varying content type.
557 557
558 if (requestHandler is IStreamedRequestHandler) 558 if (requestHandler is IStreamedRequestHandler)
559 { 559 {
560 IStreamedRequestHandler streamedRequestHandler = requestHandler as IStreamedRequestHandler; 560 IStreamedRequestHandler streamedRequestHandler = requestHandler as IStreamedRequestHandler;
@@ -630,16 +630,16 @@ namespace OpenSim.Framework.Servers.HttpServer
630 case "text/html": 630 case "text/html":
631 if (DebugLevel >= 3) 631 if (DebugLevel >= 3)
632 LogIncomingToContentTypeHandler(request); 632 LogIncomingToContentTypeHandler(request);
633 633
634 buffer = HandleHTTPRequest(request, response); 634 buffer = HandleHTTPRequest(request, response);
635 break; 635 break;
636 636
637 case "application/llsd+xml": 637 case "application/llsd+xml":
638 case "application/xml+llsd": 638 case "application/xml+llsd":
639 case "application/llsd+json": 639 case "application/llsd+json":
640 if (DebugLevel >= 3) 640 if (DebugLevel >= 3)
641 LogIncomingToContentTypeHandler(request); 641 LogIncomingToContentTypeHandler(request);
642 642
643 buffer = HandleLLSDRequests(request, response); 643 buffer = HandleLLSDRequests(request, response);
644 break; 644 break;
645 645
@@ -649,7 +649,7 @@ namespace OpenSim.Framework.Servers.HttpServer
649 649
650 buffer = HandleJsonRpcRequests(request, response); 650 buffer = HandleJsonRpcRequests(request, response);
651 break; 651 break;
652 652
653 case "text/xml": 653 case "text/xml":
654 case "application/xml": 654 case "application/xml":
655 case "application/json": 655 case "application/json":
@@ -666,7 +666,7 @@ namespace OpenSim.Framework.Servers.HttpServer
666 { 666 {
667 if (DebugLevel >= 3) 667 if (DebugLevel >= 3)
668 LogIncomingToContentTypeHandler(request); 668 LogIncomingToContentTypeHandler(request);
669 669
670 buffer = HandleLLSDRequests(request, response); 670 buffer = HandleLLSDRequests(request, response);
671 } 671 }
672 // m_log.DebugFormat("[BASE HTTP SERVER]: Checking for HTTP Handler for request {0}", request.RawUrl); 672 // m_log.DebugFormat("[BASE HTTP SERVER]: Checking for HTTP Handler for request {0}", request.RawUrl);
@@ -674,18 +674,18 @@ namespace OpenSim.Framework.Servers.HttpServer
674 { 674 {
675 if (DebugLevel >= 3) 675 if (DebugLevel >= 3)
676 LogIncomingToContentTypeHandler(request); 676 LogIncomingToContentTypeHandler(request);
677 677
678 buffer = HandleHTTPRequest(request, response); 678 buffer = HandleHTTPRequest(request, response);
679 } 679 }
680 else 680 else
681 { 681 {
682 if (DebugLevel >= 3) 682 if (DebugLevel >= 3)
683 LogIncomingToXmlRpcHandler(request); 683 LogIncomingToXmlRpcHandler(request);
684 684
685 // generic login request. 685 // generic login request.
686 buffer = HandleXmlRpcRequests(request, response); 686 buffer = HandleXmlRpcRequests(request, response);
687 } 687 }
688 688
689 break; 689 break;
690 } 690 }
691 } 691 }
@@ -972,7 +972,7 @@ namespace OpenSim.Framework.Servers.HttpServer
972// private bool TryGetAgentHandler(OSHttpRequest request, OSHttpResponse response, out IHttpAgentHandler agentHandler) 972// private bool TryGetAgentHandler(OSHttpRequest request, OSHttpResponse response, out IHttpAgentHandler agentHandler)
973// { 973// {
974// agentHandler = null; 974// agentHandler = null;
975// 975//
976// lock (m_agentHandlers) 976// lock (m_agentHandlers)
977// { 977// {
978// foreach (IHttpAgentHandler handler in m_agentHandlers.Values) 978// foreach (IHttpAgentHandler handler in m_agentHandlers.Values)
@@ -1171,7 +1171,7 @@ namespace OpenSim.Framework.Servers.HttpServer
1171 return buffer; 1171 return buffer;
1172 } 1172 }
1173 1173
1174 // JsonRpc (v2.0 only) 1174 // JsonRpc (v2.0 only)
1175 // Batch requests not yet supported 1175 // Batch requests not yet supported
1176 private byte[] HandleJsonRpcRequests(OSHttpRequest request, OSHttpResponse response) 1176 private byte[] HandleJsonRpcRequests(OSHttpRequest request, OSHttpResponse response)
1177 { 1177 {
@@ -1188,7 +1188,7 @@ namespace OpenSim.Framework.Servers.HttpServer
1188 jsonRpcResponse.Error.Code = ErrorCode.InternalError; 1188 jsonRpcResponse.Error.Code = ErrorCode.InternalError;
1189 jsonRpcResponse.Error.Message = e.Message; 1189 jsonRpcResponse.Error.Message = e.Message;
1190 } 1190 }
1191 1191
1192 requestStream.Close(); 1192 requestStream.Close();
1193 1193
1194 if (jsonRpcRequest != null) 1194 if (jsonRpcRequest != null)
@@ -1253,7 +1253,7 @@ namespace OpenSim.Framework.Servers.HttpServer
1253 string responseData = string.Empty; 1253 string responseData = string.Empty;
1254 1254
1255 responseData = jsonRpcResponse.Serialize(); 1255 responseData = jsonRpcResponse.Serialize();
1256 1256
1257 byte[] buffer = Encoding.UTF8.GetBytes(responseData); 1257 byte[] buffer = Encoding.UTF8.GetBytes(responseData);
1258 return buffer; 1258 return buffer;
1259 } 1259 }
@@ -1533,7 +1533,7 @@ namespace OpenSim.Framework.Servers.HttpServer
1533 } 1533 }
1534 } 1534 }
1535 } 1535 }
1536 1536
1537 if (String.IsNullOrEmpty(bestMatch)) 1537 if (String.IsNullOrEmpty(bestMatch))
1538 { 1538 {
1539 llsdHandler = null; 1539 llsdHandler = null;
@@ -1899,8 +1899,8 @@ namespace OpenSim.Framework.Servers.HttpServer
1899 response.SendChunked = false; 1899 response.SendChunked = false;
1900 response.ContentLength64 = buffer.Length; 1900 response.ContentLength64 = buffer.Length;
1901 response.ContentEncoding = Encoding.UTF8; 1901 response.ContentEncoding = Encoding.UTF8;
1902 1902
1903 1903
1904 return buffer; 1904 return buffer;
1905 } 1905 }
1906 1906
@@ -1977,7 +1977,7 @@ namespace OpenSim.Framework.Servers.HttpServer
1977 throw e; 1977 throw e;
1978 } 1978 }
1979 1979
1980 m_requestsProcessedStat 1980 m_requestsProcessedStat
1981 = new Stat( 1981 = new Stat(
1982 "HTTPRequestsServed", 1982 "HTTPRequestsServed",
1983 "Number of inbound HTTP requests processed", 1983 "Number of inbound HTTP requests processed",
@@ -1989,7 +1989,7 @@ namespace OpenSim.Framework.Servers.HttpServer
1989 MeasuresOfInterest.AverageChangeOverTime, 1989 MeasuresOfInterest.AverageChangeOverTime,
1990 stat => stat.Value = RequestNumber, 1990 stat => stat.Value = RequestNumber,
1991 StatVerbosity.Debug); 1991 StatVerbosity.Debug);
1992 1992
1993 StatsManager.RegisterStat(m_requestsProcessedStat); 1993 StatsManager.RegisterStat(m_requestsProcessedStat);
1994 } 1994 }
1995 1995
diff --git a/OpenSim/Framework/Servers/HttpServer/BaseRequestHandler.cs b/OpenSim/Framework/Servers/HttpServer/BaseRequestHandler.cs
index d4a1ec3..01d95e9 100644
--- a/OpenSim/Framework/Servers/HttpServer/BaseRequestHandler.cs
+++ b/OpenSim/Framework/Servers/HttpServer/BaseRequestHandler.cs
@@ -69,13 +69,13 @@ namespace OpenSim.Framework.Servers.HttpServer
69 { 69 {
70 StatsManager.RegisterStat( 70 StatsManager.RegisterStat(
71 new Stat( 71 new Stat(
72 "requests", 72 "requests",
73 "requests", 73 "requests",
74 "Number of requests received by this service endpoint", 74 "Number of requests received by this service endpoint",
75 "requests", 75 "requests",
76 "service", 76 "service",
77 string.Format("{0}:{1}", httpMethod, path), 77 string.Format("{0}:{1}", httpMethod, path),
78 StatType.Pull, 78 StatType.Pull,
79 MeasuresOfInterest.AverageChangeOverTime, 79 MeasuresOfInterest.AverageChangeOverTime,
80 s => s.Value = RequestsReceived, 80 s => s.Value = RequestsReceived,
81 StatVerbosity.Debug)); 81 StatVerbosity.Debug));
diff --git a/OpenSim/Framework/Servers/HttpServer/BaseStreamHandler.cs b/OpenSim/Framework/Servers/HttpServer/BaseStreamHandler.cs
index 41aa19b..7fc9f0b 100644
--- a/OpenSim/Framework/Servers/HttpServer/BaseStreamHandler.cs
+++ b/OpenSim/Framework/Servers/HttpServer/BaseStreamHandler.cs
@@ -47,7 +47,7 @@ namespace OpenSim.Framework.Servers.HttpServer
47 : base(httpMethod, path, name, description) {} 47 : base(httpMethod, path, name, description) {}
48 48
49 protected BaseStreamHandler(string httpMethod, string path, IServiceAuth auth) 49 protected BaseStreamHandler(string httpMethod, string path, IServiceAuth auth)
50 : base(httpMethod, path, null, null) 50 : base(httpMethod, path, null, null)
51 { 51 {
52 m_Auth = auth; 52 m_Auth = auth;
53 } 53 }
@@ -62,7 +62,7 @@ namespace OpenSim.Framework.Servers.HttpServer
62 HttpStatusCode statusCode; 62 HttpStatusCode statusCode;
63 63
64 if (!m_Auth.Authenticate(httpRequest.Headers, httpResponse.AddHeader, out statusCode)) 64 if (!m_Auth.Authenticate(httpRequest.Headers, httpResponse.AddHeader, out statusCode))
65 { 65 {
66 httpResponse.StatusCode = (int)statusCode; 66 httpResponse.StatusCode = (int)statusCode;
67 httpResponse.ContentType = "text/plain"; 67 httpResponse.ContentType = "text/plain";
68 return new byte[0]; 68 return new byte[0];
diff --git a/OpenSim/Framework/Servers/HttpServer/BaseStreamHandlerBasicDOSProtector.cs b/OpenSim/Framework/Servers/HttpServer/BaseStreamHandlerBasicDOSProtector.cs
index 1b88545..9619e03 100644
--- a/OpenSim/Framework/Servers/HttpServer/BaseStreamHandlerBasicDOSProtector.cs
+++ b/OpenSim/Framework/Servers/HttpServer/BaseStreamHandlerBasicDOSProtector.cs
@@ -37,7 +37,7 @@ namespace OpenSim.Framework.Servers.HttpServer
37 /// </remarks> 37 /// </remarks>
38 public abstract class BaseStreamHandlerBasicDOSProtector : BaseRequestHandler, IStreamedRequestHandler 38 public abstract class BaseStreamHandlerBasicDOSProtector : BaseRequestHandler, IStreamedRequestHandler
39 { 39 {
40 40
41 private readonly BasicDosProtectorOptions _options; 41 private readonly BasicDosProtectorOptions _options;
42 private readonly BasicDOSProtector _dosProtector; 42 private readonly BasicDOSProtector _dosProtector;
43 43
@@ -63,7 +63,7 @@ namespace OpenSim.Framework.Servers.HttpServer
63 result = ThrottledRequest(path, request, httpRequest, httpResponse); 63 result = ThrottledRequest(path, request, httpRequest, httpResponse);
64 if (_options.MaxConcurrentSessions > 0) 64 if (_options.MaxConcurrentSessions > 0)
65 _dosProtector.ProcessEnd(clientstring, endpoint); 65 _dosProtector.ProcessEnd(clientstring, endpoint);
66 66
67 RequestsHandled++; 67 RequestsHandled++;
68 68
69 return result; 69 return result;
@@ -81,7 +81,7 @@ namespace OpenSim.Framework.Servers.HttpServer
81 return new byte[0]; 81 return new byte[0];
82 } 82 }
83 83
84 84
85 private string GetRemoteAddr(IOSHttpRequest httpRequest) 85 private string GetRemoteAddr(IOSHttpRequest httpRequest)
86 { 86 {
87 string remoteaddr = string.Empty; 87 string remoteaddr = string.Empty;
@@ -101,7 +101,7 @@ namespace OpenSim.Framework.Servers.HttpServer
101 clientstring = GetRemoteAddr(httpRequest); 101 clientstring = GetRemoteAddr(httpRequest);
102 102
103 return clientstring; 103 return clientstring;
104 104
105 } 105 }
106 } 106 }
107} 107}
diff --git a/OpenSim/Framework/Servers/HttpServer/GenericHTTPBasicDOSProtector.cs b/OpenSim/Framework/Servers/HttpServer/GenericHTTPBasicDOSProtector.cs
index cd4b8ff..98d33e4 100644
--- a/OpenSim/Framework/Servers/HttpServer/GenericHTTPBasicDOSProtector.cs
+++ b/OpenSim/Framework/Servers/HttpServer/GenericHTTPBasicDOSProtector.cs
@@ -33,7 +33,7 @@ namespace OpenSim.Framework.Servers.HttpServer
33 { 33 {
34 private readonly GenericHTTPMethod _normalMethod; 34 private readonly GenericHTTPMethod _normalMethod;
35 private readonly GenericHTTPMethod _throttledMethod; 35 private readonly GenericHTTPMethod _throttledMethod;
36 36
37 private readonly BasicDosProtectorOptions _options; 37 private readonly BasicDosProtectorOptions _options;
38 private readonly BasicDOSProtector _dosProtector; 38 private readonly BasicDOSProtector _dosProtector;
39 39
@@ -41,7 +41,7 @@ namespace OpenSim.Framework.Servers.HttpServer
41 { 41 {
42 _normalMethod = normalMethod; 42 _normalMethod = normalMethod;
43 _throttledMethod = throttledMethod; 43 _throttledMethod = throttledMethod;
44 44
45 _options = options; 45 _options = options;
46 _dosProtector = new BasicDOSProtector(_options); 46 _dosProtector = new BasicDOSProtector(_options);
47 } 47 }
@@ -60,7 +60,7 @@ namespace OpenSim.Framework.Servers.HttpServer
60 60
61 return process; 61 return process;
62 } 62 }
63 63
64 private string GetRemoteAddr(Hashtable request) 64 private string GetRemoteAddr(Hashtable request)
65 { 65 {
66 string remoteaddr = ""; 66 string remoteaddr = "";
diff --git a/OpenSim/Framework/Servers/HttpServer/Interfaces/IHttpServer.cs b/OpenSim/Framework/Servers/HttpServer/Interfaces/IHttpServer.cs
index d162bc1..3a04074 100644
--- a/OpenSim/Framework/Servers/HttpServer/Interfaces/IHttpServer.cs
+++ b/OpenSim/Framework/Servers/HttpServer/Interfaces/IHttpServer.cs
@@ -45,26 +45,26 @@ namespace OpenSim.Framework.Servers.HttpServer
45// // the handlers - it is NOT required to be an actual agent header 45// // the handlers - it is NOT required to be an actual agent header
46// // value. 46// // value.
47// bool AddAgentHandler(string agent, IHttpAgentHandler handler); 47// bool AddAgentHandler(string agent, IHttpAgentHandler handler);
48 48
49 /// <summary> 49 /// <summary>
50 /// Add a handler for an HTTP request. 50 /// Add a handler for an HTTP request.
51 /// </summary> 51 /// </summary>
52 /// <remarks> 52 /// <remarks>
53 /// This handler can actually be invoked either as 53 /// This handler can actually be invoked either as
54 /// 54 ///
55 /// http://<hostname>:<port>/?method=<methodName> 55 /// http://<hostname>:<port>/?method=<methodName>
56 /// 56 ///
57 /// or 57 /// or
58 /// 58 ///
59 /// http://<hostname>:<port><method> 59 /// http://<hostname>:<port><method>
60 /// 60 ///
61 /// if the method name starts with a slash. For example, AddHTTPHandler("/object/", ...) on a standalone region 61 /// if the method name starts with a slash. For example, AddHTTPHandler("/object/", ...) on a standalone region
62 /// server will register a handler that can be invoked with either 62 /// server will register a handler that can be invoked with either
63 /// 63 ///
64 /// http://localhost:9000/?method=/object/ 64 /// http://localhost:9000/?method=/object/
65 /// 65 ///
66 /// or 66 /// or
67 /// 67 ///
68 /// http://localhost:9000/object/ 68 /// http://localhost:9000/object/
69 /// 69 ///
70 /// In addition, the handler invoked by the HTTP server for any request is the one when best matches the request 70 /// In addition, the handler invoked by the HTTP server for any request is the one when best matches the request
@@ -87,7 +87,7 @@ namespace OpenSim.Framework.Servers.HttpServer
87 /// <param name="handler">handle the LLSD response</param> 87 /// <param name="handler">handle the LLSD response</param>
88 /// <returns></returns> 88 /// <returns></returns>
89 bool AddLLSDHandler(string path, LLSDMethod handler); 89 bool AddLLSDHandler(string path, LLSDMethod handler);
90 90
91 /// <summary> 91 /// <summary>
92 /// Add a stream handler to the http server. If the handler already exists, then nothing happens. 92 /// Add a stream handler to the http server. If the handler already exists, then nothing happens.
93 /// </summary> 93 /// </summary>
@@ -98,7 +98,7 @@ namespace OpenSim.Framework.Servers.HttpServer
98 bool AddXmlRPCHandler(string method, XmlRpcMethod handler, bool keepAlive); 98 bool AddXmlRPCHandler(string method, XmlRpcMethod handler, bool keepAlive);
99 99
100 bool AddJsonRPCHandler(string method, JsonRPCMethod handler); 100 bool AddJsonRPCHandler(string method, JsonRPCMethod handler);
101 101
102 /// <summary> 102 /// <summary>
103 /// Websocket HTTP server handlers. 103 /// Websocket HTTP server handlers.
104 /// </summary> 104 /// </summary>
@@ -108,7 +108,7 @@ namespace OpenSim.Framework.Servers.HttpServer
108 108
109 109
110 void RemoveWebSocketHandler(string servicepath); 110 void RemoveWebSocketHandler(string servicepath);
111 111
112 /// <summary> 112 /// <summary>
113 /// Gets the XML RPC handler for given method name 113 /// Gets the XML RPC handler for given method name
114 /// </summary> 114 /// </summary>
@@ -125,7 +125,7 @@ namespace OpenSim.Framework.Servers.HttpServer
125// /// <param name="handler"></param> 125// /// <param name="handler"></param>
126// /// <returns></returns> 126// /// <returns></returns>
127// bool RemoveAgentHandler(string agent, IHttpAgentHandler handler); 127// bool RemoveAgentHandler(string agent, IHttpAgentHandler handler);
128 128
129 /// <summary> 129 /// <summary>
130 /// Remove an HTTP handler 130 /// Remove an HTTP handler
131 /// </summary> 131 /// </summary>
@@ -134,15 +134,15 @@ namespace OpenSim.Framework.Servers.HttpServer
134 void RemoveHTTPHandler(string httpMethod, string path); 134 void RemoveHTTPHandler(string httpMethod, string path);
135 135
136 void RemovePollServiceHTTPHandler(string httpMethod, string path); 136 void RemovePollServiceHTTPHandler(string httpMethod, string path);
137 137
138 bool RemoveLLSDHandler(string path, LLSDMethod handler); 138 bool RemoveLLSDHandler(string path, LLSDMethod handler);
139 139
140 void RemoveStreamHandler(string httpMethod, string path); 140 void RemoveStreamHandler(string httpMethod, string path);
141 141
142 void RemoveXmlRPCHandler(string method); 142 void RemoveXmlRPCHandler(string method);
143 143
144 void RemoveJsonRPCHandler(string method); 144 void RemoveJsonRPCHandler(string method);
145 145
146 string GetHTTP404(string host); 146 string GetHTTP404(string host);
147 147
148 string GetHTTP500(); 148 string GetHTTP500();
diff --git a/OpenSim/Framework/Servers/HttpServer/Interfaces/IStreamHandler.cs b/OpenSim/Framework/Servers/HttpServer/Interfaces/IStreamHandler.cs
index b8541cb..62d92fb 100644
--- a/OpenSim/Framework/Servers/HttpServer/Interfaces/IStreamHandler.cs
+++ b/OpenSim/Framework/Servers/HttpServer/Interfaces/IStreamHandler.cs
@@ -83,7 +83,7 @@ namespace OpenSim.Framework.Servers.HttpServer
83 { 83 {
84 void Handle(string path, Stream request, Stream response, IOSHttpRequest httpReqbuest, IOSHttpResponse httpResponse); 84 void Handle(string path, Stream request, Stream response, IOSHttpRequest httpReqbuest, IOSHttpResponse httpResponse);
85 } 85 }
86 86
87 public interface IGenericHTTPHandler : IRequestHandler 87 public interface IGenericHTTPHandler : IRequestHandler
88 { 88 {
89 Hashtable Handle(string path, Hashtable request); 89 Hashtable Handle(string path, Hashtable request);
diff --git a/OpenSim/Framework/Servers/HttpServer/JsonRpcRequestManager.cs b/OpenSim/Framework/Servers/HttpServer/JsonRpcRequestManager.cs
index f3faf4f..411ee31 100644
--- a/OpenSim/Framework/Servers/HttpServer/JsonRpcRequestManager.cs
+++ b/OpenSim/Framework/Servers/HttpServer/JsonRpcRequestManager.cs
@@ -43,7 +43,7 @@ namespace OpenSim.Framework.Servers.HttpServer
43 public class JsonRpcRequestManager 43 public class JsonRpcRequestManager
44 { 44 {
45 static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); 45 static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
46 46
47 public JsonRpcRequestManager() 47 public JsonRpcRequestManager()
48 { 48 {
49 } 49 }
@@ -188,6 +188,6 @@ namespace OpenSim.Framework.Servers.HttpServer
188 188
189 return true; 189 return true;
190 } 190 }
191 191
192 } 192 }
193} 193}
diff --git a/OpenSim/Framework/Servers/HttpServer/JsonRpcResponse.cs b/OpenSim/Framework/Servers/HttpServer/JsonRpcResponse.cs
index 2c50587..91d284b 100644
--- a/OpenSim/Framework/Servers/HttpServer/JsonRpcResponse.cs
+++ b/OpenSim/Framework/Servers/HttpServer/JsonRpcResponse.cs
@@ -144,7 +144,7 @@ namespace OpenSim.Framework.Servers.HttpServer
144 { 144 {
145 145
146 } 146 }
147 return result; 147 return result;
148 } 148 }
149 } 149 }
150} 150}
diff --git a/OpenSim/Framework/Servers/HttpServer/OSHttpRequest.cs b/OpenSim/Framework/Servers/HttpServer/OSHttpRequest.cs
index 05ec6dc..1a6b8cf 100644
--- a/OpenSim/Framework/Servers/HttpServer/OSHttpRequest.cs
+++ b/OpenSim/Framework/Servers/HttpServer/OSHttpRequest.cs
@@ -155,11 +155,11 @@ namespace OpenSim.Framework.Servers.HttpServer
155 private string _userAgent; 155 private string _userAgent;
156 156
157 internal IHttpRequest IHttpRequest 157 internal IHttpRequest IHttpRequest
158 { 158 {
159 get { return _request; } 159 get { return _request; }
160 } 160 }
161 161
162 internal IHttpClientContext IHttpClientContext 162 internal IHttpClientContext IHttpClientContext
163 { 163 {
164 get { return _context; } 164 get { return _context; }
165 } 165 }
@@ -192,19 +192,19 @@ namespace OpenSim.Framework.Servers.HttpServer
192 // ignore 192 // ignore
193 } 193 }
194 } 194 }
195 195
196 if (null != req.Headers["content-type"]) 196 if (null != req.Headers["content-type"])
197 _contentType = _request.Headers["content-type"]; 197 _contentType = _request.Headers["content-type"];
198 if (null != req.Headers["user-agent"]) 198 if (null != req.Headers["user-agent"])
199 _userAgent = req.Headers["user-agent"]; 199 _userAgent = req.Headers["user-agent"];
200 200
201 if (null != req.Headers["remote_addr"]) 201 if (null != req.Headers["remote_addr"])
202 { 202 {
203 try 203 try
204 { 204 {
205 IPAddress addr = IPAddress.Parse(req.Headers["remote_addr"]); 205 IPAddress addr = IPAddress.Parse(req.Headers["remote_addr"]);
206 // sometimes req.Headers["remote_port"] returns a comma separated list, so use 206 // sometimes req.Headers["remote_port"] returns a comma separated list, so use
207 // the first one in the list and log it 207 // the first one in the list and log it
208 string[] strPorts = req.Headers["remote_port"].Split(new char[] { ',' }); 208 string[] strPorts = req.Headers["remote_port"].Split(new char[] { ',' });
209 if (strPorts.Length > 1) 209 if (strPorts.Length > 1)
210 { 210 {
@@ -216,7 +216,7 @@ namespace OpenSim.Framework.Servers.HttpServer
216 } 216 }
217 catch (FormatException) 217 catch (FormatException)
218 { 218 {
219 _log.ErrorFormat("[OSHttpRequest]: format exception on addr/port {0}:{1}, ignoring", 219 _log.ErrorFormat("[OSHttpRequest]: format exception on addr/port {0}:{1}, ignoring",
220 req.Headers["remote_addr"], req.Headers["remote_port"]); 220 req.Headers["remote_addr"], req.Headers["remote_port"]);
221 } 221 }
222 } 222 }
diff --git a/OpenSim/Framework/Servers/HttpServer/OSHttpResponse.cs b/OpenSim/Framework/Servers/HttpServer/OSHttpResponse.cs
index ccf9c91..d7744fc 100644
--- a/OpenSim/Framework/Servers/HttpServer/OSHttpResponse.cs
+++ b/OpenSim/Framework/Servers/HttpServer/OSHttpResponse.cs
@@ -115,7 +115,7 @@ namespace OpenSim.Framework.Servers.HttpServer
115 115
116 public bool KeepAlive 116 public bool KeepAlive
117 { 117 {
118 get 118 get
119 { 119 {
120 return _httpResponse.Connection == ConnectionType.KeepAlive; 120 return _httpResponse.Connection == ConnectionType.KeepAlive;
121 } 121 }
diff --git a/OpenSim/Framework/Servers/HttpServer/OSHttpStatusCodes.cs b/OpenSim/Framework/Servers/HttpServer/OSHttpStatusCodes.cs
index a736c8b..88e3068 100644
--- a/OpenSim/Framework/Servers/HttpServer/OSHttpStatusCodes.cs
+++ b/OpenSim/Framework/Servers/HttpServer/OSHttpStatusCodes.cs
@@ -91,7 +91,7 @@ namespace OpenSim.Framework.Servers.HttpServer
91 /// 300 Redirect: different presentation forms available, take a pick 91 /// 300 Redirect: different presentation forms available, take a pick
92 /// </summary> 92 /// </summary>
93 RedirectMultipleChoices = 300, 93 RedirectMultipleChoices = 300,
94 94
95 /// <summary> 95 /// <summary>
96 /// 301 Redirect: requested resource has moved and now lives somewhere else 96 /// 301 Redirect: requested resource has moved and now lives somewhere else
97 /// </summary> 97 /// </summary>
diff --git a/OpenSim/Framework/Servers/HttpServer/PollServiceEventArgs.cs b/OpenSim/Framework/Servers/HttpServer/PollServiceEventArgs.cs
index 3fd3bf7..8ace7a9 100644
--- a/OpenSim/Framework/Servers/HttpServer/PollServiceEventArgs.cs
+++ b/OpenSim/Framework/Servers/HttpServer/PollServiceEventArgs.cs
@@ -46,14 +46,14 @@ namespace OpenSim.Framework.Servers.HttpServer
46 public RequestMethod Request; 46 public RequestMethod Request;
47 public UUID Id; 47 public UUID Id;
48 public int TimeOutms; 48 public int TimeOutms;
49 public EventType Type; 49 public EventType Type;
50 50
51 public enum EventType : int 51 public enum EventType : int
52 { 52 {
53 LongPoll = 0, 53 LongPoll = 0,
54 LslHttp = 1, 54 LslHttp = 1,
55 Inventory = 2, 55 Inventory = 2,
56 Texture = 3, 56 Texture = 3,
57 Mesh = 4 57 Mesh = 4
58 } 58 }
59 59
diff --git a/OpenSim/Framework/Servers/HttpServer/PollServiceRequestManager.cs b/OpenSim/Framework/Servers/HttpServer/PollServiceRequestManager.cs
index ffcad0f..936146d 100644
--- a/OpenSim/Framework/Servers/HttpServer/PollServiceRequestManager.cs
+++ b/OpenSim/Framework/Servers/HttpServer/PollServiceRequestManager.cs
@@ -80,7 +80,7 @@ namespace OpenSim.Framework.Servers.HttpServer
80 startInfo.ThreadPoolName = "PoolService"; 80 startInfo.ThreadPoolName = "PoolService";
81 81
82 m_threadPool = new SmartThreadPool(startInfo); 82 m_threadPool = new SmartThreadPool(startInfo);
83 83
84 } 84 }
85 85
86 public void Start() 86 public void Start()
@@ -109,7 +109,7 @@ namespace OpenSim.Framework.Servers.HttpServer
109 true, 109 true,
110 null, 110 null,
111 1000 * 60 * 10); 111 1000 * 60 * 10);
112 112
113 113
114 } 114 }
115 115
diff --git a/OpenSim/Framework/Servers/HttpServer/Properties/AssemblyInfo.cs b/OpenSim/Framework/Servers/HttpServer/Properties/AssemblyInfo.cs
index 398179f..9b663ba 100644
--- a/OpenSim/Framework/Servers/HttpServer/Properties/AssemblyInfo.cs
+++ b/OpenSim/Framework/Servers/HttpServer/Properties/AssemblyInfo.cs
@@ -2,7 +2,7 @@
2using System.Runtime.CompilerServices; 2using System.Runtime.CompilerServices;
3using System.Runtime.InteropServices; 3using System.Runtime.InteropServices;
4 4
5// General Information about an assembly is controlled through the following 5// General Information about an assembly is controlled through the following
6// set of attributes. Change these attribute values to modify the information 6// set of attributes. Change these attribute values to modify the information
7// associated with an assembly. 7// associated with an assembly.
8[assembly: AssemblyTitle("OpenSim.Framework.Servers.HttpServer")] 8[assembly: AssemblyTitle("OpenSim.Framework.Servers.HttpServer")]
@@ -14,8 +14,8 @@ using System.Runtime.InteropServices;
14[assembly: AssemblyTrademark("")] 14[assembly: AssemblyTrademark("")]
15[assembly: AssemblyCulture("")] 15[assembly: AssemblyCulture("")]
16 16
17// Setting ComVisible to false makes the types in this assembly not visible 17// Setting ComVisible to false makes the types in this assembly not visible
18// to COM components. If you need to access a type in this assembly from 18// to COM components. If you need to access a type in this assembly from
19// COM, set the ComVisible attribute to true on that type. 19// COM, set the ComVisible attribute to true on that type.
20[assembly: ComVisible(false)] 20[assembly: ComVisible(false)]
21 21
@@ -25,7 +25,7 @@ using System.Runtime.InteropServices;
25// Version information for an assembly consists of the following four values: 25// Version information for an assembly consists of the following four values:
26// 26//
27// Major Version 27// Major Version
28// Minor Version 28// Minor Version
29// Build Number 29// Build Number
30// Revision 30// Revision
31// 31//
diff --git a/OpenSim/Framework/Servers/HttpServer/RestSessionService.cs b/OpenSim/Framework/Servers/HttpServer/RestSessionService.cs
index ad69cd2..68073c1 100644
--- a/OpenSim/Framework/Servers/HttpServer/RestSessionService.cs
+++ b/OpenSim/Framework/Servers/HttpServer/RestSessionService.cs
@@ -291,5 +291,5 @@ namespace OpenSim.Framework.Servers.HttpServer
291 serializer.Serialize(xmlWriter, response); 291 serializer.Serialize(xmlWriter, response);
292 } 292 }
293 } 293 }
294 } 294 }
295} \ No newline at end of file 295} \ No newline at end of file
diff --git a/OpenSim/Framework/Servers/HttpServer/WebsocketServerHandler.cs b/OpenSim/Framework/Servers/HttpServer/WebsocketServerHandler.cs
index c2925e3..c8af90f 100644
--- a/OpenSim/Framework/Servers/HttpServer/WebsocketServerHandler.cs
+++ b/OpenSim/Framework/Servers/HttpServer/WebsocketServerHandler.cs
@@ -75,7 +75,7 @@ namespace OpenSim.Framework.Servers.HttpServer
75 public event PongDelegate OnPong; 75 public event PongDelegate OnPong;
76 76
77 /// <summary> 77 /// <summary>
78 /// This is a regular HTTP Request... This may be removed in the future. 78 /// This is a regular HTTP Request... This may be removed in the future.
79 /// </summary> 79 /// </summary>
80// public event RegularHttpRequestDelegate OnRegularHttpRequest; 80// public event RegularHttpRequestDelegate OnRegularHttpRequest;
81 81
@@ -93,9 +93,9 @@ namespace OpenSim.Framework.Servers.HttpServer
93 /// When the websocket is closed, this will be fired. 93 /// When the websocket is closed, this will be fired.
94 /// </summary> 94 /// </summary>
95 public event CloseDelegate OnClose; 95 public event CloseDelegate OnClose;
96 96
97 /// <summary> 97 /// <summary>
98 /// Set this delegate to allow your module to validate the origin of the 98 /// Set this delegate to allow your module to validate the origin of the
99 /// Websocket request. Primary line of defense against cross site scripting 99 /// Websocket request. Primary line of defense against cross site scripting
100 /// </summary> 100 /// </summary>
101 public ValidateHandshake HandshakeValidateMethodOverride = null; 101 public ValidateHandshake HandshakeValidateMethodOverride = null;
@@ -181,7 +181,7 @@ namespace OpenSim.Framework.Servers.HttpServer
181 { 181 {
182 throw new InvalidOperationException("The socket has been shutdown"); 182 throw new InvalidOperationException("The socket has been shutdown");
183 } 183 }
184 } 184 }
185 set 185 set
186 { 186 {
187 if (_networkContext != null && _networkContext.Socket != null) 187 if (_networkContext != null && _networkContext.Socket != null)
@@ -194,8 +194,8 @@ namespace OpenSim.Framework.Servers.HttpServer
194 } 194 }
195 195
196 /// <summary> 196 /// <summary>
197 /// This triggers the websocket to start the upgrade process... 197 /// This triggers the websocket to start the upgrade process...
198 /// This is a Generalized Networking 'common sense' helper method. Some people expect to call Start() instead 198 /// This is a Generalized Networking 'common sense' helper method. Some people expect to call Start() instead
199 /// of the more context appropriate HandshakeAndUpgrade() 199 /// of the more context appropriate HandshakeAndUpgrade()
200 /// </summary> 200 /// </summary>
201 public void Start() 201 public void Start()
@@ -261,7 +261,7 @@ namespace OpenSim.Framework.Servers.HttpServer
261 acceptKey = GenerateAcceptKey(websocketKey); 261 acceptKey = GenerateAcceptKey(websocketKey);
262 string rawaccept = string.Format(HandshakeAcceptText, acceptKey); 262 string rawaccept = string.Format(HandshakeAcceptText, acceptKey);
263 SendUpgradeSuccess(rawaccept); 263 SendUpgradeSuccess(rawaccept);
264 264
265 265
266 } 266 }
267 else 267 else
@@ -282,7 +282,7 @@ namespace OpenSim.Framework.Servers.HttpServer
282 } 282 }
283 283
284 /// <summary> 284 /// <summary>
285 /// Generates a handshake response key string based on the client's 285 /// Generates a handshake response key string based on the client's
286 /// provided key to prove to the client that we're allowing the Websocket 286 /// provided key to prove to the client that we're allowing the Websocket
287 /// upgrade of our own free will and we were not coerced into doing it. 287 /// upgrade of our own free will and we were not coerced into doing it.
288 /// </summary> 288 /// </summary>
@@ -298,7 +298,7 @@ namespace OpenSim.Framework.Servers.HttpServer
298 SHA1 hashobj = SHA1.Create(); 298 SHA1 hashobj = SHA1.Create();
299 string ret = Convert.ToBase64String(hashobj.ComputeHash(Encoding.UTF8.GetBytes(acceptkey))); 299 string ret = Convert.ToBase64String(hashobj.ComputeHash(Encoding.UTF8.GetBytes(acceptkey)));
300 hashobj.Clear(); 300 hashobj.Clear();
301 301
302 return ret; 302 return ret;
303 } 303 }
304 304
@@ -310,11 +310,11 @@ namespace OpenSim.Framework.Servers.HttpServer
310 { 310 {
311 // Create a new websocket state so we can keep track of data in between network reads. 311 // Create a new websocket state so we can keep track of data in between network reads.
312 WebSocketState socketState = new WebSocketState() { ReceivedBytes = new List<byte>(), Header = WebsocketFrameHeader.HeaderDefault(), FrameComplete = true}; 312 WebSocketState socketState = new WebSocketState() { ReceivedBytes = new List<byte>(), Header = WebsocketFrameHeader.HeaderDefault(), FrameComplete = true};
313 313
314 byte[] bhandshakeResponse = Encoding.UTF8.GetBytes(pHandshakeResponse); 314 byte[] bhandshakeResponse = Encoding.UTF8.GetBytes(pHandshakeResponse);
315 315
316 316
317 317
318 318
319 try 319 try
320 { 320 {
@@ -324,7 +324,7 @@ namespace OpenSim.Framework.Servers.HttpServer
324 } 324 }
325 // Begin reading the TCP stream before writing the Upgrade success message to the other side of the stream. 325 // Begin reading the TCP stream before writing the Upgrade success message to the other side of the stream.
326 _networkContext.Stream.BeginRead(_buffer, 0, _bufferLength, OnReceive, socketState); 326 _networkContext.Stream.BeginRead(_buffer, 0, _bufferLength, OnReceive, socketState);
327 327
328 // Write the upgrade handshake success message 328 // Write the upgrade handshake success message
329 _networkContext.Stream.Write(bhandshakeResponse, 0, bhandshakeResponse.Length); 329 _networkContext.Stream.Write(bhandshakeResponse, 0, bhandshakeResponse.Length);
330 _networkContext.Stream.Flush(); 330 _networkContext.Stream.Flush();
@@ -345,7 +345,7 @@ namespace OpenSim.Framework.Servers.HttpServer
345 catch (ObjectDisposedException) 345 catch (ObjectDisposedException)
346 { 346 {
347 Close(string.Empty); 347 Close(string.Empty);
348 } 348 }
349 } 349 }
350 350
351 /// <summary> 351 /// <summary>
@@ -369,7 +369,7 @@ namespace OpenSim.Framework.Servers.HttpServer
369 369
370 /// <summary> 370 /// <summary>
371 /// This is our ugly Async OnReceive event handler. 371 /// This is our ugly Async OnReceive event handler.
372 /// This chunks the input stream based on the length of the provided buffer and processes out 372 /// This chunks the input stream based on the length of the provided buffer and processes out
373 /// as many frames as it can. It then moves the unprocessed data to the beginning of the buffer. 373 /// as many frames as it can. It then moves the unprocessed data to the beginning of the buffer.
374 /// </summary> 374 /// </summary>
375 /// <param name="ar">Our Async State from beginread</param> 375 /// <param name="ar">Our Async State from beginread</param>
@@ -390,7 +390,7 @@ namespace OpenSim.Framework.Servers.HttpServer
390 390
391 if (_bufferPosition > _bufferLength) 391 if (_bufferPosition > _bufferLength)
392 { 392 {
393 // Message too big for chunksize.. not sure how this happened... 393 // Message too big for chunksize.. not sure how this happened...
394 //Close(string.Empty); 394 //Close(string.Empty);
395 } 395 }
396 396
@@ -413,7 +413,7 @@ namespace OpenSim.Framework.Servers.HttpServer
413 if (pheader.PayloadLen > (ulong) _maxPayloadBytes) 413 if (pheader.PayloadLen > (ulong) _maxPayloadBytes)
414 { 414 {
415 Close("Invalid Payload size"); 415 Close("Invalid Payload size");
416 416
417 return; 417 return;
418 } 418 }
419 if (pheader.PayloadLen > 0) 419 if (pheader.PayloadLen > 0)
@@ -487,7 +487,7 @@ namespace OpenSim.Framework.Servers.HttpServer
487 _socketState.ReceivedBytes.Clear(); 487 _socketState.ReceivedBytes.Clear();
488 _socketState.ExpectedBytes = 0; 488 _socketState.ExpectedBytes = 0;
489 // do some processing 489 // do some processing
490 } 490 }
491 } 491 }
492 } 492 }
493 if (offset > 0) 493 if (offset > 0)
@@ -504,7 +504,7 @@ namespace OpenSim.Framework.Servers.HttpServer
504 } 504 }
505 else 505 else
506 { 506 {
507 // We can't read the stream anymore... 507 // We can't read the stream anymore...
508 } 508 }
509 } 509 }
510 catch (IOException) 510 catch (IOException)
@@ -533,7 +533,7 @@ namespace OpenSim.Framework.Servers.HttpServer
533 textMessageFrame.Header.Opcode = WebSocketReader.OpCode.Text; 533 textMessageFrame.Header.Opcode = WebSocketReader.OpCode.Text;
534 textMessageFrame.Header.IsEnd = true; 534 textMessageFrame.Header.IsEnd = true;
535 SendSocket(textMessageFrame.ToBytes()); 535 SendSocket(textMessageFrame.ToBytes());
536 536
537 } 537 }
538 538
539 public void SendData(byte[] data) 539 public void SendData(byte[] data)
@@ -657,7 +657,7 @@ namespace OpenSim.Framework.Servers.HttpServer
657 SendSocket(pongFrame.ToBytes()); 657 SendSocket(pongFrame.ToBytes());
658 break; 658 break;
659 case WebSocketReader.OpCode.Pong: 659 case WebSocketReader.OpCode.Pong:
660 660
661 PongDelegate pongD = OnPong; 661 PongDelegate pongD = OnPong;
662 if (pongD != null) 662 if (pongD != null)
663 { 663 {
@@ -701,7 +701,7 @@ namespace OpenSim.Framework.Servers.HttpServer
701 { 701 {
702 textD(this, new WebsocketTextEventArgs() { Data = Encoding.UTF8.GetString(psocketState.ReceivedBytes.ToArray()) }); 702 textD(this, new WebsocketTextEventArgs() { Data = Encoding.UTF8.GetString(psocketState.ReceivedBytes.ToArray()) });
703 } 703 }
704 704
705 // Send Done Event! 705 // Send Done Event!
706 } 706 }
707 break; 707 break;
@@ -719,7 +719,7 @@ namespace OpenSim.Framework.Servers.HttpServer
719 { 719 {
720 if (psocketState.ContinuationFrame.Header.Opcode == WebSocketReader.OpCode.Text) 720 if (psocketState.ContinuationFrame.Header.Opcode == WebSocketReader.OpCode.Text)
721 { 721 {
722 // Send Done event 722 // Send Done event
723 TextDelegate textD = OnText; 723 TextDelegate textD = OnText;
724 if (textD != null) 724 if (textD != null)
725 { 725 {
@@ -744,9 +744,9 @@ namespace OpenSim.Framework.Servers.HttpServer
744 break; 744 break;
745 case WebSocketReader.OpCode.Close: 745 case WebSocketReader.OpCode.Close:
746 Close(string.Empty); 746 Close(string.Empty);
747 747
748 break; 748 break;
749 749
750 } 750 }
751 psocketState.Header.SetDefault(); 751 psocketState.Header.SetDefault();
752 psocketState.ReceivedBytes.Clear(); 752 psocketState.ReceivedBytes.Clear();
@@ -837,12 +837,12 @@ namespace OpenSim.Framework.Servers.HttpServer
837 } 837 }
838 838
839 /// <summary> 839 /// <summary>
840 /// Attempts to read a header off the provided buffer. Returns true, exports a WebSocketFrameheader, 840 /// Attempts to read a header off the provided buffer. Returns true, exports a WebSocketFrameheader,
841 /// and an int to move the buffer forward when it reads a header. False when it can't read a header 841 /// and an int to move the buffer forward when it reads a header. False when it can't read a header
842 /// </summary> 842 /// </summary>
843 /// <param name="pBuffer">Bytes read from the stream</param> 843 /// <param name="pBuffer">Bytes read from the stream</param>
844 /// <param name="pOffset">Starting place in the stream to begin trying to read from</param> 844 /// <param name="pOffset">Starting place in the stream to begin trying to read from</param>
845 /// <param name="length">Lenth in the stream to try and read from. Provided for cases where the 845 /// <param name="length">Lenth in the stream to try and read from. Provided for cases where the
846 /// buffer's length is larger then the data in it</param> 846 /// buffer's length is larger then the data in it</param>
847 /// <param name="oHeader">Outputs the read WebSocket frame header</param> 847 /// <param name="oHeader">Outputs the read WebSocket frame header</param>
848 /// <param name="moveBuffer">Informs the calling stream to move the buffer forward</param> 848 /// <param name="moveBuffer">Informs the calling stream to move the buffer forward</param>
@@ -897,7 +897,7 @@ namespace OpenSim.Framework.Servers.HttpServer
897 oHeader.PayloadLen = BitConverter.ToUInt16(pBuffer, pOffset + index); 897 oHeader.PayloadLen = BitConverter.ToUInt16(pBuffer, pOffset + index);
898 index += 2; 898 index += 2;
899 break; 899 break;
900 case 127: // we got more this is a bigger frame 900 case 127: // we got more this is a bigger frame
901 // 8 bytes - uint64 - most significant bit 0 network byte order 901 // 8 bytes - uint64 - most significant bit 0 network byte order
902 minumheadersize += 8; 902 minumheadersize += 8;
903 if (length < minumheadersize) 903 if (length < minumheadersize)
@@ -909,7 +909,7 @@ namespace OpenSim.Framework.Servers.HttpServer
909 oHeader.PayloadLen = BitConverter.ToUInt64(pBuffer, pOffset + index); 909 oHeader.PayloadLen = BitConverter.ToUInt64(pBuffer, pOffset + index);
910 index += 8; 910 index += 8;
911 break; 911 break;
912 912
913 } 913 }
914 //oHeader.PayloadLeft = oHeader.PayloadLen; // Start the count in case it's chunked over the network. This is different then frame fragmentation 914 //oHeader.PayloadLeft = oHeader.PayloadLen; // Start the count in case it's chunked over the network. This is different then frame fragmentation
915 if (oHeader.IsMasked) 915 if (oHeader.IsMasked)
@@ -937,9 +937,9 @@ namespace OpenSim.Framework.Servers.HttpServer
937 /* 937 /*
938 * RFC6455 938 * RFC6455
939nib 0 1 2 3 4 5 6 7 939nib 0 1 2 3 4 5 6 7
940byt 0 1 2 3 940byt 0 1 2 3
941dec 0 1 2 3 941dec 0 1 2 3
942 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 942 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
943 +-+-+-+-+-------+-+-------------+-------------------------------+ 943 +-+-+-+-+-------+-+-------------+-------------------------------+
944 |F|R|R|R| opcode|M| Payload len | Extended payload length | 944 |F|R|R|R| opcode|M| Payload len | Extended payload length |
945 |I|S|S|S| (4) |A| (7) | (16/64) + 945 |I|S|S|S| (4) |A| (7) | (16/64) +
@@ -963,7 +963,7 @@ dec 0 1 2 3
963 public static readonly WebSocketFrame DefaultFrame = new WebSocketFrame(){Header = new WebsocketFrameHeader(),WebSocketPayload = new byte[0]}; 963 public static readonly WebSocketFrame DefaultFrame = new WebSocketFrame(){Header = new WebsocketFrameHeader(),WebSocketPayload = new byte[0]};
964 public WebsocketFrameHeader Header; 964 public WebsocketFrameHeader Header;
965 public byte[] WebSocketPayload; 965 public byte[] WebSocketPayload;
966 966
967 public byte[] ToBytes() 967 public byte[] ToBytes()
968 { 968 {
969 Header.PayloadLen = (ulong)WebSocketPayload.Length; 969 Header.PayloadLen = (ulong)WebSocketPayload.Length;
@@ -991,7 +991,7 @@ dec 0 1 2 3
991 public int Mask; 991 public int Mask;
992 /* 992 /*
993byt 0 1 2 3 993byt 0 1 2 3
994 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 994 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
995 +---------------+---------------+---------------+---------------+ 995 +---------------+---------------+---------------+---------------+
996 | Octal 1 | Octal 2 | Octal 3 | Octal 4 | 996 | Octal 1 | Octal 2 | Octal 3 | Octal 4 |
997 +---------------+---------------+---------------+---------------+ 997 +---------------+---------------+---------------+---------------+
@@ -1002,11 +1002,11 @@ byt 0 1 2 3
1002 1002
1003 public UInt64 PayloadLen; 1003 public UInt64 PayloadLen;
1004 //public UInt64 PayloadLeft; 1004 //public UInt64 PayloadLeft;
1005 // Payload is X + Y 1005 // Payload is X + Y
1006 //public UInt64 ExtensionDataLength; 1006 //public UInt64 ExtensionDataLength;
1007 //public UInt64 ApplicationDataLength; 1007 //public UInt64 ApplicationDataLength;
1008 public static readonly WebsocketFrameHeader ZeroHeader = WebsocketFrameHeader.HeaderDefault(); 1008 public static readonly WebsocketFrameHeader ZeroHeader = WebsocketFrameHeader.HeaderDefault();
1009 1009
1010 public void SetDefault() 1010 public void SetDefault()
1011 { 1011 {
1012 1012
@@ -1025,16 +1025,16 @@ byt 0 1 2 3
1025 /// <summary> 1025 /// <summary>
1026 /// Returns a byte array representing the Frame header 1026 /// Returns a byte array representing the Frame header
1027 /// </summary> 1027 /// </summary>
1028 /// <param name="payload">This is the frame data payload. The header describes the size of the payload. 1028 /// <param name="payload">This is the frame data payload. The header describes the size of the payload.
1029 /// If payload is null, a Zero sized payload is assumed</param> 1029 /// If payload is null, a Zero sized payload is assumed</param>
1030 /// <returns>Returns a byte array representing the frame header</returns> 1030 /// <returns>Returns a byte array representing the frame header</returns>
1031 public byte[] ToBytes(byte[] payload) 1031 public byte[] ToBytes(byte[] payload)
1032 { 1032 {
1033 List<byte> result = new List<byte>(); 1033 List<byte> result = new List<byte>();
1034 1034
1035 // Squeeze in our opcode and our ending bit. 1035 // Squeeze in our opcode and our ending bit.
1036 result.Add((byte)((byte)Opcode | (IsEnd?0x80:0x00) )); 1036 result.Add((byte)((byte)Opcode | (IsEnd?0x80:0x00) ));
1037 1037
1038 // Again with the three different byte interpretations of size.. 1038 // Again with the three different byte interpretations of size..
1039 1039
1040 //bytesize 1040 //bytesize
@@ -1056,7 +1056,7 @@ byt 0 1 2 3
1056 Array.Reverse(payloadLengthByte); 1056 Array.Reverse(payloadLengthByte);
1057 result.AddRange(payloadLengthByte); 1057 result.AddRange(payloadLengthByte);
1058 } 1058 }
1059 1059
1060 // Only add a payload if it's not null 1060 // Only add a payload if it's not null
1061 if (payload != null) 1061 if (payload != null)
1062 { 1062 {
@@ -1155,5 +1155,5 @@ byt 0 1 2 3
1155 1155
1156 } 1156 }
1157 1157
1158 1158
1159} 1159}
diff --git a/OpenSim/Framework/Servers/HttpServer/XmlRpcBasicDOSProtector.cs b/OpenSim/Framework/Servers/HttpServer/XmlRpcBasicDOSProtector.cs
index f212208..6b2c0ab 100644
--- a/OpenSim/Framework/Servers/HttpServer/XmlRpcBasicDOSProtector.cs
+++ b/OpenSim/Framework/Servers/HttpServer/XmlRpcBasicDOSProtector.cs
@@ -36,7 +36,7 @@ namespace OpenSim.Framework.Servers.HttpServer
36 { 36 {
37 private readonly XmlRpcMethod _normalMethod; 37 private readonly XmlRpcMethod _normalMethod;
38 private readonly XmlRpcMethod _throttledMethod; 38 private readonly XmlRpcMethod _throttledMethod;
39 39
40 private readonly BasicDosProtectorOptions _options; 40 private readonly BasicDosProtectorOptions _options;
41 private readonly BasicDOSProtector _dosProtector; 41 private readonly BasicDOSProtector _dosProtector;
42 42
@@ -44,7 +44,7 @@ namespace OpenSim.Framework.Servers.HttpServer
44 { 44 {
45 _normalMethod = normalMethod; 45 _normalMethod = normalMethod;
46 _throttledMethod = throttledMethod; 46 _throttledMethod = throttledMethod;
47 47
48 _options = options; 48 _options = options;
49 _dosProtector = new BasicDOSProtector(_options); 49 _dosProtector = new BasicDOSProtector(_options);
50 50
@@ -87,5 +87,5 @@ namespace OpenSim.Framework.Servers.HttpServer
87 87
88 } 88 }
89 89
90 90
91} 91}
diff --git a/OpenSim/Framework/Servers/MainServer.cs b/OpenSim/Framework/Servers/MainServer.cs
index 57931d4..ea7b2b5 100644
--- a/OpenSim/Framework/Servers/MainServer.cs
+++ b/OpenSim/Framework/Servers/MainServer.cs
@@ -223,11 +223,11 @@ namespace OpenSim.Framework.Servers
223 { 223 {
224 handlers.AppendFormat( 224 handlers.AppendFormat(
225 "Registered HTTP Handlers for server at {0}:{1}\n", httpServer.ListenIPAddress, httpServer.Port); 225 "Registered HTTP Handlers for server at {0}:{1}\n", httpServer.ListenIPAddress, httpServer.Port);
226 226
227 handlers.AppendFormat("* XMLRPC:\n"); 227 handlers.AppendFormat("* XMLRPC:\n");
228 foreach (String s in httpServer.GetXmlRpcHandlerKeys()) 228 foreach (String s in httpServer.GetXmlRpcHandlerKeys())
229 handlers.AppendFormat("\t{0}\n", s); 229 handlers.AppendFormat("\t{0}\n", s);
230 230
231 handlers.AppendFormat("* HTTP:\n"); 231 handlers.AppendFormat("* HTTP:\n");
232 foreach (String s in httpServer.GetHTTPHandlerKeys()) 232 foreach (String s in httpServer.GetHTTPHandlerKeys())
233 handlers.AppendFormat("\t{0}\n", s); 233 handlers.AppendFormat("\t{0}\n", s);
@@ -235,19 +235,19 @@ namespace OpenSim.Framework.Servers
235 handlers.AppendFormat("* HTTP (poll):\n"); 235 handlers.AppendFormat("* HTTP (poll):\n");
236 foreach (String s in httpServer.GetPollServiceHandlerKeys()) 236 foreach (String s in httpServer.GetPollServiceHandlerKeys())
237 handlers.AppendFormat("\t{0}\n", s); 237 handlers.AppendFormat("\t{0}\n", s);
238 238
239 handlers.AppendFormat("* JSONRPC:\n"); 239 handlers.AppendFormat("* JSONRPC:\n");
240 foreach (String s in httpServer.GetJsonRpcHandlerKeys()) 240 foreach (String s in httpServer.GetJsonRpcHandlerKeys())
241 handlers.AppendFormat("\t{0}\n", s); 241 handlers.AppendFormat("\t{0}\n", s);
242 242
243// handlers.AppendFormat("* Agent:\n"); 243// handlers.AppendFormat("* Agent:\n");
244// foreach (String s in httpServer.GetAgentHandlerKeys()) 244// foreach (String s in httpServer.GetAgentHandlerKeys())
245// handlers.AppendFormat("\t{0}\n", s); 245// handlers.AppendFormat("\t{0}\n", s);
246 246
247 handlers.AppendFormat("* LLSD:\n"); 247 handlers.AppendFormat("* LLSD:\n");
248 foreach (String s in httpServer.GetLLSDHandlerKeys()) 248 foreach (String s in httpServer.GetLLSDHandlerKeys())
249 handlers.AppendFormat("\t{0}\n", s); 249 handlers.AppendFormat("\t{0}\n", s);
250 250
251 handlers.AppendFormat("* StreamHandlers ({0}):\n", httpServer.GetStreamHandlerKeys().Count); 251 handlers.AppendFormat("* StreamHandlers ({0}):\n", httpServer.GetStreamHandlerKeys().Count);
252 foreach (String s in httpServer.GetStreamHandlerKeys()) 252 foreach (String s in httpServer.GetStreamHandlerKeys())
253 handlers.AppendFormat("\t{0}\n", s); 253 handlers.AppendFormat("\t{0}\n", s);
@@ -334,7 +334,7 @@ namespace OpenSim.Framework.Servers
334 { 334 {
335 if (port == 0) 335 if (port == 0)
336 return Instance; 336 return Instance;
337 337
338 if (instance != null && port == Instance.Port) 338 if (instance != null && port == Instance.Port)
339 return Instance; 339 return Instance;
340 340
diff --git a/OpenSim/Framework/Servers/Properties/AssemblyInfo.cs b/OpenSim/Framework/Servers/Properties/AssemblyInfo.cs
index 792c62e..4469e7c 100644
--- a/OpenSim/Framework/Servers/Properties/AssemblyInfo.cs
+++ b/OpenSim/Framework/Servers/Properties/AssemblyInfo.cs
@@ -2,7 +2,7 @@
2using System.Runtime.CompilerServices; 2using System.Runtime.CompilerServices;
3using System.Runtime.InteropServices; 3using System.Runtime.InteropServices;
4 4
5// General Information about an assembly is controlled through the following 5// General Information about an assembly is controlled through the following
6// set of attributes. Change these attribute values to modify the information 6// set of attributes. Change these attribute values to modify the information
7// associated with an assembly. 7// associated with an assembly.
8[assembly: AssemblyTitle("OpenSim.Framework.Servers")] 8[assembly: AssemblyTitle("OpenSim.Framework.Servers")]
@@ -14,8 +14,8 @@ using System.Runtime.InteropServices;
14[assembly: AssemblyTrademark("")] 14[assembly: AssemblyTrademark("")]
15[assembly: AssemblyCulture("")] 15[assembly: AssemblyCulture("")]
16 16
17// Setting ComVisible to false makes the types in this assembly not visible 17// Setting ComVisible to false makes the types in this assembly not visible
18// to COM components. If you need to access a type in this assembly from 18// to COM components. If you need to access a type in this assembly from
19// COM, set the ComVisible attribute to true on that type. 19// COM, set the ComVisible attribute to true on that type.
20[assembly: ComVisible(false)] 20[assembly: ComVisible(false)]
21 21
@@ -25,7 +25,7 @@ using System.Runtime.InteropServices;
25// Version information for an assembly consists of the following four values: 25// Version information for an assembly consists of the following four values:
26// 26//
27// Major Version 27// Major Version
28// Minor Version 28// Minor Version
29// Build Number 29// Build Number
30// Revision 30// Revision
31// 31//
diff --git a/OpenSim/Framework/Servers/ServerBase.cs b/OpenSim/Framework/Servers/ServerBase.cs
index 7b806a4..8965e71 100644
--- a/OpenSim/Framework/Servers/ServerBase.cs
+++ b/OpenSim/Framework/Servers/ServerBase.cs
@@ -56,7 +56,7 @@ namespace OpenSim.Framework.Servers
56 protected ICommandConsole m_console; 56 protected ICommandConsole m_console;
57 57
58 protected OpenSimAppender m_consoleAppender; 58 protected OpenSimAppender m_consoleAppender;
59 protected FileAppender m_logFileAppender; 59 protected FileAppender m_logFileAppender;
60 60
61 protected DateTime m_startuptime; 61 protected DateTime m_startuptime;
62 protected string m_startupDirectory = Environment.CurrentDirectory; 62 protected string m_startupDirectory = Environment.CurrentDirectory;
@@ -81,7 +81,7 @@ namespace OpenSim.Framework.Servers
81 { 81 {
82 if (File.Exists(path)) 82 if (File.Exists(path))
83 m_log.ErrorFormat( 83 m_log.ErrorFormat(
84 "[SERVER BASE]: Previous pid file {0} still exists on startup. Possibly previously unclean shutdown.", 84 "[SERVER BASE]: Previous pid file {0} still exists on startup. Possibly previously unclean shutdown.",
85 path); 85 path);
86 86
87 try 87 try
@@ -103,7 +103,7 @@ namespace OpenSim.Framework.Servers
103 m_log.Warn(string.Format("[SERVER BASE]: Could not create PID file at {0} ", path), e); 103 m_log.Warn(string.Format("[SERVER BASE]: Could not create PID file at {0} ", path), e);
104 } 104 }
105 } 105 }
106 106
107 protected void RemovePIDFile() 107 protected void RemovePIDFile()
108 { 108 {
109 if (m_pidFile != String.Empty) 109 if (m_pidFile != String.Empty)
@@ -166,11 +166,11 @@ namespace OpenSim.Framework.Servers
166 { 166 {
167 // FIXME: This should be done through an interface rather than casting. 167 // FIXME: This should be done through an interface rather than casting.
168 m_consoleAppender.Console = (ConsoleBase)m_console; 168 m_consoleAppender.Console = (ConsoleBase)m_console;
169 169
170 // If there is no threshold set then the threshold is effectively everything. 170 // If there is no threshold set then the threshold is effectively everything.
171 if (null == m_consoleAppender.Threshold) 171 if (null == m_consoleAppender.Threshold)
172 m_consoleAppender.Threshold = Level.All; 172 m_consoleAppender.Threshold = Level.All;
173 173
174 Notice(String.Format("Console log level is {0}", m_consoleAppender.Threshold)); 174 Notice(String.Format("Console log level is {0}", m_consoleAppender.Threshold));
175 } 175 }
176 176
@@ -205,11 +205,11 @@ namespace OpenSim.Framework.Servers
205 "General", false, "show uptime", "show uptime", "Show server uptime", HandleShow); 205 "General", false, "show uptime", "show uptime", "Show server uptime", HandleShow);
206 206
207 m_console.Commands.AddCommand( 207 m_console.Commands.AddCommand(
208 "General", false, "get log level", "get log level", "Get the current console logging level", 208 "General", false, "get log level", "get log level", "Get the current console logging level",
209 (mod, cmd) => ShowLogLevel()); 209 (mod, cmd) => ShowLogLevel());
210 210
211 m_console.Commands.AddCommand( 211 m_console.Commands.AddCommand(
212 "General", false, "set log level", "set log level <level>", 212 "General", false, "set log level", "set log level <level>",
213 "Set the console logging level for this session.", HandleSetLogLevel); 213 "Set the console logging level for this session.", HandleSetLogLevel);
214 214
215 m_console.Commands.AddCommand( 215 m_console.Commands.AddCommand(
@@ -222,14 +222,14 @@ namespace OpenSim.Framework.Servers
222 "config get [<section>] [<key>]", 222 "config get [<section>] [<key>]",
223 "Synonym for config show", 223 "Synonym for config show",
224 HandleConfig); 224 HandleConfig);
225 225
226 m_console.Commands.AddCommand( 226 m_console.Commands.AddCommand(
227 "General", false, "config show", 227 "General", false, "config show",
228 "config show [<section>] [<key>]", 228 "config show [<section>] [<key>]",
229 "Show config information", 229 "Show config information",
230 "If neither section nor field are specified, then the whole current configuration is printed." + Environment.NewLine 230 "If neither section nor field are specified, then the whole current configuration is printed." + Environment.NewLine
231 + "If a section is given but not a field, then all fields in that section are printed.", 231 + "If a section is given but not a field, then all fields in that section are printed.",
232 HandleConfig); 232 HandleConfig);
233 233
234 m_console.Commands.AddCommand( 234 m_console.Commands.AddCommand(
235 "General", false, "config save", 235 "General", false, "config save",
@@ -280,7 +280,7 @@ namespace OpenSim.Framework.Servers
280 "debug threadpool status", 280 "debug threadpool status",
281 "Show current debug threadpool parameters.", 281 "Show current debug threadpool parameters.",
282 HandleDebugThreadpoolStatus); 282 HandleDebugThreadpoolStatus);
283 283
284 m_console.Commands.AddCommand( 284 m_console.Commands.AddCommand(
285 "Debug", false, "debug threadpool level", 285 "Debug", false, "debug threadpool level",
286 "debug threadpool level 0.." + Util.MAX_THREADPOOL_LEVEL, 286 "debug threadpool level 0.." + Util.MAX_THREADPOOL_LEVEL,
@@ -332,7 +332,7 @@ namespace OpenSim.Framework.Servers
332 { 332 {
333 WebUtil.SerializeOSDRequestsPerEndpoint = networkConfig.GetBoolean("SerializeOSDRequests", false); 333 WebUtil.SerializeOSDRequestsPerEndpoint = networkConfig.GetBoolean("SerializeOSDRequests", false);
334 } 334 }
335 335
336 m_serverStatsCollector = new ServerStatsCollector(); 336 m_serverStatsCollector = new ServerStatsCollector();
337 m_serverStatsCollector.Initialise(configSource); 337 m_serverStatsCollector.Initialise(configSource);
338 m_serverStatsCollector.Start(); 338 m_serverStatsCollector.Start();
@@ -432,7 +432,7 @@ namespace OpenSim.Framework.Servers
432 432
433 ThreadPool.GetAvailableThreads(out workerThreads, out iocpThreads); 433 ThreadPool.GetAvailableThreads(out workerThreads, out iocpThreads);
434 Notice("Available worker threads: {0}", workerThreads); 434 Notice("Available worker threads: {0}", workerThreads);
435 Notice("Available IOCP threads: {0}", iocpThreads); 435 Notice("Available IOCP threads: {0}", iocpThreads);
436 } 436 }
437 437
438 private void HandleDebugThreadpoolSet(string module, string[] args) 438 private void HandleDebugThreadpoolSet(string module, string[] args)
@@ -488,7 +488,7 @@ namespace OpenSim.Framework.Servers
488 fail = true; 488 fail = true;
489 } 489 }
490 } 490 }
491 491
492 if (fail) 492 if (fail)
493 { 493 {
494 Notice("ERROR: Could not set {0} {1} threads to {2}", poolType, bound, newThreads); 494 Notice("ERROR: Could not set {0} {1} threads to {2}", poolType, bound, newThreads);
@@ -582,7 +582,7 @@ namespace OpenSim.Framework.Servers
582 if (cmdparams.Length > 0) 582 if (cmdparams.Length > 0)
583 { 583 {
584 string firstParam = cmdparams[0].ToLower(); 584 string firstParam = cmdparams[0].ToLower();
585 585
586 switch (firstParam) 586 switch (firstParam)
587 { 587 {
588 case "set": 588 case "set":
@@ -633,12 +633,12 @@ namespace OpenSim.Framework.Servers
633 { 633 {
634 Notice("[{0}]", config.Name); 634 Notice("[{0}]", config.Name);
635 foreach (string key in config.GetKeys()) 635 foreach (string key in config.GetKeys())
636 Notice(" {0} = {1}", key, config.GetString(key)); 636 Notice(" {0} = {1}", key, config.GetString(key));
637 } 637 }
638 else 638 else
639 { 639 {
640 Notice( 640 Notice(
641 "config get {0} {1} : {2}", 641 "config get {0} {1} : {2}",
642 cmdparams[1], cmdparams[2], config.GetString(cmdparams[2])); 642 cmdparams[1], cmdparams[2], config.GetString(cmdparams[2]));
643 } 643 }
644 } 644 }
@@ -692,10 +692,10 @@ namespace OpenSim.Framework.Servers
692 } 692 }
693 693
694 string rawLevel = cmd[3]; 694 string rawLevel = cmd[3];
695 695
696 ILoggerRepository repository = LogManager.GetRepository(); 696 ILoggerRepository repository = LogManager.GetRepository();
697 Level consoleLevel = repository.LevelMap[rawLevel]; 697 Level consoleLevel = repository.LevelMap[rawLevel];
698 698
699 if (consoleLevel != null) 699 if (consoleLevel != null)
700 m_consoleAppender.Threshold = consoleLevel; 700 m_consoleAppender.Threshold = consoleLevel;
701 else 701 else
@@ -770,9 +770,9 @@ namespace OpenSim.Framework.Servers
770 protected void ShowInfo() 770 protected void ShowInfo()
771 { 771 {
772 Notice(GetVersionText()); 772 Notice(GetVersionText());
773 Notice("Startup directory: " + m_startupDirectory); 773 Notice("Startup directory: " + m_startupDirectory);
774 if (null != m_consoleAppender) 774 if (null != m_consoleAppender)
775 Notice(String.Format("Console log level: {0}", m_consoleAppender.Threshold)); 775 Notice(String.Format("Console log level: {0}", m_consoleAppender.Threshold));
776 } 776 }
777 777
778 /// <summary> 778 /// <summary>
@@ -873,7 +873,7 @@ namespace OpenSim.Framework.Servers
873 873
874 public string GetVersionText() 874 public string GetVersionText()
875 { 875 {
876 return String.Format("Version: {0} (SIMULATION/{1} - SIMULATION/{2})", 876 return String.Format("Version: {0} (SIMULATION/{1} - SIMULATION/{2})",
877 m_version, VersionInfo.SimulationServiceVersionSupportedMin, VersionInfo.SimulationServiceVersionSupportedMax); 877 m_version, VersionInfo.SimulationServiceVersionSupportedMin, VersionInfo.SimulationServiceVersionSupportedMax);
878 } 878 }
879 879
@@ -898,7 +898,7 @@ namespace OpenSim.Framework.Servers
898 foreach (Watchdog.ThreadWatchdogInfo twi in threads) 898 foreach (Watchdog.ThreadWatchdogInfo twi in threads)
899 { 899 {
900 Thread t = twi.Thread; 900 Thread t = twi.Thread;
901 901
902 sb.AppendFormat( 902 sb.AppendFormat(
903 reportFormat, 903 reportFormat,
904 t.ManagedThreadId, 904 t.ManagedThreadId,
@@ -1005,7 +1005,7 @@ namespace OpenSim.Framework.Servers
1005 MainConsole.Instance.OutputFormat("Aborted thread with id {0}", threadId); 1005 MainConsole.Instance.OutputFormat("Aborted thread with id {0}", threadId);
1006 else 1006 else
1007 MainConsole.Instance.OutputFormat("ERROR - Thread with id {0} not found in managed threads", threadId); 1007 MainConsole.Instance.OutputFormat("ERROR - Thread with id {0} not found in managed threads", threadId);
1008 } 1008 }
1009 1009
1010 /// <summary> 1010 /// <summary>
1011 /// Console output is only possible if a console has been established. 1011 /// Console output is only possible if a console has been established.
@@ -1020,13 +1020,13 @@ namespace OpenSim.Framework.Servers
1020 m_console.Output(msg); 1020 m_console.Output(msg);
1021 } 1021 }
1022 } 1022 }
1023 1023
1024 /// <summary> 1024 /// <summary>
1025 /// Console output is only possible if a console has been established. 1025 /// Console output is only possible if a console has been established.
1026 /// That is something that cannot be determined within this class. So 1026 /// That is something that cannot be determined within this class. So
1027 /// all attempts to use the console MUST be verified. 1027 /// all attempts to use the console MUST be verified.
1028 /// </summary> 1028 /// </summary>
1029 /// <param name="format"></param> 1029 /// <param name="format"></param>
1030 /// <param name="components"></param> 1030 /// <param name="components"></param>
1031 protected void Notice(string format, params object[] components) 1031 protected void Notice(string format, params object[] components)
1032 { 1032 {
diff --git a/OpenSim/Framework/Servers/Tests/OSHttpTests.cs b/OpenSim/Framework/Servers/Tests/OSHttpTests.cs
index 60533cd..e5f7043 100644
--- a/OpenSim/Framework/Servers/Tests/OSHttpTests.cs
+++ b/OpenSim/Framework/Servers/Tests/OSHttpTests.cs
@@ -92,87 +92,87 @@ namespace OpenSim.Framework.Servers.Tests
92 public class TestHttpRequest: IHttpRequest 92 public class TestHttpRequest: IHttpRequest
93 { 93 {
94 private string _uriPath; 94 private string _uriPath;
95 public bool BodyIsComplete 95 public bool BodyIsComplete
96 { 96 {
97 get { return true; } 97 get { return true; }
98 } 98 }
99 public string[] AcceptTypes 99 public string[] AcceptTypes
100 { 100 {
101 get {return _acceptTypes; } 101 get {return _acceptTypes; }
102 } 102 }
103 private string[] _acceptTypes; 103 private string[] _acceptTypes;
104 public Stream Body 104 public Stream Body
105 { 105 {
106 get { return _body; } 106 get { return _body; }
107 set { _body = value;} 107 set { _body = value;}
108 } 108 }
109 private Stream _body; 109 private Stream _body;
110 public ConnectionType Connection 110 public ConnectionType Connection
111 { 111 {
112 get { return _connection; } 112 get { return _connection; }
113 set { _connection = value; } 113 set { _connection = value; }
114 } 114 }
115 private ConnectionType _connection; 115 private ConnectionType _connection;
116 public int ContentLength 116 public int ContentLength
117 { 117 {
118 get { return _contentLength; } 118 get { return _contentLength; }
119 set { _contentLength = value; } 119 set { _contentLength = value; }
120 } 120 }
121 private int _contentLength; 121 private int _contentLength;
122 public NameValueCollection Headers 122 public NameValueCollection Headers
123 { 123 {
124 get { return _headers; } 124 get { return _headers; }
125 } 125 }
126 private NameValueCollection _headers = new NameValueCollection(); 126 private NameValueCollection _headers = new NameValueCollection();
127 public string HttpVersion 127 public string HttpVersion
128 { 128 {
129 get { return _httpVersion; } 129 get { return _httpVersion; }
130 set { _httpVersion = value; } 130 set { _httpVersion = value; }
131 } 131 }
132 private string _httpVersion = null; 132 private string _httpVersion = null;
133 public string Method 133 public string Method
134 { 134 {
135 get { return _method; } 135 get { return _method; }
136 set { _method = value; } 136 set { _method = value; }
137 } 137 }
138 private string _method = null; 138 private string _method = null;
139 public HttpInput QueryString 139 public HttpInput QueryString
140 { 140 {
141 get { return _queryString; } 141 get { return _queryString; }
142 } 142 }
143 private HttpInput _queryString = null; 143 private HttpInput _queryString = null;
144 public Uri Uri 144 public Uri Uri
145 { 145 {
146 get { return _uri; } 146 get { return _uri; }
147 set { _uri = value; } 147 set { _uri = value; }
148 } 148 }
149 private Uri _uri = null; 149 private Uri _uri = null;
150 public string[] UriParts 150 public string[] UriParts
151 { 151 {
152 get { return _uri.Segments; } 152 get { return _uri.Segments; }
153 } 153 }
154 public HttpParam Param 154 public HttpParam Param
155 { 155 {
156 get { return null; } 156 get { return null; }
157 } 157 }
158 public HttpForm Form 158 public HttpForm Form
159 { 159 {
160 get { return null; } 160 get { return null; }
161 } 161 }
162 public bool IsAjax 162 public bool IsAjax
163 { 163 {
164 get { return false; } 164 get { return false; }
165 } 165 }
166 public RequestCookies Cookies 166 public RequestCookies Cookies
167 { 167 {
168 get { return null; } 168 get { return null; }
169 } 169 }
170 170
171 public TestHttpRequest() {} 171 public TestHttpRequest() {}
172 172
173 public TestHttpRequest(string contentEncoding, string contentType, string userAgent, 173 public TestHttpRequest(string contentEncoding, string contentType, string userAgent,
174 string remoteAddr, string remotePort, string[] acceptTypes, 174 string remoteAddr, string remotePort, string[] acceptTypes,
175 ConnectionType connectionType, int contentLength, Uri uri) 175 ConnectionType connectionType, int contentLength, Uri uri)
176 { 176 {
177 _headers["content-encoding"] = contentEncoding; 177 _headers["content-encoding"] = contentEncoding;
178 _headers["content-type"] = contentType; 178 _headers["content-type"] = contentType;
@@ -192,7 +192,7 @@ namespace OpenSim.Framework.Servers.Tests
192 { 192 {
193 _headers.Add(name, value); 193 _headers.Add(name, value);
194 } 194 }
195 public int AddToBody(byte[] bytes, int offset, int length) 195 public int AddToBody(byte[] bytes, int offset, int length)
196 { 196 {
197 return 0; 197 return 0;
198 } 198 }
@@ -223,7 +223,7 @@ namespace OpenSim.Framework.Servers.Tests
223 set 223 set
224 { 224 {
225 _uriPath = value; 225 _uriPath = value;
226 226
227 } 227 }
228 } 228 }
229 229
@@ -231,7 +231,7 @@ namespace OpenSim.Framework.Servers.Tests
231 231
232 public class TestHttpResponse: IHttpResponse 232 public class TestHttpResponse: IHttpResponse
233 { 233 {
234 public Stream Body 234 public Stream Body
235 { 235 {
236 get { return _body; } 236 get { return _body; }
237 237
@@ -239,14 +239,14 @@ namespace OpenSim.Framework.Servers.Tests
239 } 239 }
240 private Stream _body; 240 private Stream _body;
241 241
242 public string ProtocolVersion 242 public string ProtocolVersion
243 { 243 {
244 get { return _protocolVersion; } 244 get { return _protocolVersion; }
245 set { _protocolVersion = value; } 245 set { _protocolVersion = value; }
246 } 246 }
247 private string _protocolVersion; 247 private string _protocolVersion;
248 248
249 public bool Chunked 249 public bool Chunked
250 { 250 {
251 get { return _chunked; } 251 get { return _chunked; }
252 252
@@ -254,7 +254,7 @@ namespace OpenSim.Framework.Servers.Tests
254 } 254 }
255 private bool _chunked; 255 private bool _chunked;
256 256
257 public ConnectionType Connection 257 public ConnectionType Connection
258 { 258 {
259 get { return _connection; } 259 get { return _connection; }
260 260
@@ -262,7 +262,7 @@ namespace OpenSim.Framework.Servers.Tests
262 } 262 }
263 private ConnectionType _connection; 263 private ConnectionType _connection;
264 264
265 public Encoding Encoding 265 public Encoding Encoding
266 { 266 {
267 get { return _encoding; } 267 get { return _encoding; }
268 268
@@ -270,7 +270,7 @@ namespace OpenSim.Framework.Servers.Tests
270 } 270 }
271 private Encoding _encoding; 271 private Encoding _encoding;
272 272
273 public int KeepAlive 273 public int KeepAlive
274 { 274 {
275 get { return _keepAlive; } 275 get { return _keepAlive; }
276 276
@@ -278,7 +278,7 @@ namespace OpenSim.Framework.Servers.Tests
278 } 278 }
279 private int _keepAlive; 279 private int _keepAlive;
280 280
281 public HttpStatusCode Status 281 public HttpStatusCode Status
282 { 282 {
283 get { return _status; } 283 get { return _status; }
284 284
@@ -286,7 +286,7 @@ namespace OpenSim.Framework.Servers.Tests
286 } 286 }
287 private HttpStatusCode _status; 287 private HttpStatusCode _status;
288 288
289 public string Reason 289 public string Reason
290 { 290 {
291 get { return _reason; } 291 get { return _reason; }
292 292
@@ -294,7 +294,7 @@ namespace OpenSim.Framework.Servers.Tests
294 } 294 }
295 private string _reason; 295 private string _reason;
296 296
297 public long ContentLength 297 public long ContentLength
298 { 298 {
299 get { return _contentLength; } 299 get { return _contentLength; }
300 300
@@ -302,7 +302,7 @@ namespace OpenSim.Framework.Servers.Tests
302 } 302 }
303 private long _contentLength; 303 private long _contentLength;
304 304
305 public string ContentType 305 public string ContentType
306 { 306 {
307 get { return _contentType; } 307 get { return _contentType; }
308 308
@@ -310,19 +310,19 @@ namespace OpenSim.Framework.Servers.Tests
310 } 310 }
311 private string _contentType; 311 private string _contentType;
312 312
313 public bool HeadersSent 313 public bool HeadersSent
314 { 314 {
315 get { return _headersSent; } 315 get { return _headersSent; }
316 } 316 }
317 private bool _headersSent; 317 private bool _headersSent;
318 318
319 public bool Sent 319 public bool Sent
320 { 320 {
321 get { return _sent; } 321 get { return _sent; }
322 } 322 }
323 private bool _sent; 323 private bool _sent;
324 324
325 public ResponseCookies Cookies 325 public ResponseCookies Cookies
326 { 326 {
327 get { return _cookies; } 327 get { return _cookies; }
328 } 328 }
@@ -335,25 +335,25 @@ namespace OpenSim.Framework.Servers.Tests
335 } 335 }
336 336
337 public void AddHeader(string name, string value) {} 337 public void AddHeader(string name, string value) {}
338 public void Send() 338 public void Send()
339 { 339 {
340 if (!_headersSent) SendHeaders(); 340 if (!_headersSent) SendHeaders();
341 if (_sent) throw new InvalidOperationException("stuff already sent"); 341 if (_sent) throw new InvalidOperationException("stuff already sent");
342 _sent = true; 342 _sent = true;
343 } 343 }
344 344
345 public void SendBody(byte[] buffer, int offset, int count) 345 public void SendBody(byte[] buffer, int offset, int count)
346 { 346 {
347 if (!_headersSent) SendHeaders(); 347 if (!_headersSent) SendHeaders();
348 _sent = true; 348 _sent = true;
349 } 349 }
350 public void SendBody(byte[] buffer) 350 public void SendBody(byte[] buffer)
351 { 351 {
352 if (!_headersSent) SendHeaders(); 352 if (!_headersSent) SendHeaders();
353 _sent = true; 353 _sent = true;
354 } 354 }
355 355
356 public void SendHeaders() 356 public void SendHeaders()
357 { 357 {
358 if (_headersSent) throw new InvalidOperationException("headers already sent"); 358 if (_headersSent) throw new InvalidOperationException("headers already sent");
359 _headersSent = true; 359 _headersSent = true;
@@ -362,7 +362,7 @@ namespace OpenSim.Framework.Servers.Tests
362 public void Redirect(Uri uri) {} 362 public void Redirect(Uri uri) {}
363 public void Redirect(string url) {} 363 public void Redirect(string url) {}
364 } 364 }
365 365
366 366
367 public OSHttpRequest req0; 367 public OSHttpRequest req0;
368 public OSHttpRequest req1; 368 public OSHttpRequest req1;
@@ -374,22 +374,22 @@ namespace OpenSim.Framework.Servers.Tests
374 [TestFixtureSetUp] 374 [TestFixtureSetUp]
375 public void Init() 375 public void Init()
376 { 376 {
377 TestHttpRequest threq0 = new TestHttpRequest("utf-8", "text/xml", "OpenSim Test Agent", "192.168.0.1", "4711", 377 TestHttpRequest threq0 = new TestHttpRequest("utf-8", "text/xml", "OpenSim Test Agent", "192.168.0.1", "4711",
378 new string[] {"text/xml"}, 378 new string[] {"text/xml"},
379 ConnectionType.KeepAlive, 4711, 379 ConnectionType.KeepAlive, 4711,
380 new Uri("http://127.0.0.1/admin/inventory/Dr+Who/Tardis")); 380 new Uri("http://127.0.0.1/admin/inventory/Dr+Who/Tardis"));
381 threq0.Method = "GET"; 381 threq0.Method = "GET";
382 threq0.HttpVersion = HttpHelper.HTTP10; 382 threq0.HttpVersion = HttpHelper.HTTP10;
383 383
384 TestHttpRequest threq1 = new TestHttpRequest("utf-8", "text/xml", "OpenSim Test Agent", "192.168.0.1", "4711", 384 TestHttpRequest threq1 = new TestHttpRequest("utf-8", "text/xml", "OpenSim Test Agent", "192.168.0.1", "4711",
385 new string[] {"text/xml"}, 385 new string[] {"text/xml"},
386 ConnectionType.KeepAlive, 4711, 386 ConnectionType.KeepAlive, 4711,
387 new Uri("http://127.0.0.1/admin/inventory/Dr+Who/Tardis?a=0&b=1&c=2")); 387 new Uri("http://127.0.0.1/admin/inventory/Dr+Who/Tardis?a=0&b=1&c=2"));
388 threq1.Method = "POST"; 388 threq1.Method = "POST";
389 threq1.HttpVersion = HttpHelper.HTTP11; 389 threq1.HttpVersion = HttpHelper.HTTP11;
390 threq1.Headers["x-wuff"] = "wuffwuff"; 390 threq1.Headers["x-wuff"] = "wuffwuff";
391 threq1.Headers["www-authenticate"] = "go away"; 391 threq1.Headers["www-authenticate"] = "go away";
392 392
393 req0 = new OSHttpRequest(new TestHttpClientContext(false), threq0); 393 req0 = new OSHttpRequest(new TestHttpClientContext(false), threq0);
394 req1 = new OSHttpRequest(new TestHttpClientContext(false), threq1); 394 req1 = new OSHttpRequest(new TestHttpClientContext(false), threq1);
395 395
diff --git a/OpenSim/Framework/ServiceAuth/BasicHttpAuthentication.cs b/OpenSim/Framework/ServiceAuth/BasicHttpAuthentication.cs
index 512ac4f..9126cfb 100644
--- a/OpenSim/Framework/ServiceAuth/BasicHttpAuthentication.cs
+++ b/OpenSim/Framework/ServiceAuth/BasicHttpAuthentication.cs
@@ -56,7 +56,7 @@ namespace OpenSim.Framework.ServiceAuth
56 { 56 {
57// remove_me = section; 57// remove_me = section;
58 m_Username = Util.GetConfigVarFromSections<string>(config, "HttpAuthUsername", new string[] { "Network", section }, string.Empty); 58 m_Username = Util.GetConfigVarFromSections<string>(config, "HttpAuthUsername", new string[] { "Network", section }, string.Empty);
59 m_Password = Util.GetConfigVarFromSections<string>(config, "HttpAuthPassword", new string[] { "Network", section }, string.Empty); 59 m_Password = Util.GetConfigVarFromSections<string>(config, "HttpAuthPassword", new string[] { "Network", section }, string.Empty);
60 string str = m_Username + ":" + m_Password; 60 string str = m_Username + ":" + m_Password;
61 byte[] encData_byte = Util.UTF8.GetBytes(str); 61 byte[] encData_byte = Util.UTF8.GetBytes(str);
62 62
diff --git a/OpenSim/Framework/ServiceAuth/CompoundAuthentication.cs b/OpenSim/Framework/ServiceAuth/CompoundAuthentication.cs
index a49952c..79d6ff4 100644
--- a/OpenSim/Framework/ServiceAuth/CompoundAuthentication.cs
+++ b/OpenSim/Framework/ServiceAuth/CompoundAuthentication.cs
@@ -56,7 +56,7 @@ namespace OpenSim.Framework.ServiceAuth
56 m_authentications.Remove(auth); 56 m_authentications.Remove(auth);
57 } 57 }
58 58
59 public void AddAuthorization(NameValueCollection headers) 59 public void AddAuthorization(NameValueCollection headers)
60 { 60 {
61 foreach (IServiceAuth auth in m_authentications) 61 foreach (IServiceAuth auth in m_authentications)
62 auth.AddAuthorization(headers); 62 auth.AddAuthorization(headers);
diff --git a/OpenSim/Framework/SimStats.cs b/OpenSim/Framework/SimStats.cs
index a811187..f19a270 100644
--- a/OpenSim/Framework/SimStats.cs
+++ b/OpenSim/Framework/SimStats.cs
@@ -32,7 +32,7 @@ namespace OpenSim.Framework
32{ 32{
33 /// <summary> 33 /// <summary>
34 /// Enapsulate statistics for a simulator/scene. 34 /// Enapsulate statistics for a simulator/scene.
35 /// 35 ///
36 /// TODO: This looks very much like the OpenMetaverse SimStatsPacket. It should be much more generic stats 36 /// TODO: This looks very much like the OpenMetaverse SimStatsPacket. It should be much more generic stats
37 /// storage. 37 /// storage.
38 /// </summary> 38 /// </summary>
@@ -49,7 +49,7 @@ namespace OpenSim.Framework
49 get { return m_regionY; } 49 get { return m_regionY; }
50 } 50 }
51 private uint m_regionY; 51 private uint m_regionY;
52 52
53 public SimStatsPacket.RegionBlock RegionBlock 53 public SimStatsPacket.RegionBlock RegionBlock
54 { 54 {
55 get { return m_regionBlock; } 55 get { return m_regionBlock; }
@@ -73,7 +73,7 @@ namespace OpenSim.Framework
73 get { return m_regionFlags; } 73 get { return m_regionFlags; }
74 } 74 }
75 private uint m_regionFlags; 75 private uint m_regionFlags;
76 76
77 public uint ObjectCapacity 77 public uint ObjectCapacity
78 { 78 {
79 get { return m_objectCapacity; } 79 get { return m_objectCapacity; }
@@ -85,9 +85,9 @@ namespace OpenSim.Framework
85 get { return regionUUID; } 85 get { return regionUUID; }
86 } 86 }
87 private UUID regionUUID; 87 private UUID regionUUID;
88 88
89 public SimStats( 89 public SimStats(
90 uint regionX, uint regionY, uint regionFlags, uint objectCapacity, 90 uint regionX, uint regionY, uint regionFlags, uint objectCapacity,
91 SimStatsPacket.RegionBlock regionBlock, SimStatsPacket.StatBlock[] statsBlock, 91 SimStatsPacket.RegionBlock regionBlock, SimStatsPacket.StatBlock[] statsBlock,
92 SimStatsPacket.StatBlock[] ExtraStatsBlock, UUID pRUUID) 92 SimStatsPacket.StatBlock[] ExtraStatsBlock, UUID pRUUID)
93 { 93 {
diff --git a/OpenSim/Framework/TaskInventoryDictionary.cs b/OpenSim/Framework/TaskInventoryDictionary.cs
index c270d98..223d91f 100644
--- a/OpenSim/Framework/TaskInventoryDictionary.cs
+++ b/OpenSim/Framework/TaskInventoryDictionary.cs
@@ -52,7 +52,7 @@ namespace OpenSim.Framework
52 52
53 private static XmlSerializer tiiSerializer = new XmlSerializer(typeof (TaskInventoryItem)); 53 private static XmlSerializer tiiSerializer = new XmlSerializer(typeof (TaskInventoryItem));
54 private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); 54 private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
55 55
56 private Thread LockedByThread; 56 private Thread LockedByThread;
57// private string WriterStack; 57// private string WriterStack;
58 58
@@ -98,7 +98,7 @@ namespace OpenSim.Framework
98 if (!LockedByThread.IsAlive) 98 if (!LockedByThread.IsAlive)
99 { 99 {
100 //Locked by dead thread, reset. 100 //Locked by dead thread, reset.
101 m_itemLock = new System.Threading.ReaderWriterLockSlim(); 101 m_itemLock = new System.Threading.ReaderWriterLockSlim();
102 } 102 }
103 } 103 }
104 104
@@ -146,7 +146,7 @@ namespace OpenSim.Framework
146// {} 146// {}
147 m_itemLock.ExitWriteLock(); 147 m_itemLock.ExitWriteLock();
148 } 148 }
149 149
150 while (!m_itemLock.TryEnterReadLock(60000)) 150 while (!m_itemLock.TryEnterReadLock(60000))
151 { 151 {
152 m_log.Error("Thread lock detected while trying to aquire READ lock in TaskInventoryDictionary. Locked by thread " + LockedByThread.Name + ". I'm going to try to solve the thread lock automatically to preserve region stability, but this needs to be fixed."); 152 m_log.Error("Thread lock detected while trying to aquire READ lock in TaskInventoryDictionary. Locked by thread " + LockedByThread.Name + ". I'm going to try to solve the thread lock automatically to preserve region stability, but this needs to be fixed.");
diff --git a/OpenSim/Framework/TaskInventoryItem.cs b/OpenSim/Framework/TaskInventoryItem.cs
index b195bbe..1cc32b3 100644
--- a/OpenSim/Framework/TaskInventoryItem.cs
+++ b/OpenSim/Framework/TaskInventoryItem.cs
@@ -73,7 +73,7 @@ namespace OpenSim.Framework
73 private UUID _loadedID = UUID.Zero; 73 private UUID _loadedID = UUID.Zero;
74 74
75 private bool _ownerChanged = false; 75 private bool _ownerChanged = false;
76 76
77 public UUID AssetID { 77 public UUID AssetID {
78 get { 78 get {
79 return _assetID; 79 return _assetID;
diff --git a/OpenSim/Framework/Tests/AgentCircuitDataTest.cs b/OpenSim/Framework/Tests/AgentCircuitDataTest.cs
index e8ae728..5ad0030 100644
--- a/OpenSim/Framework/Tests/AgentCircuitDataTest.cs
+++ b/OpenSim/Framework/Tests/AgentCircuitDataTest.cs
@@ -96,7 +96,7 @@ namespace OpenSim.Framework.Tests
96 VisualParams[(int)AvatarAppearance.VPElement.SHAPE_FOOT_SIZE] = 45; 96 VisualParams[(int)AvatarAppearance.VPElement.SHAPE_FOOT_SIZE] = 45;
97 97
98 98
99 // head 99 // head
100 VisualParams[(int)AvatarAppearance.VPElement.SHAPE_HEAD_SIZE] = 255; 100 VisualParams[(int)AvatarAppearance.VPElement.SHAPE_HEAD_SIZE] = 255;
101 VisualParams[(int)AvatarAppearance.VPElement.SHAPE_SQUASH_STRETCH_HEAD] = 0; // head stretch 101 VisualParams[(int)AvatarAppearance.VPElement.SHAPE_SQUASH_STRETCH_HEAD] = 0; // head stretch
102 VisualParams[(int)AvatarAppearance.VPElement.SHAPE_HEAD_SHAPE] = 155; 102 VisualParams[(int)AvatarAppearance.VPElement.SHAPE_HEAD_SHAPE] = 155;
@@ -106,7 +106,7 @@ namespace OpenSim.Framework.Tests
106 VisualParams[(int)AvatarAppearance.VPElement.SHAPE_FACE_SHEAR] = 127; 106 VisualParams[(int)AvatarAppearance.VPElement.SHAPE_FACE_SHEAR] = 127;
107 VisualParams[(int)AvatarAppearance.VPElement.SHAPE_FOREHEAD_ANGLE] = 104; 107 VisualParams[(int)AvatarAppearance.VPElement.SHAPE_FOREHEAD_ANGLE] = 104;
108 VisualParams[(int)AvatarAppearance.VPElement.SHAPE_BIG_BROW] = 94; 108 VisualParams[(int)AvatarAppearance.VPElement.SHAPE_BIG_BROW] = 94;
109 VisualParams[(int)AvatarAppearance.VPElement.SHAPE_PUFFY_UPPER_CHEEKS] = 0; // upper cheeks 109 VisualParams[(int)AvatarAppearance.VPElement.SHAPE_PUFFY_UPPER_CHEEKS] = 0; // upper cheeks
110 VisualParams[(int)AvatarAppearance.VPElement.SHAPE_DOUBLE_CHIN] = 122; // lower cheeks 110 VisualParams[(int)AvatarAppearance.VPElement.SHAPE_DOUBLE_CHIN] = 122; // lower cheeks
111 VisualParams[(int)AvatarAppearance.VPElement.SHAPE_HIGH_CHEEK_BONES] = 130; 111 VisualParams[(int)AvatarAppearance.VPElement.SHAPE_HIGH_CHEEK_BONES] = 130;
112 112
@@ -232,7 +232,7 @@ namespace OpenSim.Framework.Tests
232 /// <summary> 232 /// <summary>
233 /// Test to ensure that the serialization format is the same and the underlying types don't change without notice 233 /// Test to ensure that the serialization format is the same and the underlying types don't change without notice
234 /// oldSerialization is just a json serialization of the OSDMap packed for the AgentCircuitData. 234 /// oldSerialization is just a json serialization of the OSDMap packed for the AgentCircuitData.
235 /// The idea is that if the current json serializer cannot parse the old serialization, then the underlying types 235 /// The idea is that if the current json serializer cannot parse the old serialization, then the underlying types
236 /// have changed and are incompatible. 236 /// have changed and are incompatible.
237 /// </summary> 237 /// </summary>
238 [Test] 238 [Test]
@@ -319,7 +319,7 @@ namespace OpenSim.Framework.Tests
319 string str = OSDParser.SerializeJsonString(map); 319 string str = OSDParser.SerializeJsonString(map);
320 //System.Console.WriteLine(str); 320 //System.Console.WriteLine(str);
321 map2 = (OSDMap) OSDParser.DeserializeJson(str); 321 map2 = (OSDMap) OSDParser.DeserializeJson(str);
322 } 322 }
323 catch (System.NullReferenceException) 323 catch (System.NullReferenceException)
324 { 324 {
325 //spurious litjson errors :P 325 //spurious litjson errors :P
diff --git a/OpenSim/Framework/Tests/AgentCircuitManagerTests.cs b/OpenSim/Framework/Tests/AgentCircuitManagerTests.cs
index ae132c8..b572afc 100644
--- a/OpenSim/Framework/Tests/AgentCircuitManagerTests.cs
+++ b/OpenSim/Framework/Tests/AgentCircuitManagerTests.cs
@@ -183,7 +183,7 @@ namespace OpenSim.Framework.Tests
183 183
184 resp = agentCircuitManager.AuthenticateSession(UUID.Random(), AgentId1, circuitcode1); 184 resp = agentCircuitManager.AuthenticateSession(UUID.Random(), AgentId1, circuitcode1);
185 Assert.That(!resp.Authorised); 185 Assert.That(!resp.Authorised);
186 186
187 resp = agentCircuitManager.AuthenticateSession(SessionId1, AgentId1, circuitcode2); 187 resp = agentCircuitManager.AuthenticateSession(SessionId1, AgentId1, circuitcode2);
188 Assert.That(!resp.Authorised); 188 Assert.That(!resp.Authorised);
189 189
diff --git a/OpenSim/Framework/Tests/AnimationTests.cs b/OpenSim/Framework/Tests/AnimationTests.cs
index d8f17d0..daf8611 100644
--- a/OpenSim/Framework/Tests/AnimationTests.cs
+++ b/OpenSim/Framework/Tests/AnimationTests.cs
@@ -84,7 +84,7 @@ namespace OpenSim.Framework.Tests
84 anim4.AnimID = anim2.AnimID; 84 anim4.AnimID = anim2.AnimID;
85 anim4.ObjectID = anim2.ObjectID; 85 anim4.ObjectID = anim2.ObjectID;
86 anim4.SequenceNum = anim2.SequenceNum; 86 anim4.SequenceNum = anim2.SequenceNum;
87 87
88 Assert.That(anim4.ObjectID == objUUID2 && anim4.AnimID == animUUID2 && anim4.SequenceNum == 1, "void constructor and manual field population failed to set the properties correctly."); 88 Assert.That(anim4.ObjectID == objUUID2 && anim4.AnimID == animUUID2 && anim4.SequenceNum == 1, "void constructor and manual field population failed to set the properties correctly.");
89 } 89 }
90 } 90 }
diff --git a/OpenSim/Framework/Tests/CacheTests.cs b/OpenSim/Framework/Tests/CacheTests.cs
index c709860..a92ff3c 100644
--- a/OpenSim/Framework/Tests/CacheTests.cs
+++ b/OpenSim/Framework/Tests/CacheTests.cs
@@ -70,7 +70,7 @@ namespace OpenSim.Framework.Tests
70 Assert.That(citem == null, "Item should not be in Cache"); 70 Assert.That(citem == null, "Item should not be in Cache");
71 } 71 }
72 72
73 73
74 [Test] 74 [Test]
75 public void ExpireItemManually() 75 public void ExpireItemManually()
76 { 76 {
@@ -96,7 +96,7 @@ namespace OpenSim.Framework.Tests
96 cachedItem.Store(foo); 96 cachedItem.Store(foo);
97 cache.Store(cacheItemUUID.ToString(), cachedItem); 97 cache.Store(cacheItemUUID.ToString(), cachedItem);
98 cache.Clear(); 98 cache.Clear();
99 99
100 object citem = cache.Get(cacheItemUUID.ToString()); 100 object citem = cache.Get(cacheItemUUID.ToString());
101 Assert.That(citem == null, "Item should not be in Cache because we manually invalidated it"); 101 Assert.That(citem == null, "Item should not be in Cache because we manually invalidated it");
102 } 102 }
diff --git a/OpenSim/Framework/Tests/LocationTest.cs b/OpenSim/Framework/Tests/LocationTest.cs
index 3d5d1d2..5e84026 100644
--- a/OpenSim/Framework/Tests/LocationTest.cs
+++ b/OpenSim/Framework/Tests/LocationTest.cs
@@ -85,6 +85,6 @@ namespace OpenSim.Framework.Tests
85 Assert.That(TestLocation2.Equals(cln), "Cloned object failed .Equals(obj) Test"); 85 Assert.That(TestLocation2.Equals(cln), "Cloned object failed .Equals(obj) Test");
86 86
87 } 87 }
88 88
89 } 89 }
90} 90}
diff --git a/OpenSim/Framework/Tests/MundaneFrameworkTests.cs b/OpenSim/Framework/Tests/MundaneFrameworkTests.cs
index d8072c7..bde7056 100644
--- a/OpenSim/Framework/Tests/MundaneFrameworkTests.cs
+++ b/OpenSim/Framework/Tests/MundaneFrameworkTests.cs
@@ -110,7 +110,7 @@ namespace OpenSim.Framework.Tests
110 && position2.Center == position1.Center 110 && position2.Center == position1.Center
111 && position2.RegionHandle == position1.RegionHandle 111 && position2.RegionHandle == position1.RegionHandle
112 && position2.Far == position1.Far 112 && position2.Far == position1.Far
113 113
114 ,"Copy From ChildAgentDataUpdate failed"); 114 ,"Copy From ChildAgentDataUpdate failed");
115 115
116 position2 = new AgentPosition(); 116 position2 = new AgentPosition();
@@ -148,13 +148,13 @@ namespace OpenSim.Framework.Tests
148// string time = settings.LoadedCreationTime; 148// string time = settings.LoadedCreationTime;
149 149
150 Assert.That(m_RegionSettingsOnSaveEventFired, "RegionSettings Save Event didn't Fire"); 150 Assert.That(m_RegionSettingsOnSaveEventFired, "RegionSettings Save Event didn't Fire");
151 151
152 } 152 }
153 public void RegionSaveFired(RegionSettings settings) 153 public void RegionSaveFired(RegionSettings settings)
154 { 154 {
155 m_RegionSettingsOnSaveEventFired = true; 155 m_RegionSettingsOnSaveEventFired = true;
156 } 156 }
157 157
158 [Test] 158 [Test]
159 public void InventoryItemBaseConstructorTest01() 159 public void InventoryItemBaseConstructorTest01()
160 { 160 {
@@ -164,7 +164,7 @@ namespace OpenSim.Framework.Tests
164 164
165 UUID ItemID = UUID.Random(); 165 UUID ItemID = UUID.Random();
166 UUID OwnerID = UUID.Random(); 166 UUID OwnerID = UUID.Random();
167 167
168 InventoryItemBase b2 = new InventoryItemBase(ItemID); 168 InventoryItemBase b2 = new InventoryItemBase(ItemID);
169 Assert.That(b2.ID == ItemID, "ID constructor should create an inventory item with ID = ItemID"); 169 Assert.That(b2.ID == ItemID, "ID constructor should create an inventory item with ID = ItemID");
170 Assert.That(b2.Owner == UUID.Zero, "ID constructor should create an inventory item with Owner = UUID.Zero"); 170 Assert.That(b2.Owner == UUID.Zero, "ID constructor should create an inventory item with Owner = UUID.Zero");
@@ -268,7 +268,7 @@ namespace OpenSim.Framework.Tests
268 Assert.That(fld.ID == uuid1, "ID,Owner constructor failed to save value in ID field."); 268 Assert.That(fld.ID == uuid1, "ID,Owner constructor failed to save value in ID field.");
269 Assert.That(fld.Owner == uuid2, "ID,Owner constructor failed to save value in ID field."); 269 Assert.That(fld.Owner == uuid2, "ID,Owner constructor failed to save value in ID field.");
270 } 270 }
271 271
272 [Test] 272 [Test]
273 public void AsssetBaseConstructorTest01() 273 public void AsssetBaseConstructorTest01()
274 { 274 {
@@ -304,6 +304,6 @@ namespace OpenSim.Framework.Tests
304 Culture.SetCurrentCulture(); 304 Culture.SetCurrentCulture();
305 Assert.That(Thread.CurrentThread.CurrentCulture.Name == ci.Name, "SetCurrentCulture failed to set thread culture to en-US"); 305 Assert.That(Thread.CurrentThread.CurrentCulture.Name == ci.Name, "SetCurrentCulture failed to set thread culture to en-US");
306 306
307 } 307 }
308 } 308 }
309} 309}
diff --git a/OpenSim/Framework/Tests/PrimeNumberHelperTests.cs b/OpenSim/Framework/Tests/PrimeNumberHelperTests.cs
index 82e13e5..cc30fb9 100644
--- a/OpenSim/Framework/Tests/PrimeNumberHelperTests.cs
+++ b/OpenSim/Framework/Tests/PrimeNumberHelperTests.cs
@@ -127,9 +127,9 @@ namespace OpenSim.Framework.Tests
127 127
128 int[] nonprimes = { 128 int[] nonprimes = {
129 4, 6, 8, 10, 14, 16, 18, 22, 28, 30, 36, 40, 42, 46, 52, 58, 60, 66, 70, 72, 78, 82, 88, 129 4, 6, 8, 10, 14, 16, 18, 22, 28, 30, 36, 40, 42, 46, 52, 58, 60, 66, 70, 72, 78, 82, 88,
130 96, 366, 372, 378, 382, 388, 396, 400, 408, 418, 420, 430, 432, 438, 442, 448, 456, 460, 462, 130 96, 366, 372, 378, 382, 388, 396, 400, 408, 418, 420, 430, 432, 438, 442, 448, 456, 460, 462,
131 466, 478, 486, 490, 498, 502, 508, 856, 858, 862, 876, 880, 882, 886, 906, 910, 918, 928, 936, 131 466, 478, 486, 490, 498, 502, 508, 856, 858, 862, 876, 880, 882, 886, 906, 910, 918, 928, 936,
132 940, 946, 952, 966, 970, 976, 982, 990, 996, 1008, 1740, 1746, 1752, 1758, 4650, 4656, 4662, 132 940, 946, 952, 966, 970, 976, 982, 990, 996, 1008, 1740, 1746, 1752, 1758, 4650, 4656, 4662,
133 4672, 4678, 4690, 7740, 7752, 7756, 7758, 7788, 7792, 7816, 7822, 7828, 7840, 7852, 7866, 7872, 133 4672, 4678, 4690, 7740, 7752, 7756, 7758, 7788, 7792, 7816, 7822, 7828, 7840, 7852, 7866, 7872,
134 7876, 7878, 7882, 7900, 7906, 7918 134 7876, 7878, 7882, 7900, 7906, 7918
135 }; 135 };
diff --git a/OpenSim/Framework/Tests/UtilTest.cs b/OpenSim/Framework/Tests/UtilTest.cs
index 14b9d2f..b3d79ee 100644
--- a/OpenSim/Framework/Tests/UtilTest.cs
+++ b/OpenSim/Framework/Tests/UtilTest.cs
@@ -233,7 +233,7 @@ namespace OpenSim.Framework.Tests
233 "application/vnd.ll.clothing", 233 "application/vnd.ll.clothing",
234 "application/vnd.ll.gesture" 234 "application/vnd.ll.gesture"
235 }; 235 };
236 236
237 for (int i=0;i<inventorytypes.Length;i++) 237 for (int i=0;i<inventorytypes.Length;i++)
238 { 238 {
239 Assert.AreEqual(invcontenttypes[i], SLUtil.SLInvTypeToContentType(inventorytypes[i]), 239 Assert.AreEqual(invcontenttypes[i], SLUtil.SLInvTypeToContentType(inventorytypes[i]),
diff --git a/OpenSim/Framework/UserProfileData.cs b/OpenSim/Framework/UserProfileData.cs
index f7069a5..d8fa629 100644
--- a/OpenSim/Framework/UserProfileData.cs
+++ b/OpenSim/Framework/UserProfileData.cs
@@ -159,12 +159,12 @@ namespace OpenSim.Framework
159 /// </summary> 159 /// </summary>
160 public virtual ulong HomeRegion 160 public virtual ulong HomeRegion
161 { 161 {
162 get 162 get
163 { 163 {
164 return Util.RegionWorldLocToHandle(Util.RegionToWorldLoc(m_homeRegionX), Util.RegionToWorldLoc(m_homeRegionY)); 164 return Util.RegionWorldLocToHandle(Util.RegionToWorldLoc(m_homeRegionX), Util.RegionToWorldLoc(m_homeRegionY));
165 // return Utils.UIntsToLong( m_homeRegionX * (uint)Constants.RegionSize, m_homeRegionY * (uint)Constants.RegionSize); 165 // return Utils.UIntsToLong( m_homeRegionX * (uint)Constants.RegionSize, m_homeRegionY * (uint)Constants.RegionSize);
166 } 166 }
167 167
168 set 168 set
169 { 169 {
170 uint regionWorldLocX, regionWorldLocY; 170 uint regionWorldLocX, regionWorldLocY;
@@ -212,7 +212,7 @@ namespace OpenSim.Framework
212 get { return m_surname; } 212 get { return m_surname; }
213 set { m_surname = value; } 213 set { m_surname = value; }
214 } 214 }
215 215
216 /// <value> 216 /// <value>
217 /// The concatentation of the various name components. 217 /// The concatentation of the various name components.
218 /// </value> 218 /// </value>
diff --git a/OpenSim/Framework/UserProfiles.cs b/OpenSim/Framework/UserProfiles.cs
index 4ed890b..7c6a6fe 100644
--- a/OpenSim/Framework/UserProfiles.cs
+++ b/OpenSim/Framework/UserProfiles.cs
@@ -50,7 +50,7 @@ namespace OpenSim.Framework
50 public byte Flags = 0; 50 public byte Flags = 0;
51 public int Price = 0; 51 public int Price = 0;
52 } 52 }
53 53
54 public class UserProfileProperties 54 public class UserProfileProperties
55 { 55 {
56 public UUID UserId = UUID.Zero; 56 public UUID UserId = UUID.Zero;
@@ -68,7 +68,7 @@ namespace OpenSim.Framework
68 public UUID FirstLifeImageId = UUID.Zero; 68 public UUID FirstLifeImageId = UUID.Zero;
69 public string FirstLifeText = string.Empty; 69 public string FirstLifeText = string.Empty;
70 } 70 }
71 71
72 public class UserProfilePick 72 public class UserProfilePick
73 { 73 {
74 public UUID PickId = UUID.Zero; 74 public UUID PickId = UUID.Zero;
@@ -86,7 +86,7 @@ namespace OpenSim.Framework
86 public int SortOrder = 0; 86 public int SortOrder = 0;
87 public bool Enabled = false; 87 public bool Enabled = false;
88 } 88 }
89 89
90 public class UserProfileNotes 90 public class UserProfileNotes
91 { 91 {
92 public UUID UserId; 92 public UUID UserId;
@@ -101,7 +101,7 @@ namespace OpenSim.Framework
101 public bool Visible = false; 101 public bool Visible = false;
102 public string EMail = string.Empty; 102 public string EMail = string.Empty;
103 } 103 }
104 104
105 public class UserAccountProperties 105 public class UserAccountProperties
106 { 106 {
107 public string EmailAddress = string.Empty; 107 public string EmailAddress = string.Empty;
@@ -110,13 +110,13 @@ namespace OpenSim.Framework
110 public string Password = string.Empty; 110 public string Password = string.Empty;
111 public string UserId = string.Empty; 111 public string UserId = string.Empty;
112 } 112 }
113 113
114 public class UserAccountAuth 114 public class UserAccountAuth
115 { 115 {
116 public string UserId = UUID.Zero.ToString(); 116 public string UserId = UUID.Zero.ToString();
117 public string Password = string.Empty; 117 public string Password = string.Empty;
118 } 118 }
119 119
120 public class UserAppData 120 public class UserAppData
121 { 121 {
122 public string TagId = string.Empty; 122 public string TagId = string.Empty;
diff --git a/OpenSim/Framework/Util.cs b/OpenSim/Framework/Util.cs
index 89cf045..6d679f2 100644
--- a/OpenSim/Framework/Util.cs
+++ b/OpenSim/Framework/Util.cs
@@ -59,7 +59,7 @@ namespace OpenSim.Framework
59{ 59{
60 [Flags] 60 [Flags]
61 public enum PermissionMask : uint 61 public enum PermissionMask : uint
62 { 62 {
63 None = 0, 63 None = 0,
64 64
65 // folded perms 65 // folded perms
@@ -112,7 +112,7 @@ namespace OpenSim.Framework
112 public STPStartInfo STPStartInfo { get; set; } 112 public STPStartInfo STPStartInfo { get; set; }
113 public WIGStartInfo WIGStartInfo { get; set; } 113 public WIGStartInfo WIGStartInfo { get; set; }
114 public bool IsIdle { get; set; } 114 public bool IsIdle { get; set; }
115 public bool IsShuttingDown { get; set; } 115 public bool IsShuttingDown { get; set; }
116 public int MaxThreads { get; set; } 116 public int MaxThreads { get; set; }
117 public int MinThreads { get; set; } 117 public int MinThreads { get; set; }
118 public int InUseThreads { get; set; } 118 public int InUseThreads { get; set; }
@@ -230,7 +230,7 @@ namespace OpenSim.Framework
230 public static Encoding UTF8NoBomEncoding = new UTF8Encoding(false); 230 public static Encoding UTF8NoBomEncoding = new UTF8Encoding(false);
231 231
232 /// <value> 232 /// <value>
233 /// Well known UUID for the blank texture used in the Linden SL viewer version 1.20 (and hopefully onwards) 233 /// Well known UUID for the blank texture used in the Linden SL viewer version 1.20 (and hopefully onwards)
234 /// </value> 234 /// </value>
235 public static UUID BLANK_TEXTURE_UUID = new UUID("5748decc-f629-461c-9a36-a35a221fe21f"); 235 public static UUID BLANK_TEXTURE_UUID = new UUID("5748decc-f629-461c-9a36-a35a221fe21f");
236 236
@@ -280,7 +280,7 @@ namespace OpenSim.Framework
280 /// </summary> 280 /// </summary>
281 /// <param name="a">A 3d vector</param> 281 /// <param name="a">A 3d vector</param>
282 /// <returns>A new vector which is normalized form of the vector</returns> 282 /// <returns>A new vector which is normalized form of the vector</returns>
283 283
284 public static Vector3 GetNormalizedVector(Vector3 a) 284 public static Vector3 GetNormalizedVector(Vector3 a)
285 { 285 {
286 Vector3 v = new Vector3(a.X, a.Y, a.Z); 286 Vector3 v = new Vector3(a.X, a.Y, a.Z);
@@ -371,7 +371,7 @@ namespace OpenSim.Framework
371 // Regions are identified with a 'handle' made up of its world coordinates packed into a ulong. 371 // Regions are identified with a 'handle' made up of its world coordinates packed into a ulong.
372 // Region handles are based on the coordinate of the region corner with lower X and Y 372 // Region handles are based on the coordinate of the region corner with lower X and Y
373 // var regions need more work than this to get that right corner from a generic world position 373 // var regions need more work than this to get that right corner from a generic world position
374 // this corner must be on a grid point 374 // this corner must be on a grid point
375 public static ulong RegionWorldLocToHandle(uint X, uint Y) 375 public static ulong RegionWorldLocToHandle(uint X, uint Y)
376 { 376 {
377 ulong handle = X & 0xffffff00; // make sure it matchs grid coord points. 377 ulong handle = X & 0xffffff00; // make sure it matchs grid coord points.
@@ -450,7 +450,7 @@ namespace OpenSim.Framework
450 450
451 string host; 451 string host;
452 uint port = 80; 452 uint port = 80;
453 453
454 string[] parts = inputName.Split(new char[] { ':' }); 454 string[] parts = inputName.Split(new char[] { ':' });
455 int indx; 455 int indx;
456 if(parts.Length == 0) 456 if(parts.Length == 0)
@@ -470,7 +470,7 @@ namespace OpenSim.Framework
470 else 470 else
471 { 471 {
472 host = parts[0]; 472 host = parts[0];
473 473
474 if (parts.Length >= 2) 474 if (parts.Length >= 2)
475 { 475 {
476 indx = parts[1].IndexOf('/'); 476 indx = parts[1].IndexOf('/');
@@ -875,8 +875,8 @@ namespace OpenSim.Framework
875 /// <param name="newx">New region x-coord</param> 875 /// <param name="newx">New region x-coord</param>
876 /// <param name="oldy">Old region y-coord</param> 876 /// <param name="oldy">Old region y-coord</param>
877 /// <param name="newy">New region y-coord</param> 877 /// <param name="newy">New region y-coord</param>
878 /// <returns></returns> 878 /// <returns></returns>
879 public static bool IsOutsideView(float drawdist, uint oldx, uint newx, uint oldy, uint newy, 879 public static bool IsOutsideView(float drawdist, uint oldx, uint newx, uint oldy, uint newy,
880 int oldsizex, int oldsizey, int newsizex, int newsizey) 880 int oldsizex, int oldsizey, int newsizex, int newsizey)
881 { 881 {
882 // we still need to make sure we see new region 1stNeighbors 882 // we still need to make sure we see new region 1stNeighbors
@@ -1267,7 +1267,7 @@ namespace OpenSim.Framework
1267 1267
1268 /// <summary> 1268 /// <summary>
1269 /// Gets the value of a configuration variable by looking into 1269 /// Gets the value of a configuration variable by looking into
1270 /// multiple sections in order. The latter sections overwrite 1270 /// multiple sections in order. The latter sections overwrite
1271 /// any values previously found. 1271 /// any values previously found.
1272 /// </summary> 1272 /// </summary>
1273 /// <typeparam name="T">Type of the variable</typeparam> 1273 /// <typeparam name="T">Type of the variable</typeparam>
@@ -1282,7 +1282,7 @@ namespace OpenSim.Framework
1282 1282
1283 /// <summary> 1283 /// <summary>
1284 /// Gets the value of a configuration variable by looking into 1284 /// Gets the value of a configuration variable by looking into
1285 /// multiple sections in order. The latter sections overwrite 1285 /// multiple sections in order. The latter sections overwrite
1286 /// any values previously found. 1286 /// any values previously found.
1287 /// </summary> 1287 /// </summary>
1288 /// <remarks> 1288 /// <remarks>
@@ -1338,7 +1338,7 @@ namespace OpenSim.Framework
1338 ConfigSource.ExpandKeyValues(); 1338 ConfigSource.ExpandKeyValues();
1339 } 1339 }
1340 } 1340 }
1341 1341
1342 public static T ReadSettingsFromIniFile<T>(IConfig config, T settingsClass) 1342 public static T ReadSettingsFromIniFile<T>(IConfig config, T settingsClass)
1343 { 1343 {
1344 Type settingsType = settingsClass.GetType(); 1344 Type settingsType = settingsClass.GetType();
@@ -1449,7 +1449,7 @@ namespace OpenSim.Framework
1449 1449
1450 if (File.Exists(configFile)) 1450 if (File.Exists(configFile))
1451 { 1451 {
1452 // Merge 1452 // Merge
1453 config.Merge(new IniConfigSource(configFile)); 1453 config.Merge(new IniConfigSource(configFile));
1454 config.ExpandKeyValues(); 1454 config.ExpandKeyValues();
1455 configFilePath = configFile; 1455 configFilePath = configFile;
@@ -1598,7 +1598,7 @@ namespace OpenSim.Framework
1598 } 1598 }
1599 1599
1600 memory.Position = 0; 1600 memory.Position = 0;
1601 1601
1602 byte[] compressed = new byte[memory.Length]; 1602 byte[] compressed = new byte[memory.Length];
1603 memory.Read(compressed, 0, compressed.Length); 1603 memory.Read(compressed, 0, compressed.Length);
1604 1604
@@ -1645,7 +1645,7 @@ namespace OpenSim.Framework
1645 const int readSize = 256; 1645 const int readSize = 256;
1646 byte[] buffer = new byte[readSize]; 1646 byte[] buffer = new byte[readSize];
1647 MemoryStream ms = new MemoryStream(); 1647 MemoryStream ms = new MemoryStream();
1648 1648
1649 int count = inputStream.Read(buffer, 0, readSize); 1649 int count = inputStream.Read(buffer, 0, readSize);
1650 1650
1651 while (count > 0) 1651 while (count > 0)
@@ -1731,10 +1731,10 @@ namespace OpenSim.Framework
1731 regionHandle = Utils.BytesToUInt64(bytes); 1731 regionHandle = Utils.BytesToUInt64(bytes);
1732 x = Utils.BytesToUInt(bytes, 8) & 0xffff; 1732 x = Utils.BytesToUInt(bytes, 8) & 0xffff;
1733 y = Utils.BytesToUInt(bytes, 12) & 0xffff; 1733 y = Utils.BytesToUInt(bytes, 12) & 0xffff;
1734 // validation may fail, just reducing the odds of using a real UUID as encoded parcel 1734 // validation may fail, just reducing the odds of using a real UUID as encoded parcel
1735 return ( bytes[0] == 0 && bytes[4] == 0 && // handler x,y multiples of 256 1735 return ( bytes[0] == 0 && bytes[4] == 0 && // handler x,y multiples of 256
1736 bytes[9] < 64 && bytes[13] < 64 && // positions < 16km 1736 bytes[9] < 64 && bytes[13] < 64 && // positions < 16km
1737 bytes[14] == 0 && bytes[15] == 0); 1737 bytes[14] == 0 && bytes[15] == 0);
1738 } 1738 }
1739 1739
1740 public static void ParseFakeParcelID(UUID parcelID, out ulong regionHandle, out uint x, out uint y, out uint z) 1740 public static void ParseFakeParcelID(UUID parcelID, out ulong regionHandle, out uint x, out uint y, out uint z)
@@ -1757,7 +1757,7 @@ namespace OpenSim.Framework
1757 x += rx; 1757 x += rx;
1758 y += ry; 1758 y += ry;
1759 } 1759 }
1760 1760
1761 /// <summary> 1761 /// <summary>
1762 /// Get operating system information if available. Returns only the first 45 characters of information 1762 /// Get operating system information if available. Returns only the first 45 characters of information
1763 /// </summary> 1763 /// </summary>
@@ -1776,12 +1776,12 @@ namespace OpenSim.Framework
1776// { 1776// {
1777// os = ReadEtcIssue(); 1777// os = ReadEtcIssue();
1778// } 1778// }
1779// 1779//
1780// if (os.Length > 45) 1780// if (os.Length > 45)
1781// { 1781// {
1782// os = os.Substring(0, 45); 1782// os = os.Substring(0, 45);
1783// } 1783// }
1784 1784
1785 return os; 1785 return os;
1786 } 1786 }
1787 1787
@@ -1993,7 +1993,7 @@ namespace OpenSim.Framework
1993 vol = vcomps[0]; 1993 vol = vcomps[0];
1994 } 1994 }
1995 } 1995 }
1996 1996
1997 string[] comps = path.Split(new char[] {Path.DirectorySeparatorChar, Path.AltDirectorySeparatorChar}, StringSplitOptions.RemoveEmptyEntries); 1997 string[] comps = path.Split(new char[] {Path.DirectorySeparatorChar, Path.AltDirectorySeparatorChar}, StringSplitOptions.RemoveEmptyEntries);
1998 1998
1999 // Glob 1999 // Glob
@@ -2095,7 +2095,7 @@ namespace OpenSim.Framework
2095 2095
2096 if (!str.EndsWith("\0")) 2096 if (!str.EndsWith("\0"))
2097 str += "\0"; 2097 str += "\0";
2098 2098
2099 // Because this is UTF-8 encoding and not ASCII, it's possible we 2099 // Because this is UTF-8 encoding and not ASCII, it's possible we
2100 // might have gotten an oversized array even after the string trim 2100 // might have gotten an oversized array even after the string trim
2101 byte[] data = UTF8.GetBytes(str); 2101 byte[] data = UTF8.GetBytes(str);
@@ -2354,7 +2354,7 @@ namespace OpenSim.Framework
2354 throw new NotImplementedException(); 2354 throw new NotImplementedException();
2355 } 2355 }
2356 } 2356 }
2357 2357
2358 /// <summary> 2358 /// <summary>
2359 /// Additional information about threads in the main thread pool. Used to time how long the 2359 /// Additional information about threads in the main thread pool. Used to time how long the
2360 /// thread has been running, and abort it if it has timed-out. 2360 /// thread has been running, and abort it if it has timed-out.
@@ -2365,7 +2365,7 @@ namespace OpenSim.Framework
2365 public string StackTrace { get; set; } 2365 public string StackTrace { get; set; }
2366 private string context; 2366 private string context;
2367 public bool LogThread { get; set; } 2367 public bool LogThread { get; set; }
2368 2368
2369 public IWorkItemResult WorkItem { get; set; } 2369 public IWorkItemResult WorkItem { get; set; }
2370 public Thread Thread { get; set; } 2370 public Thread Thread { get; set; }
2371 public bool Running { get; set; } 2371 public bool Running { get; set; }
@@ -2470,7 +2470,7 @@ namespace OpenSim.Framework
2470 public static Dictionary<string, int> GetFireAndForgetCallsMade() 2470 public static Dictionary<string, int> GetFireAndForgetCallsMade()
2471 { 2471 {
2472 return new Dictionary<string, int>(m_fireAndForgetCallsMade); 2472 return new Dictionary<string, int>(m_fireAndForgetCallsMade);
2473 } 2473 }
2474 2474
2475 private static Dictionary<string, int> m_fireAndForgetCallsMade = new Dictionary<string, int>(); 2475 private static Dictionary<string, int> m_fireAndForgetCallsMade = new Dictionary<string, int>();
2476 2476
@@ -2490,7 +2490,7 @@ namespace OpenSim.Framework
2490 { 2490 {
2491 FireAndForget(callback, obj, null); 2491 FireAndForget(callback, obj, null);
2492 } 2492 }
2493 2493
2494 public static void FireAndForget(System.Threading.WaitCallback callback, object obj, string context) 2494 public static void FireAndForget(System.Threading.WaitCallback callback, object obj, string context)
2495 { 2495 {
2496 Interlocked.Increment(ref numTotalThreadFuncsCalled); 2496 Interlocked.Increment(ref numTotalThreadFuncsCalled);
@@ -2511,19 +2511,19 @@ namespace OpenSim.Framework
2511 WaitCallback realCallback; 2511 WaitCallback realCallback;
2512 2512
2513 bool loggingEnabled = LogThreadPool > 0; 2513 bool loggingEnabled = LogThreadPool > 0;
2514 2514
2515 long threadFuncNum = Interlocked.Increment(ref nextThreadFuncNum); 2515 long threadFuncNum = Interlocked.Increment(ref nextThreadFuncNum);
2516 ThreadInfo threadInfo = new ThreadInfo(threadFuncNum, context); 2516 ThreadInfo threadInfo = new ThreadInfo(threadFuncNum, context);
2517 2517
2518 if (FireAndForgetMethod == FireAndForgetMethod.RegressionTest) 2518 if (FireAndForgetMethod == FireAndForgetMethod.RegressionTest)
2519 { 2519 {
2520 // If we're running regression tests, then we want any exceptions to rise up to the test code. 2520 // If we're running regression tests, then we want any exceptions to rise up to the test code.
2521 realCallback = 2521 realCallback =
2522 o => 2522 o =>
2523 { 2523 {
2524 Culture.SetCurrentCulture(); 2524 Culture.SetCurrentCulture();
2525 callback(o); 2525 callback(o);
2526 2526
2527 if (context != null) 2527 if (context != null)
2528 m_fireAndForgetCallsInProgress[context]--; 2528 m_fireAndForgetCallsInProgress[context]--;
2529 }; 2529 };
@@ -2666,7 +2666,7 @@ namespace OpenSim.Framework
2666 if (stackTrace.Contains("BeginFireQueueEmpty")) 2666 if (stackTrace.Contains("BeginFireQueueEmpty"))
2667 return false; 2667 return false;
2668 } 2668 }
2669 2669
2670 return true; 2670 return true;
2671 } 2671 }
2672 2672
@@ -2679,7 +2679,7 @@ namespace OpenSim.Framework
2679 { 2679 {
2680 string src = Environment.StackTrace; 2680 string src = Environment.StackTrace;
2681 string[] lines = src.Split(new string[] { Environment.NewLine }, StringSplitOptions.None); 2681 string[] lines = src.Split(new string[] { Environment.NewLine }, StringSplitOptions.None);
2682 2682
2683 StringBuilder dest = new StringBuilder(src.Length); 2683 StringBuilder dest = new StringBuilder(src.Length);
2684 2684
2685 bool started = false; 2685 bool started = false;
@@ -2724,11 +2724,11 @@ namespace OpenSim.Framework
2724 /// trace. And pausing another thread can cause a deadlock. This method attempts to 2724 /// trace. And pausing another thread can cause a deadlock. This method attempts to
2725 /// avoid deadlock by using a short timeout (200ms), after which it gives up and 2725 /// avoid deadlock by using a short timeout (200ms), after which it gives up and
2726 /// returns 'null' instead of the stack trace. 2726 /// returns 'null' instead of the stack trace.
2727 /// 2727 ///
2728 /// Take from: http://stackoverflow.com/a/14935378 2728 /// Take from: http://stackoverflow.com/a/14935378
2729 /// 2729 ///
2730 /// WARNING: this doesn't work in Mono. See https://bugzilla.novell.com/show_bug.cgi?id=571691 2730 /// WARNING: this doesn't work in Mono. See https://bugzilla.novell.com/show_bug.cgi?id=571691
2731 /// 2731 ///
2732 /// </remarks> 2732 /// </remarks>
2733 /// <returns>The stack trace, or null if failed to get it</returns> 2733 /// <returns>The stack trace, or null if failed to get it</returns>
2734 private static StackTrace GetStackTrace(Thread targetThread) 2734 private static StackTrace GetStackTrace(Thread targetThread)
@@ -2829,7 +2829,7 @@ namespace OpenSim.Framework
2829 /// <summary> 2829 /// <summary>
2830 /// Environment.TickCount is an int but it counts all 32 bits so it goes positive 2830 /// Environment.TickCount is an int but it counts all 32 bits so it goes positive
2831 /// and negative every 24.9 days. This trims down TickCount so it doesn't wrap 2831 /// and negative every 24.9 days. This trims down TickCount so it doesn't wrap
2832 /// for the callers. 2832 /// for the callers.
2833 /// This trims it to a 12 day interval so don't let your frame time get too long. 2833 /// This trims it to a 12 day interval so don't let your frame time get too long.
2834 /// </summary> 2834 /// </summary>
2835 /// <returns></returns> 2835 /// <returns></returns>
@@ -3186,7 +3186,7 @@ namespace OpenSim.Framework
3186 if (parts.Length == 2) 3186 if (parts.Length == 2)
3187 return CalcUniversalIdentifier(id, agentsURI, parts[0] + " " + parts[1]); 3187 return CalcUniversalIdentifier(id, agentsURI, parts[0] + " " + parts[1]);
3188 } 3188 }
3189 3189
3190 return CalcUniversalIdentifier(id, agentsURI, firstName + " " + lastName); 3190 return CalcUniversalIdentifier(id, agentsURI, firstName + " " + lastName);
3191 } 3191 }
3192 3192
@@ -3286,10 +3286,10 @@ namespace OpenSim.Framework
3286 3286
3287 public virtual int Count 3287 public virtual int Count
3288 { 3288 {
3289 get 3289 get
3290 { 3290 {
3291 lock (m_syncRoot) 3291 lock (m_syncRoot)
3292 return m_highQueue.Count + m_lowQueue.Count; 3292 return m_highQueue.Count + m_lowQueue.Count;
3293 } 3293 }
3294 } 3294 }
3295 3295
diff --git a/OpenSim/Framework/VersionInfo.cs b/OpenSim/Framework/VersionInfo.cs
index 7bb0351..1e6efe5 100644
--- a/OpenSim/Framework/VersionInfo.cs
+++ b/OpenSim/Framework/VersionInfo.cs
@@ -58,10 +58,10 @@ namespace OpenSim
58 } 58 }
59 59
60 public const int VERSIONINFO_VERSION_LENGTH = 27; 60 public const int VERSIONINFO_VERSION_LENGTH = 27;
61 61
62 /// <value> 62 /// <value>
63 /// This is the external interface version. It is separate from the OpenSimulator project version. 63 /// This is the external interface version. It is separate from the OpenSimulator project version.
64 /// 64 ///
65 /// </value> 65 /// </value>
66 /// Commented because it's not used anymore, see below for new 66 /// Commented because it's not used anymore, see below for new
67 /// versioning method. 67 /// versioning method.
@@ -70,18 +70,18 @@ namespace OpenSim
70 /// <summary> 70 /// <summary>
71 /// This rules versioning regarding teleports, and compatibility between simulators in that regard. 71 /// This rules versioning regarding teleports, and compatibility between simulators in that regard.
72 /// </summary> 72 /// </summary>
73 /// 73 ///
74 /// <remarks> 74 /// <remarks>
75 /// The protocol version that we will use for outgoing transfers 75 /// The protocol version that we will use for outgoing transfers
76 /// Valid values are 76 /// Valid values are
77 /// "SIMULATION/0.3" 77 /// "SIMULATION/0.3"
78 /// - This is the latest, and it supports teleports to variable-sized regions 78 /// - This is the latest, and it supports teleports to variable-sized regions
79 /// - Older versions can teleport to this one, but only if the destination region 79 /// - Older versions can teleport to this one, but only if the destination region
80 /// is 256x256 80 /// is 256x256
81 /// "SIMULATION/0.2" 81 /// "SIMULATION/0.2"
82 /// - A source simulator which only implements "SIMULATION/0.1" can still teleport here 82 /// - A source simulator which only implements "SIMULATION/0.1" can still teleport here
83 /// - this protocol is more efficient than "SIMULATION/0.1" 83 /// - this protocol is more efficient than "SIMULATION/0.1"
84 /// "SIMULATION/0.1" 84 /// "SIMULATION/0.1"
85 /// - this is an older teleport protocol used in OpenSimulator 0.7.5 and before. 85 /// - this is an older teleport protocol used in OpenSimulator 0.7.5 and before.
86 /// </remarks> 86 /// </remarks>
87 public readonly static float SimulationServiceVersionAcceptedMin = 0.3f; 87 public readonly static float SimulationServiceVersionAcceptedMin = 0.3f;
diff --git a/OpenSim/Framework/WearableCacheItem.cs b/OpenSim/Framework/WearableCacheItem.cs
index 966a6bc..ccaf69e 100644
--- a/OpenSim/Framework/WearableCacheItem.cs
+++ b/OpenSim/Framework/WearableCacheItem.cs
@@ -47,7 +47,7 @@ namespace OpenSim.Framework
47 WearableCacheItem[] retitems = new WearableCacheItem[itemmax]; 47 WearableCacheItem[] retitems = new WearableCacheItem[itemmax];
48 for (uint i=0;i<itemmax;i++) 48 for (uint i=0;i<itemmax;i++)
49 retitems[i] = new WearableCacheItem() {CacheId = UUID.Zero, TextureID = UUID.Zero, TextureIndex = i}; 49 retitems[i] = new WearableCacheItem() {CacheId = UUID.Zero, TextureID = UUID.Zero, TextureIndex = i};
50 return retitems; 50 return retitems;
51 } 51 }
52 52
53 public static WearableCacheItem[] FromOSD(OSD pInput, IAssetCache dataCache) 53 public static WearableCacheItem[] FromOSD(OSD pInput, IAssetCache dataCache)
@@ -64,7 +64,7 @@ namespace OpenSim.Framework
64 CacheId = item["cacheid"].AsUUID(), 64 CacheId = item["cacheid"].AsUUID(),
65 TextureID = item["textureid"].AsUUID() 65 TextureID = item["textureid"].AsUUID()
66 }); 66 });
67 67
68 if (dataCache != null && item.ContainsKey("assetdata")) 68 if (dataCache != null && item.ContainsKey("assetdata"))
69 { 69 {
70 AssetBase asset = new AssetBase(item["textureid"].AsUUID(),"BakedTexture",(sbyte)AssetType.Texture,UUID.Zero.ToString()); 70 AssetBase asset = new AssetBase(item["textureid"].AsUUID(),"BakedTexture",(sbyte)AssetType.Texture,UUID.Zero.ToString());
@@ -181,7 +181,7 @@ namespace OpenSim.Framework
181 pcache[idx].TextureAsset = asset; 181 pcache[idx].TextureAsset = asset;
182 } 182 }
183 else 183 else
184 */ 184 */
185 pcache[idx].TextureAsset = null; 185 pcache[idx].TextureAsset = null;
186 } 186 }
187 } 187 }
diff --git a/OpenSim/Framework/WebUtil.cs b/OpenSim/Framework/WebUtil.cs
index f927e69..12f58fe 100644
--- a/OpenSim/Framework/WebUtil.cs
+++ b/OpenSim/Framework/WebUtil.cs
@@ -247,7 +247,7 @@ namespace OpenSim.Framework
247 request.MaximumAutomaticRedirections = 10; 247 request.MaximumAutomaticRedirections = 10;
248 request.ReadWriteTimeout = timeout / 4; 248 request.ReadWriteTimeout = timeout / 4;
249 request.Headers[OSHeaderRequestID] = reqnum.ToString(); 249 request.Headers[OSHeaderRequestID] = reqnum.ToString();
250 250
251 // If there is some input, write it into the request 251 // If there is some input, write it into the request
252 if (data != null) 252 if (data != null)
253 { 253 {
@@ -261,7 +261,7 @@ namespace OpenSim.Framework
261 byte[] buffer = System.Text.Encoding.UTF8.GetBytes(strBuffer); 261 byte[] buffer = System.Text.Encoding.UTF8.GetBytes(strBuffer);
262 262
263 request.ContentType = rpc ? "application/json-rpc" : "application/json"; 263 request.ContentType = rpc ? "application/json-rpc" : "application/json";
264 264
265 if (compressed) 265 if (compressed)
266 { 266 {
267 request.Headers["X-Content-Encoding"] = "gzip"; // can't set "Content-Encoding" because old OpenSims fail if they get an unrecognized Content-Encoding 267 request.Headers["X-Content-Encoding"] = "gzip"; // can't set "Content-Encoding" because old OpenSims fail if they get an unrecognized Content-Encoding
@@ -294,7 +294,7 @@ namespace OpenSim.Framework
294 requestStream.Write(buffer, 0, buffer.Length); //Send it 294 requestStream.Write(buffer, 0, buffer.Length); //Send it
295 } 295 }
296 } 296 }
297 297
298 // capture how much time was spent writing, this may seem silly 298 // capture how much time was spent writing, this may seem silly
299 // but with the number concurrent requests, this often blocks 299 // but with the number concurrent requests, this often blocks
300 tickdata = Util.EnvironmentTickCountSubtract(tickstart); 300 tickdata = Util.EnvironmentTickCountSubtract(tickstart);
@@ -354,7 +354,7 @@ namespace OpenSim.Framework
354 reqnum, tickdiff, tickdata); 354 reqnum, tickdiff, tickdata);
355 } 355 }
356 } 356 }
357 357
358 m_log.DebugFormat( 358 m_log.DebugFormat(
359 "[LOGHTTP]: JSON-RPC request {0} {1} to {2} FAILED: {3}", reqnum, method, url, errorMessage); 359 "[LOGHTTP]: JSON-RPC request {0} {1} to {2} FAILED: {3}", reqnum, method, url, errorMessage);
360 360
@@ -378,7 +378,7 @@ namespace OpenSim.Framework
378 result["success"] = OSD.FromBoolean(true); 378 result["success"] = OSD.FromBoolean(true);
379 result["_RawResult"] = OSD.FromString(response); 379 result["_RawResult"] = OSD.FromString(response);
380 result["_Result"] = new OSDMap(); 380 result["_Result"] = new OSDMap();
381 381
382 if (response.Equals("true",System.StringComparison.OrdinalIgnoreCase)) 382 if (response.Equals("true",System.StringComparison.OrdinalIgnoreCase))
383 return result; 383 return result;
384 384
@@ -389,7 +389,7 @@ namespace OpenSim.Framework
389 return result; 389 return result;
390 } 390 }
391 391
392 try 392 try
393 { 393 {
394 OSD responseOSD = OSDParser.Deserialize(response); 394 OSD responseOSD = OSDParser.Deserialize(response);
395 if (responseOSD.Type == OSDType.Map) 395 if (responseOSD.Type == OSDType.Map)
@@ -403,10 +403,10 @@ namespace OpenSim.Framework
403 // don't need to treat this as an error... we're just guessing anyway 403 // don't need to treat this as an error... we're just guessing anyway
404// m_log.DebugFormat("[WEB UTIL] couldn't decode <{0}>: {1}",response,e.Message); 404// m_log.DebugFormat("[WEB UTIL] couldn't decode <{0}>: {1}",response,e.Message);
405 } 405 }
406 406
407 return result; 407 return result;
408 } 408 }
409 409
410 #endregion JSONRequest 410 #endregion JSONRequest
411 411
412 #region FormRequest 412 #region FormRequest
@@ -419,7 +419,7 @@ namespace OpenSim.Framework
419 { 419 {
420 return ServiceFormRequest(url,data, 30000); 420 return ServiceFormRequest(url,data, 30000);
421 } 421 }
422 422
423 public static OSDMap ServiceFormRequest(string url, NameValueCollection data, int timeout) 423 public static OSDMap ServiceFormRequest(string url, NameValueCollection data, int timeout)
424 { 424 {
425 lock (EndPointLock(url)) 425 lock (EndPointLock(url))
@@ -436,7 +436,7 @@ namespace OpenSim.Framework
436 if (DebugLevel >= 3) 436 if (DebugLevel >= 3)
437 m_log.DebugFormat("[LOGHTTP]: HTTP OUT {0} ServiceForm '{1}' to {2}", 437 m_log.DebugFormat("[LOGHTTP]: HTTP OUT {0} ServiceForm '{1}' to {2}",
438 reqnum, method, url); 438 reqnum, method, url);
439 439
440 string errorMessage = "unknown error"; 440 string errorMessage = "unknown error";
441 int tickstart = Util.EnvironmentTickCount(); 441 int tickstart = Util.EnvironmentTickCount();
442 int tickdata = 0; 442 int tickdata = 0;
@@ -451,7 +451,7 @@ namespace OpenSim.Framework
451 request.MaximumAutomaticRedirections = 10; 451 request.MaximumAutomaticRedirections = 10;
452 request.ReadWriteTimeout = timeout / 4; 452 request.ReadWriteTimeout = timeout / 4;
453 request.Headers[OSHeaderRequestID] = reqnum.ToString(); 453 request.Headers[OSHeaderRequestID] = reqnum.ToString();
454 454
455 if (data != null) 455 if (data != null)
456 { 456 {
457 queryString = BuildQueryString(data); 457 queryString = BuildQueryString(data);
@@ -460,7 +460,7 @@ namespace OpenSim.Framework
460 LogOutgoingDetail("SEND", reqnum, queryString); 460 LogOutgoingDetail("SEND", reqnum, queryString);
461 461
462 byte[] buffer = System.Text.Encoding.UTF8.GetBytes(queryString); 462 byte[] buffer = System.Text.Encoding.UTF8.GetBytes(queryString);
463 463
464 request.ContentLength = buffer.Length; 464 request.ContentLength = buffer.Length;
465 request.ContentType = "application/x-www-form-urlencoded"; 465 request.ContentType = "application/x-www-form-urlencoded";
466 using (Stream requestStream = request.GetRequestStream()) 466 using (Stream requestStream = request.GetRequestStream())
@@ -538,7 +538,7 @@ namespace OpenSim.Framework
538 } 538 }
539 539
540 #endregion FormRequest 540 #endregion FormRequest
541 541
542 #region Uri 542 #region Uri
543 543
544 /// <summary> 544 /// <summary>
@@ -591,7 +591,7 @@ namespace OpenSim.Framework
591 } 591 }
592 592
593 /// <summary> 593 /// <summary>
594 /// Appends a query string to a Uri that may or may not have existing 594 /// Appends a query string to a Uri that may or may not have existing
595 /// query parameters 595 /// query parameters
596 /// </summary> 596 /// </summary>
597 /// <param name="uri">Uri to append the query to</param> 597 /// <param name="uri">Uri to append the query to</param>
@@ -643,7 +643,7 @@ namespace OpenSim.Framework
643 } 643 }
644 644
645 /// <summary> 645 /// <summary>
646 /// 646 ///
647 /// </summary> 647 /// </summary>
648 /// <param name="collection"></param> 648 /// <param name="collection"></param>
649 /// <param name="key"></param> 649 /// <param name="key"></param>
@@ -662,12 +662,12 @@ namespace OpenSim.Framework
662 #region Stream 662 #region Stream
663 663
664 /// <summary> 664 /// <summary>
665 /// Copies the contents of one stream to another, starting at the 665 /// Copies the contents of one stream to another, starting at the
666 /// current position of each stream 666 /// current position of each stream
667 /// </summary> 667 /// </summary>
668 /// <param name="copyFrom">The stream to copy from, at the position 668 /// <param name="copyFrom">The stream to copy from, at the position
669 /// where copying should begin</param> 669 /// where copying should begin</param>
670 /// <param name="copyTo">The stream to copy to, at the position where 670 /// <param name="copyTo">The stream to copy to, at the position where
671 /// bytes should be written</param> 671 /// bytes should be written</param>
672 /// <param name="maximumBytesToCopy">The maximum bytes to copy</param> 672 /// <param name="maximumBytesToCopy">The maximum bytes to copy</param>
673 /// <returns>The total number of bytes copied</returns> 673 /// <returns>The total number of bytes copied</returns>
@@ -811,7 +811,7 @@ namespace OpenSim.Framework
811 /// </param> 811 /// </param>
812 /// <param name="maxConnections"></param> 812 /// <param name="maxConnections"></param>
813 /// <returns> 813 /// <returns>
814 /// The response. If there was an internal exception or the request timed out, 814 /// The response. If there was an internal exception or the request timed out,
815 /// then the default(TResponse) is returned. 815 /// then the default(TResponse) is returned.
816 /// </returns> 816 /// </returns>
817 public static void MakeRequest<TRequest, TResponse>(string verb, 817 public static void MakeRequest<TRequest, TResponse>(string verb,
@@ -909,7 +909,7 @@ namespace OpenSim.Framework
909 // If the server returns a 404, this appears to trigger a System.Net.WebException even though that isn't 909 // If the server returns a 404, this appears to trigger a System.Net.WebException even though that isn't
910 // documented in MSDN 910 // documented in MSDN
911 using (WebResponse response = request.EndGetResponse(res2)) 911 using (WebResponse response = request.EndGetResponse(res2))
912 { 912 {
913 try 913 try
914 { 914 {
915 using (Stream respStream = response.GetResponseStream()) 915 using (Stream respStream = response.GetResponseStream())
@@ -930,7 +930,7 @@ namespace OpenSim.Framework
930 if (e.Response is HttpWebResponse) 930 if (e.Response is HttpWebResponse)
931 { 931 {
932 using (HttpWebResponse httpResponse = (HttpWebResponse)e.Response) 932 using (HttpWebResponse httpResponse = (HttpWebResponse)e.Response)
933 { 933 {
934 if (httpResponse.StatusCode != HttpStatusCode.NotFound) 934 if (httpResponse.StatusCode != HttpStatusCode.NotFound)
935 { 935 {
936 // We don't appear to be handling any other status codes, so log these feailures to that 936 // We don't appear to be handling any other status codes, so log these feailures to that
@@ -955,7 +955,7 @@ namespace OpenSim.Framework
955 "[ASYNC REQUEST]: Request {0} {1} failed with exception {2}{3}", 955 "[ASYNC REQUEST]: Request {0} {1} failed with exception {2}{3}",
956 verb, requestUrl, e.Message, e.StackTrace); 956 verb, requestUrl, e.Message, e.StackTrace);
957 } 957 }
958 958
959 // m_log.DebugFormat("[ASYNC REQUEST]: Received {0}", deserial.ToString()); 959 // m_log.DebugFormat("[ASYNC REQUEST]: Received {0}", deserial.ToString());
960 960
961 try 961 try
@@ -968,7 +968,7 @@ namespace OpenSim.Framework
968 "[ASYNC REQUEST]: Request {0} {1} callback failed with exception {2}{3}", 968 "[ASYNC REQUEST]: Request {0} {1} callback failed with exception {2}{3}",
969 verb, requestUrl, e.Message, e.StackTrace); 969 verb, requestUrl, e.Message, e.StackTrace);
970 } 970 }
971 971
972 }, null); 972 }, null);
973 } 973 }
974 974
@@ -997,7 +997,7 @@ namespace OpenSim.Framework
997 } 997 }
998 } 998 }
999 finally 999 finally
1000 { 1000 {
1001 if (buffer != null) 1001 if (buffer != null)
1002 buffer.Dispose(); 1002 buffer.Dispose();
1003 } 1003 }
@@ -1168,7 +1168,7 @@ namespace OpenSim.Framework
1168 /// Request timeout in milliseconds. Timeout.Infinite indicates no timeout. If 0 is passed then the default HttpWebRequest timeout is used (100 seconds) 1168 /// Request timeout in milliseconds. Timeout.Infinite indicates no timeout. If 0 is passed then the default HttpWebRequest timeout is used (100 seconds)
1169 /// </param> 1169 /// </param>
1170 /// <returns> 1170 /// <returns>
1171 /// The response. If there was an internal exception or the request timed out, 1171 /// The response. If there was an internal exception or the request timed out,
1172 /// then the default(TResponse) is returned. 1172 /// then the default(TResponse) is returned.
1173 /// </returns> 1173 /// </returns>
1174 public static TResponse MakeRequest<TRequest, TResponse>(string verb, string requestUrl, TRequest obj, int pTimeout) 1174 public static TResponse MakeRequest<TRequest, TResponse>(string verb, string requestUrl, TRequest obj, int pTimeout)
@@ -1191,7 +1191,7 @@ namespace OpenSim.Framework
1191 /// </param> 1191 /// </param>
1192 /// <param name="maxConnections"></param> 1192 /// <param name="maxConnections"></param>
1193 /// <returns> 1193 /// <returns>
1194 /// The response. If there was an internal exception or the request timed out, 1194 /// The response. If there was an internal exception or the request timed out,
1195 /// then the default(TResponse) is returned. 1195 /// then the default(TResponse) is returned.
1196 /// </returns> 1196 /// </returns>
1197 public static TResponse MakeRequest<TRequest, TResponse>(string verb, string requestUrl, TRequest obj, int pTimeout, int maxConnections) 1197 public static TResponse MakeRequest<TRequest, TResponse>(string verb, string requestUrl, TRequest obj, int pTimeout, int maxConnections)
@@ -1210,7 +1210,7 @@ namespace OpenSim.Framework
1210 /// </param> 1210 /// </param>
1211 /// <param name="maxConnections"></param> 1211 /// <param name="maxConnections"></param>
1212 /// <returns> 1212 /// <returns>
1213 /// The response. If there was an internal exception or the request timed out, 1213 /// The response. If there was an internal exception or the request timed out,
1214 /// then the default(TResponse) is returned. 1214 /// then the default(TResponse) is returned.
1215 /// </returns> 1215 /// </returns>
1216 public static TResponse MakeRequest<TRequest, TResponse>(string verb, string requestUrl, TRequest obj, int pTimeout, int maxConnections, IServiceAuth auth) 1216 public static TResponse MakeRequest<TRequest, TResponse>(string verb, string requestUrl, TRequest obj, int pTimeout, int maxConnections, IServiceAuth auth)
@@ -1375,7 +1375,7 @@ namespace OpenSim.Framework
1375 1375
1376 return deserial; 1376 return deserial;
1377 } 1377 }
1378 1378
1379 public static class XMLResponseHelper 1379 public static class XMLResponseHelper
1380 { 1380 {
1381 public static TResponse LogAndDeserialize<TRequest, TResponse>(int reqnum, Stream respStream, long contentLength) 1381 public static TResponse LogAndDeserialize<TRequest, TResponse>(int reqnum, Stream respStream, long contentLength)
@@ -1400,7 +1400,7 @@ namespace OpenSim.Framework
1400 } 1400 }
1401 } 1401 }
1402 1402
1403 1403
1404 public static class XMLRPCRequester 1404 public static class XMLRPCRequester
1405 { 1405 {
1406 private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); 1406 private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
@@ -1444,7 +1444,7 @@ namespace OpenSim.Framework
1444 { 1444 {
1445 m_log.Error("Error parsing XML-RPC response", e); 1445 m_log.Error("Error parsing XML-RPC response", e);
1446 } 1446 }
1447 1447
1448 if (Resp.IsFault) 1448 if (Resp.IsFault)
1449 { 1449 {
1450 m_log.DebugFormat( 1450 m_log.DebugFormat(