Ver código fonte

changed to native line ending encoding

Sean Dague 17 anos atrás
pai
commit
2a3c79df83
100 arquivos alterados com 20060 adições e 20060 exclusões
  1. 7241 7241
      OpenSim.FxCop
  2. 71 71
      OpenSim/Framework/Communications/CommunicationsManager.cs
  3. 41 41
      OpenSim/Framework/Communications/IGridServices.cs
  4. 38 38
      OpenSim/Framework/Communications/IInterRegionCommunications.cs
  5. 17 17
      OpenSim/Framework/Communications/IInventoryServices.cs
  6. 43 43
      OpenSim/Framework/Communications/IUserServices.cs
  7. 60 60
      OpenSim/Framework/Communications/Properties/AssemblyInfo.cs
  8. 77 77
      OpenSim/Framework/Communications/caches/CachedUserInfo.cs
  9. 51 51
      OpenSim/Framework/Communications/caches/InventoryFolder.cs
  10. 107 107
      OpenSim/Framework/Communications/caches/UserProfileCache.cs
  11. 56 56
      OpenSim/Framework/Console/AssemblyInfo.cs
  12. 35 35
      OpenSim/Framework/Console/ConsoleCallbacksBase.cs
  13. 282 282
      OpenSim/Framework/Console/LogBase.cs
  14. 47 47
      OpenSim/Framework/Console/MainLog.cs
  15. 162 162
      OpenSim/Framework/Data.DB4o/DB4oGridData.cs
  16. 163 163
      OpenSim/Framework/Data.DB4o/DB4oManager.cs
  17. 202 202
      OpenSim/Framework/Data.DB4o/DB4oUserData.cs
  18. 33 33
      OpenSim/Framework/Data.DB4o/Properties/AssemblyInfo.cs
  19. 194 194
      OpenSim/Framework/Data.MSSQL/MSSQLGridData.cs
  20. 211 211
      OpenSim/Framework/Data.MSSQL/MSSQLManager.cs
  21. 33 33
      OpenSim/Framework/Data.MSSQL/Properties/AssemblyInfo.cs
  22. 287 287
      OpenSim/Framework/Data.MySQL/MySQLGridData.cs
  23. 309 309
      OpenSim/Framework/Data.MySQL/MySQLInventoryData.cs
  24. 105 105
      OpenSim/Framework/Data.MySQL/MySQLLogData.cs
  25. 606 606
      OpenSim/Framework/Data.MySQL/MySQLManager.cs
  26. 256 256
      OpenSim/Framework/Data.MySQL/MySQLUserData.cs
  27. 33 33
      OpenSim/Framework/Data.MySQL/Properties/AssemblyInfo.cs
  28. 33 33
      OpenSim/Framework/Data.SQLite/Properties/AssemblyInfo.cs
  29. 197 197
      OpenSim/Framework/Data.SQLite/SQLiteGridData.cs
  30. 206 206
      OpenSim/Framework/Data.SQLite/SQLiteManager.cs
  31. 111 111
      OpenSim/Framework/Data/GridData.cs
  32. 90 90
      OpenSim/Framework/Data/ILogData.cs
  33. 96 96
      OpenSim/Framework/Data/IniConfig.cs
  34. 197 197
      OpenSim/Framework/Data/InventoryData.cs
  35. 33 33
      OpenSim/Framework/Data/Properties/AssemblyInfo.cs
  36. 47 47
      OpenSim/Framework/Data/ReservationData.cs
  37. 192 192
      OpenSim/Framework/Data/SimProfileData.cs
  38. 128 128
      OpenSim/Framework/Data/UserData.cs
  39. 180 180
      OpenSim/Framework/Data/UserProfileData.cs
  40. 265 265
      OpenSim/Framework/General/AgentInventory.cs
  41. 129 129
      OpenSim/Framework/General/AuthenticateSessionBase.cs
  42. 58 58
      OpenSim/Framework/General/BlockingQueue.cs
  43. 36 36
      OpenSim/Framework/General/ClientManager.cs
  44. 46 46
      OpenSim/Framework/General/IRegionCommsListener.cs
  45. 43 43
      OpenSim/Framework/General/Interfaces/AuthenticateResponse.cs
  46. 38 38
      OpenSim/Framework/General/Interfaces/Config/IGenericConfig.cs
  47. 59 59
      OpenSim/Framework/General/Interfaces/Config/IGridConfig.cs
  48. 53 53
      OpenSim/Framework/General/Interfaces/Config/IUserConfig.cs
  49. 64 64
      OpenSim/Framework/General/Interfaces/IAssetServer.cs
  50. 195 195
      OpenSim/Framework/General/Interfaces/IClientAPI.cs
  51. 71 71
      OpenSim/Framework/General/Interfaces/ILocalStorage.cs
  52. 39 39
      OpenSim/Framework/General/Interfaces/IUserServer.cs
  53. 42 42
      OpenSim/Framework/General/Interfaces/IWorld.cs
  54. 127 127
      OpenSim/Framework/General/NpcClientBase.cs
  55. 31 31
      OpenSim/Framework/General/Properties/AssemblyInfo.cs
  56. 103 103
      OpenSim/Framework/General/RegionCommsListener.cs
  57. 135 135
      OpenSim/Framework/General/Remoting.cs
  58. 49 49
      OpenSim/Framework/General/Types/AgentCiruitData.cs
  59. 57 57
      OpenSim/Framework/General/Types/AgentWearable.cs
  60. 46 46
      OpenSim/Framework/General/Types/AssetBase.cs
  61. 59 59
      OpenSim/Framework/General/Types/AssetLandmark.cs
  62. 47 47
      OpenSim/Framework/General/Types/AssetStorage.cs
  63. 93 93
      OpenSim/Framework/General/Types/EstateSettings.cs
  64. 49 49
      OpenSim/Framework/General/Types/Login.cs
  65. 23 23
      OpenSim/Framework/General/Types/MapBlockData.cs
  66. 42 42
      OpenSim/Framework/General/Types/NeighbourInfo.cs
  67. 219 219
      OpenSim/Framework/General/Types/NetworkServersInfo.cs
  68. 120 120
      OpenSim/Framework/General/Types/ParcelData.cs
  69. 228 228
      OpenSim/Framework/General/Types/PrimData.cs
  70. 109 109
      OpenSim/Framework/General/Types/PrimitiveBaseShape.cs
  71. 121 121
      OpenSim/Framework/General/Types/RegionHandle.cs
  72. 342 342
      OpenSim/Framework/General/Types/RegionInfo.cs
  73. 127 127
      OpenSim/Framework/General/Types/UUID.cs
  74. 87 87
      OpenSim/Framework/General/UserProfile.cs
  75. 184 184
      OpenSim/Framework/General/Util.cs
  76. 33 33
      OpenSim/Framework/GenericConfig/Xml/Properties/AssemblyInfo.cs
  77. 122 122
      OpenSim/Framework/GenericConfig/Xml/XmlConfig.cs
  78. 224 224
      OpenSim/Framework/Servers/BaseHttpServer.cs
  79. 40 40
      OpenSim/Framework/Servers/BaseStreamHandler.cs
  80. 49 49
      OpenSim/Framework/Servers/BinaryStreamHandler.cs
  81. 126 126
      OpenSim/Framework/Servers/CheckSumServer.cs
  82. 22 22
      OpenSim/Framework/Servers/IStreamHandler.cs
  83. 31 31
      OpenSim/Framework/Servers/RestMethod.cs
  84. 31 31
      OpenSim/Framework/Servers/RestStreamHandler.cs
  85. 87 87
      OpenSim/Framework/Servers/UDPServerBase.cs
  86. 33 33
      OpenSim/Framework/Servers/XmlRpcMethod.cs
  87. 643 643
      OpenSim/Framework/UserManager/LoginResponse.cs
  88. 631 631
      OpenSim/Framework/UserManager/UserManagerBase.cs
  89. 406 406
      OpenSim/Grid/AssetServer/Main.cs
  90. 58 58
      OpenSim/Grid/AssetServer/Properties/AssemblyInfo.cs
  91. 138 138
      OpenSim/Grid/Framework.Manager/GridManagementAgent.cs
  92. 93 93
      OpenSim/Grid/Framework.Manager/GridServerManager.cs
  93. 56 56
      OpenSim/Grid/GridServer.Config/AssemblyInfo.cs
  94. 160 160
      OpenSim/Grid/GridServer.Config/DbGridConfig.cs
  95. 710 710
      OpenSim/Grid/GridServer/GridManager.cs
  96. 258 258
      OpenSim/Grid/GridServer/Main.cs
  97. 58 58
      OpenSim/Grid/GridServer/Properties/AssemblyInfo.cs
  98. 125 125
      OpenSim/Grid/InventoryServer/InventoryManager.cs
  99. 87 87
      OpenSim/Grid/InventoryServer/Main.cs
  100. 33 33
      OpenSim/Grid/Manager/OpenGridServices.Manager/BlockingQueue.cs

+ 7241 - 7241
OpenSim.FxCop

@@ -1,7241 +1,7241 @@
-<?xml version="1.0" encoding="utf-8"?>
-<FxCopProject Version="1.35" Name="OpenSim">
- <ProjectOptions>
-  <SharedProject>True</SharedProject>
-  <Stylesheet Apply="False">http://www.gotdotnet.com/team/fxcop//xsl/1.35/FxCopReport.xsl</Stylesheet>
-  <SaveMessages>
-   <Project Status="Active, Excluded" NewOnly="False" />
-   <Report Status="Active" NewOnly="False" />
-  </SaveMessages>
-  <ProjectFile Compress="True" DefaultTargetCheck="True" DefaultRuleCheck="True" SaveByRuleGroup="" Deterministic="True" />
-  <EnableMultithreadedLoad>True</EnableMultithreadedLoad>
-  <EnableMultithreadedAnalysis>True</EnableMultithreadedAnalysis>
-  <SourceLookup>True</SourceLookup>
-  <AnalysisExceptionsThreshold>10</AnalysisExceptionsThreshold>
-  <RuleExceptionsThreshold>1</RuleExceptionsThreshold>
-  <Spelling Locale="en-us" />
-  <VersionAware>False</VersionAware>
-  <OverrideRuleVisibilities>False</OverrideRuleVisibilities>
-  <CustomDictionaries SearchFxCopDir="True" SearchUserProfile="True" SearchProjectDir="True" />
-  <SearchGlobalAssemblyCache>False</SearchGlobalAssemblyCache>
-  <DeadlockDetectionTimeout>120</DeadlockDetectionTimeout>
- </ProjectOptions>
- <Targets>
-  <AssemblyReferenceDirectories>
-   <Directory>$(ProjectDir)/lib/</Directory>
-  </AssemblyReferenceDirectories>
-  <Target Name="$(ProjectDir)/bin/OpenGridServices.ServerConsole.dll" Analyze="True" AnalyzeAllChildren="True" />
-  <Target Name="$(ProjectDir)/bin/OpenSim.Config.SimConfigDb4o.dll" Analyze="True" AnalyzeAllChildren="True" />
-  <Target Name="$(ProjectDir)/bin/OpenSim.exe" Analyze="True" AnalyzeAllChildren="True" />
-  <Target Name="$(ProjectDir)/bin/OpenSim.Framework.Console.dll" Analyze="True" AnalyzeAllChildren="True" />
-  <Target Name="$(ProjectDir)/bin/OpenSim.Framework.dll" Analyze="True" AnalyzeAllChildren="True" />
-  <Target Name="$(ProjectDir)/bin/OpenSim.GridInterfaces.Local.dll" Analyze="True" AnalyzeAllChildren="True" />
-  <Target Name="$(ProjectDir)/bin/OpenSim.GridInterfaces.Remote.dll" Analyze="True" AnalyzeAllChildren="True" />
-  <Target Name="$(ProjectDir)/bin/OpenSim.Physics.Manager.dll" Analyze="True" AnalyzeAllChildren="True" />
-  <Target Name="$(ProjectDir)/bin/OpenSim.RegionServer.dll" Analyze="True" AnalyzeAllChildren="True" />
-  <Target Name="$(ProjectDir)/bin/OpenSim.Storage.LocalStorageDb4o.dll" Analyze="True" AnalyzeAllChildren="True" />
-  <Target Name="$(ProjectDir)/bin/Physics/OpenSim.Physics.BasicPhysicsPlugin.dll" Analyze="True" AnalyzeAllChildren="True" />
-  <Target Name="$(ProjectDir)/bin/Physics/OpenSim.Physics.OdePlugin.dll" Analyze="True" AnalyzeAllChildren="True" />
-  <Target Name="$(ProjectDir)/bin/Physics/OpenSim.Physics.PhysXPlugin.dll" Analyze="True" AnalyzeAllChildren="True" />
- </Targets>
- <Rules>
-  <RuleFiles>
-   <RuleFile Name="$(FxCopDir)\Rules\DesignRules.dll" Enabled="True" AllRulesEnabled="True" />
-   <RuleFile Name="$(FxCopDir)\Rules\GlobalizationRules.dll" Enabled="True" AllRulesEnabled="True" />
-   <RuleFile Name="$(FxCopDir)\Rules\InteroperabilityRules.dll" Enabled="True" AllRulesEnabled="True" />
-   <RuleFile Name="$(FxCopDir)\Rules\MobilityRules.dll" Enabled="True" AllRulesEnabled="True" />
-   <RuleFile Name="$(FxCopDir)\Rules\NamingRules.dll" Enabled="True" AllRulesEnabled="True" />
-   <RuleFile Name="$(FxCopDir)\Rules\PerformanceRules.dll" Enabled="True" AllRulesEnabled="True" />
-   <RuleFile Name="$(FxCopDir)\Rules\PortabilityRules.dll" Enabled="True" AllRulesEnabled="True" />
-   <RuleFile Name="$(FxCopDir)\Rules\SecurityRules.dll" Enabled="True" AllRulesEnabled="True" />
-   <RuleFile Name="$(FxCopDir)\Rules\UsageRules.dll" Enabled="True" AllRulesEnabled="True" />
-  </RuleFiles>
-  <Groups />
-  <Settings />
- </Rules>
- <FxCopReport Version="1.35">
-  <Namespaces>
-   <Namespace Name="OpenSim">
-    <Messages>
-     <Message Id="Sim" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
-      <Issue Name="Namespace">
-       <Item>Sim</Item>
-       <Item>OpenSim</Item>
-      </Issue>
-     </Message>
-    </Messages>
-   </Namespace>
-   <Namespace Name="OpenSim.Assets">
-    <Messages>
-     <Message Id="Sim" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
-      <Issue Name="Namespace">
-       <Item>Sim</Item>
-       <Item>OpenSim.Assets</Item>
-      </Issue>
-     </Message>
-    </Messages>
-   </Namespace>
-   <Namespace Name="OpenSim.CAPS">
-    <Messages>
-     <Message TypeName="AvoidNamespacesWithFewTypes" Category="Microsoft.Design" CheckId="CA1020" Created="2007-03-27 04:29:04Z">
-      <Issue>
-       <Item>OpenSim.CAPS</Item>
-      </Issue>
-     </Message>
-     <Message Id="Sim" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
-      <Issue Name="Namespace">
-       <Item>Sim</Item>
-       <Item>OpenSim.CAPS</Item>
-      </Issue>
-     </Message>
-     <Message TypeName="LongAcronymsShouldBePascalCased" Category="Microsoft.Naming" CheckId="CA1705" Created="2007-03-27 04:29:04Z">
-      <Issue Name="Namespace">
-       <Item>OpenSim.CAPS</Item>
-      </Issue>
-     </Message>
-    </Messages>
-   </Namespace>
-   <Namespace Name="OpenSim.Config.SimConfigDb4o">
-    <Messages>
-     <Message Id="Sim" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
-      <Issue Name="Namespace">
-       <Item>Sim</Item>
-       <Item>OpenSim.Config.SimConfigDb4o</Item>
-      </Issue>
-      <Issue Name="Namespace">
-       <Item>Sim</Item>
-       <Item>OpenSim.Config.SimConfigDb4o</Item>
-      </Issue>
-     </Message>
-    </Messages>
-   </Namespace>
-   <Namespace Name="OpenSim.Framework.Assets">
-    <Messages>
-     <Message TypeName="AvoidNamespacesWithFewTypes" Category="Microsoft.Design" CheckId="CA1020" Created="2007-03-27 04:29:04Z">
-      <Issue>
-       <Item>OpenSim.Framework.Assets</Item>
-      </Issue>
-     </Message>
-     <Message Id="Sim" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
-      <Issue Name="Namespace">
-       <Item>Sim</Item>
-       <Item>OpenSim.Framework.Assets</Item>
-      </Issue>
-     </Message>
-    </Messages>
-   </Namespace>
-   <Namespace Name="OpenSim.Framework.Console">
-    <Messages>
-     <Message Id="Sim" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
-      <Issue Name="Namespace">
-       <Item>Sim</Item>
-       <Item>OpenSim.Framework.Console</Item>
-      </Issue>
-     </Message>
-    </Messages>
-   </Namespace>
-   <Namespace Name="OpenSim.Framework.Grid">
-    <Messages>
-     <Message TypeName="AvoidNamespacesWithFewTypes" Category="Microsoft.Design" CheckId="CA1020" Created="2007-03-27 04:29:04Z">
-      <Issue>
-       <Item>OpenSim.Framework.Grid</Item>
-      </Issue>
-     </Message>
-     <Message Id="Sim" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
-      <Issue Name="Namespace">
-       <Item>Sim</Item>
-       <Item>OpenSim.Framework.Grid</Item>
-      </Issue>
-     </Message>
-    </Messages>
-   </Namespace>
-   <Namespace Name="OpenSim.Framework.Interfaces">
-    <Messages>
-     <Message Id="Sim" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
-      <Issue Name="Namespace">
-       <Item>Sim</Item>
-       <Item>OpenSim.Framework.Interfaces</Item>
-      </Issue>
-     </Message>
-    </Messages>
-   </Namespace>
-   <Namespace Name="OpenSim.Framework.Inventory">
-    <Messages>
-     <Message TypeName="AvoidNamespacesWithFewTypes" Category="Microsoft.Design" CheckId="CA1020" Created="2007-03-27 04:29:04Z">
-      <Issue>
-       <Item>OpenSim.Framework.Inventory</Item>
-      </Issue>
-     </Message>
-     <Message Id="Sim" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
-      <Issue Name="Namespace">
-       <Item>Sim</Item>
-       <Item>OpenSim.Framework.Inventory</Item>
-      </Issue>
-     </Message>
-    </Messages>
-   </Namespace>
-   <Namespace Name="OpenSim.Framework.Sims">
-    <Messages>
-     <Message TypeName="AvoidNamespacesWithFewTypes" Category="Microsoft.Design" CheckId="CA1020" Created="2007-03-27 04:29:04Z">
-      <Issue>
-       <Item>OpenSim.Framework.Sims</Item>
-      </Issue>
-     </Message>
-     <Message Id="Sim" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
-      <Issue Name="Namespace">
-       <Item>Sim</Item>
-       <Item>OpenSim.Framework.Sims</Item>
-      </Issue>
-     </Message>
-    </Messages>
-   </Namespace>
-   <Namespace Name="OpenSim.Framework.Terrain">
-    <Messages>
-     <Message TypeName="AvoidNamespacesWithFewTypes" Category="Microsoft.Design" CheckId="CA1020" Created="2007-03-27 04:29:04Z">
-      <Issue>
-       <Item>OpenSim.Framework.Terrain</Item>
-      </Issue>
-     </Message>
-     <Message Id="Sim" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
-      <Issue Name="Namespace">
-       <Item>Sim</Item>
-       <Item>OpenSim.Framework.Terrain</Item>
-      </Issue>
-     </Message>
-    </Messages>
-   </Namespace>
-   <Namespace Name="OpenSim.Framework.User">
-    <Messages>
-     <Message TypeName="AvoidNamespacesWithFewTypes" Category="Microsoft.Design" CheckId="CA1020" Created="2007-03-27 04:29:04Z">
-      <Issue>
-       <Item>OpenSim.Framework.User</Item>
-      </Issue>
-     </Message>
-     <Message Id="Sim" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
-      <Issue Name="Namespace">
-       <Item>Sim</Item>
-       <Item>OpenSim.Framework.User</Item>
-      </Issue>
-     </Message>
-    </Messages>
-   </Namespace>
-   <Namespace Name="OpenSim.Framework.Utilities">
-    <Messages>
-     <Message TypeName="AvoidNamespacesWithFewTypes" Category="Microsoft.Design" CheckId="CA1020" Created="2007-03-27 04:29:04Z">
-      <Issue>
-       <Item>OpenSim.Framework.Utilities</Item>
-      </Issue>
-     </Message>
-     <Message Id="Sim" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
-      <Issue Name="Namespace">
-       <Item>Sim</Item>
-       <Item>OpenSim.Framework.Utilities</Item>
-      </Issue>
-     </Message>
-    </Messages>
-   </Namespace>
-   <Namespace Name="OpenSim.GridInterfaces.Local">
-    <Messages>
-     <Message Id="Sim" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
-      <Issue Name="Namespace">
-       <Item>Sim</Item>
-       <Item>OpenSim.GridInterfaces.Local</Item>
-      </Issue>
-     </Message>
-    </Messages>
-   </Namespace>
-   <Namespace Name="OpenSim.GridInterfaces.Remote">
-    <Messages>
-     <Message TypeName="AvoidNamespacesWithFewTypes" Category="Microsoft.Design" CheckId="CA1020" Created="2007-03-27 04:29:04Z">
-      <Issue>
-       <Item>OpenSim.GridInterfaces.Remote</Item>
-      </Issue>
-     </Message>
-     <Message Id="Sim" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
-      <Issue Name="Namespace">
-       <Item>Sim</Item>
-       <Item>OpenSim.GridInterfaces.Remote</Item>
-      </Issue>
-     </Message>
-    </Messages>
-   </Namespace>
-   <Namespace Name="OpenSim.Physics.BasicPhysicsPlugin">
-    <Messages>
-     <Message Id="Plugin" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
-      <Issue Name="Namespace">
-       <Item>Plugin</Item>
-       <Item>OpenSim.Physics.BasicPhysicsPlugin</Item>
-      </Issue>
-     </Message>
-     <Message Id="Sim" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
-      <Issue Name="Namespace">
-       <Item>Sim</Item>
-       <Item>OpenSim.Physics.BasicPhysicsPlugin</Item>
-      </Issue>
-     </Message>
-    </Messages>
-   </Namespace>
-   <Namespace Name="OpenSim.Physics.Manager">
-    <Messages>
-     <Message Id="Sim" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
-      <Issue Name="Namespace">
-       <Item>Sim</Item>
-       <Item>OpenSim.Physics.Manager</Item>
-      </Issue>
-     </Message>
-    </Messages>
-   </Namespace>
-   <Namespace Name="OpenSim.Physics.OdePlugin">
-    <Messages>
-     <Message TypeName="AvoidNamespacesWithFewTypes" Category="Microsoft.Design" CheckId="CA1020" Created="2007-03-27 04:29:04Z">
-      <Issue>
-       <Item>OpenSim.Physics.OdePlugin</Item>
-      </Issue>
-     </Message>
-     <Message Id="Plugin" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
-      <Issue Name="Namespace">
-       <Item>Plugin</Item>
-       <Item>OpenSim.Physics.OdePlugin</Item>
-      </Issue>
-     </Message>
-     <Message Id="Sim" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
-      <Issue Name="Namespace">
-       <Item>Sim</Item>
-       <Item>OpenSim.Physics.OdePlugin</Item>
-      </Issue>
-     </Message>
-    </Messages>
-   </Namespace>
-   <Namespace Name="OpenSim.Physics.PhysXPlugin">
-    <Messages>
-     <Message TypeName="AvoidNamespacesWithFewTypes" Category="Microsoft.Design" CheckId="CA1020" Created="2007-03-27 04:29:04Z">
-      <Issue>
-       <Item>OpenSim.Physics.PhysXPlugin</Item>
-      </Issue>
-     </Message>
-     <Message Id="Plugin" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
-      <Issue Name="Namespace">
-       <Item>Plugin</Item>
-       <Item>OpenSim.Physics.PhysXPlugin</Item>
-      </Issue>
-     </Message>
-     <Message Id="Sim" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
-      <Issue Name="Namespace">
-       <Item>Sim</Item>
-       <Item>OpenSim.Physics.PhysXPlugin</Item>
-      </Issue>
-     </Message>
-    </Messages>
-   </Namespace>
-   <Namespace Name="OpenSim.Storage.LocalStorageDb4o">
-    <Messages>
-     <Message Id="Sim" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
-      <Issue Name="Namespace">
-       <Item>Sim</Item>
-       <Item>OpenSim.Storage.LocalStorageDb4o</Item>
-      </Issue>
-     </Message>
-    </Messages>
-   </Namespace>
-   <Namespace Name="OpenSim.types">
-    <Messages>
-     <Message TypeName="AvoidNamespacesWithFewTypes" Category="Microsoft.Design" CheckId="CA1020" Created="2007-03-27 04:29:04Z">
-      <Issue>
-       <Item>OpenSim.types</Item>
-      </Issue>
-     </Message>
-     <Message TypeName="IdentifiersShouldBeCasedCorrectly" Category="Microsoft.Naming" CheckId="CA1709" Created="2007-03-27 04:29:04Z">
-      <Issue Name="Namespace">
-       <Item>OpenSim.types</Item>
-      </Issue>
-     </Message>
-     <Message Id="Sim" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
-      <Issue Name="Namespace">
-       <Item>Sim</Item>
-       <Item>OpenSim.types</Item>
-      </Issue>
-     </Message>
-    </Messages>
-   </Namespace>
-   <Namespace Name="OpenSim.UserServer">
-    <Messages>
-     <Message TypeName="AvoidNamespacesWithFewTypes" Category="Microsoft.Design" CheckId="CA1020" Created="2007-03-27 04:29:04Z">
-      <Issue>
-       <Item>OpenSim.UserServer</Item>
-      </Issue>
-     </Message>
-     <Message Id="Sim" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
-      <Issue Name="Namespace">
-       <Item>Sim</Item>
-       <Item>OpenSim.UserServer</Item>
-      </Issue>
-     </Message>
-    </Messages>
-   </Namespace>
-   <Namespace Name="OpenSim.world">
-    <Messages>
-     <Message TypeName="IdentifiersShouldBeCasedCorrectly" Category="Microsoft.Naming" CheckId="CA1709" Created="2007-03-27 04:29:04Z">
-      <Issue Name="Namespace">
-       <Item>OpenSim.world</Item>
-      </Issue>
-     </Message>
-     <Message Id="Sim" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
-      <Issue Name="Namespace">
-       <Item>Sim</Item>
-       <Item>OpenSim.world</Item>
-      </Issue>
-     </Message>
-    </Messages>
-   </Namespace>
-   <Namespace Name="OpenSim.world.scripting">
-    <Messages>
-     <Message TypeName="AvoidNamespacesWithFewTypes" Category="Microsoft.Design" CheckId="CA1020" Created="2007-03-27 04:29:04Z">
-      <Issue>
-       <Item>OpenSim.world.scripting</Item>
-      </Issue>
-     </Message>
-     <Message TypeName="IdentifiersShouldBeCasedCorrectly" Category="Microsoft.Naming" CheckId="CA1709" Created="2007-03-27 04:29:04Z">
-      <Issue Name="Namespace">
-       <Item>OpenSim.world.scripting</Item>
-      </Issue>
-      <Issue Name="Namespace">
-       <Item>OpenSim.world.scripting</Item>
-      </Issue>
-     </Message>
-     <Message Id="Sim" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
-      <Issue Name="Namespace">
-       <Item>Sim</Item>
-       <Item>OpenSim.world.scripting</Item>
-      </Issue>
-     </Message>
-    </Messages>
-   </Namespace>
-  </Namespaces>
-  <Targets>
-   <Target Name="$(ProjectDir)/bin/OpenGridServices.ServerConsole.dll">
-    <Modules>
-     <Module Name="opengridservices.serverconsole.dll">
-      <Messages>
-       <Message TypeName="AssembliesShouldDeclareMinimumSecurity" Category="Microsoft.Usage" CheckId="CA2209" Created="2007-03-27 04:29:04Z">
-        <Issue>
-         <Item>OpenGridServices.ServerConsole</Item>
-        </Issue>
-       </Message>
-       <Message TypeName="AssembliesShouldHaveValidStrongNames" Category="Microsoft.Design" CheckId="CA2210" Created="2007-03-27 04:29:04Z">
-        <Issue Name="NoStrongName">
-         <Item>OpenGridServices.ServerConsole</Item>
-        </Issue>
-       </Message>
-       <Message TypeName="MarkAssembliesWithClsCompliant" Category="Microsoft.Design" CheckId="CA1014" Created="2007-03-27 04:29:04Z">
-        <Issue Name="NoAttr">
-         <Item>OpenGridServices.ServerConsole</Item>
-        </Issue>
-       </Message>
-      </Messages>
-      <Namespaces>
-       <Namespace Name="ServerConsole">
-        <Types>
-         <Type Name="conscmd_callback">
-          <Messages>
-           <Message TypeName="IdentifiersShouldBeCasedCorrectly" Category="Microsoft.Naming" CheckId="CA1709" Created="2007-03-27 04:29:04Z">
-            <Issue Name="Type">
-             <Item>conscmd_callback</Item>
-            </Issue>
-           </Message>
-           <Message Id="conscmd" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
-            <Issue Name="Type">
-             <Item>conscmd</Item>
-             <Item>ServerConsole.conscmd_callback</Item>
-            </Issue>
-           </Message>
-           <Message TypeName="IdentifiersShouldNotContainUnderscores" Category="Microsoft.Naming" CheckId="CA1707" Created="2007-03-27 04:29:04Z">
-            <Issue Name="Type">
-             <Item>conscmd_callback</Item>
-            </Issue>
-           </Message>
-          </Messages>
-          <Members>
-           <Member Name="RunCmd(System.String,System.String[]):System.Void">
-            <Messages>
-             <Message Id="1#cmdparams" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
-              <Issue Name="Parameter">
-               <Item>conscmd_callback.RunCmd(String, String[]):Void</Item>
-               <Item>cmdparams</Item>
-               <Item>cmdparams</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="Show(System.String):System.Void">
-            <Messages>
-             <Message Id="0#" TypeName="IdentifiersShouldBeCasedCorrectly" Category="Microsoft.Naming" CheckId="CA1709" Created="2007-03-27 04:29:04Z">
-              <Issue Name="Parameter">
-               <Item>ShowWhat</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-          </Members>
-         </Type>
-         <Type Name="ConsoleBase">
-          <Members>
-           <Member Name="CmdPrompt(System.String,System.String):System.String">
-            <Messages>
-             <Message Id="1#defaultresponse" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
-              <Issue Name="Parameter">
-               <Item>ConsoleBase.CmdPrompt(String, String):String</Item>
-               <Item>defaultresponse</Item>
-               <Item>defaultresponse</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="CmdPrompt(System.String,System.String,System.String,System.String):System.String">
-            <Messages>
-             <Message Id="2#" TypeName="IdentifiersShouldBeCasedCorrectly" Category="Microsoft.Naming" CheckId="CA1709" Created="2007-03-27 04:29:04Z">
-              <Issue Name="Parameter">
-               <Item>OptionA</Item>
-              </Issue>
-             </Message>
-             <Message Id="3#" TypeName="IdentifiersShouldBeCasedCorrectly" Category="Microsoft.Naming" CheckId="CA1709" Created="2007-03-27 04:29:04Z">
-              <Issue Name="Parameter">
-               <Item>OptionB</Item>
-              </Issue>
-             </Message>
-             <Message Id="1#defaultresponse" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
-              <Issue Name="Parameter">
-               <Item>ConsoleBase.CmdPrompt(String, String, String, String):String</Item>
-               <Item>defaultresponse</Item>
-               <Item>defaultresponse</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="PasswdPrompt(System.String):System.String">
-            <Messages>
-             <Message Id="Passwd" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
-              <Issue Name="Member">
-               <Item>Passwd</Item>
-               <Item>ConsoleBase.PasswdPrompt(String):String</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="RunCmd(System.String,System.String[]):System.Object">
-            <Messages>
-             <Message Id="0#" TypeName="IdentifiersShouldBeCasedCorrectly" Category="Microsoft.Naming" CheckId="CA1709" Created="2007-03-27 04:29:04Z">
-              <Issue Name="Parameter">
-               <Item>Cmd</Item>
-              </Issue>
-             </Message>
-             <Message Id="1#cmdparams" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
-              <Issue Name="Parameter">
-               <Item>ConsoleBase.RunCmd(String, String[]):Object</Item>
-               <Item>cmdparams</Item>
-               <Item>cmdparams</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="ShowCommands(System.String):System.Void">
-            <Messages>
-             <Message Id="0#" TypeName="IdentifiersShouldBeCasedCorrectly" Category="Microsoft.Naming" CheckId="CA1709" Created="2007-03-27 04:29:04Z">
-              <Issue Name="Parameter">
-               <Item>ShowWhat</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="Write(System.String):System.Void">
-            <Messages>
-             <Message Id="0#" TypeName="IdentifiersShouldBeCasedCorrectly" Category="Microsoft.Naming" CheckId="CA1709" Created="2007-03-27 04:29:04Z">
-              <Issue Name="Parameter">
-               <Item>Line</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="WriteLine(System.String):System.Void">
-            <Messages>
-             <Message Id="0#" TypeName="IdentifiersShouldBeCasedCorrectly" Category="Microsoft.Naming" CheckId="CA1709" Created="2007-03-27 04:29:04Z">
-              <Issue Name="Parameter">
-               <Item>Line</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-          </Members>
-         </Type>
-         <Type Name="ConsoleBase+ConsoleType">
-          <Members>
-           <Member Name="SimChat">
-            <Messages>
-             <Message Id="Sim" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
-              <Issue Name="Member">
-               <Item>Sim</Item>
-               <Item>ConsoleType.SimChat</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="TCP">
-            <Messages>
-             <Message Id="Member" TypeName="LongAcronymsShouldBePascalCased" Category="Microsoft.Naming" CheckId="CA1705" Created="2007-03-27 04:29:04Z">
-              <Issue Name="Member">
-               <Item>ConsoleType.TCP</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-          </Members>
-         </Type>
-         <Type Name="MainConsole">
-          <Messages>
-           <Message TypeName="StaticHolderTypesShouldNotHaveConstructors" Category="Microsoft.Design" CheckId="CA1053" Created="2007-03-27 04:29:04Z">
-            <Issue>
-             <Item>MainConsole</Item>
-            </Issue>
-           </Message>
-          </Messages>
-         </Type>
-        </Types>
-       </Namespace>
-      </Namespaces>
-     </Module>
-    </Modules>
-   </Target>
-   <Target Name="$(ProjectDir)/bin/OpenSim.Config.SimConfigDb4o.dll">
-    <Modules>
-     <Module Name="opensim.config.simconfigdb4o.dll">
-      <Messages>
-       <Message TypeName="AssembliesShouldDeclareMinimumSecurity" Category="Microsoft.Usage" CheckId="CA2209" Created="2007-03-27 04:29:04Z">
-        <Issue>
-         <Item>OpenSim.Config.SimConfigDb4o</Item>
-        </Issue>
-       </Message>
-       <Message TypeName="AssembliesShouldHaveValidStrongNames" Category="Microsoft.Design" CheckId="CA2210" Created="2007-03-27 04:29:04Z">
-        <Issue Name="NoStrongName">
-         <Item>OpenSim.Config.SimConfigDb4o</Item>
-        </Issue>
-       </Message>
-       <Message TypeName="MarkAssembliesWithClsCompliant" Category="Microsoft.Design" CheckId="CA1014" Created="2007-03-27 04:29:04Z">
-        <Issue Name="NoAttr">
-         <Item>OpenSim.Config.SimConfigDb4o</Item>
-        </Issue>
-       </Message>
-      </Messages>
-      <Namespaces>
-       <Namespace Name="OpenSim.Config.SimConfigDb4o">
-        <Types>
-         <Type Name="Db40ConfigPlugin">
-          <Messages>
-           <Message Id="Plugin" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
-            <Issue Name="Type">
-             <Item>Plugin</Item>
-             <Item>OpenSim.Config.SimConfigDb4o.Db40ConfigPlugin</Item>
-            </Issue>
-           </Message>
-          </Messages>
-         </Type>
-         <Type Name="DbSimConfig">
-          <Messages>
-           <Message Id="Sim" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
-            <Issue Name="Type">
-             <Item>Sim</Item>
-             <Item>OpenSim.Config.SimConfigDb4o.DbSimConfig</Item>
-            </Issue>
-           </Message>
-           <Message TypeName="ShortAcronymsShouldBeUppercase" Category="Microsoft.Naming" CheckId="CA1706" Created="2007-03-27 04:29:04Z">
-            <Issue Name="Type">
-             <Item>Db</Item>
-             <Item>OpenSim.Config.SimConfigDb4o.DbSimConfig</Item>
-            </Issue>
-           </Message>
-          </Messages>
-          <Members>
-           <Member Name="InitConfig(System.Boolean):System.Void">
-            <Messages>
-             <Message TypeName="DoNotCatchGeneralExceptionTypes" Category="Microsoft.Design" CheckId="CA1031" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>DbSimConfig.InitConfig(Boolean):Void</Item>
-               <Item>System.Exception</Item>
-              </Issue>
-             </Message>
-             <Message Id="System.UInt32.ToString" TypeName="SpecifyIFormatProvider" Category="Microsoft.Globalization" CheckId="CA1305" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>DbSimConfig.InitConfig(Boolean):Void</Item>
-               <Item>System.UInt32.ToString</Item>
-               <Item>System.UInt32.ToString(System.IFormatProvider)</Item>
-              </Issue>
-             </Message>
-             <Message Id="System.UInt64.ToString" TypeName="SpecifyIFormatProvider" Category="Microsoft.Globalization" CheckId="CA1305" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>DbSimConfig.InitConfig(Boolean):Void</Item>
-               <Item>System.UInt64.ToString</Item>
-               <Item>System.UInt64.ToString(System.IFormatProvider)</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="LoadDefaults():System.Void">
-            <Messages>
-             <Message Id="System.Convert.ToInt32(System.String)" TypeName="SpecifyIFormatProvider" Category="Microsoft.Globalization" CheckId="CA1305" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>DbSimConfig.LoadDefaults():Void</Item>
-               <Item>System.Convert.ToInt32(System.String)</Item>
-               <Item>System.Convert.ToInt32(System.String,System.IFormatProvider)</Item>
-              </Issue>
-              <Issue>
-               <Item>DbSimConfig.LoadDefaults():Void</Item>
-               <Item>System.Convert.ToInt32(System.String)</Item>
-               <Item>System.Convert.ToInt32(System.String,System.IFormatProvider)</Item>
-              </Issue>
-              <Issue>
-               <Item>DbSimConfig.LoadDefaults():Void</Item>
-               <Item>System.Convert.ToInt32(System.String)</Item>
-               <Item>System.Convert.ToInt32(System.String,System.IFormatProvider)</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-          </Members>
-         </Type>
-         <Type Name="MapStorage">
-          <Members>
-           <Member Name="Map">
-            <Messages>
-             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>Map</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-          </Members>
-         </Type>
-        </Types>
-       </Namespace>
-      </Namespaces>
-     </Module>
-    </Modules>
-   </Target>
-   <Target Name="$(ProjectDir)/bin/OpenSim.exe">
-    <Modules>
-     <Module Name="opensim.exe">
-      <Messages>
-       <Message TypeName="AssembliesShouldDeclareMinimumSecurity" Category="Microsoft.Usage" CheckId="CA2209" Created="2007-03-27 04:29:04Z">
-        <Issue>
-         <Item>OpenSim</Item>
-        </Issue>
-       </Message>
-       <Message TypeName="AssembliesShouldHaveValidStrongNames" Category="Microsoft.Design" CheckId="CA2210" Created="2007-03-27 04:29:04Z">
-        <Issue Name="NoStrongName">
-         <Item>OpenSim</Item>
-        </Issue>
-       </Message>
-       <Message TypeName="MarkAssembliesWithAssemblyVersion" Category="Microsoft.Design" CheckId="CA1016" Created="2007-03-27 04:29:04Z">
-        <Issue>
-         <Item>OpenSim</Item>
-        </Issue>
-       </Message>
-       <Message TypeName="MarkAssembliesWithClsCompliant" Category="Microsoft.Design" CheckId="CA1014" Created="2007-03-27 04:29:04Z">
-        <Issue Name="NoAttr">
-         <Item>OpenSim</Item>
-        </Issue>
-       </Message>
-       <Message TypeName="MarkAssembliesWithComVisible" Category="Microsoft.Design" CheckId="CA1017" Created="2007-03-27 04:29:04Z">
-        <Issue Name="NoAttribute" Level="CriticalError">
-         <Item>OpenSim</Item>
-        </Issue>
-       </Message>
-      </Messages>
-      <Namespaces>
-       <Namespace Name="OpenSim">
-        <Types>
-         <Type Name="RegionServer">
-          <Members>
-           <Member Name="Main(System.String[]):System.Void">
-            <Messages>
-             <Message TypeName="ValidateArgumentsOfPublicMethods" Category="Microsoft.Design" CheckId="CA1062" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>'args'</Item>
-               <Item>RegionServer.Main(String[]):Void</Item>
-              </Issue>
-              <Issue>
-               <Item>'args'</Item>
-               <Item>RegionServer.Main(String[]):Void</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-          </Members>
-         </Type>
-        </Types>
-       </Namespace>
-      </Namespaces>
-     </Module>
-    </Modules>
-   </Target>
-   <Target Name="$(ProjectDir)/bin/OpenSim.Framework.Console.dll">
-    <Modules>
-     <Module Name="opensim.framework.console.dll">
-      <Messages>
-       <Message TypeName="AssembliesShouldDeclareMinimumSecurity" Category="Microsoft.Usage" CheckId="CA2209" Created="2007-03-27 04:29:04Z">
-        <Issue>
-         <Item>OpenSim.Framework.Console</Item>
-        </Issue>
-       </Message>
-       <Message TypeName="AssembliesShouldHaveValidStrongNames" Category="Microsoft.Design" CheckId="CA2210" Created="2007-03-27 04:29:04Z">
-        <Issue Name="NoStrongName">
-         <Item>OpenSim.Framework.Console</Item>
-        </Issue>
-       </Message>
-       <Message TypeName="MarkAssembliesWithClsCompliant" Category="Microsoft.Design" CheckId="CA1014" Created="2007-03-27 04:29:04Z">
-        <Issue Name="NoAttr">
-         <Item>OpenSim.Framework.Console</Item>
-        </Issue>
-       </Message>
-      </Messages>
-      <Namespaces>
-       <Namespace Name="OpenSim.Framework.Console">
-        <Types>
-         <Type Name="ConsoleBase">
-          <Members>
-           <Member Name="CmdPrompt(System.String,System.String):System.String">
-            <Messages>
-             <Message Id="1#defaultresponse" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
-              <Issue Name="Parameter">
-               <Item>ConsoleBase.CmdPrompt(String, String):String</Item>
-               <Item>defaultresponse</Item>
-               <Item>defaultresponse</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="CmdPrompt(System.String,System.String,System.String,System.String):System.String">
-            <Messages>
-             <Message Id="2#" TypeName="IdentifiersShouldBeCasedCorrectly" Category="Microsoft.Naming" CheckId="CA1709" Created="2007-03-27 04:29:04Z">
-              <Issue Name="Parameter">
-               <Item>OptionA</Item>
-              </Issue>
-             </Message>
-             <Message Id="3#" TypeName="IdentifiersShouldBeCasedCorrectly" Category="Microsoft.Naming" CheckId="CA1709" Created="2007-03-27 04:29:04Z">
-              <Issue Name="Parameter">
-               <Item>OptionB</Item>
-              </Issue>
-             </Message>
-             <Message Id="1#defaultresponse" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
-              <Issue Name="Parameter">
-               <Item>ConsoleBase.CmdPrompt(String, String, String, String):String</Item>
-               <Item>defaultresponse</Item>
-               <Item>defaultresponse</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="RunCmd(System.String,System.String[]):System.Object">
-            <Messages>
-             <Message Id="0#" TypeName="IdentifiersShouldBeCasedCorrectly" Category="Microsoft.Naming" CheckId="CA1709" Created="2007-03-27 04:29:04Z">
-              <Issue Name="Parameter">
-               <Item>Cmd</Item>
-              </Issue>
-             </Message>
-             <Message Id="1#cmdparams" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
-              <Issue Name="Parameter">
-               <Item>ConsoleBase.RunCmd(String, String[]):Object</Item>
-               <Item>cmdparams</Item>
-               <Item>cmdparams</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="ShowCommands(System.String):System.Void">
-            <Messages>
-             <Message Id="0#" TypeName="IdentifiersShouldBeCasedCorrectly" Category="Microsoft.Naming" CheckId="CA1709" Created="2007-03-27 04:29:04Z">
-              <Issue Name="Parameter">
-               <Item>ShowWhat</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-          </Members>
-         </Type>
-         <Type Name="ConsoleBase+ConsoleType">
-          <Members>
-           <Member Name="SimChat">
-            <Messages>
-             <Message Id="Sim" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
-              <Issue Name="Member">
-               <Item>Sim</Item>
-               <Item>ConsoleType.SimChat</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="TCP">
-            <Messages>
-             <Message Id="Member" TypeName="LongAcronymsShouldBePascalCased" Category="Microsoft.Naming" CheckId="CA1705" Created="2007-03-27 04:29:04Z">
-              <Issue Name="Member">
-               <Item>ConsoleType.TCP</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-          </Members>
-         </Type>
-         <Type Name="MainConsole">
-          <Messages>
-           <Message TypeName="StaticHolderTypesShouldNotHaveConstructors" Category="Microsoft.Design" CheckId="CA1053" Created="2007-03-27 04:29:04Z">
-            <Issue>
-             <Item>MainConsole</Item>
-            </Issue>
-           </Message>
-          </Messages>
-         </Type>
-        </Types>
-       </Namespace>
-      </Namespaces>
-     </Module>
-    </Modules>
-   </Target>
-   <Target Name="$(ProjectDir)/bin/OpenSim.Framework.dll">
-    <Modules>
-     <Module Name="opensim.framework.dll">
-      <Messages>
-       <Message TypeName="AssembliesShouldDeclareMinimumSecurity" Category="Microsoft.Usage" CheckId="CA2209" Created="2007-03-27 04:29:04Z">
-        <Issue>
-         <Item>OpenSim.Framework</Item>
-        </Issue>
-       </Message>
-       <Message TypeName="AssembliesShouldHaveValidStrongNames" Category="Microsoft.Design" CheckId="CA2210" Created="2007-03-27 04:29:04Z">
-        <Issue Name="NoStrongName">
-         <Item>OpenSim.Framework</Item>
-        </Issue>
-       </Message>
-       <Message TypeName="MarkAssembliesWithClsCompliant" Category="Microsoft.Design" CheckId="CA1014" Created="2007-03-27 04:29:04Z">
-        <Issue Name="NoAttr">
-         <Item>OpenSim.Framework</Item>
-        </Issue>
-       </Message>
-      </Messages>
-      <Namespaces>
-       <Namespace Name="OpenSim.Framework.Assets">
-        <Types>
-         <Type Name="AssetBase">
-          <Members>
-           <Member Name="Data">
-            <Messages>
-             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>Data</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="Description">
-            <Messages>
-             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>Description</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="FullID">
-            <Messages>
-             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>FullID</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="InvType">
-            <Messages>
-             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>InvType</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="Name">
-            <Messages>
-             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>Name</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="Type">
-            <Messages>
-             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>Type</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-          </Members>
-         </Type>
-         <Type Name="PrimData">
-          <Members>
-           <Member Name=".ctor()">
-            <Messages>
-             <Message TypeName="DoNotInitializeUnnecessarily" Category="Microsoft.Performance" CheckId="CA1805" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>PrimData.PrimData()</Item>
-               <Item>ParentID</Item>
-               <Item>System.UInt32</Item>
-               <Item>0</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="FullID">
-            <Messages>
-             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>FullID</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="LocalID">
-            <Messages>
-             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>LocalID</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="OwnerID">
-            <Messages>
-             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>OwnerID</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="ParentID">
-            <Messages>
-             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>ParentID</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="PathBegin">
-            <Messages>
-             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>PathBegin</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="PathCurve">
-            <Messages>
-             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>PathCurve</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="PathEnd">
-            <Messages>
-             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>PathEnd</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="PathRadiusOffset">
-            <Messages>
-             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>PathRadiusOffset</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="PathRevolutions">
-            <Messages>
-             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>PathRevolutions</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="PathScaleX">
-            <Messages>
-             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>PathScaleX</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="PathScaleY">
-            <Messages>
-             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>PathScaleY</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="PathShearX">
-            <Messages>
-             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>PathShearX</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="PathShearY">
-            <Messages>
-             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>PathShearY</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="PathSkew">
-            <Messages>
-             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>PathSkew</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="PathTaperX">
-            <Messages>
-             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>PathTaperX</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="PathTaperY">
-            <Messages>
-             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>PathTaperY</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="PathTwist">
-            <Messages>
-             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>PathTwist</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="PathTwistBegin">
-            <Messages>
-             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>PathTwistBegin</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="PCode">
-            <Messages>
-             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>PCode</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="Position">
-            <Messages>
-             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>Position</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="ProfileBegin">
-            <Messages>
-             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>ProfileBegin</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="ProfileCurve">
-            <Messages>
-             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>ProfileCurve</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="ProfileEnd">
-            <Messages>
-             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>ProfileEnd</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="ProfileHollow">
-            <Messages>
-             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>ProfileHollow</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="Rotation">
-            <Messages>
-             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>Rotation</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="Scale">
-            <Messages>
-             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>Scale</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="Texture">
-            <Messages>
-             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>Texture</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-          </Members>
-         </Type>
-        </Types>
-       </Namespace>
-       <Namespace Name="OpenSim.Framework.Grid">
-        <Types>
-         <Type Name="LoginService">
-          <Messages>
-           <Message Id="Login" TypeName="UsePreferredTerms" Category="Microsoft.Naming" CheckId="CA1726" Created="2007-03-27 04:29:04Z">
-            <Issue Name="Type">
-             <Item>Login</Item>
-             <Item>LoginService</Item>
-             <Item>LogOn</Item>
-            </Issue>
-           </Message>
-          </Messages>
-         </Type>
-        </Types>
-       </Namespace>
-       <Namespace Name="OpenSim.Framework.Interfaces">
-        <Types>
-         <Type Name="AgentCircuitData">
-          <Members>
-           <Member Name="AgentID">
-            <Messages>
-             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>AgentID</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="circuitcode">
-            <Messages>
-             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>circuitcode</Item>
-              </Issue>
-             </Message>
-             <Message Id="circuitcode" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
-              <Issue Name="Member">
-               <Item>circuitcode</Item>
-               <Item>AgentCircuitData.circuitcode</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="firstname">
-            <Messages>
-             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>firstname</Item>
-              </Issue>
-             </Message>
-             <Message Id="firstname" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
-              <Issue Name="Member">
-               <Item>firstname</Item>
-               <Item>AgentCircuitData.firstname</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="lastname">
-            <Messages>
-             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>lastname</Item>
-              </Issue>
-             </Message>
-             <Message Id="lastname" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
-              <Issue Name="Member">
-               <Item>lastname</Item>
-               <Item>AgentCircuitData.lastname</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="SecureSessionID">
-            <Messages>
-             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>SecureSessionID</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="SessionID">
-            <Messages>
-             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>SessionID</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-          </Members>
-         </Type>
-         <Type Name="ARequest">
-          <Messages>
-           <Message TypeName="OverrideEqualsAndOperatorEqualsOnValueTypes" Category="Microsoft.Performance" CheckId="CA1815" Created="2007-03-27 04:29:04Z">
-            <Issue Name="Equals">
-             <Item>OpenSim.Framework.Interfaces.ARequest</Item>
-            </Issue>
-            <Issue Name="op_Equality">
-             <Item>OpenSim.Framework.Interfaces.ARequest</Item>
-            </Issue>
-           </Message>
-          </Messages>
-          <Members>
-           <Member Name="AssetID">
-            <Messages>
-             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>AssetID</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="IsTexture">
-            <Messages>
-             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>IsTexture</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-          </Members>
-         </Type>
-         <Type Name="AuthenticateResponse">
-          <Members>
-           <Member Name="Authorised">
-            <Messages>
-             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>Authorised</Item>
-              </Issue>
-             </Message>
-             <Message Id="Authorised" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
-              <Issue Name="Member">
-               <Item>Authorised</Item>
-               <Item>AuthenticateResponse.Authorised</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="LoginInfo">
-            <Messages>
-             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>LoginInfo</Item>
-              </Issue>
-             </Message>
-             <Message Id="Login" TypeName="UsePreferredTerms" Category="Microsoft.Naming" CheckId="CA1726" Created="2007-03-27 04:29:04Z">
-              <Issue Name="Member">
-               <Item>Login</Item>
-               <Item>LoginInfo</Item>
-               <Item>LogOn</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-          </Members>
-         </Type>
-         <Type Name="IAssetPlugin">
-          <Messages>
-           <Message Id="Plugin" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
-            <Issue Name="Type">
-             <Item>Plugin</Item>
-             <Item>OpenSim.Framework.Interfaces.IAssetPlugin</Item>
-            </Issue>
-           </Message>
-          </Messages>
-          <Members>
-           <Member Name="GetAssetServer():OpenSim.Framework.Interfaces.IAssetServer">
-            <Messages>
-             <Message TypeName="UsePropertiesWhereAppropriate" Category="Microsoft.Design" CheckId="CA1024" Created="2007-03-27 04:29:04Z">
-              <Issue Certainty="50">
-               <Item>GetAssetServer</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-          </Members>
-         </Type>
-         <Type Name="IAssetReceiver">
-          <Members>
-           <Member Name="AssetReceived(OpenSim.Framework.Assets.AssetBase,System.Boolean):System.Void">
-            <Messages>
-             <Message Id="1#" TypeName="IdentifiersShouldBeCasedCorrectly" Category="Microsoft.Naming" CheckId="CA1709" Created="2007-03-27 04:29:04Z">
-              <Issue Name="Parameter">
-               <Item>IsTexture</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-          </Members>
-         </Type>
-         <Type Name="IAssetServer">
-          <Members>
-           <Member Name="RequestAsset(libsecondlife.LLUUID,System.Boolean):System.Void">
-            <Messages>
-             <Message Id="0#" TypeName="ShortAcronymsShouldBeUppercase" Category="Microsoft.Naming" CheckId="CA1706" Created="2007-03-27 04:29:04Z">
-              <Issue Name="ParameterId">
-               <Item>ID</Item>
-               <Item>assetID</Item>
-               <Item>Id</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="SetServerInfo(System.String,System.String):System.Void">
-            <Messages>
-             <Message Id="0#" TypeName="IdentifiersShouldBeCasedCorrectly" Category="Microsoft.Naming" CheckId="CA1709" Created="2007-03-27 04:29:04Z">
-              <Issue Name="Parameter">
-               <Item>ServerUrl</Item>
-              </Issue>
-             </Message>
-             <Message Id="1#" TypeName="IdentifiersShouldBeCasedCorrectly" Category="Microsoft.Naming" CheckId="CA1709" Created="2007-03-27 04:29:04Z">
-              <Issue Name="Parameter">
-               <Item>ServerKey</Item>
-              </Issue>
-             </Message>
-             <Message Id="0#" TypeName="UriParametersShouldNotBeStrings" Category="Microsoft.Design" CheckId="CA1054" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>ServerUrl</Item>
-               <Item>IAssetServer.SetServerInfo(String, String):Void</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-          </Members>
-         </Type>
-         <Type Name="IGridPlugin">
-          <Messages>
-           <Message Id="Plugin" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
-            <Issue Name="Type">
-             <Item>Plugin</Item>
-             <Item>OpenSim.Framework.Interfaces.IGridPlugin</Item>
-            </Issue>
-           </Message>
-          </Messages>
-          <Members>
-           <Member Name="GetGridServer():OpenSim.Framework.Interfaces.IGridServer">
-            <Messages>
-             <Message TypeName="UsePropertiesWhereAppropriate" Category="Microsoft.Design" CheckId="CA1024" Created="2007-03-27 04:29:04Z">
-              <Issue Certainty="50">
-               <Item>GetGridServer</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-          </Members>
-         </Type>
-         <Type Name="IGridServer">
-          <Members>
-           <Member Name="AuthenticateSession(libsecondlife.LLUUID,libsecondlife.LLUUID,System.UInt32):OpenSim.Framework.Interfaces.AuthenticateResponse">
-            <Messages>
-             <Message Id="0#" TypeName="ShortAcronymsShouldBeUppercase" Category="Microsoft.Naming" CheckId="CA1706" Created="2007-03-27 04:29:04Z">
-              <Issue Name="ParameterId">
-               <Item>ID</Item>
-               <Item>sessionID</Item>
-               <Item>Id</Item>
-              </Issue>
-             </Message>
-             <Message Id="1#" TypeName="ShortAcronymsShouldBeUppercase" Category="Microsoft.Naming" CheckId="CA1706" Created="2007-03-27 04:29:04Z">
-              <Issue Name="ParameterId">
-               <Item>ID</Item>
-               <Item>agentID</Item>
-               <Item>Id</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="GetName():System.String">
-            <Messages>
-             <Message TypeName="UsePropertiesWhereAppropriate" Category="Microsoft.Design" CheckId="CA1024" Created="2007-03-27 04:29:04Z">
-              <Issue Certainty="50">
-               <Item>GetName</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="LogoutSession(libsecondlife.LLUUID,libsecondlife.LLUUID,System.UInt32):System.Boolean">
-            <Messages>
-             <Message Id="0#" TypeName="ShortAcronymsShouldBeUppercase" Category="Microsoft.Naming" CheckId="CA1706" Created="2007-03-27 04:29:04Z">
-              <Issue Name="ParameterId">
-               <Item>ID</Item>
-               <Item>sessionID</Item>
-               <Item>Id</Item>
-              </Issue>
-             </Message>
-             <Message Id="1#" TypeName="ShortAcronymsShouldBeUppercase" Category="Microsoft.Naming" CheckId="CA1706" Created="2007-03-27 04:29:04Z">
-              <Issue Name="ParameterId">
-               <Item>ID</Item>
-               <Item>agentID</Item>
-               <Item>Id</Item>
-              </Issue>
-             </Message>
-             <Message Id="Logout" TypeName="UsePreferredTerms" Category="Microsoft.Naming" CheckId="CA1726" Created="2007-03-27 04:29:04Z">
-              <Issue Name="Member">
-               <Item>Logout</Item>
-               <Item>LogoutSession</Item>
-               <Item>LogOff</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="RequestNeighbours():OpenSim.Framework.Interfaces.NeighbourInfo[]">
-            <Messages>
-             <Message Id="Neighbours" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
-              <Issue Name="Member">
-               <Item>Neighbours</Item>
-               <Item>IGridServer.RequestNeighbours():NeighbourInfo[]</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="RequestUUIDBlock():OpenSim.Framework.Interfaces.UUIDBlock">
-            <Messages>
-             <Message Id="Member" TypeName="LongAcronymsShouldBePascalCased" Category="Microsoft.Naming" CheckId="CA1705" Created="2007-03-27 04:29:04Z">
-              <Issue Name="Member">
-               <Item>IGridServer.RequestUUIDBlock():UUIDBlock</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="SetServerInfo(System.String,System.String,System.String):System.Void">
-            <Messages>
-             <Message Id="0#" TypeName="IdentifiersShouldBeCasedCorrectly" Category="Microsoft.Naming" CheckId="CA1709" Created="2007-03-27 04:29:04Z">
-              <Issue Name="Parameter">
-               <Item>ServerUrl</Item>
-              </Issue>
-             </Message>
-             <Message Id="1#" TypeName="IdentifiersShouldBeCasedCorrectly" Category="Microsoft.Naming" CheckId="CA1709" Created="2007-03-27 04:29:04Z">
-              <Issue Name="Parameter">
-               <Item>SendKey</Item>
-              </Issue>
-             </Message>
-             <Message Id="2#" TypeName="IdentifiersShouldBeCasedCorrectly" Category="Microsoft.Naming" CheckId="CA1709" Created="2007-03-27 04:29:04Z">
-              <Issue Name="Parameter">
-               <Item>RecvKey</Item>
-              </Issue>
-             </Message>
-             <Message Id="2#Recv" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
-              <Issue Name="Parameter">
-               <Item>IGridServer.SetServerInfo(String, String, String):Void</Item>
-               <Item>Recv</Item>
-               <Item>RecvKey</Item>
-              </Issue>
-             </Message>
-             <Message Id="0#" TypeName="UriParametersShouldNotBeStrings" Category="Microsoft.Design" CheckId="CA1054" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>ServerUrl</Item>
-               <Item>IGridServer.SetServerInfo(String, String, String):Void</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-          </Members>
-         </Type>
-         <Type Name="ILocalStorage">
-          <Members>
-           <Member Name="RemovePrim(libsecondlife.LLUUID):System.Void">
-            <Messages>
-             <Message Id="0#" TypeName="ShortAcronymsShouldBeUppercase" Category="Microsoft.Naming" CheckId="CA1706" Created="2007-03-27 04:29:04Z">
-              <Issue Name="ParameterId">
-               <Item>ID</Item>
-               <Item>primID</Item>
-               <Item>Id</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="ShutDown():System.Void">
-            <Messages>
-             <Message Id="ShutDown" TypeName="CompoundWordsShouldBeCasedCorrectly" Category="Microsoft.Naming" CheckId="CA1702" Created="2007-03-27 04:29:04Z">
-              <Issue Name="ShouldBeDiscreteTerm">
-               <Item>ShutDown</Item>
-               <Item>method</Item>
-               <Item>ShutDown</Item>
-               <Item>Shutdown</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-          </Members>
-         </Type>
-         <Type Name="ISimConfig">
-          <Messages>
-           <Message Id="Sim" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
-            <Issue Name="Type">
-             <Item>Sim</Item>
-             <Item>OpenSim.Framework.Interfaces.ISimConfig</Item>
-            </Issue>
-           </Message>
-          </Messages>
-          <Members>
-           <Member Name="GetConfigObject():OpenSim.Framework.Interfaces.SimConfig">
-            <Messages>
-             <Message TypeName="UsePropertiesWhereAppropriate" Category="Microsoft.Design" CheckId="CA1024" Created="2007-03-27 04:29:04Z">
-              <Issue Certainty="50">
-               <Item>GetConfigObject</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-          </Members>
-         </Type>
-         <Type Name="IUserServer">
-          <Members>
-           <Member Name="RequestAgentsInventory(libsecondlife.LLUUID):OpenSim.Framework.Inventory.AgentInventory">
-            <Messages>
-             <Message Id="0#" TypeName="ShortAcronymsShouldBeUppercase" Category="Microsoft.Naming" CheckId="CA1706" Created="2007-03-27 04:29:04Z">
-              <Issue Name="ParameterId">
-               <Item>ID</Item>
-               <Item>agentID</Item>
-               <Item>Id</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="SetServerInfo(System.String,System.String,System.String):System.Void">
-            <Messages>
-             <Message Id="0#" TypeName="IdentifiersShouldBeCasedCorrectly" Category="Microsoft.Naming" CheckId="CA1709" Created="2007-03-27 04:29:04Z">
-              <Issue Name="Parameter">
-               <Item>ServerUrl</Item>
-              </Issue>
-             </Message>
-             <Message Id="1#" TypeName="IdentifiersShouldBeCasedCorrectly" Category="Microsoft.Naming" CheckId="CA1709" Created="2007-03-27 04:29:04Z">
-              <Issue Name="Parameter">
-               <Item>SendKey</Item>
-              </Issue>
-             </Message>
-             <Message Id="2#" TypeName="IdentifiersShouldBeCasedCorrectly" Category="Microsoft.Naming" CheckId="CA1709" Created="2007-03-27 04:29:04Z">
-              <Issue Name="Parameter">
-               <Item>RecvKey</Item>
-              </Issue>
-             </Message>
-             <Message Id="2#Recv" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
-              <Issue Name="Parameter">
-               <Item>IUserServer.SetServerInfo(String, String, String):Void</Item>
-               <Item>Recv</Item>
-               <Item>RecvKey</Item>
-              </Issue>
-             </Message>
-             <Message Id="0#" TypeName="UriParametersShouldNotBeStrings" Category="Microsoft.Design" CheckId="CA1054" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>ServerUrl</Item>
-               <Item>IUserServer.SetServerInfo(String, String, String):Void</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-          </Members>
-         </Type>
-         <Type Name="LocalGridBase">
-          <Members>
-           <Member Name="LogoutSession(libsecondlife.LLUUID,libsecondlife.LLUUID,System.UInt32):System.Boolean">
-            <Messages>
-             <Message Id="Logout" TypeName="UsePreferredTerms" Category="Microsoft.Naming" CheckId="CA1726" Created="2007-03-27 04:29:04Z">
-              <Issue Name="Member">
-               <Item>Logout</Item>
-               <Item>LogoutSession</Item>
-               <Item>LogOff</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-          </Members>
-         </Type>
-         <Type Name="Login">
-          <Messages>
-           <Message Id="Login" TypeName="UsePreferredTerms" Category="Microsoft.Naming" CheckId="CA1726" Created="2007-03-27 04:29:04Z">
-            <Issue Name="Type">
-             <Item>Login</Item>
-             <Item>Login</Item>
-             <Item>LogOn</Item>
-            </Issue>
-           </Message>
-          </Messages>
-          <Members>
-           <Member Name="Agent">
-            <Messages>
-             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>Agent</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="BaseFolder">
-            <Messages>
-             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>BaseFolder</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="First">
-            <Messages>
-             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>First</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="InventoryFolder">
-            <Messages>
-             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>InventoryFolder</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="Last">
-            <Messages>
-             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>Last</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="SecureSession">
-            <Messages>
-             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>SecureSession</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="Session">
-            <Messages>
-             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>Session</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-          </Members>
-         </Type>
-         <Type Name="NeighbourInfo">
-          <Messages>
-           <Message Id="Neighbour" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
-            <Issue Name="Type">
-             <Item>Neighbour</Item>
-             <Item>OpenSim.Framework.Interfaces.NeighbourInfo</Item>
-            </Issue>
-           </Message>
-          </Messages>
-          <Members>
-           <Member Name="regionhandle">
-            <Messages>
-             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>regionhandle</Item>
-              </Issue>
-             </Message>
-             <Message Id="regionhandle" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
-              <Issue Name="Member">
-               <Item>regionhandle</Item>
-               <Item>NeighbourInfo.regionhandle</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="RegionLocX">
-            <Messages>
-             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>RegionLocX</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="RegionLocY">
-            <Messages>
-             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>RegionLocY</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="sim_ip">
-            <Messages>
-             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>sim_ip</Item>
-              </Issue>
-             </Message>
-             <Message Id="sim" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
-              <Issue Name="Member">
-               <Item>sim</Item>
-               <Item>NeighbourInfo.sim_ip</Item>
-              </Issue>
-             </Message>
-             <Message Id="Member" TypeName="IdentifiersShouldNotContainUnderscores" Category="Microsoft.Naming" CheckId="CA1707" Created="2007-03-27 04:29:04Z">
-              <Issue Name="Member">
-               <Item>sim_ip</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="sim_port">
-            <Messages>
-             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>sim_port</Item>
-              </Issue>
-             </Message>
-             <Message Id="sim" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
-              <Issue Name="Member">
-               <Item>sim</Item>
-               <Item>NeighbourInfo.sim_port</Item>
-              </Issue>
-             </Message>
-             <Message Id="Member" TypeName="IdentifiersShouldNotContainUnderscores" Category="Microsoft.Naming" CheckId="CA1707" Created="2007-03-27 04:29:04Z">
-              <Issue Name="Member">
-               <Item>sim_port</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-          </Members>
-         </Type>
-         <Type Name="RemoteGridBase">
-          <Members>
-           <Member Name="agentcircuits">
-            <Messages>
-             <Message TypeName="CollectionPropertiesShouldBeReadOnly" Category="Microsoft.Usage" CheckId="CA2227" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>agentcircuits</Item>
-              </Issue>
-             </Message>
-             <Message Id="Member" TypeName="IdentifiersShouldBeCasedCorrectly" Category="Microsoft.Naming" CheckId="CA1709" Created="2007-03-27 04:29:04Z">
-              <Issue Name="Member">
-               <Item>agentcircuits</Item>
-              </Issue>
-             </Message>
-             <Message Id="agentcircuits" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
-              <Issue Name="Member">
-               <Item>agentcircuits</Item>
-               <Item>RemoteGridBase.agentcircuits:Dictionary`2&lt;System.UInt32,OpenSim.Framework.Interfaces.AgentCircuitData&gt;</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="LogoutSession(libsecondlife.LLUUID,libsecondlife.LLUUID,System.UInt32):System.Boolean">
-            <Messages>
-             <Message Id="Logout" TypeName="UsePreferredTerms" Category="Microsoft.Naming" CheckId="CA1726" Created="2007-03-27 04:29:04Z">
-              <Issue Name="Member">
-               <Item>Logout</Item>
-               <Item>LogoutSession</Item>
-               <Item>LogOff</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-          </Members>
-         </Type>
-         <Type Name="SimConfig">
-          <Messages>
-           <Message Id="Sim" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
-            <Issue Name="Type">
-             <Item>Sim</Item>
-             <Item>OpenSim.Framework.Interfaces.SimConfig</Item>
-            </Issue>
-           </Message>
-          </Messages>
-          <Members>
-           <Member Name="AssetSendKey">
-            <Messages>
-             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>AssetSendKey</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="AssetURL">
-            <Messages>
-             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>AssetURL</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="GridRecvKey">
-            <Messages>
-             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>GridRecvKey</Item>
-              </Issue>
-             </Message>
-             <Message Id="Recv" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
-              <Issue Name="Member">
-               <Item>Recv</Item>
-               <Item>SimConfig.GridRecvKey</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="GridSendKey">
-            <Messages>
-             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>GridSendKey</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="GridURL">
-            <Messages>
-             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>GridURL</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="IPListenAddr">
-            <Messages>
-             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>IPListenAddr</Item>
-              </Issue>
-             </Message>
-             <Message Id="Addr" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
-              <Issue Name="Member">
-               <Item>Addr</Item>
-               <Item>SimConfig.IPListenAddr</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="IPListenPort">
-            <Messages>
-             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>IPListenPort</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="RegionHandle">
-            <Messages>
-             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>RegionHandle</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="RegionLocX">
-            <Messages>
-             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>RegionLocX</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="RegionLocY">
-            <Messages>
-             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>RegionLocY</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="RegionName">
-            <Messages>
-             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>RegionName</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="SaveMap(System.Single[]):System.Void">
-            <Messages>
-             <Message Id="0#heightmap" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
-              <Issue Name="Parameter">
-               <Item>SimConfig.SaveMap(Single[]):Void</Item>
-               <Item>heightmap</Item>
-               <Item>heightmap</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="UserRecvKey">
-            <Messages>
-             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>UserRecvKey</Item>
-              </Issue>
-             </Message>
-             <Message Id="Recv" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
-              <Issue Name="Member">
-               <Item>Recv</Item>
-               <Item>SimConfig.UserRecvKey</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="UserSendKey">
-            <Messages>
-             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>UserSendKey</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="UserURL">
-            <Messages>
-             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>UserURL</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-          </Members>
-         </Type>
-         <Type Name="UUIDBlock">
-          <Messages>
-           <Message TypeName="LongAcronymsShouldBePascalCased" Category="Microsoft.Naming" CheckId="CA1705" Created="2007-03-27 04:29:04Z">
-            <Issue Name="Type">
-             <Item>UUIDBlock</Item>
-            </Issue>
-           </Message>
-           <Message TypeName="OverrideEqualsAndOperatorEqualsOnValueTypes" Category="Microsoft.Performance" CheckId="CA1815" Created="2007-03-27 04:29:04Z">
-            <Issue Name="Equals">
-             <Item>OpenSim.Framework.Interfaces.UUIDBlock</Item>
-            </Issue>
-            <Issue Name="op_Equality">
-             <Item>OpenSim.Framework.Interfaces.UUIDBlock</Item>
-            </Issue>
-           </Message>
-          </Messages>
-          <Members>
-           <Member Name="BlockEnd">
-            <Messages>
-             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>BlockEnd</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="BlockStart">
-            <Messages>
-             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>BlockStart</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-          </Members>
-         </Type>
-        </Types>
-       </Namespace>
-       <Namespace Name="OpenSim.Framework.Inventory">
-        <Types>
-         <Type Name="AgentInventory">
-          <Members>
-           <Member Name=".ctor()">
-            <Messages>
-             <Message TypeName="DoNotCallOverridableMethodsInConstructors" Category="Microsoft.Usage" CheckId="CA2214" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>AgentInventory.AgentInventory()</Item>
-               <Item>&#xD;&#xA;&#xD;&#xA;AgentInventory.AgentInventory()&#xD;&#xA;AgentInventory.Initialise():Void</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="AddToInventory(libsecondlife.LLUUID,OpenSim.Framework.Assets.AssetBase):libsecondlife.LLUUID">
-            <Messages>
-             <Message Id="0#" TypeName="ShortAcronymsShouldBeUppercase" Category="Microsoft.Naming" CheckId="CA1706" Created="2007-03-27 04:29:04Z">
-              <Issue Name="ParameterId">
-               <Item>ID</Item>
-               <Item>folderID</Item>
-               <Item>Id</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="AgentID">
-            <Messages>
-             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>AgentID</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="CreateNewFolder(libsecondlife.LLUUID,System.UInt16):System.Boolean">
-            <Messages>
-             <Message Id="0#" TypeName="ShortAcronymsShouldBeUppercase" Category="Microsoft.Naming" CheckId="CA1706" Created="2007-03-27 04:29:04Z">
-              <Issue Name="ParameterId">
-               <Item>ID</Item>
-               <Item>folderID</Item>
-               <Item>Id</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="Initialise():System.Void">
-            <Messages>
-             <Message Id="Initialise" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
-              <Issue Name="Member">
-               <Item>Initialise</Item>
-               <Item>AgentInventory.Initialise():Void</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="InventoryFolders">
-            <Messages>
-             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>InventoryFolders</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="InventoryItems">
-            <Messages>
-             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>InventoryItems</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="InventoryRoot">
-            <Messages>
-             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>InventoryRoot</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="LastCached">
-            <Messages>
-             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>LastCached</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="UpdateItem(libsecondlife.LLUUID,OpenSim.Framework.Assets.AssetBase):System.Boolean">
-            <Messages>
-             <Message Id="0#" TypeName="ShortAcronymsShouldBeUppercase" Category="Microsoft.Naming" CheckId="CA1706" Created="2007-03-27 04:29:04Z">
-              <Issue Name="ParameterId">
-               <Item>ID</Item>
-               <Item>itemID</Item>
-               <Item>Id</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="Wearables">
-            <Messages>
-             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>Wearables</Item>
-              </Issue>
-             </Message>
-             <Message Id="Wearables" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
-              <Issue Name="Member">
-               <Item>Wearables</Item>
-               <Item>AgentInventory.Wearables</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-          </Members>
-         </Type>
-         <Type Name="AvatarWearable">
-          <Members>
-           <Member Name="AssetID">
-            <Messages>
-             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>AssetID</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="ItemID">
-            <Messages>
-             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>ItemID</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-          </Members>
-         </Type>
-         <Type Name="InventoryFolder">
-          <Members>
-           <Member Name="DefaultType">
-            <Messages>
-             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>DefaultType</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="FolderID">
-            <Messages>
-             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>FolderID</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="FolderName">
-            <Messages>
-             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>FolderName</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="Items">
-            <Messages>
-             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>Items</Item>
-              </Issue>
-             </Message>
-             <Message TypeName="DoNotExposeGenericLists" Category="Microsoft.Design" CheckId="CA1002" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>System.Collections.Generic.List`1&lt;OpenSim.Framework.Inventory.InventoryItem&gt;</Item>
-               <Item>InventoryFolder.Items</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="OwnerID">
-            <Messages>
-             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>OwnerID</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="ParentID">
-            <Messages>
-             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>ParentID</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="Version">
-            <Messages>
-             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>Version</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-          </Members>
-         </Type>
-         <Type Name="InventoryItem">
-          <Members>
-           <Member Name="AssetID">
-            <Messages>
-             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>AssetID</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="CreatorID">
-            <Messages>
-             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>CreatorID</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="Description">
-            <Messages>
-             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>Description</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="FolderID">
-            <Messages>
-             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>FolderID</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="InvType">
-            <Messages>
-             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>InvType</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="ItemID">
-            <Messages>
-             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>ItemID</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="Name">
-            <Messages>
-             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>Name</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="OwnerID">
-            <Messages>
-             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>OwnerID</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="Type">
-            <Messages>
-             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>Type</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-          </Members>
-         </Type>
-        </Types>
-       </Namespace>
-       <Namespace Name="OpenSim.Framework.Sims">
-        <Types>
-         <Type Name="SimProfile">
-          <Messages>
-           <Message Id="Sim" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
-            <Issue Name="Type">
-             <Item>Sim</Item>
-             <Item>OpenSim.Framework.Sims.SimProfile</Item>
-            </Issue>
-           </Message>
-          </Messages>
-          <Members>
-           <Member Name="LoadFromGrid(System.UInt64,System.String,System.String,System.String):OpenSim.Framework.Sims.SimProfile">
-            <Messages>
-             <Message TypeName="DoNotCatchGeneralExceptionTypes" Category="Microsoft.Design" CheckId="CA1031" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>SimProfile.LoadFromGrid(UInt64, String, String, String):SimProfile</Item>
-               <Item>System.Exception</Item>
-              </Issue>
-             </Message>
-             <Message Id="1#" TypeName="IdentifiersShouldBeCasedCorrectly" Category="Microsoft.Naming" CheckId="CA1709" Created="2007-03-27 04:29:04Z">
-              <Issue Name="Parameter">
-               <Item>GridURL</Item>
-              </Issue>
-             </Message>
-             <Message Id="2#" TypeName="IdentifiersShouldBeCasedCorrectly" Category="Microsoft.Naming" CheckId="CA1709" Created="2007-03-27 04:29:04Z">
-              <Issue Name="Parameter">
-               <Item>SendKey</Item>
-              </Issue>
-             </Message>
-             <Message Id="3#" TypeName="IdentifiersShouldBeCasedCorrectly" Category="Microsoft.Naming" CheckId="CA1709" Created="2007-03-27 04:29:04Z">
-              <Issue Name="Parameter">
-               <Item>RecvKey</Item>
-              </Issue>
-             </Message>
-             <Message Id="3#Recv" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
-              <Issue Name="Parameter">
-               <Item>SimProfile.LoadFromGrid(UInt64, String, String, String):SimProfile</Item>
-               <Item>Recv</Item>
-               <Item>RecvKey</Item>
-              </Issue>
-             </Message>
-             <Message Id="0#" TypeName="IdentifiersShouldNotContainUnderscores" Category="Microsoft.Naming" CheckId="CA1707" Created="2007-03-27 04:29:04Z">
-              <Issue Name="Parameter">
-               <Item>region_handle</Item>
-              </Issue>
-             </Message>
-             <Message Id="1#" TypeName="LongAcronymsShouldBePascalCased" Category="Microsoft.Naming" CheckId="CA1705" Created="2007-03-27 04:29:04Z">
-              <Issue Name="Parameter">
-               <Item>GridURL</Item>
-              </Issue>
-             </Message>
-             <Message Id="RecvKey" TypeName="ReviewUnusedParameters" Category="Microsoft.Usage" CheckId="CA1801" Created="2007-03-27 04:29:04Z" FixCategory="Breaking">
-              <Issue>
-               <Item>RecvKey</Item>
-               <Item>SimProfile.LoadFromGrid(UInt64, String, String, String):SimProfile</Item>
-              </Issue>
-             </Message>
-             <Message Id="System.Convert.ToUInt16(System.Object)" TypeName="SpecifyIFormatProvider" Category="Microsoft.Globalization" CheckId="CA1305" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>SimProfile.LoadFromGrid(UInt64, String, String, String):SimProfile</Item>
-               <Item>System.Convert.ToUInt16(System.Object)</Item>
-               <Item>System.Convert.ToUInt16(System.Object,System.IFormatProvider)</Item>
-              </Issue>
-             </Message>
-             <Message Id="System.Convert.ToUInt32(System.Object)" TypeName="SpecifyIFormatProvider" Category="Microsoft.Globalization" CheckId="CA1305" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>SimProfile.LoadFromGrid(UInt64, String, String, String):SimProfile</Item>
-               <Item>System.Convert.ToUInt32(System.Object)</Item>
-               <Item>System.Convert.ToUInt32(System.Object,System.IFormatProvider)</Item>
-              </Issue>
-              <Issue>
-               <Item>SimProfile.LoadFromGrid(UInt64, String, String, String):SimProfile</Item>
-               <Item>System.Convert.ToUInt32(System.Object)</Item>
-               <Item>System.Convert.ToUInt32(System.Object,System.IFormatProvider)</Item>
-              </Issue>
-             </Message>
-             <Message Id="System.Convert.ToUInt64(System.Object)" TypeName="SpecifyIFormatProvider" Category="Microsoft.Globalization" CheckId="CA1305" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>SimProfile.LoadFromGrid(UInt64, String, String, String):SimProfile</Item>
-               <Item>System.Convert.ToUInt64(System.Object)</Item>
-               <Item>System.Convert.ToUInt64(System.Object,System.IFormatProvider)</Item>
-              </Issue>
-             </Message>
-             <Message Id="System.UInt64.ToString" TypeName="SpecifyIFormatProvider" Category="Microsoft.Globalization" CheckId="CA1305" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>SimProfile.LoadFromGrid(UInt64, String, String, String):SimProfile</Item>
-               <Item>System.UInt64.ToString</Item>
-               <Item>System.UInt64.ToString(System.IFormatProvider)</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-          </Members>
-         </Type>
-         <Type Name="SimProfileBase">
-          <Messages>
-           <Message Id="Sim" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
-            <Issue Name="Type">
-             <Item>Sim</Item>
-             <Item>OpenSim.Framework.Sims.SimProfileBase</Item>
-            </Issue>
-           </Message>
-          </Messages>
-          <Members>
-           <Member Name="caps_url">
-            <Messages>
-             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>caps_url</Item>
-              </Issue>
-             </Message>
-             <Message Id="Member" TypeName="IdentifiersShouldNotContainUnderscores" Category="Microsoft.Naming" CheckId="CA1707" Created="2007-03-27 04:29:04Z">
-              <Issue Name="Member">
-               <Item>caps_url</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="recvkey">
-            <Messages>
-             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>recvkey</Item>
-              </Issue>
-             </Message>
-             <Message Id="recvkey" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
-              <Issue Name="Member">
-               <Item>recvkey</Item>
-               <Item>SimProfileBase.recvkey</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="regionhandle">
-            <Messages>
-             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>regionhandle</Item>
-              </Issue>
-             </Message>
-             <Message Id="regionhandle" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
-              <Issue Name="Member">
-               <Item>regionhandle</Item>
-               <Item>SimProfileBase.regionhandle</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="RegionLocX">
-            <Messages>
-             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>RegionLocX</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="RegionLocY">
-            <Messages>
-             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>RegionLocY</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="regionname">
-            <Messages>
-             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>regionname</Item>
-              </Issue>
-             </Message>
-             <Message Id="regionname" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
-              <Issue Name="Member">
-               <Item>regionname</Item>
-               <Item>SimProfileBase.regionname</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="sendkey">
-            <Messages>
-             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>sendkey</Item>
-              </Issue>
-             </Message>
-             <Message Id="sendkey" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
-              <Issue Name="Member">
-               <Item>sendkey</Item>
-               <Item>SimProfileBase.sendkey</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="sim_ip">
-            <Messages>
-             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>sim_ip</Item>
-              </Issue>
-             </Message>
-             <Message Id="sim" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
-              <Issue Name="Member">
-               <Item>sim</Item>
-               <Item>SimProfileBase.sim_ip</Item>
-              </Issue>
-             </Message>
-             <Message Id="Member" TypeName="IdentifiersShouldNotContainUnderscores" Category="Microsoft.Naming" CheckId="CA1707" Created="2007-03-27 04:29:04Z">
-              <Issue Name="Member">
-               <Item>sim_ip</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="sim_port">
-            <Messages>
-             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>sim_port</Item>
-              </Issue>
-             </Message>
-             <Message Id="sim" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
-              <Issue Name="Member">
-               <Item>sim</Item>
-               <Item>SimProfileBase.sim_port</Item>
-              </Issue>
-             </Message>
-             <Message Id="Member" TypeName="IdentifiersShouldNotContainUnderscores" Category="Microsoft.Naming" CheckId="CA1707" Created="2007-03-27 04:29:04Z">
-              <Issue Name="Member">
-               <Item>sim_port</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="UUID">
-            <Messages>
-             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>UUID</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-          </Members>
-         </Type>
-        </Types>
-       </Namespace>
-       <Namespace Name="OpenSim.Framework.Terrain">
-        <Types>
-         <Type Name="HeightmapGenHills">
-          <Messages>
-           <Message Id="Heightmap" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
-            <Issue Name="Type">
-             <Item>Heightmap</Item>
-             <Item>OpenSim.Framework.Terrain.HeightmapGenHills</Item>
-            </Issue>
-           </Message>
-          </Messages>
-          <Members>
-           <Member Name="GenerateHeightmap(System.Int32,System.Single,System.Single,System.Boolean):System.Single[]">
-            <Messages>
-             <Message Id="0#num" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
-              <Issue Name="Parameter">
-               <Item>HeightmapGenHills.GenerateHeightmap(Int32, Single, Single, Boolean):Single[]</Item>
-               <Item>num</Item>
-               <Item>numHills</Item>
-              </Issue>
-             </Message>
-             <Message Id="Heightmap" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
-              <Issue Name="Member">
-               <Item>Heightmap</Item>
-               <Item>HeightmapGenHills.GenerateHeightmap(Int32, Single, Single, Boolean):Single[]</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="NumHills">
-            <Messages>
-             <Message TypeName="AvoidUnusedPrivateFields" Category="Microsoft.Performance" CheckId="CA1823" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>HeightmapGenHills.NumHills</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-          </Members>
-         </Type>
-        </Types>
-       </Namespace>
-       <Namespace Name="OpenSim.Framework.User">
-        <Types>
-         <Type Name="UserProfile">
-          <Members>
-           <Member Name=".ctor()">
-            <Messages>
-             <Message TypeName="DoNotInitializeUnnecessarily" Category="Microsoft.Performance" CheckId="CA1805" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>UserProfile.UserProfile()</Item>
-               <Item>IsGridGod</Item>
-               <Item>System.Boolean</Item>
-               <Item>false</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="AddSimCircuit(System.UInt32,libsecondlife.LLUUID):System.Void">
-            <Messages>
-             <Message Id="Sim" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
-              <Issue Name="Member">
-               <Item>Sim</Item>
-               <Item>UserProfile.AddSimCircuit(UInt32, LLUUID):Void</Item>
-              </Issue>
-             </Message>
-             <Message Id="1#" TypeName="LongAcronymsShouldBePascalCased" Category="Microsoft.Naming" CheckId="CA1705" Created="2007-03-27 04:29:04Z">
-              <Issue Name="Parameter">
-               <Item>regionUUID</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="AssetURL">
-            <Messages>
-             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>AssetURL</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="Circuits">
-            <Messages>
-             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>Circuits</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="CurrentSecureSessionID">
-            <Messages>
-             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>CurrentSecureSessionID</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="CurrentSessionID">
-            <Messages>
-             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>CurrentSessionID</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="firstname">
-            <Messages>
-             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>firstname</Item>
-              </Issue>
-             </Message>
-             <Message Id="firstname" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
-              <Issue Name="Member">
-               <Item>firstname</Item>
-               <Item>UserProfile.firstname</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="homelookat">
-            <Messages>
-             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>homelookat</Item>
-              </Issue>
-             </Message>
-             <Message Id="homelookat" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
-              <Issue Name="Member">
-               <Item>homelookat</Item>
-               <Item>UserProfile.homelookat</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="homepos">
-            <Messages>
-             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>homepos</Item>
-              </Issue>
-             </Message>
-             <Message Id="homepos" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
-              <Issue Name="Member">
-               <Item>homepos</Item>
-               <Item>UserProfile.homepos</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="homeregionhandle">
-            <Messages>
-             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>homeregionhandle</Item>
-              </Issue>
-             </Message>
-             <Message Id="homeregionhandle" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
-              <Issue Name="Member">
-               <Item>homeregionhandle</Item>
-               <Item>UserProfile.homeregionhandle</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="Inventory">
-            <Messages>
-             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>Inventory</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="IsGridGod">
-            <Messages>
-             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>IsGridGod</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="IsLocal">
-            <Messages>
-             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>IsLocal</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="lastname">
-            <Messages>
-             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>lastname</Item>
-              </Issue>
-             </Message>
-             <Message Id="lastname" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
-              <Issue Name="Member">
-               <Item>lastname</Item>
-               <Item>UserProfile.lastname</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="MD5passwd">
-            <Messages>
-             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>MD5passwd</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="UUID">
-            <Messages>
-             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>UUID</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-          </Members>
-         </Type>
-         <Type Name="UserProfileManager">
-          <Members>
-           <Member Name="CustomiseResponse(System.Collections.Hashtable&amp;,OpenSim.Framework.User.UserProfile):System.Void">
-            <Messages>
-             <Message Id="0#" TypeName="DoNotPassTypesByReference" Category="Microsoft.Design" CheckId="CA1045" Created="2007-03-27 04:29:04Z">
-              <Issue Level="CriticalWarning">
-               <Item>response</Item>
-              </Issue>
-             </Message>
-             <Message Id="Customise" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
-              <Issue Name="Member">
-               <Item>Customise</Item>
-               <Item>UserProfileManager.CustomiseResponse(Hashtable&amp;, UserProfile):Void</Item>
-              </Issue>
-             </Message>
-             <Message Id="GridResp" TypeName="RemoveUnusedLocals" Category="Microsoft.Performance" CheckId="CA1804" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>UserProfileManager.CustomiseResponse(Hashtable&amp;, UserProfile):Void</Item>
-               <Item>GridResp</Item>
-               <Item>Nwc.XmlRpc.XmlRpcResponse</Item>
-              </Issue>
-             </Message>
-             <Message Id="System.Single.ToString" TypeName="SpecifyIFormatProvider" Category="Microsoft.Globalization" CheckId="CA1305" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>UserProfileManager.CustomiseResponse(Hashtable&amp;, UserProfile):Void</Item>
-               <Item>System.Single.ToString</Item>
-               <Item>System.Single.ToString(System.IFormatProvider)</Item>
-              </Issue>
-              <Issue>
-               <Item>UserProfileManager.CustomiseResponse(Hashtable&amp;, UserProfile):Void</Item>
-               <Item>System.Single.ToString</Item>
-               <Item>System.Single.ToString(System.IFormatProvider)</Item>
-              </Issue>
-              <Issue>
-               <Item>UserProfileManager.CustomiseResponse(Hashtable&amp;, UserProfile):Void</Item>
-               <Item>System.Single.ToString</Item>
-               <Item>System.Single.ToString(System.IFormatProvider)</Item>
-              </Issue>
-              <Issue>
-               <Item>UserProfileManager.CustomiseResponse(Hashtable&amp;, UserProfile):Void</Item>
-               <Item>System.Single.ToString</Item>
-               <Item>System.Single.ToString(System.IFormatProvider)</Item>
-              </Issue>
-              <Issue>
-               <Item>UserProfileManager.CustomiseResponse(Hashtable&amp;, UserProfile):Void</Item>
-               <Item>System.Single.ToString</Item>
-               <Item>System.Single.ToString(System.IFormatProvider)</Item>
-              </Issue>
-              <Issue>
-               <Item>UserProfileManager.CustomiseResponse(Hashtable&amp;, UserProfile):Void</Item>
-               <Item>System.Single.ToString</Item>
-               <Item>System.Single.ToString(System.IFormatProvider)</Item>
-              </Issue>
-             </Message>
-             <Message Id="System.UInt32.ToString" TypeName="SpecifyIFormatProvider" Category="Microsoft.Globalization" CheckId="CA1305" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>UserProfileManager.CustomiseResponse(Hashtable&amp;, UserProfile):Void</Item>
-               <Item>System.UInt32.ToString</Item>
-               <Item>System.UInt32.ToString(System.IFormatProvider)</Item>
-              </Issue>
-              <Issue>
-               <Item>UserProfileManager.CustomiseResponse(Hashtable&amp;, UserProfile):Void</Item>
-               <Item>System.UInt32.ToString</Item>
-               <Item>System.UInt32.ToString(System.IFormatProvider)</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="DefaultStartupMsg">
-            <Messages>
-             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>DefaultStartupMsg</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="GridRecvKey">
-            <Messages>
-             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>GridRecvKey</Item>
-              </Issue>
-             </Message>
-             <Message Id="Recv" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
-              <Issue Name="Member">
-               <Item>Recv</Item>
-               <Item>UserProfileManager.GridRecvKey</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="GridSendKey">
-            <Messages>
-             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>GridSendKey</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="GridURL">
-            <Messages>
-             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>GridURL</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="ParseXMLRPC(System.String):System.String">
-            <Messages>
-             <Message TypeName="DoNotCatchGeneralExceptionTypes" Category="Microsoft.Design" CheckId="CA1031" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>UserProfileManager.ParseXMLRPC(String):String</Item>
-               <Item>System.Exception</Item>
-              </Issue>
-             </Message>
-             <Message Id="Member" TypeName="LongAcronymsShouldBePascalCased" Category="Microsoft.Naming" CheckId="CA1705" Created="2007-03-27 04:29:04Z">
-              <Issue Name="Member">
-               <Item>UserProfileManager.ParseXMLRPC(String):String</Item>
-              </Issue>
-             </Message>
-             <Message Id="System.Int32.ToString" TypeName="SpecifyIFormatProvider" Category="Microsoft.Globalization" CheckId="CA1305" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>UserProfileManager.ParseXMLRPC(String):String</Item>
-               <Item>System.Int32.ToString</Item>
-               <Item>System.Int32.ToString(System.IFormatProvider)</Item>
-              </Issue>
-              <Issue>
-               <Item>UserProfileManager.ParseXMLRPC(String):String</Item>
-               <Item>System.Int32.ToString</Item>
-               <Item>System.Int32.ToString(System.IFormatProvider)</Item>
-              </Issue>
-             </Message>
-             <Message Id="System.Single.ToString" TypeName="SpecifyIFormatProvider" Category="Microsoft.Globalization" CheckId="CA1305" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>UserProfileManager.ParseXMLRPC(String):String</Item>
-               <Item>System.Single.ToString</Item>
-               <Item>System.Single.ToString(System.IFormatProvider)</Item>
-              </Issue>
-              <Issue>
-               <Item>UserProfileManager.ParseXMLRPC(String):String</Item>
-               <Item>System.Single.ToString</Item>
-               <Item>System.Single.ToString(System.IFormatProvider)</Item>
-              </Issue>
-              <Issue>
-               <Item>UserProfileManager.ParseXMLRPC(String):String</Item>
-               <Item>System.Single.ToString</Item>
-               <Item>System.Single.ToString(System.IFormatProvider)</Item>
-              </Issue>
-              <Issue>
-               <Item>UserProfileManager.ParseXMLRPC(String):String</Item>
-               <Item>System.Single.ToString</Item>
-               <Item>System.Single.ToString(System.IFormatProvider)</Item>
-              </Issue>
-              <Issue>
-               <Item>UserProfileManager.ParseXMLRPC(String):String</Item>
-               <Item>System.Single.ToString</Item>
-               <Item>System.Single.ToString(System.IFormatProvider)</Item>
-              </Issue>
-              <Issue>
-               <Item>UserProfileManager.ParseXMLRPC(String):String</Item>
-               <Item>System.Single.ToString</Item>
-               <Item>System.Single.ToString(System.IFormatProvider)</Item>
-              </Issue>
-              <Issue>
-               <Item>UserProfileManager.ParseXMLRPC(String):String</Item>
-               <Item>System.Single.ToString</Item>
-               <Item>System.Single.ToString(System.IFormatProvider)</Item>
-              </Issue>
-              <Issue>
-               <Item>UserProfileManager.ParseXMLRPC(String):String</Item>
-               <Item>System.Single.ToString</Item>
-               <Item>System.Single.ToString(System.IFormatProvider)</Item>
-              </Issue>
-              <Issue>
-               <Item>UserProfileManager.ParseXMLRPC(String):String</Item>
-               <Item>System.Single.ToString</Item>
-               <Item>System.Single.ToString(System.IFormatProvider)</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="SetKeys(System.String,System.String,System.String,System.String):System.Void">
-            <Messages>
-             <Message Id="1#recv" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
-              <Issue Name="Parameter">
-               <Item>UserProfileManager.SetKeys(String, String, String, String):Void</Item>
-               <Item>recv</Item>
-               <Item>recvKey</Item>
-              </Issue>
-             </Message>
-             <Message Id="2#" TypeName="UriParametersShouldNotBeStrings" Category="Microsoft.Design" CheckId="CA1054" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>url</Item>
-               <Item>UserProfileManager.SetKeys(String, String, String, String):Void</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-          </Members>
-         </Type>
-         <Type Name="UserProfileManagerBase">
-          <Members>
-           <Member Name="AuthenticateUser(System.String,System.String,System.String):System.Boolean">
-            <Messages>
-             <Message Id="0#firstname" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
-              <Issue Name="Parameter">
-               <Item>UserProfileManagerBase.AuthenticateUser(String, String, String):Boolean</Item>
-               <Item>firstname</Item>
-               <Item>firstname</Item>
-              </Issue>
-             </Message>
-             <Message Id="1#lastname" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
-              <Issue Name="Parameter">
-               <Item>UserProfileManagerBase.AuthenticateUser(String, String, String):Boolean</Item>
-               <Item>lastname</Item>
-               <Item>lastname</Item>
-              </Issue>
-             </Message>
-             <Message Id="2#passwd" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
-              <Issue Name="Parameter">
-               <Item>UserProfileManagerBase.AuthenticateUser(String, String, String):Boolean</Item>
-               <Item>passwd</Item>
-               <Item>passwd</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="CreateNewProfile(System.String,System.String,System.String):OpenSim.Framework.User.UserProfile">
-            <Messages>
-             <Message Id="2#" TypeName="IdentifiersShouldBeCasedCorrectly" Category="Microsoft.Naming" CheckId="CA1709" Created="2007-03-27 04:29:04Z">
-              <Issue Name="Parameter">
-               <Item>MD5passwd</Item>
-              </Issue>
-             </Message>
-             <Message Id="0#firstname" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
-              <Issue Name="Parameter">
-               <Item>UserProfileManagerBase.CreateNewProfile(String, String, String):UserProfile</Item>
-               <Item>firstname</Item>
-               <Item>firstname</Item>
-              </Issue>
-             </Message>
-             <Message Id="1#lastname" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
-              <Issue Name="Parameter">
-               <Item>UserProfileManagerBase.CreateNewProfile(String, String, String):UserProfile</Item>
-               <Item>lastname</Item>
-               <Item>lastname</Item>
-              </Issue>
-             </Message>
-             <Message Id="2#M" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
-              <Issue Name="Parameter">
-               <Item>UserProfileManagerBase.CreateNewProfile(String, String, String):UserProfile</Item>
-               <Item>M</Item>
-               <Item>MD5passwd</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="GetProfileByLLUUID(libsecondlife.LLUUID):OpenSim.Framework.User.UserProfile">
-            <Messages>
-             <Message Id="0#" TypeName="IdentifiersShouldBeCasedCorrectly" Category="Microsoft.Naming" CheckId="CA1709" Created="2007-03-27 04:29:04Z">
-              <Issue Name="Parameter">
-               <Item>ProfileLLUUID</Item>
-              </Issue>
-             </Message>
-             <Message Id="0#" TypeName="LongAcronymsShouldBePascalCased" Category="Microsoft.Naming" CheckId="CA1705" Created="2007-03-27 04:29:04Z">
-              <Issue Name="Parameter">
-               <Item>ProfileLLUUID</Item>
-              </Issue>
-             </Message>
-             <Message Id="Member" TypeName="LongAcronymsShouldBePascalCased" Category="Microsoft.Naming" CheckId="CA1705" Created="2007-03-27 04:29:04Z">
-              <Issue Name="Member">
-               <Item>UserProfileManagerBase.GetProfileByLLUUID(LLUUID):UserProfile</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="GetProfileByName(System.String,System.String):OpenSim.Framework.User.UserProfile">
-            <Messages>
-             <Message Id="0#firstname" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
-              <Issue Name="Parameter">
-               <Item>UserProfileManagerBase.GetProfileByName(String, String):UserProfile</Item>
-               <Item>firstname</Item>
-               <Item>firstname</Item>
-              </Issue>
-             </Message>
-             <Message Id="1#lastname" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
-              <Issue Name="Parameter">
-               <Item>UserProfileManagerBase.GetProfileByName(String, String):UserProfile</Item>
-               <Item>lastname</Item>
-               <Item>lastname</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="GetUsersInventory(libsecondlife.LLUUID):OpenSim.Framework.Inventory.AgentInventory">
-            <Messages>
-             <Message Id="0#" TypeName="ShortAcronymsShouldBeUppercase" Category="Microsoft.Naming" CheckId="CA1706" Created="2007-03-27 04:29:04Z">
-              <Issue Name="ParameterId">
-               <Item>ID</Item>
-               <Item>agentID</Item>
-               <Item>Id</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="SetGod(libsecondlife.LLUUID):System.Void">
-            <Messages>
-             <Message Id="0#" TypeName="IdentifiersShouldBeCasedCorrectly" Category="Microsoft.Naming" CheckId="CA1709" Created="2007-03-27 04:29:04Z">
-              <Issue Name="Parameter">
-               <Item>GodID</Item>
-              </Issue>
-             </Message>
-             <Message Id="0#" TypeName="ShortAcronymsShouldBeUppercase" Category="Microsoft.Naming" CheckId="CA1706" Created="2007-03-27 04:29:04Z">
-              <Issue Name="ParameterId">
-               <Item>ID</Item>
-               <Item>GodID</Item>
-               <Item>Id</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="UserProfiles">
-            <Messages>
-             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>UserProfiles</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-          </Members>
-         </Type>
-        </Types>
-       </Namespace>
-       <Namespace Name="OpenSim.Framework.Utilities">
-        <Types>
-         <Type Name="BlockingQueue`1">
-          <Messages>
-           <Message TypeName="IdentifiersShouldNotHaveIncorrectSuffix" Category="Microsoft.Naming" CheckId="CA1711" Created="2007-03-27 04:29:04Z">
-            <Issue>
-             <Item>OpenSim.Framework.Utilities.BlockingQueue`1</Item>
-             <Item>Queue</Item>
-            </Issue>
-           </Message>
-          </Messages>
-         </Type>
-         <Type Name="Util">
-          <Messages>
-           <Message Id="Util" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
-            <Issue Name="Type">
-             <Item>Util</Item>
-             <Item>OpenSim.Framework.Utilities.Util</Item>
-            </Issue>
-           </Message>
-           <Message TypeName="StaticHolderTypesShouldNotHaveConstructors" Category="Microsoft.Design" CheckId="CA1053" Created="2007-03-27 04:29:04Z">
-            <Issue>
-             <Item>Util</Item>
-            </Issue>
-           </Message>
-           <Message TypeName="TypeNamesShouldNotMatchNamespaces" Category="Microsoft.Naming" CheckId="CA1724" Created="2007-03-27 04:29:04Z">
-            <Issue>
-             <Item>Util</Item>
-             <Item>System.Web.Util</Item>
-            </Issue>
-           </Message>
-          </Messages>
-          <Members>
-           <Member Name="GetNextXferID():System.UInt32">
-            <Messages>
-             <Message Id="Xfer" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
-              <Issue Name="Member">
-               <Item>Xfer</Item>
-               <Item>Util.GetNextXferID():UInt32</Item>
-              </Issue>
-             </Message>
-             <Message Id="Member" TypeName="ShortAcronymsShouldBeUppercase" Category="Microsoft.Naming" CheckId="CA1706" Created="2007-03-27 04:29:04Z">
-              <Issue Name="MemberId">
-               <Item>Util.GetNextXferID():UInt32</Item>
-              </Issue>
-             </Message>
-             <Message TypeName="UsePropertiesWhereAppropriate" Category="Microsoft.Design" CheckId="CA1024" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>GetNextXferID</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="UIntsToLong(System.UInt32,System.UInt32):System.UInt64">
-            <Messages>
-             <Message Id="0#" TypeName="IdentifiersShouldBeCasedCorrectly" Category="Microsoft.Naming" CheckId="CA1709" Created="2007-03-27 04:29:04Z">
-              <Issue Name="Parameter">
-               <Item>X</Item>
-              </Issue>
-             </Message>
-             <Message Id="1#" TypeName="IdentifiersShouldBeCasedCorrectly" Category="Microsoft.Naming" CheckId="CA1709" Created="2007-03-27 04:29:04Z">
-              <Issue Name="Parameter">
-               <Item>Y</Item>
-              </Issue>
-             </Message>
-             <Message Id="0#X" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
-              <Issue Name="ParameterOneLetter">
-               <Item>Util.UIntsToLong(UInt32, UInt32):UInt64</Item>
-               <Item>X</Item>
-              </Issue>
-             </Message>
-             <Message Id="1#Y" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
-              <Issue Name="ParameterOneLetter">
-               <Item>Util.UIntsToLong(UInt32, UInt32):UInt64</Item>
-               <Item>Y</Item>
-              </Issue>
-             </Message>
-             <Message Id="Ints" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
-              <Issue Name="Member">
-               <Item>Ints</Item>
-               <Item>Util.UIntsToLong(UInt32, UInt32):UInt64</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-          </Members>
-         </Type>
-        </Types>
-       </Namespace>
-      </Namespaces>
-     </Module>
-    </Modules>
-   </Target>
-   <Target Name="$(ProjectDir)/bin/OpenSim.GridInterfaces.Local.dll">
-    <Modules>
-     <Module Name="opensim.gridinterfaces.local.dll">
-      <Messages>
-       <Message TypeName="AssembliesShouldDeclareMinimumSecurity" Category="Microsoft.Usage" CheckId="CA2209" Created="2007-03-27 04:29:04Z">
-        <Issue>
-         <Item>OpenSim.GridInterfaces.Local</Item>
-        </Issue>
-       </Message>
-       <Message TypeName="AssembliesShouldHaveValidStrongNames" Category="Microsoft.Design" CheckId="CA2210" Created="2007-03-27 04:29:04Z">
-        <Issue Name="NoStrongName">
-         <Item>OpenSim.GridInterfaces.Local</Item>
-        </Issue>
-       </Message>
-       <Message TypeName="MarkAssembliesWithClsCompliant" Category="Microsoft.Design" CheckId="CA1014" Created="2007-03-27 04:29:04Z">
-        <Issue Name="NoAttr">
-         <Item>OpenSim.GridInterfaces.Local</Item>
-        </Issue>
-       </Message>
-      </Messages>
-      <Namespaces>
-       <Namespace Name="OpenSim.GridInterfaces.Local">
-        <Types>
-         <Type Name="AssetStorage">
-          <Members>
-           <Member Name="Data">
-            <Messages>
-             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>Data</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="Name">
-            <Messages>
-             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>Name</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="Type">
-            <Messages>
-             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>Type</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="UUID">
-            <Messages>
-             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>UUID</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-          </Members>
-         </Type>
-         <Type Name="AssetUUIDQuery">
-          <Messages>
-           <Message TypeName="LongAcronymsShouldBePascalCased" Category="Microsoft.Naming" CheckId="CA1705" Created="2007-03-27 04:29:04Z">
-            <Issue Name="Type">
-             <Item>AssetUUIDQuery</Item>
-            </Issue>
-           </Message>
-          </Messages>
-          <Members>
-           <Member Name="Match(OpenSim.GridInterfaces.Local.AssetStorage):System.Boolean">
-            <Messages>
-             <Message TypeName="ValidateArgumentsOfPublicMethods" Category="Microsoft.Design" CheckId="CA1062" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>'asset'</Item>
-               <Item>AssetUUIDQuery.Match(AssetStorage):Boolean</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-          </Members>
-         </Type>
-         <Type Name="LocalAssetPlugin">
-          <Messages>
-           <Message Id="Plugin" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
-            <Issue Name="Type">
-             <Item>Plugin</Item>
-             <Item>OpenSim.GridInterfaces.Local.LocalAssetPlugin</Item>
-            </Issue>
-           </Message>
-          </Messages>
-         </Type>
-         <Type Name="LocalAssetServer">
-          <Members>
-           <Member Name=".ctor()">
-            <Messages>
-             <Message TypeName="DoNotCatchGeneralExceptionTypes" Category="Microsoft.Design" CheckId="CA1031" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>LocalAssetServer.LocalAssetServer()</Item>
-               <Item>System.Exception</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="LoadAsset(OpenSim.Framework.Assets.AssetBase,System.Boolean,System.String):System.Void">
-            <Messages>
-             <Message TypeName="MarkMembersAsStatic" Category="Microsoft.Performance" CheckId="CA1822" Created="2007-03-27 04:29:04Z" FixCategory="NonBreaking">
-              <Issue>
-               <Item>LocalAssetServer.LoadAsset(AssetBase, Boolean, String):Void</Item>
-              </Issue>
-             </Message>
-             <Message Id="image" TypeName="ReviewUnusedParameters" Category="Microsoft.Usage" CheckId="CA1801" Created="2007-03-27 04:29:04Z" FixCategory="NonBreaking">
-              <Issue>
-               <Item>image</Item>
-               <Item>LocalAssetServer.LoadAsset(AssetBase, Boolean, String):Void</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="UploadNewAsset(OpenSim.Framework.Assets.AssetBase):System.Void">
-            <Messages>
-             <Message TypeName="ValidateArgumentsOfPublicMethods" Category="Microsoft.Design" CheckId="CA1062" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>'asset'</Item>
-               <Item>LocalAssetServer.UploadNewAsset(AssetBase):Void</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-          </Members>
-         </Type>
-         <Type Name="LocalGridPlugin">
-          <Messages>
-           <Message Id="Plugin" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
-            <Issue Name="Type">
-             <Item>Plugin</Item>
-             <Item>OpenSim.GridInterfaces.Local.LocalGridPlugin</Item>
-            </Issue>
-           </Message>
-          </Messages>
-         </Type>
-         <Type Name="LocalGridServer">
-          <Members>
-           <Member Name="LogoutSession(libsecondlife.LLUUID,libsecondlife.LLUUID,System.UInt32):System.Boolean">
-            <Messages>
-             <Message Id="Logout" TypeName="UsePreferredTerms" Category="Microsoft.Naming" CheckId="CA1726" Created="2007-03-27 04:29:04Z">
-              <Issue Name="Member">
-               <Item>Logout</Item>
-               <Item>LogoutSession</Item>
-               <Item>LogOff</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="Sessions">
-            <Messages>
-             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>Sessions</Item>
-              </Issue>
-             </Message>
-             <Message TypeName="DoNotExposeGenericLists" Category="Microsoft.Design" CheckId="CA1002" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>System.Collections.Generic.List`1&lt;OpenSim.Framework.Interfaces.Login&gt;</Item>
-               <Item>LocalGridServer.Sessions</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-          </Members>
-         </Type>
-        </Types>
-       </Namespace>
-      </Namespaces>
-     </Module>
-    </Modules>
-   </Target>
-   <Target Name="$(ProjectDir)/bin/OpenSim.GridInterfaces.Remote.dll">
-    <Modules>
-     <Module Name="opensim.gridinterfaces.remote.dll">
-      <Messages>
-       <Message TypeName="AssembliesShouldDeclareMinimumSecurity" Category="Microsoft.Usage" CheckId="CA2209" Created="2007-03-27 04:29:04Z">
-        <Issue>
-         <Item>OpenSim.GridInterfaces.Remote</Item>
-        </Issue>
-       </Message>
-       <Message TypeName="AssembliesShouldHaveValidStrongNames" Category="Microsoft.Design" CheckId="CA2210" Created="2007-03-27 04:29:04Z">
-        <Issue Name="NoStrongName">
-         <Item>OpenSim.GridInterfaces.Remote</Item>
-        </Issue>
-       </Message>
-       <Message TypeName="MarkAssembliesWithClsCompliant" Category="Microsoft.Design" CheckId="CA1014" Created="2007-03-27 04:29:04Z">
-        <Issue Name="NoAttr">
-         <Item>OpenSim.GridInterfaces.Remote</Item>
-        </Issue>
-       </Message>
-      </Messages>
-      <Namespaces>
-       <Namespace Name="OpenSim.GridInterfaces.Remote">
-        <Types>
-         <Type Name="RemoteAssetPlugin">
-          <Messages>
-           <Message Id="Plugin" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
-            <Issue Name="Type">
-             <Item>Plugin</Item>
-             <Item>OpenSim.GridInterfaces.Remote.RemoteAssetPlugin</Item>
-            </Issue>
-           </Message>
-          </Messages>
-         </Type>
-         <Type Name="RemoteGridPlugin">
-          <Messages>
-           <Message Id="Plugin" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
-            <Issue Name="Type">
-             <Item>Plugin</Item>
-             <Item>OpenSim.GridInterfaces.Remote.RemoteGridPlugin</Item>
-            </Issue>
-           </Message>
-          </Messages>
-         </Type>
-         <Type Name="RemoteGridServer">
-          <Members>
-           <Member Name="agentcircuits">
-            <Messages>
-             <Message TypeName="CollectionPropertiesShouldBeReadOnly" Category="Microsoft.Usage" CheckId="CA2227" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>agentcircuits</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="AuthenticateSession(libsecondlife.LLUUID,libsecondlife.LLUUID,System.UInt32):OpenSim.Framework.Interfaces.AuthenticateResponse">
-            <Messages>
-             <Message Id="2#" TypeName="ParameterNamesShouldMatchBaseDeclaration" Category="Microsoft.Naming" CheckId="CA1725" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>circuitcode</Item>
-               <Item>RemoteGridServer.AuthenticateSession(LLUUID, LLUUID, UInt32):AuthenticateResponse</Item>
-               <Item>circuitCode</Item>
-               <Item>IGridServer.AuthenticateSession(LLUUID, LLUUID, UInt32):AuthenticateResponse</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="GridRecvKey">
-            <Messages>
-             <Message TypeName="AvoidUnusedPrivateFields" Category="Microsoft.Performance" CheckId="CA1823" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>RemoteGridServer.GridRecvKey</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="GridSendKey">
-            <Messages>
-             <Message TypeName="AvoidUnusedPrivateFields" Category="Microsoft.Performance" CheckId="CA1823" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>RemoteGridServer.GridSendKey</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="LogoutSession(libsecondlife.LLUUID,libsecondlife.LLUUID,System.UInt32):System.Boolean">
-            <Messages>
-             <Message TypeName="PassSystemUriObjectsInsteadOfStrings" Category="Microsoft.Usage" CheckId="CA2234" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>RemoteGridServer.LogoutSession(LLUUID, LLUUID, UInt32):Boolean</Item>
-               <Item>WebRequest.Create(Uri):WebRequest</Item>
-               <Item>WebRequest.Create(String):WebRequest</Item>
-              </Issue>
-             </Message>
-             <Message Id="GridResponse" TypeName="RemoveUnusedLocals" Category="Microsoft.Performance" CheckId="CA1804" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>RemoteGridServer.LogoutSession(LLUUID, LLUUID, UInt32):Boolean</Item>
-               <Item>GridResponse</Item>
-               <Item>System.String</Item>
-              </Issue>
-             </Message>
-             <Message Id="Logout" TypeName="UsePreferredTerms" Category="Microsoft.Naming" CheckId="CA1726" Created="2007-03-27 04:29:04Z">
-              <Issue Name="Member">
-               <Item>Logout</Item>
-               <Item>LogoutSession</Item>
-               <Item>LogOff</Item>
-              </Issue>
-             </Message>
-             <Message TypeName="ValidateArgumentsOfPublicMethods" Category="Microsoft.Design" CheckId="CA1062" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>'sessionID'</Item>
-               <Item>RemoteGridServer.LogoutSession(LLUUID, LLUUID, UInt32):Boolean</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-          </Members>
-         </Type>
-        </Types>
-       </Namespace>
-      </Namespaces>
-     </Module>
-    </Modules>
-   </Target>
-   <Target Name="$(ProjectDir)/bin/OpenSim.Physics.Manager.dll">
-    <Modules>
-     <Module Name="opensim.physics.manager.dll">
-      <Messages>
-       <Message TypeName="AssembliesShouldDeclareMinimumSecurity" Category="Microsoft.Usage" CheckId="CA2209" Created="2007-03-27 04:29:04Z">
-        <Issue>
-         <Item>OpenSim.Physics.Manager</Item>
-        </Issue>
-       </Message>
-       <Message TypeName="AssembliesShouldHaveValidStrongNames" Category="Microsoft.Design" CheckId="CA2210" Created="2007-03-27 04:29:04Z">
-        <Issue Name="NoStrongName">
-         <Item>OpenSim.Physics.Manager</Item>
-        </Issue>
-       </Message>
-       <Message TypeName="MarkAssembliesWithClsCompliant" Category="Microsoft.Design" CheckId="CA1014" Created="2007-03-27 04:29:04Z">
-        <Issue Name="NoAttr">
-         <Item>OpenSim.Physics.Manager</Item>
-        </Issue>
-       </Message>
-      </Messages>
-      <Namespaces>
-       <Namespace Name="OpenSim.Physics.Manager">
-        <Types>
-         <Type Name="IPhysicsPlugin">
-          <Messages>
-           <Message Id="Plugin" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
-            <Issue Name="Type">
-             <Item>Plugin</Item>
-             <Item>OpenSim.Physics.Manager.IPhysicsPlugin</Item>
-            </Issue>
-           </Message>
-          </Messages>
-          <Members>
-           <Member Name="GetName():System.String">
-            <Messages>
-             <Message TypeName="UsePropertiesWhereAppropriate" Category="Microsoft.Design" CheckId="CA1024" Created="2007-03-27 04:29:04Z">
-              <Issue Certainty="50">
-               <Item>GetName</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="GetScene():OpenSim.Physics.Manager.PhysicsScene">
-            <Messages>
-             <Message TypeName="UsePropertiesWhereAppropriate" Category="Microsoft.Design" CheckId="CA1024" Created="2007-03-27 04:29:04Z">
-              <Issue Certainty="50">
-               <Item>GetScene</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-          </Members>
-         </Type>
-         <Type Name="NullPhysicsScene">
-          <Members>
-           <Member Name="SetTerrain(System.Single[]):System.Void">
-            <Messages>
-             <Message TypeName="ValidateArgumentsOfPublicMethods" Category="Microsoft.Design" CheckId="CA1062" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>'heightMap'</Item>
-               <Item>NullPhysicsScene.SetTerrain(Single[]):Void</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="Simulate(System.Single):System.Void">
-            <Messages>
-             <Message Id="System.Int32.ToString" TypeName="SpecifyIFormatProvider" Category="Microsoft.Globalization" CheckId="CA1305" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>NullPhysicsScene.Simulate(Single):Void</Item>
-               <Item>System.Int32.ToString</Item>
-               <Item>System.Int32.ToString(System.IFormatProvider)</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-          </Members>
-         </Type>
-         <Type Name="PhysicsActor">
-          <Members>
-           <Member Name="Kinematic">
-            <Messages>
-             <Message Id="Kinematic" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
-              <Issue Name="Member">
-               <Item>Kinematic</Item>
-               <Item>PhysicsActor.Kinematic:Boolean</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-          </Members>
-         </Type>
-         <Type Name="PhysicsManager">
-          <Members>
-           <Member Name="GetPhysicsScene(System.String):OpenSim.Physics.Manager.PhysicsScene">
-            <Messages>
-             <Message Id="System.String.Format(System.String,System.Object)" TypeName="SpecifyIFormatProvider" Category="Microsoft.Globalization" CheckId="CA1305" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>PhysicsManager.GetPhysicsScene(String):PhysicsScene</Item>
-               <Item>System.String.Format(System.String,System.Object)</Item>
-               <Item>System.String.Format(System.IFormatProvider,System.String,System.Object[])</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="LoadPlugins():System.Void">
-            <Messages>
-             <Message Id="Plugins" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
-              <Issue Name="Member">
-               <Item>Plugins</Item>
-               <Item>PhysicsManager.LoadPlugins():Void</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-          </Members>
-         </Type>
-         <Type Name="PhysicsVector">
-          <Members>
-           <Member Name=".ctor(System.Single,System.Single,System.Single)">
-            <Messages>
-             <Message Id="0#x" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
-              <Issue Name="ParameterOneLetter">
-               <Item>PhysicsVector.PhysicsVector(Single, Single, Single)</Item>
-               <Item>x</Item>
-              </Issue>
-             </Message>
-             <Message Id="1#y" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
-              <Issue Name="ParameterOneLetter">
-               <Item>PhysicsVector.PhysicsVector(Single, Single, Single)</Item>
-               <Item>y</Item>
-              </Issue>
-             </Message>
-             <Message Id="2#z" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
-              <Issue Name="ParameterOneLetter">
-               <Item>PhysicsVector.PhysicsVector(Single, Single, Single)</Item>
-               <Item>z</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="X">
-            <Messages>
-             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>X</Item>
-              </Issue>
-             </Message>
-             <Message Id="X" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
-              <Issue Name="MemberOneLetter">
-               <Item>X</Item>
-               <Item>PhysicsVector.X</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="Y">
-            <Messages>
-             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>Y</Item>
-              </Issue>
-             </Message>
-             <Message Id="Y" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
-              <Issue Name="MemberOneLetter">
-               <Item>Y</Item>
-               <Item>PhysicsVector.Y</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="Z">
-            <Messages>
-             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>Z</Item>
-              </Issue>
-             </Message>
-             <Message Id="Z" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
-              <Issue Name="MemberOneLetter">
-               <Item>Z</Item>
-               <Item>PhysicsVector.Z</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="Zero">
-            <Messages>
-             <Message TypeName="DoNotDeclareReadOnlyMutableReferenceTypes" Category="Microsoft.Security" CheckId="CA2104" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>PhysicsVector.Zero</Item>
-               <Item>OpenSim.Physics.Manager.PhysicsVector</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-          </Members>
-         </Type>
-        </Types>
-       </Namespace>
-      </Namespaces>
-     </Module>
-    </Modules>
-   </Target>
-   <Target Name="$(ProjectDir)/bin/OpenSim.RegionServer.dll">
-    <Modules>
-     <Module Name="opensim.regionserver.dll">
-      <Messages>
-       <Message TypeName="AssembliesShouldDeclareMinimumSecurity" Category="Microsoft.Usage" CheckId="CA2209" Created="2007-03-27 04:29:04Z">
-        <Issue>
-         <Item>OpenSim.RegionServer</Item>
-        </Issue>
-       </Message>
-       <Message TypeName="AssembliesShouldHaveValidStrongNames" Category="Microsoft.Design" CheckId="CA2210" Created="2007-03-27 04:29:04Z">
-        <Issue Name="NoStrongName">
-         <Item>OpenSim.RegionServer</Item>
-        </Issue>
-       </Message>
-       <Message TypeName="MarkAssembliesWithAssemblyVersion" Category="Microsoft.Design" CheckId="CA1016" Created="2007-03-27 04:29:04Z">
-        <Issue>
-         <Item>OpenSim.RegionServer</Item>
-        </Issue>
-       </Message>
-       <Message TypeName="MarkAssembliesWithClsCompliant" Category="Microsoft.Design" CheckId="CA1014" Created="2007-03-27 04:29:04Z">
-        <Issue Name="NoAttr">
-         <Item>OpenSim.RegionServer</Item>
-        </Issue>
-       </Message>
-       <Message TypeName="MarkAssembliesWithComVisible" Category="Microsoft.Design" CheckId="CA1017" Created="2007-03-27 04:29:04Z">
-        <Issue Name="NoAttribute" Level="CriticalError">
-         <Item>OpenSim.RegionServer</Item>
-        </Issue>
-       </Message>
-      </Messages>
-      <Namespaces>
-       <Namespace Name="OpenSim">
-        <Types>
-         <Type Name="AgentAssetUpload">
-          <Members>
-           <Member Name="AddUpload(libsecondlife.LLUUID,OpenSim.Framework.Assets.AssetBase):System.Void">
-            <Messages>
-             <Message Id="0#" TypeName="ShortAcronymsShouldBeUppercase" Category="Microsoft.Naming" CheckId="CA1706" Created="2007-03-27 04:29:04Z">
-              <Issue Name="ParameterId">
-               <Item>ID</Item>
-               <Item>transactionID</Item>
-               <Item>Id</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="AddUploadToAssetCache(libsecondlife.LLUUID):OpenSim.Framework.Assets.AssetBase">
-            <Messages>
-             <Message Id="0#" TypeName="ShortAcronymsShouldBeUppercase" Category="Microsoft.Naming" CheckId="CA1706" Created="2007-03-27 04:29:04Z">
-              <Issue Name="ParameterId">
-               <Item>ID</Item>
-               <Item>transactionID</Item>
-               <Item>Id</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="GetUpload(libsecondlife.LLUUID):OpenSim.Framework.Assets.AssetBase">
-            <Messages>
-             <Message Id="0#" TypeName="ShortAcronymsShouldBeUppercase" Category="Microsoft.Naming" CheckId="CA1706" Created="2007-03-27 04:29:04Z">
-              <Issue Name="ParameterId">
-               <Item>ID</Item>
-               <Item>transactionID</Item>
-               <Item>Id</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="HandleUploadPacket(libsecondlife.Packets.AssetUploadRequestPacket,libsecondlife.LLUUID):System.Void">
-            <Messages>
-             <Message Id="1#" TypeName="ShortAcronymsShouldBeUppercase" Category="Microsoft.Naming" CheckId="CA1706" Created="2007-03-27 04:29:04Z">
-              <Issue Name="ParameterId">
-               <Item>ID</Item>
-               <Item>assetID</Item>
-               <Item>Id</Item>
-              </Issue>
-             </Message>
-             <Message Id="System.Int32.ToString(System.String)" TypeName="SpecifyIFormatProvider" Category="Microsoft.Globalization" CheckId="CA1305" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>AgentAssetUpload.HandleUploadPacket(AssetUploadRequestPacket, LLUUID):Void</Item>
-               <Item>System.Int32.ToString(System.String)</Item>
-               <Item>System.Int32.ToString(System.String,System.IFormatProvider)</Item>
-              </Issue>
-              <Issue>
-               <Item>AgentAssetUpload.HandleUploadPacket(AssetUploadRequestPacket, LLUUID):Void</Item>
-               <Item>System.Int32.ToString(System.String)</Item>
-               <Item>System.Int32.ToString(System.String,System.IFormatProvider)</Item>
-              </Issue>
-             </Message>
-             <Message TypeName="ValidateArgumentsOfPublicMethods" Category="Microsoft.Design" CheckId="CA1062" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>'assetID'</Item>
-               <Item>AgentAssetUpload.HandleUploadPacket(AssetUploadRequestPacket, LLUUID):Void</Item>
-              </Issue>
-              <Issue>
-               <Item>'pack'</Item>
-               <Item>AgentAssetUpload.HandleUploadPacket(AssetUploadRequestPacket, LLUUID):Void</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="HandleXferPacket(libsecondlife.Packets.SendXferPacketPacket):System.Void">
-            <Messages>
-             <Message Id="0#xfer" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
-              <Issue Name="Parameter">
-               <Item>AgentAssetUpload.HandleXferPacket(SendXferPacketPacket):Void</Item>
-               <Item>xfer</Item>
-               <Item>xferPacket</Item>
-              </Issue>
-             </Message>
-             <Message Id="Xfer" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
-              <Issue Name="Member">
-               <Item>Xfer</Item>
-               <Item>AgentAssetUpload.HandleXferPacket(SendXferPacketPacket):Void</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-          </Members>
-         </Type>
-         <Type Name="AssetTransaction">
-          <Members>
-           <Member Name=".ctor()">
-            <Messages>
-             <Message TypeName="DoNotInitializeUnnecessarily" Category="Microsoft.Performance" CheckId="CA1805" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>AssetTransaction.AssetTransaction()</Item>
-               <Item>UploadComplete</Item>
-               <Item>System.Boolean</Item>
-               <Item>false</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="AddToInventory">
-            <Messages>
-             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>AddToInventory</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="Asset">
-            <Messages>
-             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>Asset</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="InventFolder">
-            <Messages>
-             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>InventFolder</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="TransactionID">
-            <Messages>
-             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>TransactionID</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="UploadComplete">
-            <Messages>
-             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>UploadComplete</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="XferID">
-            <Messages>
-             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>XferID</Item>
-              </Issue>
-             </Message>
-             <Message Id="Xfer" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
-              <Issue Name="Member">
-               <Item>Xfer</Item>
-               <Item>AssetTransaction.XferID</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-          </Members>
-         </Type>
-         <Type Name="Grid">
-          <Messages>
-           <Message TypeName="TypeNamesShouldNotMatchNamespaces" Category="Microsoft.Naming" CheckId="CA1724" Created="2007-03-27 04:29:04Z">
-            <Issue>
-             <Item>Grid</Item>
-             <Item>OpenSim.Framework.Grid</Item>
-            </Issue>
-           </Message>
-          </Messages>
-          <Members>
-           <Member Name="AssetDll">
-            <Messages>
-             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>AssetDll</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="AssetServer">
-            <Messages>
-             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>AssetServer</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="GridDll">
-            <Messages>
-             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>GridDll</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="GridServer">
-            <Messages>
-             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>GridServer</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="Initialise():System.Void">
-            <Messages>
-             <Message Id="Initialise" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
-              <Issue Name="Member">
-               <Item>Initialise</Item>
-               <Item>Grid.Initialise():Void</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="LoadAssetDll(System.String):OpenSim.Framework.Interfaces.IAssetServer">
-            <Messages>
-             <Message TypeName="MarkMembersAsStatic" Category="Microsoft.Performance" CheckId="CA1822" Created="2007-03-27 04:29:04Z" FixCategory="NonBreaking">
-              <Issue>
-               <Item>Grid.LoadAssetDll(String):IAssetServer</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="LoadGridDll(System.String):OpenSim.Framework.Interfaces.IGridServer">
-            <Messages>
-             <Message TypeName="MarkMembersAsStatic" Category="Microsoft.Performance" CheckId="CA1822" Created="2007-03-27 04:29:04Z" FixCategory="NonBreaking">
-              <Issue>
-               <Item>Grid.LoadGridDll(String):IGridServer</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-          </Members>
-         </Type>
-         <Type Name="OpenSimApplication">
-          <Messages>
-           <Message Id="Sim" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
-            <Issue Name="Type">
-             <Item>Sim</Item>
-             <Item>OpenSim.OpenSimApplication</Item>
-            </Issue>
-           </Message>
-          </Messages>
-          <Members>
-           <Member Name="RemoveClientCircuit(System.UInt32):System.Void">
-            <Messages>
-             <Message Id="0#circuitcode" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
-              <Issue Name="Parameter">
-               <Item>OpenSimApplication.RemoveClientCircuit(UInt32):Void</Item>
-               <Item>circuitcode</Item>
-               <Item>circuitcode</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="SendPacketTo(System.Byte[],System.Int32,System.Net.Sockets.SocketFlags,System.UInt32):System.Void">
-            <Messages>
-             <Message Id="3#circuitcode" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
-              <Issue Name="Parameter">
-               <Item>OpenSimApplication.SendPacketTo(Byte[], Int32, SocketFlags, UInt32):Void</Item>
-               <Item>circuitcode</Item>
-               <Item>circuitcode</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="StartUp():System.Void">
-            <Messages>
-             <Message Id="StartUp" TypeName="CompoundWordsShouldBeCasedCorrectly" Category="Microsoft.Naming" CheckId="CA1702" Created="2007-03-27 04:29:04Z">
-              <Issue Name="ShouldBeDiscreteTerm">
-               <Item>StartUp</Item>
-               <Item>method</Item>
-               <Item>StartUp</Item>
-               <Item>Startup</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-          </Members>
-         </Type>
-         <Type Name="OpenSimMain">
-          <Messages>
-           <Message Id="Sim" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
-            <Issue Name="Type">
-             <Item>Sim</Item>
-             <Item>OpenSim.OpenSimMain</Item>
-            </Issue>
-           </Message>
-           <Message TypeName="TypesThatOwnDisposableFieldsShouldBeDisposable" Category="Microsoft.Design" CheckId="CA1001" Created="2007-03-27 04:29:04Z" FixCategory="Breaking">
-            <Issue>
-             <Item>OpenSim.OpenSimMain</Item>
-             <Item>System.Timers.Timer, System.Net.Sockets.Socket</Item>
-            </Issue>
-           </Message>
-          </Messages>
-          <Members>
-           <Member Name=".ctor()">
-            <Messages>
-             <Message TypeName="DoNotInitializeUnnecessarily" Category="Microsoft.Performance" CheckId="CA1805" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>OpenSimMain.OpenSimMain()</Item>
-               <Item>loginserver</Item>
-               <Item>System.Boolean</Item>
-               <Item>false</Item>
-              </Issue>
-              <Issue>
-               <Item>OpenSimMain.OpenSimMain()</Item>
-               <Item>sandbox</Item>
-               <Item>System.Boolean</Item>
-               <Item>false</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="_physicsEngine">
-            <Messages>
-             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>_physicsEngine</Item>
-              </Issue>
-             </Message>
-             <Message Id="Member" TypeName="IdentifiersShouldNotContainUnderscores" Category="Microsoft.Naming" CheckId="CA1707" Created="2007-03-27 04:29:04Z">
-              <Issue Name="Member">
-               <Item>_physicsEngine</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="LoadConfigDll(System.String):OpenSim.Framework.Interfaces.SimConfig">
-            <Messages>
-             <Message TypeName="MarkMembersAsStatic" Category="Microsoft.Performance" CheckId="CA1822" Created="2007-03-27 04:29:04Z" FixCategory="NonBreaking">
-              <Issue>
-               <Item>OpenSimMain.LoadConfigDll(String):SimConfig</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="loginserver">
-            <Messages>
-             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>loginserver</Item>
-              </Issue>
-             </Message>
-             <Message Id="loginserver" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
-              <Issue Name="Member">
-               <Item>loginserver</Item>
-               <Item>OpenSimMain.loginserver</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="sandbox">
-            <Messages>
-             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>sandbox</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="Server">
-            <Messages>
-             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>Server</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="StartUp():System.Void">
-            <Messages>
-             <Message TypeName="DoNotUseTimersThatPreventPowerStateChanges" Category="Microsoft.Mobility" CheckId="CA1601" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>Timer.set_Interval(Double):Void</Item>
-               <Item>OpenSimMain.StartUp():Void</Item>
-              </Issue>
-             </Message>
-             <Message Id="System.UInt32.ToString" TypeName="SpecifyIFormatProvider" Category="Microsoft.Globalization" CheckId="CA1305" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>OpenSimMain.StartUp():Void</Item>
-               <Item>System.UInt32.ToString</Item>
-               <Item>System.UInt32.ToString(System.IFormatProvider)</Item>
-              </Issue>
-              <Issue>
-               <Item>OpenSimMain.StartUp():Void</Item>
-               <Item>System.UInt32.ToString</Item>
-               <Item>System.UInt32.ToString(System.IFormatProvider)</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-          </Members>
-         </Type>
-         <Type Name="OpenSimRoot">
-          <Messages>
-           <Message Id="Sim" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
-            <Issue Name="Type">
-             <Item>Sim</Item>
-             <Item>OpenSim.OpenSimRoot</Item>
-            </Issue>
-           </Message>
-          </Messages>
-          <Members>
-           <Member Name=".ctor()">
-            <Messages>
-             <Message TypeName="DoNotInitializeUnnecessarily" Category="Microsoft.Performance" CheckId="CA1805" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>OpenSimRoot.OpenSimRoot()</Item>
-               <Item>Sandbox</Item>
-               <Item>System.Boolean</Item>
-               <Item>false</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="Application">
-            <Messages>
-             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>Application</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="AssetCache">
-            <Messages>
-             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>AssetCache</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="Cfg">
-            <Messages>
-             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>Cfg</Item>
-              </Issue>
-             </Message>
-             <Message Id="Cfg" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
-              <Issue Name="Member">
-               <Item>Cfg</Item>
-               <Item>OpenSimRoot.Cfg</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="ClientThreads">
-            <Messages>
-             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>ClientThreads</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="GridServers">
-            <Messages>
-             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>GridServers</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="HttpServer">
-            <Messages>
-             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>HttpServer</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="InventoryCache">
-            <Messages>
-             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>InventoryCache</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="LocalWorld">
-            <Messages>
-             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>LocalWorld</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="Sandbox">
-            <Messages>
-             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>Sandbox</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="StartUp():System.Void">
-            <Messages>
-             <Message Id="StartUp" TypeName="CompoundWordsShouldBeCasedCorrectly" Category="Microsoft.Naming" CheckId="CA1702" Created="2007-03-27 04:29:04Z">
-              <Issue Name="ShouldBeDiscreteTerm">
-               <Item>StartUp</Item>
-               <Item>method</Item>
-               <Item>StartUp</Item>
-               <Item>Startup</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="startuptime">
-            <Messages>
-             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>startuptime</Item>
-              </Issue>
-             </Message>
-             <Message Id="startuptime" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
-              <Issue Name="Member">
-               <Item>startuptime</Item>
-               <Item>OpenSimRoot.startuptime</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-          </Members>
-         </Type>
-         <Type Name="QueItem">
-          <Messages>
-           <Message Id="Que" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
-            <Issue Name="Type">
-             <Item>Que</Item>
-             <Item>OpenSim.QueItem</Item>
-            </Issue>
-           </Message>
-          </Messages>
-          <Members>
-           <Member Name="Incoming">
-            <Messages>
-             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>Incoming</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="Packet">
-            <Messages>
-             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>Packet</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-          </Members>
-         </Type>
-         <Type Name="SimClient">
-          <Messages>
-           <Message Id="Sim" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
-            <Issue Name="Type">
-             <Item>Sim</Item>
-             <Item>OpenSim.SimClient</Item>
-            </Issue>
-           </Message>
-           <Message TypeName="TypesThatOwnDisposableFieldsShouldBeDisposable" Category="Microsoft.Design" CheckId="CA1001" Created="2007-03-27 04:29:04Z" FixCategory="Breaking">
-            <Issue>
-             <Item>OpenSim.SimClient</Item>
-             <Item>System.Timers.Timer</Item>
-            </Issue>
-           </Message>
-          </Messages>
-          <Members>
-           <Member Name=".ctor(System.Net.EndPoint,libsecondlife.Packets.UseCircuitCodePacket)">
-            <Messages>
-             <Message TypeName="DoNotInitializeUnnecessarily" Category="Microsoft.Performance" CheckId="CA1805" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>SimClient.SimClient(EndPoint, UseCircuitCodePacket)</Item>
-               <Item>Sequence</Item>
-               <Item>System.UInt32</Item>
-               <Item>0</Item>
-              </Issue>
-              <Issue>
-               <Item>SimClient.SimClient(EndPoint, UseCircuitCodePacket)</Item>
-               <Item>debug</Item>
-               <Item>System.Boolean</Item>
-               <Item>false</Item>
-              </Issue>
-             </Message>
-             <Message TypeName="DoNotUseTimersThatPreventPowerStateChanges" Category="Microsoft.Mobility" CheckId="CA1601" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>Timer.Timer(Double)</Item>
-               <Item>SimClient.SimClient(EndPoint, UseCircuitCodePacket)</Item>
-              </Issue>
-             </Message>
-             <Message Id="1#initialcirpack" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
-              <Issue Name="Parameter">
-               <Item>SimClient.SimClient(EndPoint, UseCircuitCodePacket)</Item>
-               <Item>initialcirpack</Item>
-               <Item>initialcirpack</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="AgentID">
-            <Messages>
-             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>AgentID</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="CircuitCode">
-            <Messages>
-             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>CircuitCode</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="ClientAvatar">
-            <Messages>
-             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>ClientAvatar</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="InPacket(libsecondlife.Packets.Packet):System.Void">
-            <Messages>
-             <Message Id="0#" TypeName="IdentifiersShouldBeCasedCorrectly" Category="Microsoft.Naming" CheckId="CA1709" Created="2007-03-27 04:29:04Z">
-              <Issue Name="Parameter">
-               <Item>NewPack</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="newAssetFolder">
-            <Messages>
-             <Message TypeName="AvoidUnusedPrivateFields" Category="Microsoft.Performance" CheckId="CA1823" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>SimClient.newAssetFolder</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="OutPacket(libsecondlife.Packets.Packet):System.Void">
-            <Messages>
-             <Message Id="0#" TypeName="IdentifiersShouldBeCasedCorrectly" Category="Microsoft.Naming" CheckId="CA1709" Created="2007-03-27 04:29:04Z">
-              <Issue Name="Parameter">
-               <Item>NewPack</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="ProcessInPacket(libsecondlife.Packets.Packet):System.Void">
-            <Messages>
-             <Message Id="0#" TypeName="IdentifiersShouldBeCasedCorrectly" Category="Microsoft.Naming" CheckId="CA1709" Created="2007-03-27 04:29:04Z">
-              <Issue Name="Parameter">
-               <Item>Pack</Item>
-              </Issue>
-             </Message>
-             <Message Id="wear" TypeName="RemoveUnusedLocals" Category="Microsoft.Performance" CheckId="CA1804" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>SimClient.ProcessInPacket(Packet):Void</Item>
-               <Item>wear</Item>
-               <Item>libsecondlife.Packets.AgentIsNowWearingPacket</Item>
-              </Issue>
-             </Message>
-             <Message TypeName="TestForEmptyStringsUsingStringLength" Category="Microsoft.Performance" CheckId="CA1820" Created="2007-03-27 04:29:04Z">
-              <Issue Name="IsNullOrEmpty">
-               <Item>op_Equality</Item>
-               <Item>""</Item>
-               <Item>SimClient.ProcessInPacket(Packet):Void</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="ProcessOutPacket(libsecondlife.Packets.Packet):System.Void">
-            <Messages>
-             <Message TypeName="DoNotCatchGeneralExceptionTypes" Category="Microsoft.Design" CheckId="CA1031" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>SimClient.ProcessOutPacket(Packet):Void</Item>
-               <Item>System.Exception</Item>
-              </Issue>
-             </Message>
-             <Message Id="0#" TypeName="IdentifiersShouldBeCasedCorrectly" Category="Microsoft.Naming" CheckId="CA1709" Created="2007-03-27 04:29:04Z">
-              <Issue Name="Parameter">
-               <Item>Pack</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="SecureSessionID">
-            <Messages>
-             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>SecureSessionID</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="SessionID">
-            <Messages>
-             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>SessionID</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="userEP">
-            <Messages>
-             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>userEP</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-          </Members>
-         </Type>
-         <Type Name="SimConsole">
-          <Messages>
-           <Message TypeName="ComVisibleTypeBaseTypesShouldBeComVisible" Category="Microsoft.Interoperability" CheckId="CA1405" Created="2007-03-27 04:29:04Z">
-            <Issue>
-             <Item>OpenSim.SimConsole</Item>
-             <Item> OpenSim.Framework.Console.ConsoleBase</Item>
-            </Issue>
-           </Message>
-           <Message Id="Sim" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
-            <Issue Name="Type">
-             <Item>Sim</Item>
-             <Item>OpenSim.SimConsole</Item>
-            </Issue>
-           </Message>
-          </Messages>
-          <Members>
-           <Member Name=".ctor(OpenSim.Framework.Console.ConsoleBase+ConsoleType,System.String,System.Int32)">
-            <Messages>
-             <Message Id="0#constype" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
-              <Issue Name="Parameter">
-               <Item>SimConsole.SimConsole(ConsoleType, String, Int32)</Item>
-               <Item>constype</Item>
-               <Item>constype</Item>
-              </Issue>
-             </Message>
-             <Message Id="1#sparam" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
-              <Issue Name="Parameter">
-               <Item>SimConsole.SimConsole(ConsoleType, String, Int32)</Item>
-               <Item>sparam</Item>
-               <Item>sparam</Item>
-              </Issue>
-             </Message>
-             <Message Id="2#iparam" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
-              <Issue Name="Parameter">
-               <Item>SimConsole.SimConsole(ConsoleType, String, Int32)</Item>
-               <Item>iparam</Item>
-               <Item>iparam</Item>
-              </Issue>
-             </Message>
-             <Message Id="iparam" TypeName="ReviewUnusedParameters" Category="Microsoft.Usage" CheckId="CA1801" Created="2007-03-27 04:29:04Z" FixCategory="Breaking">
-              <Issue>
-               <Item>iparam</Item>
-               <Item>SimConsole.SimConsole(ConsoleType, String, Int32)</Item>
-              </Issue>
-             </Message>
-             <Message Id="sparam" TypeName="ReviewUnusedParameters" Category="Microsoft.Usage" CheckId="CA1801" Created="2007-03-27 04:29:04Z" FixCategory="Breaking">
-              <Issue>
-               <Item>sparam</Item>
-               <Item>SimConsole.SimConsole(ConsoleType, String, Int32)</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="CmdPrompt(System.String,System.String):System.String">
-            <Messages>
-             <Message TypeName="TestForEmptyStringsUsingStringLength" Category="Microsoft.Performance" CheckId="CA1820" Created="2007-03-27 04:29:04Z">
-              <Issue Name="IsNullOrEmpty">
-               <Item>op_Equality</Item>
-               <Item>""</Item>
-               <Item>SimConsole.CmdPrompt(String, String):String</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="ConsType">
-            <Messages>
-             <Message TypeName="AvoidUnusedPrivateFields" Category="Microsoft.Performance" CheckId="CA1823" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>SimConsole.ConsType</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="MainConsolePrompt():System.Void">
-            <Messages>
-             <Message Id="System.UInt64.ToString" TypeName="SpecifyIFormatProvider" Category="Microsoft.Globalization" CheckId="CA1305" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>SimConsole.MainConsolePrompt():Void</Item>
-               <Item>System.UInt64.ToString</Item>
-               <Item>System.UInt64.ToString(System.IFormatProvider)</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="RunCmd(System.String,System.String[]):System.Object">
-            <Messages>
-             <Message TypeName="ValidateArgumentsOfPublicMethods" Category="Microsoft.Design" CheckId="CA1062" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>'cmdparams'</Item>
-               <Item>SimConsole.RunCmd(String, String[]):Object</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="ShowCommands(System.String):System.Void">
-            <Messages>
-             <Message Id="System.String.Format(System.String,System.Object[])" TypeName="SpecifyIFormatProvider" Category="Microsoft.Globalization" CheckId="CA1305" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>SimConsole.ShowCommands(String):Void</Item>
-               <Item>System.String.Format(System.String,System.Object[])</Item>
-               <Item>System.String.Format(System.IFormatProvider,System.String,System.Object[])</Item>
-              </Issue>
-              <Issue>
-               <Item>SimConsole.ShowCommands(String):Void</Item>
-               <Item>System.String.Format(System.String,System.Object[])</Item>
-               <Item>System.String.Format(System.IFormatProvider,System.String,System.Object[])</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-          </Members>
-         </Type>
-         <Type Name="VersionInfo">
-          <Members>
-           <Member Name="Version">
-            <Messages>
-             <Message TypeName="NonConstantFieldsShouldNotBeVisible" Category="Microsoft.Usage" CheckId="CA2211" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>Version</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-          </Members>
-         </Type>
-        </Types>
-       </Namespace>
-       <Namespace Name="OpenSim.Assets">
-        <Types>
-         <Type Name="AssetCache">
-          <Members>
-           <Member Name="AddTextureRequest(OpenSim.SimClient,libsecondlife.LLUUID):System.Void">
-            <Messages>
-             <Message Id="1#" TypeName="ShortAcronymsShouldBeUppercase" Category="Microsoft.Naming" CheckId="CA1706" Created="2007-03-27 04:29:04Z">
-              <Issue Name="ParameterId">
-               <Item>ID</Item>
-               <Item>imageID</Item>
-               <Item>Id</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="AssetRequests">
-            <Messages>
-             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>AssetRequests</Item>
-              </Issue>
-             </Message>
-             <Message TypeName="DoNotExposeGenericLists" Category="Microsoft.Design" CheckId="CA1002" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>System.Collections.Generic.List`1&lt;OpenSim.Assets.AssetRequest&gt;</Item>
-               <Item>AssetCache.AssetRequests</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="Assets">
-            <Messages>
-             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>Assets</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="CloneAsset(libsecondlife.LLUUID,OpenSim.Assets.AssetInfo):OpenSim.Assets.AssetInfo">
-            <Messages>
-             <Message TypeName="ConsiderPassingBaseTypesAsParameters" Category="Microsoft.Design" CheckId="CA1011" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>sourceAsset</Item>
-               <Item>AssetCache.CloneAsset(LLUUID, AssetInfo):AssetInfo</Item>
-               <Item>OpenSim.Assets.AssetInfo</Item>
-               <Item>OpenSim.Framework.Assets.AssetBase</Item>
-              </Issue>
-             </Message>
-             <Message TypeName="MarkMembersAsStatic" Category="Microsoft.Performance" CheckId="CA1822" Created="2007-03-27 04:29:04Z" FixCategory="Breaking">
-              <Issue>
-               <Item>AssetCache.CloneAsset(LLUUID, AssetInfo):AssetInfo</Item>
-              </Issue>
-             </Message>
-             <Message Id="newOwner" TypeName="ReviewUnusedParameters" Category="Microsoft.Usage" CheckId="CA1801" Created="2007-03-27 04:29:04Z" FixCategory="Breaking">
-              <Issue>
-               <Item>newOwner</Item>
-               <Item>AssetCache.CloneAsset(LLUUID, AssetInfo):AssetInfo</Item>
-              </Issue>
-             </Message>
-             <Message TypeName="ValidateArgumentsOfPublicMethods" Category="Microsoft.Design" CheckId="CA1062" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>'sourceAsset'</Item>
-               <Item>AssetCache.CloneAsset(LLUUID, AssetInfo):AssetInfo</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="CloneImage(libsecondlife.LLUUID,OpenSim.Assets.TextureImage):OpenSim.Assets.TextureImage">
-            <Messages>
-             <Message TypeName="ConsiderPassingBaseTypesAsParameters" Category="Microsoft.Design" CheckId="CA1011" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>source</Item>
-               <Item>AssetCache.CloneImage(LLUUID, TextureImage):TextureImage</Item>
-               <Item>OpenSim.Assets.TextureImage</Item>
-               <Item>OpenSim.Framework.Assets.AssetBase</Item>
-              </Issue>
-             </Message>
-             <Message TypeName="MarkMembersAsStatic" Category="Microsoft.Performance" CheckId="CA1822" Created="2007-03-27 04:29:04Z" FixCategory="Breaking">
-              <Issue>
-               <Item>AssetCache.CloneImage(LLUUID, TextureImage):TextureImage</Item>
-              </Issue>
-             </Message>
-             <Message Id="newOwner" TypeName="ReviewUnusedParameters" Category="Microsoft.Usage" CheckId="CA1801" Created="2007-03-27 04:29:04Z" FixCategory="Breaking">
-              <Issue>
-               <Item>newOwner</Item>
-               <Item>AssetCache.CloneImage(LLUUID, TextureImage):TextureImage</Item>
-              </Issue>
-             </Message>
-             <Message TypeName="ValidateArgumentsOfPublicMethods" Category="Microsoft.Design" CheckId="CA1062" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>'source'</Item>
-               <Item>AssetCache.CloneImage(LLUUID, TextureImage):TextureImage</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="CreateNewInventorySet(libsecondlife.LLUUID):OpenSim.Framework.Assets.AssetBase[]">
-            <Messages>
-             <Message Id="0#" TypeName="ShortAcronymsShouldBeUppercase" Category="Microsoft.Naming" CheckId="CA1706" Created="2007-03-27 04:29:04Z">
-              <Issue Name="ParameterId">
-               <Item>ID</Item>
-               <Item>agentID</Item>
-               <Item>Id</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="GetAsset(libsecondlife.LLUUID):OpenSim.Framework.Assets.AssetBase">
-            <Messages>
-             <Message Id="0#" TypeName="ShortAcronymsShouldBeUppercase" Category="Microsoft.Naming" CheckId="CA1706" Created="2007-03-27 04:29:04Z">
-              <Issue Name="ParameterId">
-               <Item>ID</Item>
-               <Item>assetID</Item>
-               <Item>Id</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="RequestedAssets">
-            <Messages>
-             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>RequestedAssets</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="RequestedTextures">
-            <Messages>
-             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>RequestedTextures</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="RunAssetManager():System.Void">
-            <Messages>
-             <Message TypeName="DoNotCatchGeneralExceptionTypes" Category="Microsoft.Design" CheckId="CA1031" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>AssetCache.RunAssetManager():Void</Item>
-               <Item>System.Exception</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="TextureRequests">
-            <Messages>
-             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>TextureRequests</Item>
-              </Issue>
-             </Message>
-             <Message TypeName="DoNotExposeGenericLists" Category="Microsoft.Design" CheckId="CA1002" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>System.Collections.Generic.List`1&lt;OpenSim.Assets.AssetRequest&gt;</Item>
-               <Item>AssetCache.TextureRequests</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="Textures">
-            <Messages>
-             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>Textures</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-          </Members>
-         </Type>
-         <Type Name="AssetInfo">
-          <Messages>
-           <Message TypeName="ComVisibleTypeBaseTypesShouldBeComVisible" Category="Microsoft.Interoperability" CheckId="CA1405" Created="2007-03-27 04:29:04Z">
-            <Issue>
-             <Item>OpenSim.Assets.AssetInfo</Item>
-             <Item> OpenSim.Framework.Assets.AssetBase</Item>
-            </Issue>
-           </Message>
-          </Messages>
-          <Members>
-           <Member Name=".ctor(OpenSim.Framework.Assets.AssetBase)">
-            <Messages>
-             <Message Id="0#a" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
-              <Issue Name="Parameter">
-               <Item>AssetInfo.AssetInfo(AssetBase)</Item>
-               <Item>a</Item>
-               <Item>aBase</Item>
-              </Issue>
-             </Message>
-             <Message TypeName="ValidateArgumentsOfPublicMethods" Category="Microsoft.Design" CheckId="CA1062" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>'aBase'</Item>
-               <Item>AssetInfo.AssetInfo(AssetBase)</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-          </Members>
-         </Type>
-         <Type Name="AssetRequest">
-          <Members>
-           <Member Name=".ctor()">
-            <Messages>
-             <Message TypeName="DoNotInitializeUnnecessarily" Category="Microsoft.Performance" CheckId="CA1805" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>AssetRequest.AssetRequest()</Item>
-               <Item>DataPointer</Item>
-               <Item>System.Int64</Item>
-               <Item>0</Item>
-              </Issue>
-              <Issue>
-               <Item>AssetRequest.AssetRequest()</Item>
-               <Item>NumPackets</Item>
-               <Item>System.Int32</Item>
-               <Item>0</Item>
-              </Issue>
-              <Issue>
-               <Item>AssetRequest.AssetRequest()</Item>
-               <Item>PacketCounter</Item>
-               <Item>System.Int32</Item>
-               <Item>0</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="AssetInf">
-            <Messages>
-             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>AssetInf</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="DataPointer">
-            <Messages>
-             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>DataPointer</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="ImageInfo">
-            <Messages>
-             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>ImageInfo</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="IsTextureRequest">
-            <Messages>
-             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>IsTextureRequest</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="NumPackets">
-            <Messages>
-             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>NumPackets</Item>
-              </Issue>
-             </Message>
-             <Message Id="Num" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
-              <Issue Name="Member">
-               <Item>Num</Item>
-               <Item>AssetRequest.NumPackets</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="PacketCounter">
-            <Messages>
-             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>PacketCounter</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="RequestAssetID">
-            <Messages>
-             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>RequestAssetID</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="RequestUser">
-            <Messages>
-             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>RequestUser</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="TransferRequestID">
-            <Messages>
-             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>TransferRequestID</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-          </Members>
-         </Type>
-         <Type Name="InventoryCache">
-          <Members>
-           <Member Name="AddNewInventoryItem(OpenSim.SimClient,libsecondlife.LLUUID,OpenSim.Framework.Assets.AssetBase):libsecondlife.LLUUID">
-            <Messages>
-             <Message Id="1#" TypeName="ShortAcronymsShouldBeUppercase" Category="Microsoft.Naming" CheckId="CA1706" Created="2007-03-27 04:29:04Z">
-              <Issue Name="ParameterId">
-               <Item>ID</Item>
-               <Item>folderID</Item>
-               <Item>Id</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="ClientLeaving(libsecondlife.LLUUID):System.Void">
-            <Messages>
-             <Message Id="0#" TypeName="ShortAcronymsShouldBeUppercase" Category="Microsoft.Naming" CheckId="CA1706" Created="2007-03-27 04:29:04Z">
-              <Issue Name="ParameterId">
-               <Item>ID</Item>
-               <Item>clientID</Item>
-               <Item>Id</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="CreateNewInventoryFolder(OpenSim.SimClient,libsecondlife.LLUUID):System.Boolean">
-            <Messages>
-             <Message Id="1#" TypeName="ShortAcronymsShouldBeUppercase" Category="Microsoft.Naming" CheckId="CA1706" Created="2007-03-27 04:29:04Z">
-              <Issue Name="ParameterId">
-               <Item>ID</Item>
-               <Item>folderID</Item>
-               <Item>Id</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="CreateNewInventoryFolder(OpenSim.SimClient,libsecondlife.LLUUID,System.UInt16):System.Boolean">
-            <Messages>
-             <Message Id="1#" TypeName="ShortAcronymsShouldBeUppercase" Category="Microsoft.Naming" CheckId="CA1706" Created="2007-03-27 04:29:04Z">
-              <Issue Name="ParameterId">
-               <Item>ID</Item>
-               <Item>folderID</Item>
-               <Item>Id</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="FetchInventory(OpenSim.SimClient,libsecondlife.Packets.FetchInventoryPacket):System.Void">
-            <Messages>
-             <Message Id="1#" TypeName="IdentifiersShouldBeCasedCorrectly" Category="Microsoft.Naming" CheckId="CA1709" Created="2007-03-27 04:29:04Z">
-              <Issue Name="Parameter">
-               <Item>FetchItems</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="FetchInventoryDescendents(OpenSim.SimClient,libsecondlife.Packets.FetchInventoryDescendentsPacket):System.Void">
-            <Messages>
-             <Message Id="1#" TypeName="IdentifiersShouldBeCasedCorrectly" Category="Microsoft.Naming" CheckId="CA1709" Created="2007-03-27 04:29:04Z">
-              <Issue Name="Parameter">
-               <Item>FetchDescend</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="GetAgentsInventory(libsecondlife.LLUUID):OpenSim.Framework.Inventory.AgentInventory">
-            <Messages>
-             <Message Id="0#" TypeName="ShortAcronymsShouldBeUppercase" Category="Microsoft.Naming" CheckId="CA1706" Created="2007-03-27 04:29:04Z">
-              <Issue Name="ParameterId">
-               <Item>ID</Item>
-               <Item>agentID</Item>
-               <Item>Id</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="UpdateInventoryItem(OpenSim.SimClient,libsecondlife.LLUUID,OpenSim.Framework.Assets.AssetBase):System.Boolean">
-            <Messages>
-             <Message Id="1#" TypeName="ShortAcronymsShouldBeUppercase" Category="Microsoft.Naming" CheckId="CA1706" Created="2007-03-27 04:29:04Z">
-              <Issue Name="ParameterId">
-               <Item>ID</Item>
-               <Item>itemID</Item>
-               <Item>Id</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-          </Members>
-         </Type>
-         <Type Name="TextureImage">
-          <Messages>
-           <Message TypeName="ComVisibleTypeBaseTypesShouldBeComVisible" Category="Microsoft.Interoperability" CheckId="CA1405" Created="2007-03-27 04:29:04Z">
-            <Issue>
-             <Item>OpenSim.Assets.TextureImage</Item>
-             <Item> OpenSim.Framework.Assets.AssetBase</Item>
-            </Issue>
-           </Message>
-          </Messages>
-          <Members>
-           <Member Name=".ctor(OpenSim.Framework.Assets.AssetBase)">
-            <Messages>
-             <Message Id="0#a" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
-              <Issue Name="Parameter">
-               <Item>TextureImage.TextureImage(AssetBase)</Item>
-               <Item>a</Item>
-               <Item>aBase</Item>
-              </Issue>
-             </Message>
-             <Message TypeName="ValidateArgumentsOfPublicMethods" Category="Microsoft.Design" CheckId="CA1062" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>'aBase'</Item>
-               <Item>TextureImage.TextureImage(AssetBase)</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-          </Members>
-         </Type>
-        </Types>
-       </Namespace>
-       <Namespace Name="OpenSim.CAPS">
-        <Types>
-         <Type Name="SimCAPSHTTPServer">
-          <Messages>
-           <Message Id="Sim" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
-            <Issue Name="Type">
-             <Item>Sim</Item>
-             <Item>OpenSim.CAPS.SimCAPSHTTPServer</Item>
-            </Issue>
-           </Message>
-           <Message TypeName="LongAcronymsShouldBePascalCased" Category="Microsoft.Naming" CheckId="CA1705" Created="2007-03-27 04:29:04Z">
-            <Issue Name="Type">
-             <Item>SimCAPSHTTPServer</Item>
-            </Issue>
-           </Message>
-           <Message TypeName="TypesThatOwnDisposableFieldsShouldBeDisposable" Category="Microsoft.Design" CheckId="CA1001" Created="2007-03-27 04:29:04Z" FixCategory="Breaking">
-            <Issue>
-             <Item>OpenSim.CAPS.SimCAPSHTTPServer</Item>
-             <Item>System.Net.HttpListener</Item>
-            </Issue>
-           </Message>
-          </Messages>
-          <Members>
-           <Member Name="HandleRequest(System.Object):System.Void">
-            <Messages>
-             <Message Id="0#stateinfo" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
-              <Issue Name="Parameter">
-               <Item>SimCAPSHTTPServer.HandleRequest(Object):Void</Item>
-               <Item>stateinfo</Item>
-               <Item>stateinfo</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="HTTPD">
-            <Messages>
-             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>HTTPD</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="Listener">
-            <Messages>
-             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>Listener</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="LoadAdminPage():System.Void">
-            <Messages>
-             <Message TypeName="DoNotCatchGeneralExceptionTypes" Category="Microsoft.Design" CheckId="CA1031" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>SimCAPSHTTPServer.LoadAdminPage():Void</Item>
-               <Item>System.Exception</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="ParseLLSDXML(System.String):System.String">
-            <Messages>
-             <Message TypeName="MarkMembersAsStatic" Category="Microsoft.Performance" CheckId="CA1822" Created="2007-03-27 04:29:04Z" FixCategory="NonBreaking">
-              <Issue>
-               <Item>SimCAPSHTTPServer.ParseLLSDXML(String):String</Item>
-              </Issue>
-             </Message>
-             <Message Id="requestBody" TypeName="ReviewUnusedParameters" Category="Microsoft.Usage" CheckId="CA1801" Created="2007-03-27 04:29:04Z" FixCategory="NonBreaking">
-              <Issue>
-               <Item>requestBody</Item>
-               <Item>SimCAPSHTTPServer.ParseLLSDXML(String):String</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="ParseREST(System.String,System.String,System.String):System.String">
-            <Messages>
-             <Message TypeName="DoNotCatchGeneralExceptionTypes" Category="Microsoft.Design" CheckId="CA1031" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>SimCAPSHTTPServer.ParseREST(String, String, String):String</Item>
-               <Item>System.Exception</Item>
-              </Issue>
-             </Message>
-             <Message Id="System.String.Format(System.String,System.Object[])" TypeName="SpecifyIFormatProvider" Category="Microsoft.Globalization" CheckId="CA1305" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>SimCAPSHTTPServer.ParseREST(String, String, String):String</Item>
-               <Item>System.String.Format(System.String,System.Object[])</Item>
-               <Item>System.String.Format(System.IFormatProvider,System.String,System.Object[])</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="ParseXMLRPC(System.String):System.String">
-            <Messages>
-             <Message TypeName="DoNotCatchGeneralExceptionTypes" Category="Microsoft.Design" CheckId="CA1031" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>SimCAPSHTTPServer.ParseXMLRPC(String):String</Item>
-               <Item>System.Exception</Item>
-              </Issue>
-             </Message>
-             <Message TypeName="MarkMembersAsStatic" Category="Microsoft.Performance" CheckId="CA1822" Created="2007-03-27 04:29:04Z" FixCategory="NonBreaking">
-              <Issue>
-               <Item>SimCAPSHTTPServer.ParseXMLRPC(String):String</Item>
-              </Issue>
-             </Message>
-             <Message Id="System.Convert.ToUInt32(System.Object)" TypeName="SpecifyIFormatProvider" Category="Microsoft.Globalization" CheckId="CA1305" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>SimCAPSHTTPServer.ParseXMLRPC(String):String</Item>
-               <Item>System.Convert.ToUInt32(System.Object)</Item>
-               <Item>System.Convert.ToUInt32(System.Object,System.IFormatProvider)</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="StartHTTP():System.Void">
-            <Messages>
-             <Message TypeName="DoNotCatchGeneralExceptionTypes" Category="Microsoft.Design" CheckId="CA1031" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>SimCAPSHTTPServer.StartHTTP():Void</Item>
-               <Item>System.Exception</Item>
-              </Issue>
-             </Message>
-             <Message Id="Member" TypeName="LongAcronymsShouldBePascalCased" Category="Microsoft.Naming" CheckId="CA1705" Created="2007-03-27 04:29:04Z">
-              <Issue Name="Member">
-               <Item>SimCAPSHTTPServer.StartHTTP():Void</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-          </Members>
-         </Type>
-        </Types>
-       </Namespace>
-       <Namespace Name="OpenSim.types">
-        <Types>
-         <Type Name="Mesh">
-          <Members>
-           <Member Name="mesh">
-            <Messages>
-             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>mesh</Item>
-              </Issue>
-             </Message>
-             <Message TypeName="DoNotExposeGenericLists" Category="Microsoft.Design" CheckId="CA1002" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>System.Collections.Generic.List`1&lt;OpenSim.types.Triangle&gt;</Item>
-               <Item>Mesh.mesh</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="op_Addition(OpenSim.types.Mesh,OpenSim.types.Mesh):OpenSim.types.Mesh">
-            <Messages>
-             <Message Id="0#a" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
-              <Issue Name="ParameterOneLetter">
-               <Item>Mesh.op_Addition(Mesh, Mesh):Mesh</Item>
-               <Item>a</Item>
-              </Issue>
-             </Message>
-             <Message Id="1#b" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
-              <Issue Name="ParameterOneLetter">
-               <Item>Mesh.op_Addition(Mesh, Mesh):Mesh</Item>
-               <Item>b</Item>
-              </Issue>
-             </Message>
-             <Message TypeName="OperatorOverloadsHaveNamedAlternates" Category="Microsoft.Usage" CheckId="CA2225" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>Add</Item>
-               <Item>Mesh.op_Addition(Mesh, Mesh):Mesh</Item>
-              </Issue>
-             </Message>
-             <Message TypeName="OverloadOperatorEqualsOnOverloadingAddAndSubtract" Category="Microsoft.Design" CheckId="CA1013" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>Mesh</Item>
-               <Item>Mesh.op_Addition(Mesh, Mesh):Mesh</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-          </Members>
-         </Type>
-         <Type Name="Triangle">
-          <Members>
-           <Member Name=".ctor(Axiom.MathLib.Vector3,Axiom.MathLib.Vector3,Axiom.MathLib.Vector3)">
-            <Messages>
-             <Message Id="0#" TypeName="IdentifiersShouldBeCasedCorrectly" Category="Microsoft.Naming" CheckId="CA1709" Created="2007-03-27 04:29:04Z">
-              <Issue Name="Parameter">
-               <Item>A</Item>
-              </Issue>
-             </Message>
-             <Message Id="1#" TypeName="IdentifiersShouldBeCasedCorrectly" Category="Microsoft.Naming" CheckId="CA1709" Created="2007-03-27 04:29:04Z">
-              <Issue Name="Parameter">
-               <Item>B</Item>
-              </Issue>
-             </Message>
-             <Message Id="2#" TypeName="IdentifiersShouldBeCasedCorrectly" Category="Microsoft.Naming" CheckId="CA1709" Created="2007-03-27 04:29:04Z">
-              <Issue Name="Parameter">
-               <Item>C</Item>
-              </Issue>
-             </Message>
-             <Message Id="0#A" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
-              <Issue Name="ParameterOneLetter">
-               <Item>Triangle.Triangle(Vector3, Vector3, Vector3)</Item>
-               <Item>A</Item>
-              </Issue>
-             </Message>
-             <Message Id="1#B" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
-              <Issue Name="ParameterOneLetter">
-               <Item>Triangle.Triangle(Vector3, Vector3, Vector3)</Item>
-               <Item>B</Item>
-              </Issue>
-             </Message>
-             <Message Id="2#C" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
-              <Issue Name="ParameterOneLetter">
-               <Item>Triangle.Triangle(Vector3, Vector3, Vector3)</Item>
-               <Item>C</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-          </Members>
-         </Type>
-        </Types>
-       </Namespace>
-       <Namespace Name="OpenSim.UserServer">
-        <Types>
-         <Type Name="LocalUserProfileManager">
-          <Members>
-           <Member Name="CustomiseResponse(System.Collections.Hashtable&amp;,OpenSim.Framework.User.UserProfile):System.Void">
-            <Messages>
-             <Message Id="System.Int32.ToString" TypeName="SpecifyIFormatProvider" Category="Microsoft.Globalization" CheckId="CA1305" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>LocalUserProfileManager.CustomiseResponse(Hashtable&amp;, UserProfile):Void</Item>
-               <Item>System.Int32.ToString</Item>
-               <Item>System.Int32.ToString(System.IFormatProvider)</Item>
-              </Issue>
-              <Issue>
-               <Item>LocalUserProfileManager.CustomiseResponse(Hashtable&amp;, UserProfile):Void</Item>
-               <Item>System.Int32.ToString</Item>
-               <Item>System.Int32.ToString(System.IFormatProvider)</Item>
-              </Issue>
-             </Message>
-             <Message Id="System.Single.ToString" TypeName="SpecifyIFormatProvider" Category="Microsoft.Globalization" CheckId="CA1305" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>LocalUserProfileManager.CustomiseResponse(Hashtable&amp;, UserProfile):Void</Item>
-               <Item>System.Single.ToString</Item>
-               <Item>System.Single.ToString(System.IFormatProvider)</Item>
-              </Issue>
-              <Issue>
-               <Item>LocalUserProfileManager.CustomiseResponse(Hashtable&amp;, UserProfile):Void</Item>
-               <Item>System.Single.ToString</Item>
-               <Item>System.Single.ToString(System.IFormatProvider)</Item>
-              </Issue>
-              <Issue>
-               <Item>LocalUserProfileManager.CustomiseResponse(Hashtable&amp;, UserProfile):Void</Item>
-               <Item>System.Single.ToString</Item>
-               <Item>System.Single.ToString(System.IFormatProvider)</Item>
-              </Issue>
-              <Issue>
-               <Item>LocalUserProfileManager.CustomiseResponse(Hashtable&amp;, UserProfile):Void</Item>
-               <Item>System.Single.ToString</Item>
-               <Item>System.Single.ToString(System.IFormatProvider)</Item>
-              </Issue>
-              <Issue>
-               <Item>LocalUserProfileManager.CustomiseResponse(Hashtable&amp;, UserProfile):Void</Item>
-               <Item>System.Single.ToString</Item>
-               <Item>System.Single.ToString(System.IFormatProvider)</Item>
-              </Issue>
-              <Issue>
-               <Item>LocalUserProfileManager.CustomiseResponse(Hashtable&amp;, UserProfile):Void</Item>
-               <Item>System.Single.ToString</Item>
-               <Item>System.Single.ToString(System.IFormatProvider)</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-          </Members>
-         </Type>
-         <Type Name="LoginServer">
-          <Messages>
-           <Message TypeName="ComVisibleTypeBaseTypesShouldBeComVisible" Category="Microsoft.Interoperability" CheckId="CA1405" Created="2007-03-27 04:29:04Z">
-            <Issue>
-             <Item>OpenSim.UserServer.LoginServer</Item>
-             <Item> OpenSim.Framework.Grid.LoginService</Item>
-            </Issue>
-           </Message>
-           <Message TypeName="TypesThatOwnDisposableFieldsShouldBeDisposable" Category="Microsoft.Design" CheckId="CA1001" Created="2007-03-27 04:29:04Z" FixCategory="Breaking">
-            <Issue>
-             <Item>OpenSim.UserServer.LoginServer</Item>
-             <Item>System.Net.Sockets.Socket</Item>
-            </Issue>
-           </Message>
-           <Message Id="Login" TypeName="UsePreferredTerms" Category="Microsoft.Naming" CheckId="CA1726" Created="2007-03-27 04:29:04Z">
-            <Issue Name="Type">
-             <Item>Login</Item>
-             <Item>LoginServer</Item>
-             <Item>LogOn</Item>
-            </Issue>
-           </Message>
-          </Messages>
-          <Members>
-           <Member Name=".ctor(OpenSim.Framework.Interfaces.IGridServer)">
-            <Messages>
-             <Message TypeName="DoNotInitializeUnnecessarily" Category="Microsoft.Performance" CheckId="CA1805" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>LoginServer.LoginServer(IGridServer)</Item>
-               <Item>_needPasswd</Item>
-               <Item>System.Boolean</Item>
-               <Item>false</Item>
-              </Issue>
-              <Issue>
-               <Item>LoginServer.LoginServer(IGridServer)</Item>
-               <Item>userAccounts</Item>
-               <Item>System.Boolean</Item>
-               <Item>false</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="Authenticate(System.String,System.String,System.String):System.Boolean">
-            <Messages>
-             <Message Id="2#passwd" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
-              <Issue Name="Parameter">
-               <Item>LoginServer.Authenticate(String, String, String):Boolean</Item>
-               <Item>passwd</Item>
-               <Item>passwd</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="clientAddress">
-            <Messages>
-             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>clientAddress</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="CustomiseLoginResponse(System.Collections.Hashtable,System.String,System.String):System.Void">
-            <Messages>
-             <Message Id="Customise" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
-              <Issue Name="Member">
-               <Item>Customise</Item>
-               <Item>LoginServer.CustomiseLoginResponse(Hashtable, String, String):Void</Item>
-              </Issue>
-             </Message>
-             <Message Id="Login" TypeName="UsePreferredTerms" Category="Microsoft.Naming" CheckId="CA1726" Created="2007-03-27 04:29:04Z">
-              <Issue Name="Member">
-               <Item>Login</Item>
-               <Item>CustomiseLoginResponse</Item>
-               <Item>LogOn</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="EncodePassword(System.String):System.String">
-            <Messages>
-             <Message Id="System.String.ToLower" TypeName="SpecifyCultureInfo" Category="Microsoft.Globalization" CheckId="CA1304" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>LoginServer.EncodePassword(String):String</Item>
-               <Item>System.String.ToLower</Item>
-               <Item>System.String.ToLower(System.Globalization.CultureInfo)</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="GetAgentId(System.String,System.String):libsecondlife.LLUUID">
-            <Messages>
-             <Message Id="System.Int32.ToString(System.String)" TypeName="SpecifyIFormatProvider" Category="Microsoft.Globalization" CheckId="CA1305" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>LoginServer.GetAgentId(String, String):LLUUID</Item>
-               <Item>System.Int32.ToString(System.String)</Item>
-               <Item>System.Int32.ToString(System.String,System.IFormatProvider)</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="InitializeLogin():System.Void">
-            <Messages>
-             <Message Id="OpenSim.Framework.User.UserProfileManager.SetKeys(System.String,System.String,System.String,System.String)" TypeName="DoNotPassLiteralsAsLocalizedParameters" Category="Microsoft.Globalization" CheckId="CA1303" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>LoginServer.InitializeLogin():Void</Item>
-               <Item>4</Item>
-               <Item>UserProfileManager.SetKeys(String, String, String, String):Void</Item>
-               <Item>Welcome to OpenSim</Item>
-              </Issue>
-             </Message>
-             <Message Id="Sim" TypeName="LiteralsShouldBeSpelledCorrectly" Category="Microsoft.Usage" CheckId="CA2204" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>Sim</Item>
-               <Item>OpenSim</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="LoginRequest(System.IO.StreamReader,System.IO.StreamWriter):System.Void">
-            <Messages>
-             <Message TypeName="DoNotRaiseReservedExceptionTypes" Category="Microsoft.Usage" CheckId="CA2201" Created="2007-03-27 04:29:04Z">
-              <Issue Name="TooGeneric">
-               <Item>LoginServer.LoginRequest(StreamReader, StreamWriter):Void</Item>
-               <Item>System.Exception</Item>
-              </Issue>
-             </Message>
-             <Message Id="System.Convert.ToInt32(System.String)" TypeName="SpecifyIFormatProvider" Category="Microsoft.Globalization" CheckId="CA1305" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>LoginServer.LoginRequest(StreamReader, StreamWriter):Void</Item>
-               <Item>System.Convert.ToInt32(System.String)</Item>
-               <Item>System.Convert.ToInt32(System.String,System.IFormatProvider)</Item>
-              </Issue>
-             </Message>
-             <Message TypeName="TestForEmptyStringsUsingStringLength" Category="Microsoft.Performance" CheckId="CA1820" Created="2007-03-27 04:29:04Z">
-              <Issue Name="IsNullOrEmpty">
-               <Item>op_Inequality</Item>
-               <Item>""</Item>
-               <Item>LoginServer.LoginRequest(StreamReader, StreamWriter):Void</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="ProcessXmlRequest(Nwc.XmlRpc.XmlRpcRequest,System.IO.StreamWriter):System.Boolean">
-            <Messages>
-             <Message TypeName="ConsiderPassingBaseTypesAsParameters" Category="Microsoft.Design" CheckId="CA1011" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>writer</Item>
-               <Item>LoginServer.ProcessXmlRequest(XmlRpcRequest, StreamWriter):Boolean</Item>
-               <Item>System.IO.StreamWriter</Item>
-               <Item>System.IO.TextWriter</Item>
-              </Issue>
-             </Message>
-             <Message Id="System.Int32.ToString" TypeName="SpecifyIFormatProvider" Category="Microsoft.Globalization" CheckId="CA1305" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>LoginServer.ProcessXmlRequest(XmlRpcRequest, StreamWriter):Boolean</Item>
-               <Item>System.Int32.ToString</Item>
-               <Item>System.Int32.ToString(System.IFormatProvider)</Item>
-              </Issue>
-             </Message>
-             <Message Id="System.Int32.ToString(System.String)" TypeName="SpecifyIFormatProvider" Category="Microsoft.Globalization" CheckId="CA1305" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>LoginServer.ProcessXmlRequest(XmlRpcRequest, StreamWriter):Boolean</Item>
-               <Item>System.Int32.ToString(System.String)</Item>
-               <Item>System.Int32.ToString(System.String,System.IFormatProvider)</Item>
-              </Issue>
-             </Message>
-             <Message TypeName="ValidateArgumentsOfPublicMethods" Category="Microsoft.Design" CheckId="CA1062" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>'request'</Item>
-               <Item>LoginServer.ProcessXmlRequest(XmlRpcRequest, StreamWriter):Boolean</Item>
-              </Issue>
-              <Issue>
-               <Item>'writer'</Item>
-               <Item>LoginServer.ProcessXmlRequest(XmlRpcRequest, StreamWriter):Boolean</Item>
-              </Issue>
-              <Issue>
-               <Item>'writer'</Item>
-               <Item>LoginServer.ProcessXmlRequest(XmlRpcRequest, StreamWriter):Boolean</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="remoteAddress">
-            <Messages>
-             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>remoteAddress</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="RunLogin():System.Void">
-            <Messages>
-             <Message TypeName="DoNotCatchGeneralExceptionTypes" Category="Microsoft.Design" CheckId="CA1031" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>LoginServer.RunLogin():Void</Item>
-               <Item>System.Exception</Item>
-              </Issue>
-              <Issue>
-               <Item>LoginServer.RunLogin():Void</Item>
-               <Item>System.Exception</Item>
-              </Issue>
-             </Message>
-             <Message Id="clientEndPoint" TypeName="RemoveUnusedLocals" Category="Microsoft.Performance" CheckId="CA1804" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>LoginServer.RunLogin():Void</Item>
-               <Item>clientEndPoint</Item>
-               <Item>System.Net.IPEndPoint</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-          </Members>
-         </Type>
-        </Types>
-       </Namespace>
-       <Namespace Name="OpenSim.world">
-        <Types>
-         <Type Name="Avatar">
-          <Members>
-           <Member Name=".cctor()">
-            <Messages>
-             <Message TypeName="DoNotInitializeUnnecessarily" Category="Microsoft.Performance" CheckId="CA1805" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>Avatar.Avatar()</Item>
-               <Item>PhysicsEngineFlying</Item>
-               <Item>System.Boolean</Item>
-               <Item>false</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name=".ctor(OpenSim.SimClient)">
-            <Messages>
-             <Message TypeName="DoNotInitializeUnnecessarily" Category="Microsoft.Performance" CheckId="CA1805" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>Avatar.Avatar(SimClient)</Item>
-               <Item>_updateCount</Item>
-               <Item>System.Int16</Item>
-               <Item>0</Item>
-              </Issue>
-              <Issue>
-               <Item>Avatar.Avatar(SimClient)</Item>
-               <Item>avatarAppearanceTexture</Item>
-               <Item>libsecondlife.LLObject+TextureEntry</Item>
-               <Item>null</Item>
-              </Issue>
-              <Issue>
-               <Item>Avatar.Avatar(SimClient)</Item>
-               <Item>movementflag</Item>
-               <Item>System.Byte</Item>
-               <Item>0</Item>
-              </Issue>
-              <Issue>
-               <Item>Avatar.Avatar(SimClient)</Item>
-               <Item>updateflag</Item>
-               <Item>System.Boolean</Item>
-               <Item>false</Item>
-              </Issue>
-             </Message>
-             <Message Id="0#" TypeName="IdentifiersShouldBeCasedCorrectly" Category="Microsoft.Naming" CheckId="CA1709" Created="2007-03-27 04:29:04Z">
-              <Issue Name="Parameter">
-               <Item>TheClient</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="anim_seq">
-            <Messages>
-             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>anim_seq</Item>
-              </Issue>
-             </Message>
-             <Message Id="anim" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
-              <Issue Name="Member">
-               <Item>anim</Item>
-               <Item>Avatar.anim_seq</Item>
-              </Issue>
-             </Message>
-             <Message Id="Member" TypeName="IdentifiersShouldNotContainUnderscores" Category="Microsoft.Naming" CheckId="CA1707" Created="2007-03-27 04:29:04Z">
-              <Issue Name="Member">
-               <Item>anim_seq</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="Animations">
-            <Messages>
-             <Message TypeName="NonConstantFieldsShouldNotBeVisible" Category="Microsoft.Usage" CheckId="CA2211" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>Animations</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="CompleteMovement(OpenSim.world.World):System.Void">
-            <Messages>
-             <Message Id="0#" TypeName="IdentifiersShouldBeCasedCorrectly" Category="Microsoft.Naming" CheckId="CA1709" Created="2007-03-27 04:29:04Z">
-              <Issue Name="Parameter">
-               <Item>RegionInfo</Item>
-              </Issue>
-             </Message>
-             <Message Id="RegionInfo" TypeName="ReviewUnusedParameters" Category="Microsoft.Usage" CheckId="CA1801" Created="2007-03-27 04:29:04Z" FixCategory="Breaking">
-              <Issue>
-               <Item>RegionInfo</Item>
-               <Item>Avatar.CompleteMovement(World):Void</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="ControllingClient">
-            <Messages>
-             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>ControllingClient</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="current_anim">
-            <Messages>
-             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>current_anim</Item>
-              </Issue>
-             </Message>
-             <Message Id="anim" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
-              <Issue Name="Member">
-               <Item>anim</Item>
-               <Item>Avatar.current_anim</Item>
-              </Issue>
-             </Message>
-             <Message Id="Member" TypeName="IdentifiersShouldNotContainUnderscores" Category="Microsoft.Naming" CheckId="CA1707" Created="2007-03-27 04:29:04Z">
-              <Issue Name="Member">
-               <Item>current_anim</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="firstname">
-            <Messages>
-             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>firstname</Item>
-              </Issue>
-             </Message>
-             <Message Id="firstname" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
-              <Issue Name="Member">
-               <Item>firstname</Item>
-               <Item>Avatar.firstname</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="lastname">
-            <Messages>
-             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>lastname</Item>
-              </Issue>
-             </Message>
-             <Message Id="lastname" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
-              <Issue Name="Member">
-               <Item>lastname</Item>
-               <Item>Avatar.lastname</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="LoadAnims():System.Void">
-            <Messages>
-             <Message Id="Anims" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
-              <Issue Name="Member">
-               <Item>Anims</Item>
-               <Item>Avatar.LoadAnims():Void</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="PhysActor">
-            <Messages>
-             <Message TypeName="PropertiesShouldNotBeWriteOnly" Category="Microsoft.Design" CheckId="CA1044" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>PhysActor</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="PhysicsEngineFlying">
-            <Messages>
-             <Message TypeName="NonConstantFieldsShouldNotBeVisible" Category="Microsoft.Usage" CheckId="CA2211" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>PhysicsEngineFlying</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="SendAnimPack():System.Void">
-            <Messages>
-             <Message Id="Anim" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
-              <Issue Name="Member">
-               <Item>Anim</Item>
-               <Item>Avatar.SendAnimPack():Void</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="SendAppearanceToOtherAgent(OpenSim.SimClient):System.Void">
-            <Messages>
-             <Message TypeName="ValidateArgumentsOfPublicMethods" Category="Microsoft.Design" CheckId="CA1062" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>'userInfo'</Item>
-               <Item>Avatar.SendAppearanceToOtherAgent(SimClient):Void</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="SendRegionHandshake(OpenSim.world.World):System.Void">
-            <Messages>
-             <Message Id="0#" TypeName="IdentifiersShouldBeCasedCorrectly" Category="Microsoft.Naming" CheckId="CA1709" Created="2007-03-27 04:29:04Z">
-              <Issue Name="Parameter">
-               <Item>RegionInfo</Item>
-              </Issue>
-             </Message>
-             <Message Id="RegionInfo" TypeName="ReviewUnusedParameters" Category="Microsoft.Usage" CheckId="CA1801" Created="2007-03-27 04:29:04Z" FixCategory="Breaking">
-              <Issue>
-               <Item>RegionInfo</Item>
-               <Item>Avatar.SendRegionHandshake(World):Void</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-          </Members>
-         </Type>
-         <Type Name="AvatarAnimations">
-          <Members>
-           <Member Name="AnimsLLUUID">
-            <Messages>
-             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>AnimsLLUUID</Item>
-              </Issue>
-             </Message>
-             <Message Id="Anims" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
-              <Issue Name="Member">
-               <Item>Anims</Item>
-               <Item>AvatarAnimations.AnimsLLUUID</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="AnimsNames">
-            <Messages>
-             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>AnimsNames</Item>
-              </Issue>
-             </Message>
-             <Message Id="Anims" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
-              <Issue Name="Member">
-               <Item>Anims</Item>
-               <Item>AvatarAnimations.AnimsNames</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="LoadAnims():System.Void">
-            <Messages>
-             <Message Id="Anims" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
-              <Issue Name="Member">
-               <Item>Anims</Item>
-               <Item>AvatarAnimations.LoadAnims():Void</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-          </Members>
-         </Type>
-         <Type Name="Entity">
-          <Members>
-           <Member Name=".ctor()">
-            <Messages>
-             <Message TypeName="DoNotInitializeUnnecessarily" Category="Microsoft.Performance" CheckId="CA1805" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>Entity.Entity()</Item>
-               <Item>localid</Item>
-               <Item>System.UInt32</Item>
-               <Item>0</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="addForces():System.Void">
-            <Messages>
-             <Message Id="Member" TypeName="IdentifiersShouldBeCasedCorrectly" Category="Microsoft.Naming" CheckId="CA1709" Created="2007-03-27 04:29:04Z">
-              <Issue Name="Member">
-               <Item>addForces</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="BackUp():System.Void">
-            <Messages>
-             <Message Id="BackUp" TypeName="CompoundWordsShouldBeCasedCorrectly" Category="Microsoft.Naming" CheckId="CA1702" Created="2007-03-27 04:29:04Z">
-              <Issue Name="ShouldBeDiscreteTerm">
-               <Item>BackUp</Item>
-               <Item>method</Item>
-               <Item>BackUp</Item>
-               <Item>Backup</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="children">
-            <Messages>
-             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>children</Item>
-              </Issue>
-             </Message>
-             <Message TypeName="DoNotExposeGenericLists" Category="Microsoft.Design" CheckId="CA1002" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>System.Collections.Generic.List`1&lt;OpenSim.world.Entity&gt;</Item>
-               <Item>Entity.children</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="getMesh():OpenSim.types.Mesh">
-            <Messages>
-             <Message Id="Member" TypeName="IdentifiersShouldBeCasedCorrectly" Category="Microsoft.Naming" CheckId="CA1709" Created="2007-03-27 04:29:04Z">
-              <Issue Name="Member">
-               <Item>getMesh</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="getName():System.String">
-            <Messages>
-             <Message Id="Member" TypeName="IdentifiersShouldBeCasedCorrectly" Category="Microsoft.Naming" CheckId="CA1709" Created="2007-03-27 04:29:04Z">
-              <Issue Name="Member">
-               <Item>getName</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="localid">
-            <Messages>
-             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>localid</Item>
-              </Issue>
-             </Message>
-             <Message Id="localid" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
-              <Issue Name="Member">
-               <Item>localid</Item>
-               <Item>Entity.localid</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="name">
-            <Messages>
-             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>name</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="position">
-            <Messages>
-             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>position</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="rotation">
-            <Messages>
-             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>rotation</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="update():System.Void">
-            <Messages>
-             <Message Id="Member" TypeName="IdentifiersShouldBeCasedCorrectly" Category="Microsoft.Naming" CheckId="CA1709" Created="2007-03-27 04:29:04Z">
-              <Issue Name="Member">
-               <Item>update</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="uuid">
-            <Messages>
-             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>uuid</Item>
-              </Issue>
-             </Message>
-             <Message Id="uuid" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
-              <Issue Name="Member">
-               <Item>uuid</Item>
-               <Item>Entity.uuid</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="velocity">
-            <Messages>
-             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>velocity</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-          </Members>
-         </Type>
-         <Type Name="NewForce">
-          <Members>
-           <Member Name="X">
-            <Messages>
-             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>X</Item>
-              </Issue>
-             </Message>
-             <Message Id="X" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
-              <Issue Name="MemberOneLetter">
-               <Item>X</Item>
-               <Item>NewForce.X</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="Y">
-            <Messages>
-             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>Y</Item>
-              </Issue>
-             </Message>
-             <Message Id="Y" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
-              <Issue Name="MemberOneLetter">
-               <Item>Y</Item>
-               <Item>NewForce.Y</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="Z">
-            <Messages>
-             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>Z</Item>
-              </Issue>
-             </Message>
-             <Message Id="Z" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
-              <Issue Name="MemberOneLetter">
-               <Item>Z</Item>
-               <Item>NewForce.Z</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-          </Members>
-         </Type>
-         <Type Name="Primitive">
-          <Messages>
-           <Message TypeName="IdentifiersShouldDifferByMoreThanCase" Category="Microsoft.Naming" CheckId="CA1708" Created="2007-03-27 04:29:04Z">
-            <Issue Name="Member">
-             <Item>'UpdateFlag'</Item>
-             <Item>updateFlag</Item>
-            </Issue>
-           </Message>
-          </Messages>
-          <Members>
-           <Member Name=".ctor()">
-            <Messages>
-             <Message TypeName="DoNotInitializeUnnecessarily" Category="Microsoft.Performance" CheckId="CA1805" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>Primitive.Primitive()</Item>
-               <Item>dirtyFlag</Item>
-               <Item>System.Boolean</Item>
-               <Item>false</Item>
-              </Issue>
-              <Issue>
-               <Item>Primitive.Primitive()</Item>
-               <Item>mesh_cutbegin</Item>
-               <Item>System.Single</Item>
-               <Item>0.0</Item>
-              </Issue>
-              <Issue>
-               <Item>Primitive.Primitive()</Item>
-               <Item>newPrimFlag</Item>
-               <Item>System.Boolean</Item>
-               <Item>false</Item>
-              </Issue>
-              <Issue>
-               <Item>Primitive.Primitive()</Item>
-               <Item>physicsEnabled</Item>
-               <Item>System.Boolean</Item>
-               <Item>false</Item>
-              </Issue>
-              <Issue>
-               <Item>Primitive.Primitive()</Item>
-               <Item>physicstest</Item>
-               <Item>System.Boolean</Item>
-               <Item>false</Item>
-              </Issue>
-              <Issue>
-               <Item>Primitive.Primitive()</Item>
-               <Item>updateFlag</Item>
-               <Item>System.Boolean</Item>
-               <Item>false</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="CreateFromPacket(libsecondlife.Packets.ObjectAddPacket,libsecondlife.LLUUID,System.UInt32):System.Void">
-            <Messages>
-             <Message Id="localID-702000" TypeName="OperationsShouldNotOverflow" Category="Microsoft.Usage" CheckId="CA2233" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>localID-702000</Item>
-               <Item>Primitive.CreateFromPacket(ObjectAddPacket, LLUUID, UInt32):Void</Item>
-              </Issue>
-             </Message>
-             <Message Id="1#" TypeName="ShortAcronymsShouldBeUppercase" Category="Microsoft.Naming" CheckId="CA1706" Created="2007-03-27 04:29:04Z">
-              <Issue Name="ParameterId">
-               <Item>ID</Item>
-               <Item>agentID</Item>
-               <Item>Id</Item>
-              </Issue>
-             </Message>
-             <Message Id="2#" TypeName="ShortAcronymsShouldBeUppercase" Category="Microsoft.Naming" CheckId="CA1706" Created="2007-03-27 04:29:04Z">
-              <Issue Name="ParameterId">
-               <Item>ID</Item>
-               <Item>localID</Item>
-               <Item>Id</Item>
-              </Issue>
-             </Message>
-             <Message Id="System.UInt32.ToString(System.String)" TypeName="SpecifyIFormatProvider" Category="Microsoft.Globalization" CheckId="CA1305" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>Primitive.CreateFromPacket(ObjectAddPacket, LLUUID, UInt32):Void</Item>
-               <Item>System.UInt32.ToString(System.String)</Item>
-               <Item>System.UInt32.ToString(System.String,System.IFormatProvider)</Item>
-              </Issue>
-             </Message>
-             <Message TypeName="ValidateArgumentsOfPublicMethods" Category="Microsoft.Design" CheckId="CA1062" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>'addPacket'</Item>
-               <Item>Primitive.CreateFromPacket(ObjectAddPacket, LLUUID, UInt32):Void</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="CreateFromStorage(OpenSim.Framework.Assets.PrimData):System.Void">
-            <Messages>
-             <Message TypeName="ValidateArgumentsOfPublicMethods" Category="Microsoft.Design" CheckId="CA1062" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>'store'</Item>
-               <Item>Primitive.CreateFromStorage(PrimData):Void</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="dirtyFlag">
-            <Messages>
-             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>dirtyFlag</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="mesh_cutbegin">
-            <Messages>
-             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>mesh_cutbegin</Item>
-              </Issue>
-             </Message>
-             <Message Id="cutbegin" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
-              <Issue Name="Member">
-               <Item>cutbegin</Item>
-               <Item>Primitive.mesh_cutbegin</Item>
-              </Issue>
-             </Message>
-             <Message Id="Member" TypeName="IdentifiersShouldNotContainUnderscores" Category="Microsoft.Naming" CheckId="CA1707" Created="2007-03-27 04:29:04Z">
-              <Issue Name="Member">
-               <Item>mesh_cutbegin</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="mesh_cutend">
-            <Messages>
-             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>mesh_cutend</Item>
-              </Issue>
-             </Message>
-             <Message Id="cutend" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
-              <Issue Name="Member">
-               <Item>cutend</Item>
-               <Item>Primitive.mesh_cutend</Item>
-              </Issue>
-             </Message>
-             <Message Id="Member" TypeName="IdentifiersShouldNotContainUnderscores" Category="Microsoft.Naming" CheckId="CA1707" Created="2007-03-27 04:29:04Z">
-              <Issue Name="Member">
-               <Item>mesh_cutend</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="newPrimFlag">
-            <Messages>
-             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>newPrimFlag</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="PhysActor">
-            <Messages>
-             <Message TypeName="PropertiesShouldNotBeWriteOnly" Category="Microsoft.Design" CheckId="CA1044" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>PhysActor</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="primData">
-            <Messages>
-             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>primData</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="UpdateClient(OpenSim.SimClient):System.Void">
-            <Messages>
-             <Message Id="0#" TypeName="IdentifiersShouldBeCasedCorrectly" Category="Microsoft.Naming" CheckId="CA1709" Created="2007-03-27 04:29:04Z">
-              <Issue Name="Parameter">
-               <Item>RemoteClient</Item>
-              </Issue>
-             </Message>
-             <Message TypeName="ValidateArgumentsOfPublicMethods" Category="Microsoft.Design" CheckId="CA1062" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>'RemoteClient'</Item>
-               <Item>Primitive.UpdateClient(SimClient):Void</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="updateFlag">
-            <Messages>
-             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>updateFlag</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="UpdateObjectFlags(libsecondlife.Packets.ObjectFlagUpdatePacket):System.Void">
-            <Messages>
-             <Message TypeName="ValidateArgumentsOfPublicMethods" Category="Microsoft.Design" CheckId="CA1062" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>'pack'</Item>
-               <Item>Primitive.UpdateObjectFlags(ObjectFlagUpdatePacket):Void</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="UpdateShape(libsecondlife.Packets.ObjectShapePacket+ObjectDataBlock):System.Void">
-            <Messages>
-             <Message TypeName="ValidateArgumentsOfPublicMethods" Category="Microsoft.Design" CheckId="CA1062" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>'addPacket'</Item>
-               <Item>Primitive.UpdateShape(ObjectDataBlock):Void</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-          </Members>
-         </Type>
-         <Type Name="ScriptEngine">
-          <Members>
-           <Member Name=".ctor(OpenSim.world.World)">
-            <Messages>
-             <Message Id="0#env" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
-              <Issue Name="Parameter">
-               <Item>ScriptEngine.ScriptEngine(World)</Item>
-               <Item>env</Item>
-               <Item>env</Item>
-              </Issue>
-             </Message>
-             <Message Id="env" TypeName="ReviewUnusedParameters" Category="Microsoft.Usage" CheckId="CA1801" Created="2007-03-27 04:29:04Z" FixCategory="Breaking">
-              <Issue>
-               <Item>env</Item>
-               <Item>ScriptEngine.ScriptEngine(World)</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="LoadScript():System.Void">
-            <Messages>
-             <Message TypeName="MarkMembersAsStatic" Category="Microsoft.Performance" CheckId="CA1822" Created="2007-03-27 04:29:04Z" FixCategory="Breaking">
-              <Issue>
-               <Item>ScriptEngine.LoadScript():Void</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-          </Members>
-         </Type>
-         <Type Name="SurfacePatch">
-          <Members>
-           <Member Name="HeightMap">
-            <Messages>
-             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>HeightMap</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-          </Members>
-         </Type>
-         <Type Name="World">
-          <Messages>
-           <Message TypeName="TypeNamesShouldNotMatchNamespaces" Category="Microsoft.Naming" CheckId="CA1724" Created="2007-03-27 04:29:04Z">
-            <Issue>
-             <Item>World</Item>
-             <Item>OpenSim.world</Item>
-            </Issue>
-           </Message>
-          </Messages>
-          <Members>
-           <Member Name=".ctor()">
-            <Messages>
-             <Message TypeName="DoNotInitializeUnnecessarily" Category="Microsoft.Performance" CheckId="CA1805" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>World.World()</Item>
-               <Item>_localNumber</Item>
-               <Item>System.UInt32</Item>
-               <Item>0</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="_localNumber">
-            <Messages>
-             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>_localNumber</Item>
-              </Issue>
-             </Message>
-             <Message Id="Member" TypeName="IdentifiersShouldNotContainUnderscores" Category="Microsoft.Naming" CheckId="CA1707" Created="2007-03-27 04:29:04Z">
-              <Issue Name="Member">
-               <Item>_localNumber</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="AddNewPrim(libsecondlife.Packets.ObjectAddPacket,OpenSim.SimClient):System.Void">
-            <Messages>
-             <Message Id="1#" TypeName="IdentifiersShouldBeCasedCorrectly" Category="Microsoft.Naming" CheckId="CA1709" Created="2007-03-27 04:29:04Z">
-              <Issue Name="Parameter">
-               <Item>AgentClient</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="AddViewerAgent(OpenSim.SimClient):System.Void">
-            <Messages>
-             <Message Id="0#" TypeName="IdentifiersShouldBeCasedCorrectly" Category="Microsoft.Naming" CheckId="CA1709" Created="2007-03-27 04:29:04Z">
-              <Issue Name="Parameter">
-               <Item>AgentClient</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="DeRezObject(libsecondlife.Packets.DeRezObjectPacket,OpenSim.SimClient):System.Void">
-            <Messages>
-             <Message Id="0#" TypeName="IdentifiersShouldBeCasedCorrectly" Category="Microsoft.Naming" CheckId="CA1709" Created="2007-03-27 04:29:04Z">
-              <Issue Name="Parameter">
-               <Item>DeRezPacket</Item>
-              </Issue>
-             </Message>
-             <Message Id="1#" TypeName="IdentifiersShouldBeCasedCorrectly" Category="Microsoft.Naming" CheckId="CA1709" Created="2007-03-27 04:29:04Z">
-              <Issue Name="Parameter">
-               <Item>AgentClient</Item>
-              </Issue>
-             </Message>
-             <Message Id="0#Rez" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
-              <Issue Name="Parameter">
-               <Item>World.DeRezObject(DeRezObjectPacket, SimClient):Void</Item>
-               <Item>Rez</Item>
-               <Item>DeRezPacket</Item>
-              </Issue>
-             </Message>
-             <Message Id="Rez" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
-              <Issue Name="Member">
-               <Item>Rez</Item>
-               <Item>World.DeRezObject(DeRezObjectPacket, SimClient):Void</Item>
-              </Issue>
-             </Message>
-             <Message Id="AgentClient" TypeName="ReviewUnusedParameters" Category="Microsoft.Usage" CheckId="CA1801" Created="2007-03-27 04:29:04Z" FixCategory="Breaking">
-              <Issue>
-               <Item>AgentClient</Item>
-               <Item>World.DeRezObject(DeRezObjectPacket, SimClient):Void</Item>
-              </Issue>
-             </Message>
-             <Message Id="Member" TypeName="ShortAcronymsShouldBeUppercase" Category="Microsoft.Naming" CheckId="CA1706" Created="2007-03-27 04:29:04Z">
-              <Issue Name="Member">
-               <Item>De</Item>
-               <Item>World.DeRezObject(DeRezObjectPacket, SimClient):Void</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="Entities">
-            <Messages>
-             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>Entities</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="GetInitialPrims(OpenSim.SimClient):System.Void">
-            <Messages>
-             <Message Id="0#" TypeName="IdentifiersShouldBeCasedCorrectly" Category="Microsoft.Naming" CheckId="CA1709" Created="2007-03-27 04:29:04Z">
-              <Issue Name="Parameter">
-               <Item>RemoteClient</Item>
-              </Issue>
-             </Message>
-             <Message Id="Prims" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
-              <Issue Name="Member">
-               <Item>Prims</Item>
-               <Item>World.GetInitialPrims(SimClient):Void</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="LandMap">
-            <Messages>
-             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>LandMap</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="LoadPrimsFromStorage():System.Void">
-            <Messages>
-             <Message Id="Prims" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
-              <Issue Name="Member">
-               <Item>Prims</Item>
-               <Item>World.LoadPrimsFromStorage():Void</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="LoadStorageDLL(System.String):System.Boolean">
-            <Messages>
-             <Message Id="Member" TypeName="LongAcronymsShouldBePascalCased" Category="Microsoft.Naming" CheckId="CA1705" Created="2007-03-27 04:29:04Z">
-              <Issue Name="Member">
-               <Item>World.LoadStorageDLL(String):Boolean</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="localStorage">
-            <Messages>
-             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>localStorage</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="Rand">
-            <Messages>
-             <Message TypeName="AvoidUnusedPrivateFields" Category="Microsoft.Performance" CheckId="CA1823" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>World.Rand</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="Scripts">
-            <Messages>
-             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>Scripts</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="SendLayerData(OpenSim.SimClient):System.Void">
-            <Messages>
-             <Message Id="0#" TypeName="IdentifiersShouldBeCasedCorrectly" Category="Microsoft.Naming" CheckId="CA1709" Created="2007-03-27 04:29:04Z">
-              <Issue Name="Parameter">
-               <Item>RemoteClient</Item>
-              </Issue>
-             </Message>
-             <Message TypeName="ValidateArgumentsOfPublicMethods" Category="Microsoft.Design" CheckId="CA1062" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>'RemoteClient'</Item>
-               <Item>World.SendLayerData(SimClient):Void</Item>
-              </Issue>
-              <Issue>
-               <Item>'RemoteClient'</Item>
-               <Item>World.SendLayerData(SimClient):Void</Item>
-              </Issue>
-              <Issue>
-               <Item>'RemoteClient'</Item>
-               <Item>World.SendLayerData(SimClient):Void</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-          </Members>
-         </Type>
-        </Types>
-       </Namespace>
-       <Namespace Name="OpenSim.world.scripting">
-        <Types>
-         <Type Name="IScriptHost">
-          <Members>
-           <Member Name="Register(OpenSim.world.scripting.IScript):System.Boolean">
-            <Messages>
-             <Message Id="0#iscript" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
-              <Issue Name="Parameter">
-               <Item>IScriptHost.Register(IScript):Boolean</Item>
-               <Item>iscript</Item>
-               <Item>iscript</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-          </Members>
-         </Type>
-        </Types>
-       </Namespace>
-      </Namespaces>
-     </Module>
-    </Modules>
-   </Target>
-   <Target Name="$(ProjectDir)/bin/OpenSim.Storage.LocalStorageDb4o.dll">
-    <Modules>
-     <Module Name="opensim.storage.localstoragedb4o.dll">
-      <Messages>
-       <Message TypeName="AssembliesShouldDeclareMinimumSecurity" Category="Microsoft.Usage" CheckId="CA2209" Created="2007-03-27 04:29:04Z">
-        <Issue>
-         <Item>OpenSim.Storage.LocalStorageDb4o</Item>
-        </Issue>
-       </Message>
-       <Message TypeName="AssembliesShouldHaveValidStrongNames" Category="Microsoft.Design" CheckId="CA2210" Created="2007-03-27 04:29:04Z">
-        <Issue Name="NoStrongName">
-         <Item>OpenSim.Storage.LocalStorageDb4o</Item>
-        </Issue>
-       </Message>
-       <Message TypeName="MarkAssembliesWithClsCompliant" Category="Microsoft.Design" CheckId="CA1014" Created="2007-03-27 04:29:04Z">
-        <Issue Name="NoAttr">
-         <Item>OpenSim.Storage.LocalStorageDb4o</Item>
-        </Issue>
-       </Message>
-      </Messages>
-      <Namespaces>
-       <Namespace Name="OpenSim.Storage.LocalStorageDb4o">
-        <Types>
-         <Type Name="Db4LocalStorage">
-          <Members>
-           <Member Name=".ctor()">
-            <Messages>
-             <Message TypeName="DoNotCatchGeneralExceptionTypes" Category="Microsoft.Design" CheckId="CA1031" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>Db4LocalStorage.Db4LocalStorage()</Item>
-               <Item>System.Exception</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="LoadPrimitives(OpenSim.Framework.Interfaces.ILocalStorageReceiver):System.Void">
-            <Messages>
-             <Message TypeName="ValidateArgumentsOfPublicMethods" Category="Microsoft.Design" CheckId="CA1062" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>'receiver'</Item>
-               <Item>Db4LocalStorage.LoadPrimitives(ILocalStorageReceiver):Void</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="StorePrim(OpenSim.Framework.Assets.PrimData):System.Void">
-            <Messages>
-             <Message TypeName="ValidateArgumentsOfPublicMethods" Category="Microsoft.Design" CheckId="CA1062" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>'prim'</Item>
-               <Item>Db4LocalStorage.StorePrim(PrimData):Void</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-          </Members>
-         </Type>
-         <Type Name="UUIDQuery">
-          <Messages>
-           <Message TypeName="LongAcronymsShouldBePascalCased" Category="Microsoft.Naming" CheckId="CA1705" Created="2007-03-27 04:29:04Z">
-            <Issue Name="Type">
-             <Item>UUIDQuery</Item>
-            </Issue>
-           </Message>
-          </Messages>
-          <Members>
-           <Member Name="Match(OpenSim.Framework.Assets.PrimData):System.Boolean">
-            <Messages>
-             <Message TypeName="ValidateArgumentsOfPublicMethods" Category="Microsoft.Design" CheckId="CA1062" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>'prim'</Item>
-               <Item>UUIDQuery.Match(PrimData):Boolean</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-          </Members>
-         </Type>
-        </Types>
-       </Namespace>
-      </Namespaces>
-     </Module>
-    </Modules>
-   </Target>
-   <Target Name="$(ProjectDir)/bin/Physics/OpenSim.Physics.BasicPhysicsPlugin.dll">
-    <Modules>
-     <Module Name="opensim.physics.basicphysicsplugin.dll">
-      <Messages>
-       <Message TypeName="AssembliesShouldDeclareMinimumSecurity" Category="Microsoft.Usage" CheckId="CA2209" Status="Excluded" Created="2007-03-27 04:29:04Z">
-        <Issue>
-         <Item>OpenSim.Physics.BasicPhysicsPlugin</Item>
-        </Issue>
-        <Notes>
-         <User Name="Stefan">
-          <Note Id="2" />
-         </User>
-        </Notes>
-       </Message>
-       <Message TypeName="AssembliesShouldHaveValidStrongNames" Category="Microsoft.Design" CheckId="CA2210" Status="Excluded" Created="2007-03-27 04:29:04Z">
-        <Issue Name="NoStrongName">
-         <Item>OpenSim.Physics.BasicPhysicsPlugin</Item>
-        </Issue>
-        <Notes>
-         <User Name="Stefan">
-          <Note Id="0" />
-         </User>
-        </Notes>
-       </Message>
-       <Message TypeName="MarkAssembliesWithClsCompliant" Category="Microsoft.Design" CheckId="CA1014" Status="Excluded" Created="2007-03-27 04:29:04Z">
-        <Issue Name="NoAttr">
-         <Item>OpenSim.Physics.BasicPhysicsPlugin</Item>
-        </Issue>
-        <Notes>
-         <User Name="Stefan">
-          <Note Id="1" />
-         </User>
-        </Notes>
-       </Message>
-      </Messages>
-      <Namespaces>
-       <Namespace Name="OpenSim.Physics.BasicPhysicsPlugin">
-        <Types>
-         <Type Name="BasicActor">
-          <Members>
-           <Member Name="flying">
-            <Messages>
-             <Message TypeName="AvoidUnusedPrivateFields" Category="Microsoft.Performance" CheckId="CA1823" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>BasicActor.flying</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="SetAcceleration(OpenSim.Physics.Manager.PhysicsVector):System.Void">
-            <Messages>
-             <Message Id="0#accel" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
-              <Issue Name="Parameter">
-               <Item>BasicActor.SetAcceleration(PhysicsVector):Void</Item>
-               <Item>accel</Item>
-               <Item>accel</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-          </Members>
-         </Type>
-         <Type Name="BasicPhysicsPlugin">
-          <Messages>
-           <Message Id="Plugin" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
-            <Issue Name="Type">
-             <Item>Plugin</Item>
-             <Item>OpenSim.Physics.BasicPhysicsPlugin.BasicPhysicsPlugin</Item>
-            </Issue>
-           </Message>
-           <Message TypeName="TypeNamesShouldNotMatchNamespaces" Category="Microsoft.Naming" CheckId="CA1724" Created="2007-03-27 04:29:04Z">
-            <Issue>
-             <Item>BasicPhysicsPlugin</Item>
-             <Item>OpenSim.Physics.BasicPhysicsPlugin</Item>
-            </Issue>
-           </Message>
-          </Messages>
-         </Type>
-        </Types>
-       </Namespace>
-      </Namespaces>
-     </Module>
-    </Modules>
-   </Target>
-   <Target Name="$(ProjectDir)/bin/Physics/OpenSim.Physics.OdePlugin.dll">
-    <Modules>
-     <Module Name="opensim.physics.odeplugin.dll">
-      <Messages>
-       <Message TypeName="AssembliesShouldDeclareMinimumSecurity" Category="Microsoft.Usage" CheckId="CA2209" Created="2007-03-27 04:29:04Z">
-        <Issue>
-         <Item>OpenSim.Physics.OdePlugin</Item>
-        </Issue>
-       </Message>
-       <Message TypeName="AssembliesShouldHaveValidStrongNames" Category="Microsoft.Design" CheckId="CA2210" Created="2007-03-27 04:29:04Z">
-        <Issue Name="NoStrongName">
-         <Item>OpenSim.Physics.OdePlugin</Item>
-        </Issue>
-       </Message>
-       <Message TypeName="MarkAssembliesWithClsCompliant" Category="Microsoft.Design" CheckId="CA1014" Created="2007-03-27 04:29:04Z">
-        <Issue Name="NoAttr">
-         <Item>OpenSim.Physics.OdePlugin</Item>
-        </Issue>
-       </Message>
-      </Messages>
-      <Namespaces>
-       <Namespace Name="OpenSim.Physics.OdePlugin">
-        <Types>
-         <Type Name="OdeCharacter">
-          <Messages>
-           <Message TypeName="TypesThatOwnNativeResourcesShouldBeDisposable" Category="Microsoft.Design" CheckId="CA1049" Created="2007-03-27 04:29:04Z">
-            <Issue>
-             <Item>OdeCharacter</Item>
-            </Issue>
-           </Message>
-          </Messages>
-          <Members>
-           <Member Name=".ctor(OpenSim.Physics.OdePlugin.OdeScene,OpenSim.Physics.Manager.PhysicsVector)">
-            <Messages>
-             <Message Id="parent_scene" TypeName="ReviewUnusedParameters" Category="Microsoft.Usage" CheckId="CA1801" Created="2007-03-27 04:29:04Z" FixCategory="Breaking">
-              <Issue>
-               <Item>parent_scene</Item>
-               <Item>OdeCharacter.OdeCharacter(OdeScene, PhysicsVector)</Item>
-              </Issue>
-             </Message>
-             <Message TypeName="ValidateArgumentsOfPublicMethods" Category="Microsoft.Design" CheckId="CA1062" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>'pos'</Item>
-               <Item>OdeCharacter.OdeCharacter(OdeScene, PhysicsVector)</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="capsule_geom">
-            <Messages>
-             <Message TypeName="AvoidUnusedPrivateFields" Category="Microsoft.Performance" CheckId="CA1823" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>OdeCharacter.capsule_geom</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="gravityAccel">
-            <Messages>
-             <Message TypeName="AvoidUnusedPrivateFields" Category="Microsoft.Performance" CheckId="CA1823" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>OdeCharacter.gravityAccel</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="SetAcceleration(OpenSim.Physics.Manager.PhysicsVector):System.Void">
-            <Messages>
-             <Message Id="0#accel" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
-              <Issue Name="Parameter">
-               <Item>OdeCharacter.SetAcceleration(PhysicsVector):Void</Item>
-               <Item>accel</Item>
-               <Item>accel</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-          </Members>
-         </Type>
-         <Type Name="OdePlugin">
-          <Messages>
-           <Message Id="Plugin" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
-            <Issue Name="Type">
-             <Item>Plugin</Item>
-             <Item>OpenSim.Physics.OdePlugin.OdePlugin</Item>
-            </Issue>
-           </Message>
-           <Message TypeName="TypeNamesShouldNotMatchNamespaces" Category="Microsoft.Naming" CheckId="CA1724" Created="2007-03-27 04:29:04Z">
-            <Issue>
-             <Item>OdePlugin</Item>
-             <Item>OpenSim.Physics.OdePlugin</Item>
-            </Issue>
-           </Message>
-          </Messages>
-         </Type>
-         <Type Name="OdePrim">
-          <Members>
-           <Member Name="_position">
-            <Messages>
-             <Message TypeName="AvoidUnusedPrivateFields" Category="Microsoft.Performance" CheckId="CA1823" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>OdePrim._position</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="SetAcceleration(OpenSim.Physics.Manager.PhysicsVector):System.Void">
-            <Messages>
-             <Message Id="0#accel" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
-              <Issue Name="Parameter">
-               <Item>OdePrim.SetAcceleration(PhysicsVector):Void</Item>
-               <Item>accel</Item>
-               <Item>accel</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-          </Members>
-         </Type>
-         <Type Name="OdeScene">
-          <Members>
-           <Member Name="AddPrim(OpenSim.Physics.Manager.PhysicsVector,OpenSim.Physics.Manager.PhysicsVector):OpenSim.Physics.Manager.PhysicsActor">
-            <Messages>
-             <Message TypeName="ValidateArgumentsOfPublicMethods" Category="Microsoft.Design" CheckId="CA1062" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>'position'</Item>
-               <Item>OdeScene.AddPrim(PhysicsVector, PhysicsVector):PhysicsActor</Item>
-              </Issue>
-              <Issue>
-               <Item>'size'</Item>
-               <Item>OdeScene.AddPrim(PhysicsVector, PhysicsVector):PhysicsActor</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="Land">
-            <Messages>
-             <Message TypeName="AvoidUnusedPrivateFields" Category="Microsoft.Performance" CheckId="CA1823" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>OdeScene.Land</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="LandGeom">
-            <Messages>
-             <Message TypeName="AvoidUnusedPrivateFields" Category="Microsoft.Performance" CheckId="CA1823" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>OdeScene.LandGeom</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="SetTerrain(System.Single[]):System.Void">
-            <Messages>
-             <Message TypeName="ValidateArgumentsOfPublicMethods" Category="Microsoft.Design" CheckId="CA1062" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>'heightMap'</Item>
-               <Item>OdeScene.SetTerrain(Single[]):Void</Item>
-              </Issue>
-              <Issue>
-               <Item>'heightMap'</Item>
-               <Item>OdeScene.SetTerrain(Single[]):Void</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="space">
-            <Messages>
-             <Message TypeName="NonConstantFieldsShouldNotBeVisible" Category="Microsoft.Usage" CheckId="CA2211" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>space</Item>
-              </Issue>
-             </Message>
-             <Message TypeName="PointersShouldNotBeVisible" Category="Microsoft.Security" CheckId="CA2111" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>space</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="world">
-            <Messages>
-             <Message TypeName="NonConstantFieldsShouldNotBeVisible" Category="Microsoft.Usage" CheckId="CA2211" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>world</Item>
-              </Issue>
-             </Message>
-             <Message TypeName="PointersShouldNotBeVisible" Category="Microsoft.Security" CheckId="CA2111" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>world</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-          </Members>
-         </Type>
-        </Types>
-       </Namespace>
-      </Namespaces>
-     </Module>
-    </Modules>
-   </Target>
-   <Target Name="$(ProjectDir)/bin/Physics/OpenSim.Physics.PhysXPlugin.dll">
-    <Modules>
-     <Module Name="opensim.physics.physxplugin.dll">
-      <Messages>
-       <Message TypeName="AssembliesShouldDeclareMinimumSecurity" Category="Microsoft.Usage" CheckId="CA2209" Created="2007-03-27 04:29:04Z">
-        <Issue>
-         <Item>OpenSim.Physics.PhysXPlugin</Item>
-        </Issue>
-       </Message>
-       <Message TypeName="AssembliesShouldHaveValidStrongNames" Category="Microsoft.Design" CheckId="CA2210" Created="2007-03-27 04:29:04Z">
-        <Issue Name="NoStrongName">
-         <Item>OpenSim.Physics.PhysXPlugin</Item>
-        </Issue>
-       </Message>
-       <Message TypeName="MarkAssembliesWithClsCompliant" Category="Microsoft.Design" CheckId="CA1014" Created="2007-03-27 04:29:04Z">
-        <Issue Name="NoAttr">
-         <Item>OpenSim.Physics.PhysXPlugin</Item>
-        </Issue>
-       </Message>
-      </Messages>
-      <Namespaces>
-       <Namespace Name="OpenSim.Physics.PhysXPlugin">
-        <Types>
-         <Type Name="PhysXCharacter">
-          <Members>
-           <Member Name="SetAcceleration(OpenSim.Physics.Manager.PhysicsVector):System.Void">
-            <Messages>
-             <Message Id="0#accel" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
-              <Issue Name="Parameter">
-               <Item>PhysXCharacter.SetAcceleration(PhysicsVector):Void</Item>
-               <Item>accel</Item>
-               <Item>accel</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-          </Members>
-         </Type>
-         <Type Name="PhysXPlugin">
-          <Messages>
-           <Message Id="Plugin" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
-            <Issue Name="Type">
-             <Item>Plugin</Item>
-             <Item>OpenSim.Physics.PhysXPlugin.PhysXPlugin</Item>
-            </Issue>
-           </Message>
-           <Message TypeName="TypeNamesShouldNotMatchNamespaces" Category="Microsoft.Naming" CheckId="CA1724" Created="2007-03-27 04:29:04Z">
-            <Issue>
-             <Item>PhysXPlugin</Item>
-             <Item>OpenSim.Physics.PhysXPlugin</Item>
-            </Issue>
-           </Message>
-          </Messages>
-         </Type>
-         <Type Name="PhysXPrim">
-          <Members>
-           <Member Name="_position">
-            <Messages>
-             <Message TypeName="AvoidUnusedPrivateFields" Category="Microsoft.Performance" CheckId="CA1823" Created="2007-03-27 04:29:04Z">
-              <Issue>
-               <Item>PhysXPrim._position</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-           <Member Name="SetAcceleration(OpenSim.Physics.Manager.PhysicsVector):System.Void">
-            <Messages>
-             <Message Id="0#accel" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
-              <Issue Name="Parameter">
-               <Item>PhysXPrim.SetAcceleration(PhysicsVector):Void</Item>
-               <Item>accel</Item>
-               <Item>accel</Item>
-              </Issue>
-             </Message>
-            </Messages>
-           </Member>
-          </Members>
-         </Type>
-        </Types>
-       </Namespace>
-      </Namespaces>
-     </Module>
-    </Modules>
-   </Target>
-  </Targets>
-  <Notes>
-   <User Name="Stefan">
-    <Note Id="0" Modified="2007-03-27 04:30:24Z">Save it for a rainy day.</Note>
-    <Note Id="1" Modified="2007-03-27 04:30:31Z">Save it for a rainy day.</Note>
-    <Note Id="2" Modified="2007-03-27 04:30:38Z">Save it for a rainy day.</Note>
-   </User>
-  </Notes>
-  <Rules>
-   <Rule TypeName="AssembliesShouldDeclareMinimumSecurity" Category="Microsoft.Usage" CheckId="CA2209">
-    <Resolution Name="Default">No valid permission requests were found for assembly '{0}'. You should always specify the minimum security permissions using SecurityAction.RequestMinimum.</Resolution>
-   </Rule>
-   <Rule TypeName="AssembliesShouldHaveValidStrongNames" Category="Microsoft.Design" CheckId="CA2210">
-    <Resolution Name="NoStrongName">Sign '{0}' with a strong name key.</Resolution>
-   </Rule>
-   <Rule TypeName="AvoidNamespacesWithFewTypes" Category="Microsoft.Design" CheckId="CA1020">
-    <Resolution Name="Default">Consider merging the types defined in '{0}' with another namespace.</Resolution>
-   </Rule>
-   <Rule TypeName="AvoidUnusedPrivateFields" Category="Microsoft.Performance" CheckId="CA1823">
-    <Resolution Name="Default">It appears that field '{0}' is never used or is only ever assigned to. Use this field or remove it.</Resolution>
-   </Rule>
-   <Rule TypeName="CollectionPropertiesShouldBeReadOnly" Category="Microsoft.Usage" CheckId="CA2227">
-    <Resolution Name="Default">Change '{0}' to be read-only by removing the property setter.</Resolution>
-   </Rule>
-   <Rule TypeName="CompoundWordsShouldBeCasedCorrectly" Category="Microsoft.Naming" CheckId="CA1702">
-    <Resolution Name="ShouldBeDiscreteTerm">The compound word '{0}' in {1} '{2}' exists as a discrete term. If your usage is intended to be single word, case it as '{3}'.</Resolution>
-   </Rule>
-   <Rule TypeName="ComVisibleTypeBaseTypesShouldBeComVisible" Category="Microsoft.Interoperability" CheckId="CA1405">
-    <Resolution Name="Default">'{0}' is marked ComVisible(true) but has the following ComVisible(false) types in its object hierarchy: {1}</Resolution>
-   </Rule>
-   <Rule TypeName="ConsiderPassingBaseTypesAsParameters" Category="Microsoft.Design" CheckId="CA1011">
-    <Resolution Name="Default">Consider changing the type of parameter '{0}' in {1} from {2} to its base type {3}. This method appears to only require base class members in its implementation. Suppress this violation if there is a compelling reason to require the more derived type in the method signature.</Resolution>
-   </Rule>
-   <Rule TypeName="DoNotCallOverridableMethodsInConstructors" Category="Microsoft.Usage" CheckId="CA2214">
-    <Resolution Name="Default">'{0}' contains a call chain that results in a call to a virtual method defined by the class. Review the following call stack for unintended consequences: {1}</Resolution>
-   </Rule>
-   <Rule TypeName="DoNotCatchGeneralExceptionTypes" Category="Microsoft.Design" CheckId="CA1031">
-    <Resolution Name="Default">Modify '{0}' to catch a more specific exception than '{1}' or rethrow the exception.</Resolution>
-   </Rule>
-   <Rule TypeName="DoNotDeclareReadOnlyMutableReferenceTypes" Category="Microsoft.Security" CheckId="CA2104">
-    <Resolution Name="Default">Remove the readonly declaration from '{0}' or change the field to one that is an immutable reference type. If the reference type '{1}' is, in fact, immutable, exclude this message.</Resolution>
-   </Rule>
-   <Rule TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051">
-    <Resolution Name="Default">Make '{0}' private or internal (Friend in VB, public private in C++) and provide a public or protected property to access it.</Resolution>
-   </Rule>
-   <Rule TypeName="DoNotExposeGenericLists" Category="Microsoft.Design" CheckId="CA1002">
-    <Resolution Name="Default">Change '{0}' in {1} to use Collection&lt;T&gt;, ReadOnlyCollection&lt;T&gt; or KeyedCollection&lt;K,V&gt;</Resolution>
-   </Rule>
-   <Rule TypeName="DoNotInitializeUnnecessarily" Category="Microsoft.Performance" CheckId="CA1805">
-    <Resolution Name="Default">{0} initializes field {1} of type {2} to {3}. Remove this initialization as it will be done automatically by the runtime.</Resolution>
-   </Rule>
-   <Rule TypeName="DoNotPassLiteralsAsLocalizedParameters" Category="Microsoft.Globalization" CheckId="CA1303">
-    <Resolution Name="Default">{0} passes a literal as parameter {1} of a call to {2}. Retrieve the following string argument from a resource table instead: '{3}'</Resolution>
-   </Rule>
-   <Rule TypeName="DoNotPassTypesByReference" Category="Microsoft.Design" CheckId="CA1045">
-    <Resolution Name="Default">Consider a design that does not require that '{0}' be a reference parameter.</Resolution>
-   </Rule>
-   <Rule TypeName="DoNotRaiseReservedExceptionTypes" Category="Microsoft.Usage" CheckId="CA2201">
-    <Resolution Name="TooGeneric">{0} creates an exception of type '{1}', an exception type that is not sufficiently specific and should never be raised by user code. If this exception instance might be thrown, use a different exception type.</Resolution>
-   </Rule>
-   <Rule TypeName="DoNotUseTimersThatPreventPowerStateChanges" Category="Microsoft.Mobility" CheckId="CA1601">
-    <Resolution Name="Default">Modify the call to {0} in method {1} to set the timer interval to a value that's greater than or equal to one second.</Resolution>
-   </Rule>
-   <Rule TypeName="IdentifiersShouldBeCasedCorrectly" Category="Microsoft.Naming" CheckId="CA1709">
-    <Resolution Name="Member">Correct the casing of member name '{0}'.</Resolution>
-    <Resolution Name="Namespace">Correct the casing of namespace name '{0}'.</Resolution>
-    <Resolution Name="Parameter">Correct the casing of parameter name '{0}'.</Resolution>
-    <Resolution Name="Type">Correct the casing of type name '{0}'.</Resolution>
-   </Rule>
-   <Rule TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704">
-    <Resolution Name="Member">Correct the spelling of the unrecognized token '{0}' in member name '{1}'.</Resolution>
-    <Resolution Name="MemberOneLetter">Consider providing a more meaningful name than the one-letter token '{0}' in member name '{1}'.</Resolution>
-    <Resolution Name="Namespace">Correct the spelling of the unrecognized token '{0}' in namespace '{1}'.</Resolution>
-    <Resolution Name="Parameter">In method {0}, correct the spelling of the unrecognized token '{1}' in parameter name '{2}' or strip it entirely if it represents any sort of hungarian notation.</Resolution>
-    <Resolution Name="ParameterOneLetter">In method {0}, consider providing a more meaningful name than the one-letter parameter name '{1}'.</Resolution>
-    <Resolution Name="Type">Correct the spelling of the unrecognized token '{0}' in type name '{1}'.</Resolution>
-   </Rule>
-   <Rule TypeName="IdentifiersShouldDifferByMoreThanCase" Category="Microsoft.Naming" CheckId="CA1708">
-    <Resolution Name="Member">Change member names {0} and '{1}' so that they differ by more than case.</Resolution>
-   </Rule>
-   <Rule TypeName="IdentifiersShouldNotContainUnderscores" Category="Microsoft.Naming" CheckId="CA1707">
-    <Resolution Name="Member">Remove all underscores from member '{0}'.</Resolution>
-    <Resolution Name="Parameter">Remove all underscores from parameter '{0}'.</Resolution>
-    <Resolution Name="Type">Remove all underscores from type '{0}'.</Resolution>
-   </Rule>
-   <Rule TypeName="IdentifiersShouldNotHaveIncorrectSuffix" Category="Microsoft.Naming" CheckId="CA1711">
-    <Resolution Name="Default">Rename '{0}' so that it does not end in '{1}'.</Resolution>
-   </Rule>
-   <Rule TypeName="LiteralsShouldBeSpelledCorrectly" Category="Microsoft.Usage" CheckId="CA2204">
-    <Resolution Name="Default">Correct the spelling of the unrecognized token '{0}' in the literal '{1}'.</Resolution>
-   </Rule>
-   <Rule TypeName="LongAcronymsShouldBePascalCased" Category="Microsoft.Naming" CheckId="CA1705">
-    <Resolution Name="Member">Correct the capitalization of member name '{0}'.</Resolution>
-    <Resolution Name="Namespace">Correct the capitalization of namespace name '{0}'.</Resolution>
-    <Resolution Name="Parameter">Correct the capitalization of parameter name '{0}'.</Resolution>
-    <Resolution Name="Type">Correct the capitalization of type name '{0}'.</Resolution>
-   </Rule>
-   <Rule TypeName="MarkAssembliesWithAssemblyVersion" Category="Microsoft.Design" CheckId="CA1016">
-    <Resolution Name="Default">Add an AssemblyVersion attribute to '{0}'.</Resolution>
-   </Rule>
-   <Rule TypeName="MarkAssembliesWithClsCompliant" Category="Microsoft.Design" CheckId="CA1014">
-    <Resolution Name="NoAttr">'{0}' should be marked with CLSCompliantAttribute and its value should be true.</Resolution>
-   </Rule>
-   <Rule TypeName="MarkAssembliesWithComVisible" Category="Microsoft.Design" CheckId="CA1017">
-    <Resolution Name="NoAttribute">Mark '{0}' as ComVisible(false) at the assembly level, then mark all types within the assembly that should be exposed to Com clients as ComVisible(true).</Resolution>
-   </Rule>
-   <Rule TypeName="MarkMembersAsStatic" Category="Microsoft.Performance" CheckId="CA1822">
-    <Resolution Name="Default">The 'this' parameter (or 'Me' in VB) of {0} is never used. Mark the member as static (or Shared in VB) or use 'this'/'Me' in the method body or at least one property accessor, if appropriate.</Resolution>
-   </Rule>
-   <Rule TypeName="NonConstantFieldsShouldNotBeVisible" Category="Microsoft.Usage" CheckId="CA2211">
-    <Resolution Name="Default">Consider making '{0}' non-public or a constant.</Resolution>
-   </Rule>
-   <Rule TypeName="OperationsShouldNotOverflow" Category="Microsoft.Usage" CheckId="CA2233">
-    <Resolution Name="Default">Correct the potential overflow in the operation '{0}' in '{1}'.</Resolution>
-   </Rule>
-   <Rule TypeName="OperatorOverloadsHaveNamedAlternates" Category="Microsoft.Usage" CheckId="CA2225">
-    <Resolution Name="Default">Provide a method named '{0}' as a friendly alternate for operator {1}.</Resolution>
-   </Rule>
-   <Rule TypeName="OverloadOperatorEqualsOnOverloadingAddAndSubtract" Category="Microsoft.Design" CheckId="CA1013">
-    <Resolution Name="Default">Consider adding an overload of the equality operator for '{0}' that takes the same parameters as {1}.</Resolution>
-   </Rule>
-   <Rule TypeName="OverrideEqualsAndOperatorEqualsOnValueTypes" Category="Microsoft.Performance" CheckId="CA1815">
-    <Resolution Name="Equals">'{0}' should override Equals.</Resolution>
-    <Resolution Name="op_Equality">'{0}' should override the equality (==) and inequality (!=) operators.</Resolution>
-   </Rule>
-   <Rule TypeName="ParameterNamesShouldMatchBaseDeclaration" Category="Microsoft.Naming" CheckId="CA1725">
-    <Resolution Name="Default">Change parameter name '{0}' of method {1} to '{2}' in order to match the identifier as it has been declared in {3}.</Resolution>
-   </Rule>
-   <Rule TypeName="PassSystemUriObjectsInsteadOfStrings" Category="Microsoft.Usage" CheckId="CA2234">
-    <Resolution Name="Default">Modify {0} to call {1} instead of {2}.</Resolution>
-   </Rule>
-   <Rule TypeName="PointersShouldNotBeVisible" Category="Microsoft.Security" CheckId="CA2111">
-    <Resolution Name="Default">Make '{0}' private.</Resolution>
-   </Rule>
-   <Rule TypeName="PropertiesShouldNotBeWriteOnly" Category="Microsoft.Design" CheckId="CA1044">
-    <Resolution Name="Default">Add a property getter to '{0}'.</Resolution>
-   </Rule>
-   <Rule TypeName="RemoveUnusedLocals" Category="Microsoft.Performance" CheckId="CA1804">
-    <Resolution Name="Default">{0} declares a local, '{1}', of type {2}, which is never used or is only assigned to. Use this local or remove it.</Resolution>
-   </Rule>
-   <Rule TypeName="ReviewUnusedParameters" Category="Microsoft.Usage" CheckId="CA1801">
-    <Resolution Name="Default">Parameter '{0}' of {1} is never used. Remove the parameter or use it in the method body.</Resolution>
-   </Rule>
-   <Rule TypeName="ShortAcronymsShouldBeUppercase" Category="Microsoft.Naming" CheckId="CA1706">
-    <Resolution Name="Member">Correct the capitalization of '{0}' in member name '{1}'.</Resolution>
-    <Resolution Name="MemberId">'Id' is an abbreviation and therefore is not subject to acronym casing guidelines. Correct the capitalization of 'ID' in member name '{0}' by changing it to 'Id'.</Resolution>
-    <Resolution Name="ParameterId">'Id' is an abbreviation and therefore is not subject to acronym casing guidelines. Correct the capitalization of '{0}' in parameter name '{1}' by changing it to '{2}'.</Resolution>
-    <Resolution Name="Type">Correct the capitalization of '{0}' in type name '{1}'.</Resolution>
-   </Rule>
-   <Rule TypeName="SpecifyCultureInfo" Category="Microsoft.Globalization" CheckId="CA1304">
-    <Resolution Name="Default">{0} makes a call to {1} that does not explicitly provide a CultureInfo. This should be replaced with a call to {2}.</Resolution>
-   </Rule>
-   <Rule TypeName="SpecifyIFormatProvider" Category="Microsoft.Globalization" CheckId="CA1305">
-    <Resolution Name="Default">{0} makes a call to {1} that does not explicitly provide an IFormatProvider. This should be replaced with a call to {2}.</Resolution>
-   </Rule>
-   <Rule TypeName="StaticHolderTypesShouldNotHaveConstructors" Category="Microsoft.Design" CheckId="CA1053">
-    <Resolution Name="Default">Remove the public constructors from '{0}'.</Resolution>
-   </Rule>
-   <Rule TypeName="TestForEmptyStringsUsingStringLength" Category="Microsoft.Performance" CheckId="CA1820">
-    <Resolution Name="IsNullOrEmpty">Replace the call to String.{0}({1}) in '{2}' with a call to String.IsNullOrEmpty.</Resolution>
-   </Rule>
-   <Rule TypeName="TypeNamesShouldNotMatchNamespaces" Category="Microsoft.Naming" CheckId="CA1724">
-    <Resolution Name="Default">The type name '{0}' conflicts in whole or in part with the namespace name '{1}'. Change either name to eliminate the conflict.</Resolution>
-   </Rule>
-   <Rule TypeName="TypesThatOwnDisposableFieldsShouldBeDisposable" Category="Microsoft.Design" CheckId="CA1001">
-    <Resolution Name="Default">Implement IDisposable on '{0}' as it instantiates members of the following IDisposable types: {1}</Resolution>
-   </Rule>
-   <Rule TypeName="TypesThatOwnNativeResourcesShouldBeDisposable" Category="Microsoft.Design" CheckId="CA1049">
-    <Resolution Name="Default">Implement IDisposable on '{0}'.</Resolution>
-   </Rule>
-   <Rule TypeName="UriParametersShouldNotBeStrings" Category="Microsoft.Design" CheckId="CA1054">
-    <Resolution Name="Default">Change the type of parameter '{0}' of method {1} from string to System.Uri, or provide an overload of {1}, that allows '{0}' to be passed as a System.Uri object.</Resolution>
-   </Rule>
-   <Rule TypeName="UsePreferredTerms" Category="Microsoft.Naming" CheckId="CA1726">
-    <Resolution Name="Member">Replace the term '{0}' in member name '{1}' with the preferred alternate '{2}'.</Resolution>
-    <Resolution Name="Type">Replace the term '{0}' in type name '{1}' with the preferred alternate '{2}'.</Resolution>
-   </Rule>
-   <Rule TypeName="UsePropertiesWhereAppropriate" Category="Microsoft.Design" CheckId="CA1024">
-    <Resolution Name="Default">Change '{0}' to a property if appropriate.</Resolution>
-   </Rule>
-   <Rule TypeName="ValidateArgumentsOfPublicMethods" Category="Microsoft.Design" CheckId="CA1062">
-    <Resolution Name="Default">Validate parameter {0} passed to externally visible method {1}.</Resolution>
-   </Rule>
-  </Rules>
- </FxCopReport>
-</FxCopProject>
+<?xml version="1.0" encoding="utf-8"?>
+<FxCopProject Version="1.35" Name="OpenSim">
+ <ProjectOptions>
+  <SharedProject>True</SharedProject>
+  <Stylesheet Apply="False">http://www.gotdotnet.com/team/fxcop//xsl/1.35/FxCopReport.xsl</Stylesheet>
+  <SaveMessages>
+   <Project Status="Active, Excluded" NewOnly="False" />
+   <Report Status="Active" NewOnly="False" />
+  </SaveMessages>
+  <ProjectFile Compress="True" DefaultTargetCheck="True" DefaultRuleCheck="True" SaveByRuleGroup="" Deterministic="True" />
+  <EnableMultithreadedLoad>True</EnableMultithreadedLoad>
+  <EnableMultithreadedAnalysis>True</EnableMultithreadedAnalysis>
+  <SourceLookup>True</SourceLookup>
+  <AnalysisExceptionsThreshold>10</AnalysisExceptionsThreshold>
+  <RuleExceptionsThreshold>1</RuleExceptionsThreshold>
+  <Spelling Locale="en-us" />
+  <VersionAware>False</VersionAware>
+  <OverrideRuleVisibilities>False</OverrideRuleVisibilities>
+  <CustomDictionaries SearchFxCopDir="True" SearchUserProfile="True" SearchProjectDir="True" />
+  <SearchGlobalAssemblyCache>False</SearchGlobalAssemblyCache>
+  <DeadlockDetectionTimeout>120</DeadlockDetectionTimeout>
+ </ProjectOptions>
+ <Targets>
+  <AssemblyReferenceDirectories>
+   <Directory>$(ProjectDir)/lib/</Directory>
+  </AssemblyReferenceDirectories>
+  <Target Name="$(ProjectDir)/bin/OpenGridServices.ServerConsole.dll" Analyze="True" AnalyzeAllChildren="True" />
+  <Target Name="$(ProjectDir)/bin/OpenSim.Config.SimConfigDb4o.dll" Analyze="True" AnalyzeAllChildren="True" />
+  <Target Name="$(ProjectDir)/bin/OpenSim.exe" Analyze="True" AnalyzeAllChildren="True" />
+  <Target Name="$(ProjectDir)/bin/OpenSim.Framework.Console.dll" Analyze="True" AnalyzeAllChildren="True" />
+  <Target Name="$(ProjectDir)/bin/OpenSim.Framework.dll" Analyze="True" AnalyzeAllChildren="True" />
+  <Target Name="$(ProjectDir)/bin/OpenSim.GridInterfaces.Local.dll" Analyze="True" AnalyzeAllChildren="True" />
+  <Target Name="$(ProjectDir)/bin/OpenSim.GridInterfaces.Remote.dll" Analyze="True" AnalyzeAllChildren="True" />
+  <Target Name="$(ProjectDir)/bin/OpenSim.Physics.Manager.dll" Analyze="True" AnalyzeAllChildren="True" />
+  <Target Name="$(ProjectDir)/bin/OpenSim.RegionServer.dll" Analyze="True" AnalyzeAllChildren="True" />
+  <Target Name="$(ProjectDir)/bin/OpenSim.Storage.LocalStorageDb4o.dll" Analyze="True" AnalyzeAllChildren="True" />
+  <Target Name="$(ProjectDir)/bin/Physics/OpenSim.Physics.BasicPhysicsPlugin.dll" Analyze="True" AnalyzeAllChildren="True" />
+  <Target Name="$(ProjectDir)/bin/Physics/OpenSim.Physics.OdePlugin.dll" Analyze="True" AnalyzeAllChildren="True" />
+  <Target Name="$(ProjectDir)/bin/Physics/OpenSim.Physics.PhysXPlugin.dll" Analyze="True" AnalyzeAllChildren="True" />
+ </Targets>
+ <Rules>
+  <RuleFiles>
+   <RuleFile Name="$(FxCopDir)\Rules\DesignRules.dll" Enabled="True" AllRulesEnabled="True" />
+   <RuleFile Name="$(FxCopDir)\Rules\GlobalizationRules.dll" Enabled="True" AllRulesEnabled="True" />
+   <RuleFile Name="$(FxCopDir)\Rules\InteroperabilityRules.dll" Enabled="True" AllRulesEnabled="True" />
+   <RuleFile Name="$(FxCopDir)\Rules\MobilityRules.dll" Enabled="True" AllRulesEnabled="True" />
+   <RuleFile Name="$(FxCopDir)\Rules\NamingRules.dll" Enabled="True" AllRulesEnabled="True" />
+   <RuleFile Name="$(FxCopDir)\Rules\PerformanceRules.dll" Enabled="True" AllRulesEnabled="True" />
+   <RuleFile Name="$(FxCopDir)\Rules\PortabilityRules.dll" Enabled="True" AllRulesEnabled="True" />
+   <RuleFile Name="$(FxCopDir)\Rules\SecurityRules.dll" Enabled="True" AllRulesEnabled="True" />
+   <RuleFile Name="$(FxCopDir)\Rules\UsageRules.dll" Enabled="True" AllRulesEnabled="True" />
+  </RuleFiles>
+  <Groups />
+  <Settings />
+ </Rules>
+ <FxCopReport Version="1.35">
+  <Namespaces>
+   <Namespace Name="OpenSim">
+    <Messages>
+     <Message Id="Sim" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
+      <Issue Name="Namespace">
+       <Item>Sim</Item>
+       <Item>OpenSim</Item>
+      </Issue>
+     </Message>
+    </Messages>
+   </Namespace>
+   <Namespace Name="OpenSim.Assets">
+    <Messages>
+     <Message Id="Sim" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
+      <Issue Name="Namespace">
+       <Item>Sim</Item>
+       <Item>OpenSim.Assets</Item>
+      </Issue>
+     </Message>
+    </Messages>
+   </Namespace>
+   <Namespace Name="OpenSim.CAPS">
+    <Messages>
+     <Message TypeName="AvoidNamespacesWithFewTypes" Category="Microsoft.Design" CheckId="CA1020" Created="2007-03-27 04:29:04Z">
+      <Issue>
+       <Item>OpenSim.CAPS</Item>
+      </Issue>
+     </Message>
+     <Message Id="Sim" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
+      <Issue Name="Namespace">
+       <Item>Sim</Item>
+       <Item>OpenSim.CAPS</Item>
+      </Issue>
+     </Message>
+     <Message TypeName="LongAcronymsShouldBePascalCased" Category="Microsoft.Naming" CheckId="CA1705" Created="2007-03-27 04:29:04Z">
+      <Issue Name="Namespace">
+       <Item>OpenSim.CAPS</Item>
+      </Issue>
+     </Message>
+    </Messages>
+   </Namespace>
+   <Namespace Name="OpenSim.Config.SimConfigDb4o">
+    <Messages>
+     <Message Id="Sim" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
+      <Issue Name="Namespace">
+       <Item>Sim</Item>
+       <Item>OpenSim.Config.SimConfigDb4o</Item>
+      </Issue>
+      <Issue Name="Namespace">
+       <Item>Sim</Item>
+       <Item>OpenSim.Config.SimConfigDb4o</Item>
+      </Issue>
+     </Message>
+    </Messages>
+   </Namespace>
+   <Namespace Name="OpenSim.Framework.Assets">
+    <Messages>
+     <Message TypeName="AvoidNamespacesWithFewTypes" Category="Microsoft.Design" CheckId="CA1020" Created="2007-03-27 04:29:04Z">
+      <Issue>
+       <Item>OpenSim.Framework.Assets</Item>
+      </Issue>
+     </Message>
+     <Message Id="Sim" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
+      <Issue Name="Namespace">
+       <Item>Sim</Item>
+       <Item>OpenSim.Framework.Assets</Item>
+      </Issue>
+     </Message>
+    </Messages>
+   </Namespace>
+   <Namespace Name="OpenSim.Framework.Console">
+    <Messages>
+     <Message Id="Sim" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
+      <Issue Name="Namespace">
+       <Item>Sim</Item>
+       <Item>OpenSim.Framework.Console</Item>
+      </Issue>
+     </Message>
+    </Messages>
+   </Namespace>
+   <Namespace Name="OpenSim.Framework.Grid">
+    <Messages>
+     <Message TypeName="AvoidNamespacesWithFewTypes" Category="Microsoft.Design" CheckId="CA1020" Created="2007-03-27 04:29:04Z">
+      <Issue>
+       <Item>OpenSim.Framework.Grid</Item>
+      </Issue>
+     </Message>
+     <Message Id="Sim" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
+      <Issue Name="Namespace">
+       <Item>Sim</Item>
+       <Item>OpenSim.Framework.Grid</Item>
+      </Issue>
+     </Message>
+    </Messages>
+   </Namespace>
+   <Namespace Name="OpenSim.Framework.Interfaces">
+    <Messages>
+     <Message Id="Sim" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
+      <Issue Name="Namespace">
+       <Item>Sim</Item>
+       <Item>OpenSim.Framework.Interfaces</Item>
+      </Issue>
+     </Message>
+    </Messages>
+   </Namespace>
+   <Namespace Name="OpenSim.Framework.Inventory">
+    <Messages>
+     <Message TypeName="AvoidNamespacesWithFewTypes" Category="Microsoft.Design" CheckId="CA1020" Created="2007-03-27 04:29:04Z">
+      <Issue>
+       <Item>OpenSim.Framework.Inventory</Item>
+      </Issue>
+     </Message>
+     <Message Id="Sim" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
+      <Issue Name="Namespace">
+       <Item>Sim</Item>
+       <Item>OpenSim.Framework.Inventory</Item>
+      </Issue>
+     </Message>
+    </Messages>
+   </Namespace>
+   <Namespace Name="OpenSim.Framework.Sims">
+    <Messages>
+     <Message TypeName="AvoidNamespacesWithFewTypes" Category="Microsoft.Design" CheckId="CA1020" Created="2007-03-27 04:29:04Z">
+      <Issue>
+       <Item>OpenSim.Framework.Sims</Item>
+      </Issue>
+     </Message>
+     <Message Id="Sim" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
+      <Issue Name="Namespace">
+       <Item>Sim</Item>
+       <Item>OpenSim.Framework.Sims</Item>
+      </Issue>
+     </Message>
+    </Messages>
+   </Namespace>
+   <Namespace Name="OpenSim.Framework.Terrain">
+    <Messages>
+     <Message TypeName="AvoidNamespacesWithFewTypes" Category="Microsoft.Design" CheckId="CA1020" Created="2007-03-27 04:29:04Z">
+      <Issue>
+       <Item>OpenSim.Framework.Terrain</Item>
+      </Issue>
+     </Message>
+     <Message Id="Sim" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
+      <Issue Name="Namespace">
+       <Item>Sim</Item>
+       <Item>OpenSim.Framework.Terrain</Item>
+      </Issue>
+     </Message>
+    </Messages>
+   </Namespace>
+   <Namespace Name="OpenSim.Framework.User">
+    <Messages>
+     <Message TypeName="AvoidNamespacesWithFewTypes" Category="Microsoft.Design" CheckId="CA1020" Created="2007-03-27 04:29:04Z">
+      <Issue>
+       <Item>OpenSim.Framework.User</Item>
+      </Issue>
+     </Message>
+     <Message Id="Sim" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
+      <Issue Name="Namespace">
+       <Item>Sim</Item>
+       <Item>OpenSim.Framework.User</Item>
+      </Issue>
+     </Message>
+    </Messages>
+   </Namespace>
+   <Namespace Name="OpenSim.Framework.Utilities">
+    <Messages>
+     <Message TypeName="AvoidNamespacesWithFewTypes" Category="Microsoft.Design" CheckId="CA1020" Created="2007-03-27 04:29:04Z">
+      <Issue>
+       <Item>OpenSim.Framework.Utilities</Item>
+      </Issue>
+     </Message>
+     <Message Id="Sim" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
+      <Issue Name="Namespace">
+       <Item>Sim</Item>
+       <Item>OpenSim.Framework.Utilities</Item>
+      </Issue>
+     </Message>
+    </Messages>
+   </Namespace>
+   <Namespace Name="OpenSim.GridInterfaces.Local">
+    <Messages>
+     <Message Id="Sim" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
+      <Issue Name="Namespace">
+       <Item>Sim</Item>
+       <Item>OpenSim.GridInterfaces.Local</Item>
+      </Issue>
+     </Message>
+    </Messages>
+   </Namespace>
+   <Namespace Name="OpenSim.GridInterfaces.Remote">
+    <Messages>
+     <Message TypeName="AvoidNamespacesWithFewTypes" Category="Microsoft.Design" CheckId="CA1020" Created="2007-03-27 04:29:04Z">
+      <Issue>
+       <Item>OpenSim.GridInterfaces.Remote</Item>
+      </Issue>
+     </Message>
+     <Message Id="Sim" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
+      <Issue Name="Namespace">
+       <Item>Sim</Item>
+       <Item>OpenSim.GridInterfaces.Remote</Item>
+      </Issue>
+     </Message>
+    </Messages>
+   </Namespace>
+   <Namespace Name="OpenSim.Physics.BasicPhysicsPlugin">
+    <Messages>
+     <Message Id="Plugin" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
+      <Issue Name="Namespace">
+       <Item>Plugin</Item>
+       <Item>OpenSim.Physics.BasicPhysicsPlugin</Item>
+      </Issue>
+     </Message>
+     <Message Id="Sim" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
+      <Issue Name="Namespace">
+       <Item>Sim</Item>
+       <Item>OpenSim.Physics.BasicPhysicsPlugin</Item>
+      </Issue>
+     </Message>
+    </Messages>
+   </Namespace>
+   <Namespace Name="OpenSim.Physics.Manager">
+    <Messages>
+     <Message Id="Sim" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
+      <Issue Name="Namespace">
+       <Item>Sim</Item>
+       <Item>OpenSim.Physics.Manager</Item>
+      </Issue>
+     </Message>
+    </Messages>
+   </Namespace>
+   <Namespace Name="OpenSim.Physics.OdePlugin">
+    <Messages>
+     <Message TypeName="AvoidNamespacesWithFewTypes" Category="Microsoft.Design" CheckId="CA1020" Created="2007-03-27 04:29:04Z">
+      <Issue>
+       <Item>OpenSim.Physics.OdePlugin</Item>
+      </Issue>
+     </Message>
+     <Message Id="Plugin" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
+      <Issue Name="Namespace">
+       <Item>Plugin</Item>
+       <Item>OpenSim.Physics.OdePlugin</Item>
+      </Issue>
+     </Message>
+     <Message Id="Sim" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
+      <Issue Name="Namespace">
+       <Item>Sim</Item>
+       <Item>OpenSim.Physics.OdePlugin</Item>
+      </Issue>
+     </Message>
+    </Messages>
+   </Namespace>
+   <Namespace Name="OpenSim.Physics.PhysXPlugin">
+    <Messages>
+     <Message TypeName="AvoidNamespacesWithFewTypes" Category="Microsoft.Design" CheckId="CA1020" Created="2007-03-27 04:29:04Z">
+      <Issue>
+       <Item>OpenSim.Physics.PhysXPlugin</Item>
+      </Issue>
+     </Message>
+     <Message Id="Plugin" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
+      <Issue Name="Namespace">
+       <Item>Plugin</Item>
+       <Item>OpenSim.Physics.PhysXPlugin</Item>
+      </Issue>
+     </Message>
+     <Message Id="Sim" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
+      <Issue Name="Namespace">
+       <Item>Sim</Item>
+       <Item>OpenSim.Physics.PhysXPlugin</Item>
+      </Issue>
+     </Message>
+    </Messages>
+   </Namespace>
+   <Namespace Name="OpenSim.Storage.LocalStorageDb4o">
+    <Messages>
+     <Message Id="Sim" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
+      <Issue Name="Namespace">
+       <Item>Sim</Item>
+       <Item>OpenSim.Storage.LocalStorageDb4o</Item>
+      </Issue>
+     </Message>
+    </Messages>
+   </Namespace>
+   <Namespace Name="OpenSim.types">
+    <Messages>
+     <Message TypeName="AvoidNamespacesWithFewTypes" Category="Microsoft.Design" CheckId="CA1020" Created="2007-03-27 04:29:04Z">
+      <Issue>
+       <Item>OpenSim.types</Item>
+      </Issue>
+     </Message>
+     <Message TypeName="IdentifiersShouldBeCasedCorrectly" Category="Microsoft.Naming" CheckId="CA1709" Created="2007-03-27 04:29:04Z">
+      <Issue Name="Namespace">
+       <Item>OpenSim.types</Item>
+      </Issue>
+     </Message>
+     <Message Id="Sim" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
+      <Issue Name="Namespace">
+       <Item>Sim</Item>
+       <Item>OpenSim.types</Item>
+      </Issue>
+     </Message>
+    </Messages>
+   </Namespace>
+   <Namespace Name="OpenSim.UserServer">
+    <Messages>
+     <Message TypeName="AvoidNamespacesWithFewTypes" Category="Microsoft.Design" CheckId="CA1020" Created="2007-03-27 04:29:04Z">
+      <Issue>
+       <Item>OpenSim.UserServer</Item>
+      </Issue>
+     </Message>
+     <Message Id="Sim" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
+      <Issue Name="Namespace">
+       <Item>Sim</Item>
+       <Item>OpenSim.UserServer</Item>
+      </Issue>
+     </Message>
+    </Messages>
+   </Namespace>
+   <Namespace Name="OpenSim.world">
+    <Messages>
+     <Message TypeName="IdentifiersShouldBeCasedCorrectly" Category="Microsoft.Naming" CheckId="CA1709" Created="2007-03-27 04:29:04Z">
+      <Issue Name="Namespace">
+       <Item>OpenSim.world</Item>
+      </Issue>
+     </Message>
+     <Message Id="Sim" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
+      <Issue Name="Namespace">
+       <Item>Sim</Item>
+       <Item>OpenSim.world</Item>
+      </Issue>
+     </Message>
+    </Messages>
+   </Namespace>
+   <Namespace Name="OpenSim.world.scripting">
+    <Messages>
+     <Message TypeName="AvoidNamespacesWithFewTypes" Category="Microsoft.Design" CheckId="CA1020" Created="2007-03-27 04:29:04Z">
+      <Issue>
+       <Item>OpenSim.world.scripting</Item>
+      </Issue>
+     </Message>
+     <Message TypeName="IdentifiersShouldBeCasedCorrectly" Category="Microsoft.Naming" CheckId="CA1709" Created="2007-03-27 04:29:04Z">
+      <Issue Name="Namespace">
+       <Item>OpenSim.world.scripting</Item>
+      </Issue>
+      <Issue Name="Namespace">
+       <Item>OpenSim.world.scripting</Item>
+      </Issue>
+     </Message>
+     <Message Id="Sim" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
+      <Issue Name="Namespace">
+       <Item>Sim</Item>
+       <Item>OpenSim.world.scripting</Item>
+      </Issue>
+     </Message>
+    </Messages>
+   </Namespace>
+  </Namespaces>
+  <Targets>
+   <Target Name="$(ProjectDir)/bin/OpenGridServices.ServerConsole.dll">
+    <Modules>
+     <Module Name="opengridservices.serverconsole.dll">
+      <Messages>
+       <Message TypeName="AssembliesShouldDeclareMinimumSecurity" Category="Microsoft.Usage" CheckId="CA2209" Created="2007-03-27 04:29:04Z">
+        <Issue>
+         <Item>OpenGridServices.ServerConsole</Item>
+        </Issue>
+       </Message>
+       <Message TypeName="AssembliesShouldHaveValidStrongNames" Category="Microsoft.Design" CheckId="CA2210" Created="2007-03-27 04:29:04Z">
+        <Issue Name="NoStrongName">
+         <Item>OpenGridServices.ServerConsole</Item>
+        </Issue>
+       </Message>
+       <Message TypeName="MarkAssembliesWithClsCompliant" Category="Microsoft.Design" CheckId="CA1014" Created="2007-03-27 04:29:04Z">
+        <Issue Name="NoAttr">
+         <Item>OpenGridServices.ServerConsole</Item>
+        </Issue>
+       </Message>
+      </Messages>
+      <Namespaces>
+       <Namespace Name="ServerConsole">
+        <Types>
+         <Type Name="conscmd_callback">
+          <Messages>
+           <Message TypeName="IdentifiersShouldBeCasedCorrectly" Category="Microsoft.Naming" CheckId="CA1709" Created="2007-03-27 04:29:04Z">
+            <Issue Name="Type">
+             <Item>conscmd_callback</Item>
+            </Issue>
+           </Message>
+           <Message Id="conscmd" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
+            <Issue Name="Type">
+             <Item>conscmd</Item>
+             <Item>ServerConsole.conscmd_callback</Item>
+            </Issue>
+           </Message>
+           <Message TypeName="IdentifiersShouldNotContainUnderscores" Category="Microsoft.Naming" CheckId="CA1707" Created="2007-03-27 04:29:04Z">
+            <Issue Name="Type">
+             <Item>conscmd_callback</Item>
+            </Issue>
+           </Message>
+          </Messages>
+          <Members>
+           <Member Name="RunCmd(System.String,System.String[]):System.Void">
+            <Messages>
+             <Message Id="1#cmdparams" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
+              <Issue Name="Parameter">
+               <Item>conscmd_callback.RunCmd(String, String[]):Void</Item>
+               <Item>cmdparams</Item>
+               <Item>cmdparams</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="Show(System.String):System.Void">
+            <Messages>
+             <Message Id="0#" TypeName="IdentifiersShouldBeCasedCorrectly" Category="Microsoft.Naming" CheckId="CA1709" Created="2007-03-27 04:29:04Z">
+              <Issue Name="Parameter">
+               <Item>ShowWhat</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+          </Members>
+         </Type>
+         <Type Name="ConsoleBase">
+          <Members>
+           <Member Name="CmdPrompt(System.String,System.String):System.String">
+            <Messages>
+             <Message Id="1#defaultresponse" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
+              <Issue Name="Parameter">
+               <Item>ConsoleBase.CmdPrompt(String, String):String</Item>
+               <Item>defaultresponse</Item>
+               <Item>defaultresponse</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="CmdPrompt(System.String,System.String,System.String,System.String):System.String">
+            <Messages>
+             <Message Id="2#" TypeName="IdentifiersShouldBeCasedCorrectly" Category="Microsoft.Naming" CheckId="CA1709" Created="2007-03-27 04:29:04Z">
+              <Issue Name="Parameter">
+               <Item>OptionA</Item>
+              </Issue>
+             </Message>
+             <Message Id="3#" TypeName="IdentifiersShouldBeCasedCorrectly" Category="Microsoft.Naming" CheckId="CA1709" Created="2007-03-27 04:29:04Z">
+              <Issue Name="Parameter">
+               <Item>OptionB</Item>
+              </Issue>
+             </Message>
+             <Message Id="1#defaultresponse" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
+              <Issue Name="Parameter">
+               <Item>ConsoleBase.CmdPrompt(String, String, String, String):String</Item>
+               <Item>defaultresponse</Item>
+               <Item>defaultresponse</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="PasswdPrompt(System.String):System.String">
+            <Messages>
+             <Message Id="Passwd" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
+              <Issue Name="Member">
+               <Item>Passwd</Item>
+               <Item>ConsoleBase.PasswdPrompt(String):String</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="RunCmd(System.String,System.String[]):System.Object">
+            <Messages>
+             <Message Id="0#" TypeName="IdentifiersShouldBeCasedCorrectly" Category="Microsoft.Naming" CheckId="CA1709" Created="2007-03-27 04:29:04Z">
+              <Issue Name="Parameter">
+               <Item>Cmd</Item>
+              </Issue>
+             </Message>
+             <Message Id="1#cmdparams" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
+              <Issue Name="Parameter">
+               <Item>ConsoleBase.RunCmd(String, String[]):Object</Item>
+               <Item>cmdparams</Item>
+               <Item>cmdparams</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="ShowCommands(System.String):System.Void">
+            <Messages>
+             <Message Id="0#" TypeName="IdentifiersShouldBeCasedCorrectly" Category="Microsoft.Naming" CheckId="CA1709" Created="2007-03-27 04:29:04Z">
+              <Issue Name="Parameter">
+               <Item>ShowWhat</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="Write(System.String):System.Void">
+            <Messages>
+             <Message Id="0#" TypeName="IdentifiersShouldBeCasedCorrectly" Category="Microsoft.Naming" CheckId="CA1709" Created="2007-03-27 04:29:04Z">
+              <Issue Name="Parameter">
+               <Item>Line</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="WriteLine(System.String):System.Void">
+            <Messages>
+             <Message Id="0#" TypeName="IdentifiersShouldBeCasedCorrectly" Category="Microsoft.Naming" CheckId="CA1709" Created="2007-03-27 04:29:04Z">
+              <Issue Name="Parameter">
+               <Item>Line</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+          </Members>
+         </Type>
+         <Type Name="ConsoleBase+ConsoleType">
+          <Members>
+           <Member Name="SimChat">
+            <Messages>
+             <Message Id="Sim" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
+              <Issue Name="Member">
+               <Item>Sim</Item>
+               <Item>ConsoleType.SimChat</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="TCP">
+            <Messages>
+             <Message Id="Member" TypeName="LongAcronymsShouldBePascalCased" Category="Microsoft.Naming" CheckId="CA1705" Created="2007-03-27 04:29:04Z">
+              <Issue Name="Member">
+               <Item>ConsoleType.TCP</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+          </Members>
+         </Type>
+         <Type Name="MainConsole">
+          <Messages>
+           <Message TypeName="StaticHolderTypesShouldNotHaveConstructors" Category="Microsoft.Design" CheckId="CA1053" Created="2007-03-27 04:29:04Z">
+            <Issue>
+             <Item>MainConsole</Item>
+            </Issue>
+           </Message>
+          </Messages>
+         </Type>
+        </Types>
+       </Namespace>
+      </Namespaces>
+     </Module>
+    </Modules>
+   </Target>
+   <Target Name="$(ProjectDir)/bin/OpenSim.Config.SimConfigDb4o.dll">
+    <Modules>
+     <Module Name="opensim.config.simconfigdb4o.dll">
+      <Messages>
+       <Message TypeName="AssembliesShouldDeclareMinimumSecurity" Category="Microsoft.Usage" CheckId="CA2209" Created="2007-03-27 04:29:04Z">
+        <Issue>
+         <Item>OpenSim.Config.SimConfigDb4o</Item>
+        </Issue>
+       </Message>
+       <Message TypeName="AssembliesShouldHaveValidStrongNames" Category="Microsoft.Design" CheckId="CA2210" Created="2007-03-27 04:29:04Z">
+        <Issue Name="NoStrongName">
+         <Item>OpenSim.Config.SimConfigDb4o</Item>
+        </Issue>
+       </Message>
+       <Message TypeName="MarkAssembliesWithClsCompliant" Category="Microsoft.Design" CheckId="CA1014" Created="2007-03-27 04:29:04Z">
+        <Issue Name="NoAttr">
+         <Item>OpenSim.Config.SimConfigDb4o</Item>
+        </Issue>
+       </Message>
+      </Messages>
+      <Namespaces>
+       <Namespace Name="OpenSim.Config.SimConfigDb4o">
+        <Types>
+         <Type Name="Db40ConfigPlugin">
+          <Messages>
+           <Message Id="Plugin" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
+            <Issue Name="Type">
+             <Item>Plugin</Item>
+             <Item>OpenSim.Config.SimConfigDb4o.Db40ConfigPlugin</Item>
+            </Issue>
+           </Message>
+          </Messages>
+         </Type>
+         <Type Name="DbSimConfig">
+          <Messages>
+           <Message Id="Sim" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
+            <Issue Name="Type">
+             <Item>Sim</Item>
+             <Item>OpenSim.Config.SimConfigDb4o.DbSimConfig</Item>
+            </Issue>
+           </Message>
+           <Message TypeName="ShortAcronymsShouldBeUppercase" Category="Microsoft.Naming" CheckId="CA1706" Created="2007-03-27 04:29:04Z">
+            <Issue Name="Type">
+             <Item>Db</Item>
+             <Item>OpenSim.Config.SimConfigDb4o.DbSimConfig</Item>
+            </Issue>
+           </Message>
+          </Messages>
+          <Members>
+           <Member Name="InitConfig(System.Boolean):System.Void">
+            <Messages>
+             <Message TypeName="DoNotCatchGeneralExceptionTypes" Category="Microsoft.Design" CheckId="CA1031" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>DbSimConfig.InitConfig(Boolean):Void</Item>
+               <Item>System.Exception</Item>
+              </Issue>
+             </Message>
+             <Message Id="System.UInt32.ToString" TypeName="SpecifyIFormatProvider" Category="Microsoft.Globalization" CheckId="CA1305" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>DbSimConfig.InitConfig(Boolean):Void</Item>
+               <Item>System.UInt32.ToString</Item>
+               <Item>System.UInt32.ToString(System.IFormatProvider)</Item>
+              </Issue>
+             </Message>
+             <Message Id="System.UInt64.ToString" TypeName="SpecifyIFormatProvider" Category="Microsoft.Globalization" CheckId="CA1305" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>DbSimConfig.InitConfig(Boolean):Void</Item>
+               <Item>System.UInt64.ToString</Item>
+               <Item>System.UInt64.ToString(System.IFormatProvider)</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="LoadDefaults():System.Void">
+            <Messages>
+             <Message Id="System.Convert.ToInt32(System.String)" TypeName="SpecifyIFormatProvider" Category="Microsoft.Globalization" CheckId="CA1305" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>DbSimConfig.LoadDefaults():Void</Item>
+               <Item>System.Convert.ToInt32(System.String)</Item>
+               <Item>System.Convert.ToInt32(System.String,System.IFormatProvider)</Item>
+              </Issue>
+              <Issue>
+               <Item>DbSimConfig.LoadDefaults():Void</Item>
+               <Item>System.Convert.ToInt32(System.String)</Item>
+               <Item>System.Convert.ToInt32(System.String,System.IFormatProvider)</Item>
+              </Issue>
+              <Issue>
+               <Item>DbSimConfig.LoadDefaults():Void</Item>
+               <Item>System.Convert.ToInt32(System.String)</Item>
+               <Item>System.Convert.ToInt32(System.String,System.IFormatProvider)</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+          </Members>
+         </Type>
+         <Type Name="MapStorage">
+          <Members>
+           <Member Name="Map">
+            <Messages>
+             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>Map</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+          </Members>
+         </Type>
+        </Types>
+       </Namespace>
+      </Namespaces>
+     </Module>
+    </Modules>
+   </Target>
+   <Target Name="$(ProjectDir)/bin/OpenSim.exe">
+    <Modules>
+     <Module Name="opensim.exe">
+      <Messages>
+       <Message TypeName="AssembliesShouldDeclareMinimumSecurity" Category="Microsoft.Usage" CheckId="CA2209" Created="2007-03-27 04:29:04Z">
+        <Issue>
+         <Item>OpenSim</Item>
+        </Issue>
+       </Message>
+       <Message TypeName="AssembliesShouldHaveValidStrongNames" Category="Microsoft.Design" CheckId="CA2210" Created="2007-03-27 04:29:04Z">
+        <Issue Name="NoStrongName">
+         <Item>OpenSim</Item>
+        </Issue>
+       </Message>
+       <Message TypeName="MarkAssembliesWithAssemblyVersion" Category="Microsoft.Design" CheckId="CA1016" Created="2007-03-27 04:29:04Z">
+        <Issue>
+         <Item>OpenSim</Item>
+        </Issue>
+       </Message>
+       <Message TypeName="MarkAssembliesWithClsCompliant" Category="Microsoft.Design" CheckId="CA1014" Created="2007-03-27 04:29:04Z">
+        <Issue Name="NoAttr">
+         <Item>OpenSim</Item>
+        </Issue>
+       </Message>
+       <Message TypeName="MarkAssembliesWithComVisible" Category="Microsoft.Design" CheckId="CA1017" Created="2007-03-27 04:29:04Z">
+        <Issue Name="NoAttribute" Level="CriticalError">
+         <Item>OpenSim</Item>
+        </Issue>
+       </Message>
+      </Messages>
+      <Namespaces>
+       <Namespace Name="OpenSim">
+        <Types>
+         <Type Name="RegionServer">
+          <Members>
+           <Member Name="Main(System.String[]):System.Void">
+            <Messages>
+             <Message TypeName="ValidateArgumentsOfPublicMethods" Category="Microsoft.Design" CheckId="CA1062" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>'args'</Item>
+               <Item>RegionServer.Main(String[]):Void</Item>
+              </Issue>
+              <Issue>
+               <Item>'args'</Item>
+               <Item>RegionServer.Main(String[]):Void</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+          </Members>
+         </Type>
+        </Types>
+       </Namespace>
+      </Namespaces>
+     </Module>
+    </Modules>
+   </Target>
+   <Target Name="$(ProjectDir)/bin/OpenSim.Framework.Console.dll">
+    <Modules>
+     <Module Name="opensim.framework.console.dll">
+      <Messages>
+       <Message TypeName="AssembliesShouldDeclareMinimumSecurity" Category="Microsoft.Usage" CheckId="CA2209" Created="2007-03-27 04:29:04Z">
+        <Issue>
+         <Item>OpenSim.Framework.Console</Item>
+        </Issue>
+       </Message>
+       <Message TypeName="AssembliesShouldHaveValidStrongNames" Category="Microsoft.Design" CheckId="CA2210" Created="2007-03-27 04:29:04Z">
+        <Issue Name="NoStrongName">
+         <Item>OpenSim.Framework.Console</Item>
+        </Issue>
+       </Message>
+       <Message TypeName="MarkAssembliesWithClsCompliant" Category="Microsoft.Design" CheckId="CA1014" Created="2007-03-27 04:29:04Z">
+        <Issue Name="NoAttr">
+         <Item>OpenSim.Framework.Console</Item>
+        </Issue>
+       </Message>
+      </Messages>
+      <Namespaces>
+       <Namespace Name="OpenSim.Framework.Console">
+        <Types>
+         <Type Name="ConsoleBase">
+          <Members>
+           <Member Name="CmdPrompt(System.String,System.String):System.String">
+            <Messages>
+             <Message Id="1#defaultresponse" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
+              <Issue Name="Parameter">
+               <Item>ConsoleBase.CmdPrompt(String, String):String</Item>
+               <Item>defaultresponse</Item>
+               <Item>defaultresponse</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="CmdPrompt(System.String,System.String,System.String,System.String):System.String">
+            <Messages>
+             <Message Id="2#" TypeName="IdentifiersShouldBeCasedCorrectly" Category="Microsoft.Naming" CheckId="CA1709" Created="2007-03-27 04:29:04Z">
+              <Issue Name="Parameter">
+               <Item>OptionA</Item>
+              </Issue>
+             </Message>
+             <Message Id="3#" TypeName="IdentifiersShouldBeCasedCorrectly" Category="Microsoft.Naming" CheckId="CA1709" Created="2007-03-27 04:29:04Z">
+              <Issue Name="Parameter">
+               <Item>OptionB</Item>
+              </Issue>
+             </Message>
+             <Message Id="1#defaultresponse" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
+              <Issue Name="Parameter">
+               <Item>ConsoleBase.CmdPrompt(String, String, String, String):String</Item>
+               <Item>defaultresponse</Item>
+               <Item>defaultresponse</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="RunCmd(System.String,System.String[]):System.Object">
+            <Messages>
+             <Message Id="0#" TypeName="IdentifiersShouldBeCasedCorrectly" Category="Microsoft.Naming" CheckId="CA1709" Created="2007-03-27 04:29:04Z">
+              <Issue Name="Parameter">
+               <Item>Cmd</Item>
+              </Issue>
+             </Message>
+             <Message Id="1#cmdparams" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
+              <Issue Name="Parameter">
+               <Item>ConsoleBase.RunCmd(String, String[]):Object</Item>
+               <Item>cmdparams</Item>
+               <Item>cmdparams</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="ShowCommands(System.String):System.Void">
+            <Messages>
+             <Message Id="0#" TypeName="IdentifiersShouldBeCasedCorrectly" Category="Microsoft.Naming" CheckId="CA1709" Created="2007-03-27 04:29:04Z">
+              <Issue Name="Parameter">
+               <Item>ShowWhat</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+          </Members>
+         </Type>
+         <Type Name="ConsoleBase+ConsoleType">
+          <Members>
+           <Member Name="SimChat">
+            <Messages>
+             <Message Id="Sim" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
+              <Issue Name="Member">
+               <Item>Sim</Item>
+               <Item>ConsoleType.SimChat</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="TCP">
+            <Messages>
+             <Message Id="Member" TypeName="LongAcronymsShouldBePascalCased" Category="Microsoft.Naming" CheckId="CA1705" Created="2007-03-27 04:29:04Z">
+              <Issue Name="Member">
+               <Item>ConsoleType.TCP</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+          </Members>
+         </Type>
+         <Type Name="MainConsole">
+          <Messages>
+           <Message TypeName="StaticHolderTypesShouldNotHaveConstructors" Category="Microsoft.Design" CheckId="CA1053" Created="2007-03-27 04:29:04Z">
+            <Issue>
+             <Item>MainConsole</Item>
+            </Issue>
+           </Message>
+          </Messages>
+         </Type>
+        </Types>
+       </Namespace>
+      </Namespaces>
+     </Module>
+    </Modules>
+   </Target>
+   <Target Name="$(ProjectDir)/bin/OpenSim.Framework.dll">
+    <Modules>
+     <Module Name="opensim.framework.dll">
+      <Messages>
+       <Message TypeName="AssembliesShouldDeclareMinimumSecurity" Category="Microsoft.Usage" CheckId="CA2209" Created="2007-03-27 04:29:04Z">
+        <Issue>
+         <Item>OpenSim.Framework</Item>
+        </Issue>
+       </Message>
+       <Message TypeName="AssembliesShouldHaveValidStrongNames" Category="Microsoft.Design" CheckId="CA2210" Created="2007-03-27 04:29:04Z">
+        <Issue Name="NoStrongName">
+         <Item>OpenSim.Framework</Item>
+        </Issue>
+       </Message>
+       <Message TypeName="MarkAssembliesWithClsCompliant" Category="Microsoft.Design" CheckId="CA1014" Created="2007-03-27 04:29:04Z">
+        <Issue Name="NoAttr">
+         <Item>OpenSim.Framework</Item>
+        </Issue>
+       </Message>
+      </Messages>
+      <Namespaces>
+       <Namespace Name="OpenSim.Framework.Assets">
+        <Types>
+         <Type Name="AssetBase">
+          <Members>
+           <Member Name="Data">
+            <Messages>
+             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>Data</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="Description">
+            <Messages>
+             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>Description</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="FullID">
+            <Messages>
+             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>FullID</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="InvType">
+            <Messages>
+             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>InvType</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="Name">
+            <Messages>
+             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>Name</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="Type">
+            <Messages>
+             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>Type</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+          </Members>
+         </Type>
+         <Type Name="PrimData">
+          <Members>
+           <Member Name=".ctor()">
+            <Messages>
+             <Message TypeName="DoNotInitializeUnnecessarily" Category="Microsoft.Performance" CheckId="CA1805" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>PrimData.PrimData()</Item>
+               <Item>ParentID</Item>
+               <Item>System.UInt32</Item>
+               <Item>0</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="FullID">
+            <Messages>
+             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>FullID</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="LocalID">
+            <Messages>
+             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>LocalID</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="OwnerID">
+            <Messages>
+             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>OwnerID</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="ParentID">
+            <Messages>
+             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>ParentID</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="PathBegin">
+            <Messages>
+             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>PathBegin</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="PathCurve">
+            <Messages>
+             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>PathCurve</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="PathEnd">
+            <Messages>
+             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>PathEnd</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="PathRadiusOffset">
+            <Messages>
+             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>PathRadiusOffset</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="PathRevolutions">
+            <Messages>
+             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>PathRevolutions</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="PathScaleX">
+            <Messages>
+             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>PathScaleX</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="PathScaleY">
+            <Messages>
+             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>PathScaleY</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="PathShearX">
+            <Messages>
+             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>PathShearX</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="PathShearY">
+            <Messages>
+             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>PathShearY</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="PathSkew">
+            <Messages>
+             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>PathSkew</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="PathTaperX">
+            <Messages>
+             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>PathTaperX</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="PathTaperY">
+            <Messages>
+             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>PathTaperY</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="PathTwist">
+            <Messages>
+             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>PathTwist</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="PathTwistBegin">
+            <Messages>
+             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>PathTwistBegin</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="PCode">
+            <Messages>
+             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>PCode</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="Position">
+            <Messages>
+             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>Position</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="ProfileBegin">
+            <Messages>
+             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>ProfileBegin</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="ProfileCurve">
+            <Messages>
+             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>ProfileCurve</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="ProfileEnd">
+            <Messages>
+             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>ProfileEnd</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="ProfileHollow">
+            <Messages>
+             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>ProfileHollow</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="Rotation">
+            <Messages>
+             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>Rotation</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="Scale">
+            <Messages>
+             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>Scale</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="Texture">
+            <Messages>
+             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>Texture</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+          </Members>
+         </Type>
+        </Types>
+       </Namespace>
+       <Namespace Name="OpenSim.Framework.Grid">
+        <Types>
+         <Type Name="LoginService">
+          <Messages>
+           <Message Id="Login" TypeName="UsePreferredTerms" Category="Microsoft.Naming" CheckId="CA1726" Created="2007-03-27 04:29:04Z">
+            <Issue Name="Type">
+             <Item>Login</Item>
+             <Item>LoginService</Item>
+             <Item>LogOn</Item>
+            </Issue>
+           </Message>
+          </Messages>
+         </Type>
+        </Types>
+       </Namespace>
+       <Namespace Name="OpenSim.Framework.Interfaces">
+        <Types>
+         <Type Name="AgentCircuitData">
+          <Members>
+           <Member Name="AgentID">
+            <Messages>
+             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>AgentID</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="circuitcode">
+            <Messages>
+             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>circuitcode</Item>
+              </Issue>
+             </Message>
+             <Message Id="circuitcode" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
+              <Issue Name="Member">
+               <Item>circuitcode</Item>
+               <Item>AgentCircuitData.circuitcode</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="firstname">
+            <Messages>
+             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>firstname</Item>
+              </Issue>
+             </Message>
+             <Message Id="firstname" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
+              <Issue Name="Member">
+               <Item>firstname</Item>
+               <Item>AgentCircuitData.firstname</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="lastname">
+            <Messages>
+             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>lastname</Item>
+              </Issue>
+             </Message>
+             <Message Id="lastname" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
+              <Issue Name="Member">
+               <Item>lastname</Item>
+               <Item>AgentCircuitData.lastname</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="SecureSessionID">
+            <Messages>
+             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>SecureSessionID</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="SessionID">
+            <Messages>
+             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>SessionID</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+          </Members>
+         </Type>
+         <Type Name="ARequest">
+          <Messages>
+           <Message TypeName="OverrideEqualsAndOperatorEqualsOnValueTypes" Category="Microsoft.Performance" CheckId="CA1815" Created="2007-03-27 04:29:04Z">
+            <Issue Name="Equals">
+             <Item>OpenSim.Framework.Interfaces.ARequest</Item>
+            </Issue>
+            <Issue Name="op_Equality">
+             <Item>OpenSim.Framework.Interfaces.ARequest</Item>
+            </Issue>
+           </Message>
+          </Messages>
+          <Members>
+           <Member Name="AssetID">
+            <Messages>
+             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>AssetID</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="IsTexture">
+            <Messages>
+             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>IsTexture</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+          </Members>
+         </Type>
+         <Type Name="AuthenticateResponse">
+          <Members>
+           <Member Name="Authorised">
+            <Messages>
+             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>Authorised</Item>
+              </Issue>
+             </Message>
+             <Message Id="Authorised" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
+              <Issue Name="Member">
+               <Item>Authorised</Item>
+               <Item>AuthenticateResponse.Authorised</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="LoginInfo">
+            <Messages>
+             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>LoginInfo</Item>
+              </Issue>
+             </Message>
+             <Message Id="Login" TypeName="UsePreferredTerms" Category="Microsoft.Naming" CheckId="CA1726" Created="2007-03-27 04:29:04Z">
+              <Issue Name="Member">
+               <Item>Login</Item>
+               <Item>LoginInfo</Item>
+               <Item>LogOn</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+          </Members>
+         </Type>
+         <Type Name="IAssetPlugin">
+          <Messages>
+           <Message Id="Plugin" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
+            <Issue Name="Type">
+             <Item>Plugin</Item>
+             <Item>OpenSim.Framework.Interfaces.IAssetPlugin</Item>
+            </Issue>
+           </Message>
+          </Messages>
+          <Members>
+           <Member Name="GetAssetServer():OpenSim.Framework.Interfaces.IAssetServer">
+            <Messages>
+             <Message TypeName="UsePropertiesWhereAppropriate" Category="Microsoft.Design" CheckId="CA1024" Created="2007-03-27 04:29:04Z">
+              <Issue Certainty="50">
+               <Item>GetAssetServer</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+          </Members>
+         </Type>
+         <Type Name="IAssetReceiver">
+          <Members>
+           <Member Name="AssetReceived(OpenSim.Framework.Assets.AssetBase,System.Boolean):System.Void">
+            <Messages>
+             <Message Id="1#" TypeName="IdentifiersShouldBeCasedCorrectly" Category="Microsoft.Naming" CheckId="CA1709" Created="2007-03-27 04:29:04Z">
+              <Issue Name="Parameter">
+               <Item>IsTexture</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+          </Members>
+         </Type>
+         <Type Name="IAssetServer">
+          <Members>
+           <Member Name="RequestAsset(libsecondlife.LLUUID,System.Boolean):System.Void">
+            <Messages>
+             <Message Id="0#" TypeName="ShortAcronymsShouldBeUppercase" Category="Microsoft.Naming" CheckId="CA1706" Created="2007-03-27 04:29:04Z">
+              <Issue Name="ParameterId">
+               <Item>ID</Item>
+               <Item>assetID</Item>
+               <Item>Id</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="SetServerInfo(System.String,System.String):System.Void">
+            <Messages>
+             <Message Id="0#" TypeName="IdentifiersShouldBeCasedCorrectly" Category="Microsoft.Naming" CheckId="CA1709" Created="2007-03-27 04:29:04Z">
+              <Issue Name="Parameter">
+               <Item>ServerUrl</Item>
+              </Issue>
+             </Message>
+             <Message Id="1#" TypeName="IdentifiersShouldBeCasedCorrectly" Category="Microsoft.Naming" CheckId="CA1709" Created="2007-03-27 04:29:04Z">
+              <Issue Name="Parameter">
+               <Item>ServerKey</Item>
+              </Issue>
+             </Message>
+             <Message Id="0#" TypeName="UriParametersShouldNotBeStrings" Category="Microsoft.Design" CheckId="CA1054" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>ServerUrl</Item>
+               <Item>IAssetServer.SetServerInfo(String, String):Void</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+          </Members>
+         </Type>
+         <Type Name="IGridPlugin">
+          <Messages>
+           <Message Id="Plugin" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
+            <Issue Name="Type">
+             <Item>Plugin</Item>
+             <Item>OpenSim.Framework.Interfaces.IGridPlugin</Item>
+            </Issue>
+           </Message>
+          </Messages>
+          <Members>
+           <Member Name="GetGridServer():OpenSim.Framework.Interfaces.IGridServer">
+            <Messages>
+             <Message TypeName="UsePropertiesWhereAppropriate" Category="Microsoft.Design" CheckId="CA1024" Created="2007-03-27 04:29:04Z">
+              <Issue Certainty="50">
+               <Item>GetGridServer</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+          </Members>
+         </Type>
+         <Type Name="IGridServer">
+          <Members>
+           <Member Name="AuthenticateSession(libsecondlife.LLUUID,libsecondlife.LLUUID,System.UInt32):OpenSim.Framework.Interfaces.AuthenticateResponse">
+            <Messages>
+             <Message Id="0#" TypeName="ShortAcronymsShouldBeUppercase" Category="Microsoft.Naming" CheckId="CA1706" Created="2007-03-27 04:29:04Z">
+              <Issue Name="ParameterId">
+               <Item>ID</Item>
+               <Item>sessionID</Item>
+               <Item>Id</Item>
+              </Issue>
+             </Message>
+             <Message Id="1#" TypeName="ShortAcronymsShouldBeUppercase" Category="Microsoft.Naming" CheckId="CA1706" Created="2007-03-27 04:29:04Z">
+              <Issue Name="ParameterId">
+               <Item>ID</Item>
+               <Item>agentID</Item>
+               <Item>Id</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="GetName():System.String">
+            <Messages>
+             <Message TypeName="UsePropertiesWhereAppropriate" Category="Microsoft.Design" CheckId="CA1024" Created="2007-03-27 04:29:04Z">
+              <Issue Certainty="50">
+               <Item>GetName</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="LogoutSession(libsecondlife.LLUUID,libsecondlife.LLUUID,System.UInt32):System.Boolean">
+            <Messages>
+             <Message Id="0#" TypeName="ShortAcronymsShouldBeUppercase" Category="Microsoft.Naming" CheckId="CA1706" Created="2007-03-27 04:29:04Z">
+              <Issue Name="ParameterId">
+               <Item>ID</Item>
+               <Item>sessionID</Item>
+               <Item>Id</Item>
+              </Issue>
+             </Message>
+             <Message Id="1#" TypeName="ShortAcronymsShouldBeUppercase" Category="Microsoft.Naming" CheckId="CA1706" Created="2007-03-27 04:29:04Z">
+              <Issue Name="ParameterId">
+               <Item>ID</Item>
+               <Item>agentID</Item>
+               <Item>Id</Item>
+              </Issue>
+             </Message>
+             <Message Id="Logout" TypeName="UsePreferredTerms" Category="Microsoft.Naming" CheckId="CA1726" Created="2007-03-27 04:29:04Z">
+              <Issue Name="Member">
+               <Item>Logout</Item>
+               <Item>LogoutSession</Item>
+               <Item>LogOff</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="RequestNeighbours():OpenSim.Framework.Interfaces.NeighbourInfo[]">
+            <Messages>
+             <Message Id="Neighbours" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
+              <Issue Name="Member">
+               <Item>Neighbours</Item>
+               <Item>IGridServer.RequestNeighbours():NeighbourInfo[]</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="RequestUUIDBlock():OpenSim.Framework.Interfaces.UUIDBlock">
+            <Messages>
+             <Message Id="Member" TypeName="LongAcronymsShouldBePascalCased" Category="Microsoft.Naming" CheckId="CA1705" Created="2007-03-27 04:29:04Z">
+              <Issue Name="Member">
+               <Item>IGridServer.RequestUUIDBlock():UUIDBlock</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="SetServerInfo(System.String,System.String,System.String):System.Void">
+            <Messages>
+             <Message Id="0#" TypeName="IdentifiersShouldBeCasedCorrectly" Category="Microsoft.Naming" CheckId="CA1709" Created="2007-03-27 04:29:04Z">
+              <Issue Name="Parameter">
+               <Item>ServerUrl</Item>
+              </Issue>
+             </Message>
+             <Message Id="1#" TypeName="IdentifiersShouldBeCasedCorrectly" Category="Microsoft.Naming" CheckId="CA1709" Created="2007-03-27 04:29:04Z">
+              <Issue Name="Parameter">
+               <Item>SendKey</Item>
+              </Issue>
+             </Message>
+             <Message Id="2#" TypeName="IdentifiersShouldBeCasedCorrectly" Category="Microsoft.Naming" CheckId="CA1709" Created="2007-03-27 04:29:04Z">
+              <Issue Name="Parameter">
+               <Item>RecvKey</Item>
+              </Issue>
+             </Message>
+             <Message Id="2#Recv" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
+              <Issue Name="Parameter">
+               <Item>IGridServer.SetServerInfo(String, String, String):Void</Item>
+               <Item>Recv</Item>
+               <Item>RecvKey</Item>
+              </Issue>
+             </Message>
+             <Message Id="0#" TypeName="UriParametersShouldNotBeStrings" Category="Microsoft.Design" CheckId="CA1054" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>ServerUrl</Item>
+               <Item>IGridServer.SetServerInfo(String, String, String):Void</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+          </Members>
+         </Type>
+         <Type Name="ILocalStorage">
+          <Members>
+           <Member Name="RemovePrim(libsecondlife.LLUUID):System.Void">
+            <Messages>
+             <Message Id="0#" TypeName="ShortAcronymsShouldBeUppercase" Category="Microsoft.Naming" CheckId="CA1706" Created="2007-03-27 04:29:04Z">
+              <Issue Name="ParameterId">
+               <Item>ID</Item>
+               <Item>primID</Item>
+               <Item>Id</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="ShutDown():System.Void">
+            <Messages>
+             <Message Id="ShutDown" TypeName="CompoundWordsShouldBeCasedCorrectly" Category="Microsoft.Naming" CheckId="CA1702" Created="2007-03-27 04:29:04Z">
+              <Issue Name="ShouldBeDiscreteTerm">
+               <Item>ShutDown</Item>
+               <Item>method</Item>
+               <Item>ShutDown</Item>
+               <Item>Shutdown</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+          </Members>
+         </Type>
+         <Type Name="ISimConfig">
+          <Messages>
+           <Message Id="Sim" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
+            <Issue Name="Type">
+             <Item>Sim</Item>
+             <Item>OpenSim.Framework.Interfaces.ISimConfig</Item>
+            </Issue>
+           </Message>
+          </Messages>
+          <Members>
+           <Member Name="GetConfigObject():OpenSim.Framework.Interfaces.SimConfig">
+            <Messages>
+             <Message TypeName="UsePropertiesWhereAppropriate" Category="Microsoft.Design" CheckId="CA1024" Created="2007-03-27 04:29:04Z">
+              <Issue Certainty="50">
+               <Item>GetConfigObject</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+          </Members>
+         </Type>
+         <Type Name="IUserServer">
+          <Members>
+           <Member Name="RequestAgentsInventory(libsecondlife.LLUUID):OpenSim.Framework.Inventory.AgentInventory">
+            <Messages>
+             <Message Id="0#" TypeName="ShortAcronymsShouldBeUppercase" Category="Microsoft.Naming" CheckId="CA1706" Created="2007-03-27 04:29:04Z">
+              <Issue Name="ParameterId">
+               <Item>ID</Item>
+               <Item>agentID</Item>
+               <Item>Id</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="SetServerInfo(System.String,System.String,System.String):System.Void">
+            <Messages>
+             <Message Id="0#" TypeName="IdentifiersShouldBeCasedCorrectly" Category="Microsoft.Naming" CheckId="CA1709" Created="2007-03-27 04:29:04Z">
+              <Issue Name="Parameter">
+               <Item>ServerUrl</Item>
+              </Issue>
+             </Message>
+             <Message Id="1#" TypeName="IdentifiersShouldBeCasedCorrectly" Category="Microsoft.Naming" CheckId="CA1709" Created="2007-03-27 04:29:04Z">
+              <Issue Name="Parameter">
+               <Item>SendKey</Item>
+              </Issue>
+             </Message>
+             <Message Id="2#" TypeName="IdentifiersShouldBeCasedCorrectly" Category="Microsoft.Naming" CheckId="CA1709" Created="2007-03-27 04:29:04Z">
+              <Issue Name="Parameter">
+               <Item>RecvKey</Item>
+              </Issue>
+             </Message>
+             <Message Id="2#Recv" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
+              <Issue Name="Parameter">
+               <Item>IUserServer.SetServerInfo(String, String, String):Void</Item>
+               <Item>Recv</Item>
+               <Item>RecvKey</Item>
+              </Issue>
+             </Message>
+             <Message Id="0#" TypeName="UriParametersShouldNotBeStrings" Category="Microsoft.Design" CheckId="CA1054" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>ServerUrl</Item>
+               <Item>IUserServer.SetServerInfo(String, String, String):Void</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+          </Members>
+         </Type>
+         <Type Name="LocalGridBase">
+          <Members>
+           <Member Name="LogoutSession(libsecondlife.LLUUID,libsecondlife.LLUUID,System.UInt32):System.Boolean">
+            <Messages>
+             <Message Id="Logout" TypeName="UsePreferredTerms" Category="Microsoft.Naming" CheckId="CA1726" Created="2007-03-27 04:29:04Z">
+              <Issue Name="Member">
+               <Item>Logout</Item>
+               <Item>LogoutSession</Item>
+               <Item>LogOff</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+          </Members>
+         </Type>
+         <Type Name="Login">
+          <Messages>
+           <Message Id="Login" TypeName="UsePreferredTerms" Category="Microsoft.Naming" CheckId="CA1726" Created="2007-03-27 04:29:04Z">
+            <Issue Name="Type">
+             <Item>Login</Item>
+             <Item>Login</Item>
+             <Item>LogOn</Item>
+            </Issue>
+           </Message>
+          </Messages>
+          <Members>
+           <Member Name="Agent">
+            <Messages>
+             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>Agent</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="BaseFolder">
+            <Messages>
+             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>BaseFolder</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="First">
+            <Messages>
+             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>First</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="InventoryFolder">
+            <Messages>
+             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>InventoryFolder</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="Last">
+            <Messages>
+             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>Last</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="SecureSession">
+            <Messages>
+             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>SecureSession</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="Session">
+            <Messages>
+             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>Session</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+          </Members>
+         </Type>
+         <Type Name="NeighbourInfo">
+          <Messages>
+           <Message Id="Neighbour" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
+            <Issue Name="Type">
+             <Item>Neighbour</Item>
+             <Item>OpenSim.Framework.Interfaces.NeighbourInfo</Item>
+            </Issue>
+           </Message>
+          </Messages>
+          <Members>
+           <Member Name="regionhandle">
+            <Messages>
+             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>regionhandle</Item>
+              </Issue>
+             </Message>
+             <Message Id="regionhandle" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
+              <Issue Name="Member">
+               <Item>regionhandle</Item>
+               <Item>NeighbourInfo.regionhandle</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="RegionLocX">
+            <Messages>
+             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>RegionLocX</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="RegionLocY">
+            <Messages>
+             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>RegionLocY</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="sim_ip">
+            <Messages>
+             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>sim_ip</Item>
+              </Issue>
+             </Message>
+             <Message Id="sim" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
+              <Issue Name="Member">
+               <Item>sim</Item>
+               <Item>NeighbourInfo.sim_ip</Item>
+              </Issue>
+             </Message>
+             <Message Id="Member" TypeName="IdentifiersShouldNotContainUnderscores" Category="Microsoft.Naming" CheckId="CA1707" Created="2007-03-27 04:29:04Z">
+              <Issue Name="Member">
+               <Item>sim_ip</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="sim_port">
+            <Messages>
+             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>sim_port</Item>
+              </Issue>
+             </Message>
+             <Message Id="sim" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
+              <Issue Name="Member">
+               <Item>sim</Item>
+               <Item>NeighbourInfo.sim_port</Item>
+              </Issue>
+             </Message>
+             <Message Id="Member" TypeName="IdentifiersShouldNotContainUnderscores" Category="Microsoft.Naming" CheckId="CA1707" Created="2007-03-27 04:29:04Z">
+              <Issue Name="Member">
+               <Item>sim_port</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+          </Members>
+         </Type>
+         <Type Name="RemoteGridBase">
+          <Members>
+           <Member Name="agentcircuits">
+            <Messages>
+             <Message TypeName="CollectionPropertiesShouldBeReadOnly" Category="Microsoft.Usage" CheckId="CA2227" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>agentcircuits</Item>
+              </Issue>
+             </Message>
+             <Message Id="Member" TypeName="IdentifiersShouldBeCasedCorrectly" Category="Microsoft.Naming" CheckId="CA1709" Created="2007-03-27 04:29:04Z">
+              <Issue Name="Member">
+               <Item>agentcircuits</Item>
+              </Issue>
+             </Message>
+             <Message Id="agentcircuits" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
+              <Issue Name="Member">
+               <Item>agentcircuits</Item>
+               <Item>RemoteGridBase.agentcircuits:Dictionary`2&lt;System.UInt32,OpenSim.Framework.Interfaces.AgentCircuitData&gt;</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="LogoutSession(libsecondlife.LLUUID,libsecondlife.LLUUID,System.UInt32):System.Boolean">
+            <Messages>
+             <Message Id="Logout" TypeName="UsePreferredTerms" Category="Microsoft.Naming" CheckId="CA1726" Created="2007-03-27 04:29:04Z">
+              <Issue Name="Member">
+               <Item>Logout</Item>
+               <Item>LogoutSession</Item>
+               <Item>LogOff</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+          </Members>
+         </Type>
+         <Type Name="SimConfig">
+          <Messages>
+           <Message Id="Sim" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
+            <Issue Name="Type">
+             <Item>Sim</Item>
+             <Item>OpenSim.Framework.Interfaces.SimConfig</Item>
+            </Issue>
+           </Message>
+          </Messages>
+          <Members>
+           <Member Name="AssetSendKey">
+            <Messages>
+             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>AssetSendKey</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="AssetURL">
+            <Messages>
+             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>AssetURL</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="GridRecvKey">
+            <Messages>
+             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>GridRecvKey</Item>
+              </Issue>
+             </Message>
+             <Message Id="Recv" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
+              <Issue Name="Member">
+               <Item>Recv</Item>
+               <Item>SimConfig.GridRecvKey</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="GridSendKey">
+            <Messages>
+             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>GridSendKey</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="GridURL">
+            <Messages>
+             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>GridURL</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="IPListenAddr">
+            <Messages>
+             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>IPListenAddr</Item>
+              </Issue>
+             </Message>
+             <Message Id="Addr" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
+              <Issue Name="Member">
+               <Item>Addr</Item>
+               <Item>SimConfig.IPListenAddr</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="IPListenPort">
+            <Messages>
+             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>IPListenPort</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="RegionHandle">
+            <Messages>
+             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>RegionHandle</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="RegionLocX">
+            <Messages>
+             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>RegionLocX</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="RegionLocY">
+            <Messages>
+             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>RegionLocY</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="RegionName">
+            <Messages>
+             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>RegionName</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="SaveMap(System.Single[]):System.Void">
+            <Messages>
+             <Message Id="0#heightmap" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
+              <Issue Name="Parameter">
+               <Item>SimConfig.SaveMap(Single[]):Void</Item>
+               <Item>heightmap</Item>
+               <Item>heightmap</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="UserRecvKey">
+            <Messages>
+             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>UserRecvKey</Item>
+              </Issue>
+             </Message>
+             <Message Id="Recv" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
+              <Issue Name="Member">
+               <Item>Recv</Item>
+               <Item>SimConfig.UserRecvKey</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="UserSendKey">
+            <Messages>
+             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>UserSendKey</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="UserURL">
+            <Messages>
+             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>UserURL</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+          </Members>
+         </Type>
+         <Type Name="UUIDBlock">
+          <Messages>
+           <Message TypeName="LongAcronymsShouldBePascalCased" Category="Microsoft.Naming" CheckId="CA1705" Created="2007-03-27 04:29:04Z">
+            <Issue Name="Type">
+             <Item>UUIDBlock</Item>
+            </Issue>
+           </Message>
+           <Message TypeName="OverrideEqualsAndOperatorEqualsOnValueTypes" Category="Microsoft.Performance" CheckId="CA1815" Created="2007-03-27 04:29:04Z">
+            <Issue Name="Equals">
+             <Item>OpenSim.Framework.Interfaces.UUIDBlock</Item>
+            </Issue>
+            <Issue Name="op_Equality">
+             <Item>OpenSim.Framework.Interfaces.UUIDBlock</Item>
+            </Issue>
+           </Message>
+          </Messages>
+          <Members>
+           <Member Name="BlockEnd">
+            <Messages>
+             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>BlockEnd</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="BlockStart">
+            <Messages>
+             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>BlockStart</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+          </Members>
+         </Type>
+        </Types>
+       </Namespace>
+       <Namespace Name="OpenSim.Framework.Inventory">
+        <Types>
+         <Type Name="AgentInventory">
+          <Members>
+           <Member Name=".ctor()">
+            <Messages>
+             <Message TypeName="DoNotCallOverridableMethodsInConstructors" Category="Microsoft.Usage" CheckId="CA2214" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>AgentInventory.AgentInventory()</Item>
+               <Item>&#xD;&#xA;&#xD;&#xA;AgentInventory.AgentInventory()&#xD;&#xA;AgentInventory.Initialise():Void</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="AddToInventory(libsecondlife.LLUUID,OpenSim.Framework.Assets.AssetBase):libsecondlife.LLUUID">
+            <Messages>
+             <Message Id="0#" TypeName="ShortAcronymsShouldBeUppercase" Category="Microsoft.Naming" CheckId="CA1706" Created="2007-03-27 04:29:04Z">
+              <Issue Name="ParameterId">
+               <Item>ID</Item>
+               <Item>folderID</Item>
+               <Item>Id</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="AgentID">
+            <Messages>
+             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>AgentID</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="CreateNewFolder(libsecondlife.LLUUID,System.UInt16):System.Boolean">
+            <Messages>
+             <Message Id="0#" TypeName="ShortAcronymsShouldBeUppercase" Category="Microsoft.Naming" CheckId="CA1706" Created="2007-03-27 04:29:04Z">
+              <Issue Name="ParameterId">
+               <Item>ID</Item>
+               <Item>folderID</Item>
+               <Item>Id</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="Initialise():System.Void">
+            <Messages>
+             <Message Id="Initialise" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
+              <Issue Name="Member">
+               <Item>Initialise</Item>
+               <Item>AgentInventory.Initialise():Void</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="InventoryFolders">
+            <Messages>
+             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>InventoryFolders</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="InventoryItems">
+            <Messages>
+             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>InventoryItems</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="InventoryRoot">
+            <Messages>
+             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>InventoryRoot</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="LastCached">
+            <Messages>
+             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>LastCached</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="UpdateItem(libsecondlife.LLUUID,OpenSim.Framework.Assets.AssetBase):System.Boolean">
+            <Messages>
+             <Message Id="0#" TypeName="ShortAcronymsShouldBeUppercase" Category="Microsoft.Naming" CheckId="CA1706" Created="2007-03-27 04:29:04Z">
+              <Issue Name="ParameterId">
+               <Item>ID</Item>
+               <Item>itemID</Item>
+               <Item>Id</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="Wearables">
+            <Messages>
+             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>Wearables</Item>
+              </Issue>
+             </Message>
+             <Message Id="Wearables" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
+              <Issue Name="Member">
+               <Item>Wearables</Item>
+               <Item>AgentInventory.Wearables</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+          </Members>
+         </Type>
+         <Type Name="AvatarWearable">
+          <Members>
+           <Member Name="AssetID">
+            <Messages>
+             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>AssetID</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="ItemID">
+            <Messages>
+             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>ItemID</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+          </Members>
+         </Type>
+         <Type Name="InventoryFolder">
+          <Members>
+           <Member Name="DefaultType">
+            <Messages>
+             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>DefaultType</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="FolderID">
+            <Messages>
+             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>FolderID</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="FolderName">
+            <Messages>
+             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>FolderName</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="Items">
+            <Messages>
+             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>Items</Item>
+              </Issue>
+             </Message>
+             <Message TypeName="DoNotExposeGenericLists" Category="Microsoft.Design" CheckId="CA1002" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>System.Collections.Generic.List`1&lt;OpenSim.Framework.Inventory.InventoryItem&gt;</Item>
+               <Item>InventoryFolder.Items</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="OwnerID">
+            <Messages>
+             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>OwnerID</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="ParentID">
+            <Messages>
+             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>ParentID</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="Version">
+            <Messages>
+             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>Version</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+          </Members>
+         </Type>
+         <Type Name="InventoryItem">
+          <Members>
+           <Member Name="AssetID">
+            <Messages>
+             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>AssetID</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="CreatorID">
+            <Messages>
+             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>CreatorID</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="Description">
+            <Messages>
+             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>Description</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="FolderID">
+            <Messages>
+             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>FolderID</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="InvType">
+            <Messages>
+             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>InvType</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="ItemID">
+            <Messages>
+             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>ItemID</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="Name">
+            <Messages>
+             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>Name</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="OwnerID">
+            <Messages>
+             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>OwnerID</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="Type">
+            <Messages>
+             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>Type</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+          </Members>
+         </Type>
+        </Types>
+       </Namespace>
+       <Namespace Name="OpenSim.Framework.Sims">
+        <Types>
+         <Type Name="SimProfile">
+          <Messages>
+           <Message Id="Sim" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
+            <Issue Name="Type">
+             <Item>Sim</Item>
+             <Item>OpenSim.Framework.Sims.SimProfile</Item>
+            </Issue>
+           </Message>
+          </Messages>
+          <Members>
+           <Member Name="LoadFromGrid(System.UInt64,System.String,System.String,System.String):OpenSim.Framework.Sims.SimProfile">
+            <Messages>
+             <Message TypeName="DoNotCatchGeneralExceptionTypes" Category="Microsoft.Design" CheckId="CA1031" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>SimProfile.LoadFromGrid(UInt64, String, String, String):SimProfile</Item>
+               <Item>System.Exception</Item>
+              </Issue>
+             </Message>
+             <Message Id="1#" TypeName="IdentifiersShouldBeCasedCorrectly" Category="Microsoft.Naming" CheckId="CA1709" Created="2007-03-27 04:29:04Z">
+              <Issue Name="Parameter">
+               <Item>GridURL</Item>
+              </Issue>
+             </Message>
+             <Message Id="2#" TypeName="IdentifiersShouldBeCasedCorrectly" Category="Microsoft.Naming" CheckId="CA1709" Created="2007-03-27 04:29:04Z">
+              <Issue Name="Parameter">
+               <Item>SendKey</Item>
+              </Issue>
+             </Message>
+             <Message Id="3#" TypeName="IdentifiersShouldBeCasedCorrectly" Category="Microsoft.Naming" CheckId="CA1709" Created="2007-03-27 04:29:04Z">
+              <Issue Name="Parameter">
+               <Item>RecvKey</Item>
+              </Issue>
+             </Message>
+             <Message Id="3#Recv" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
+              <Issue Name="Parameter">
+               <Item>SimProfile.LoadFromGrid(UInt64, String, String, String):SimProfile</Item>
+               <Item>Recv</Item>
+               <Item>RecvKey</Item>
+              </Issue>
+             </Message>
+             <Message Id="0#" TypeName="IdentifiersShouldNotContainUnderscores" Category="Microsoft.Naming" CheckId="CA1707" Created="2007-03-27 04:29:04Z">
+              <Issue Name="Parameter">
+               <Item>region_handle</Item>
+              </Issue>
+             </Message>
+             <Message Id="1#" TypeName="LongAcronymsShouldBePascalCased" Category="Microsoft.Naming" CheckId="CA1705" Created="2007-03-27 04:29:04Z">
+              <Issue Name="Parameter">
+               <Item>GridURL</Item>
+              </Issue>
+             </Message>
+             <Message Id="RecvKey" TypeName="ReviewUnusedParameters" Category="Microsoft.Usage" CheckId="CA1801" Created="2007-03-27 04:29:04Z" FixCategory="Breaking">
+              <Issue>
+               <Item>RecvKey</Item>
+               <Item>SimProfile.LoadFromGrid(UInt64, String, String, String):SimProfile</Item>
+              </Issue>
+             </Message>
+             <Message Id="System.Convert.ToUInt16(System.Object)" TypeName="SpecifyIFormatProvider" Category="Microsoft.Globalization" CheckId="CA1305" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>SimProfile.LoadFromGrid(UInt64, String, String, String):SimProfile</Item>
+               <Item>System.Convert.ToUInt16(System.Object)</Item>
+               <Item>System.Convert.ToUInt16(System.Object,System.IFormatProvider)</Item>
+              </Issue>
+             </Message>
+             <Message Id="System.Convert.ToUInt32(System.Object)" TypeName="SpecifyIFormatProvider" Category="Microsoft.Globalization" CheckId="CA1305" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>SimProfile.LoadFromGrid(UInt64, String, String, String):SimProfile</Item>
+               <Item>System.Convert.ToUInt32(System.Object)</Item>
+               <Item>System.Convert.ToUInt32(System.Object,System.IFormatProvider)</Item>
+              </Issue>
+              <Issue>
+               <Item>SimProfile.LoadFromGrid(UInt64, String, String, String):SimProfile</Item>
+               <Item>System.Convert.ToUInt32(System.Object)</Item>
+               <Item>System.Convert.ToUInt32(System.Object,System.IFormatProvider)</Item>
+              </Issue>
+             </Message>
+             <Message Id="System.Convert.ToUInt64(System.Object)" TypeName="SpecifyIFormatProvider" Category="Microsoft.Globalization" CheckId="CA1305" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>SimProfile.LoadFromGrid(UInt64, String, String, String):SimProfile</Item>
+               <Item>System.Convert.ToUInt64(System.Object)</Item>
+               <Item>System.Convert.ToUInt64(System.Object,System.IFormatProvider)</Item>
+              </Issue>
+             </Message>
+             <Message Id="System.UInt64.ToString" TypeName="SpecifyIFormatProvider" Category="Microsoft.Globalization" CheckId="CA1305" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>SimProfile.LoadFromGrid(UInt64, String, String, String):SimProfile</Item>
+               <Item>System.UInt64.ToString</Item>
+               <Item>System.UInt64.ToString(System.IFormatProvider)</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+          </Members>
+         </Type>
+         <Type Name="SimProfileBase">
+          <Messages>
+           <Message Id="Sim" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
+            <Issue Name="Type">
+             <Item>Sim</Item>
+             <Item>OpenSim.Framework.Sims.SimProfileBase</Item>
+            </Issue>
+           </Message>
+          </Messages>
+          <Members>
+           <Member Name="caps_url">
+            <Messages>
+             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>caps_url</Item>
+              </Issue>
+             </Message>
+             <Message Id="Member" TypeName="IdentifiersShouldNotContainUnderscores" Category="Microsoft.Naming" CheckId="CA1707" Created="2007-03-27 04:29:04Z">
+              <Issue Name="Member">
+               <Item>caps_url</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="recvkey">
+            <Messages>
+             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>recvkey</Item>
+              </Issue>
+             </Message>
+             <Message Id="recvkey" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
+              <Issue Name="Member">
+               <Item>recvkey</Item>
+               <Item>SimProfileBase.recvkey</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="regionhandle">
+            <Messages>
+             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>regionhandle</Item>
+              </Issue>
+             </Message>
+             <Message Id="regionhandle" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
+              <Issue Name="Member">
+               <Item>regionhandle</Item>
+               <Item>SimProfileBase.regionhandle</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="RegionLocX">
+            <Messages>
+             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>RegionLocX</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="RegionLocY">
+            <Messages>
+             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>RegionLocY</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="regionname">
+            <Messages>
+             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>regionname</Item>
+              </Issue>
+             </Message>
+             <Message Id="regionname" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
+              <Issue Name="Member">
+               <Item>regionname</Item>
+               <Item>SimProfileBase.regionname</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="sendkey">
+            <Messages>
+             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>sendkey</Item>
+              </Issue>
+             </Message>
+             <Message Id="sendkey" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
+              <Issue Name="Member">
+               <Item>sendkey</Item>
+               <Item>SimProfileBase.sendkey</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="sim_ip">
+            <Messages>
+             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>sim_ip</Item>
+              </Issue>
+             </Message>
+             <Message Id="sim" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
+              <Issue Name="Member">
+               <Item>sim</Item>
+               <Item>SimProfileBase.sim_ip</Item>
+              </Issue>
+             </Message>
+             <Message Id="Member" TypeName="IdentifiersShouldNotContainUnderscores" Category="Microsoft.Naming" CheckId="CA1707" Created="2007-03-27 04:29:04Z">
+              <Issue Name="Member">
+               <Item>sim_ip</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="sim_port">
+            <Messages>
+             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>sim_port</Item>
+              </Issue>
+             </Message>
+             <Message Id="sim" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
+              <Issue Name="Member">
+               <Item>sim</Item>
+               <Item>SimProfileBase.sim_port</Item>
+              </Issue>
+             </Message>
+             <Message Id="Member" TypeName="IdentifiersShouldNotContainUnderscores" Category="Microsoft.Naming" CheckId="CA1707" Created="2007-03-27 04:29:04Z">
+              <Issue Name="Member">
+               <Item>sim_port</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="UUID">
+            <Messages>
+             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>UUID</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+          </Members>
+         </Type>
+        </Types>
+       </Namespace>
+       <Namespace Name="OpenSim.Framework.Terrain">
+        <Types>
+         <Type Name="HeightmapGenHills">
+          <Messages>
+           <Message Id="Heightmap" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
+            <Issue Name="Type">
+             <Item>Heightmap</Item>
+             <Item>OpenSim.Framework.Terrain.HeightmapGenHills</Item>
+            </Issue>
+           </Message>
+          </Messages>
+          <Members>
+           <Member Name="GenerateHeightmap(System.Int32,System.Single,System.Single,System.Boolean):System.Single[]">
+            <Messages>
+             <Message Id="0#num" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
+              <Issue Name="Parameter">
+               <Item>HeightmapGenHills.GenerateHeightmap(Int32, Single, Single, Boolean):Single[]</Item>
+               <Item>num</Item>
+               <Item>numHills</Item>
+              </Issue>
+             </Message>
+             <Message Id="Heightmap" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
+              <Issue Name="Member">
+               <Item>Heightmap</Item>
+               <Item>HeightmapGenHills.GenerateHeightmap(Int32, Single, Single, Boolean):Single[]</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="NumHills">
+            <Messages>
+             <Message TypeName="AvoidUnusedPrivateFields" Category="Microsoft.Performance" CheckId="CA1823" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>HeightmapGenHills.NumHills</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+          </Members>
+         </Type>
+        </Types>
+       </Namespace>
+       <Namespace Name="OpenSim.Framework.User">
+        <Types>
+         <Type Name="UserProfile">
+          <Members>
+           <Member Name=".ctor()">
+            <Messages>
+             <Message TypeName="DoNotInitializeUnnecessarily" Category="Microsoft.Performance" CheckId="CA1805" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>UserProfile.UserProfile()</Item>
+               <Item>IsGridGod</Item>
+               <Item>System.Boolean</Item>
+               <Item>false</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="AddSimCircuit(System.UInt32,libsecondlife.LLUUID):System.Void">
+            <Messages>
+             <Message Id="Sim" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
+              <Issue Name="Member">
+               <Item>Sim</Item>
+               <Item>UserProfile.AddSimCircuit(UInt32, LLUUID):Void</Item>
+              </Issue>
+             </Message>
+             <Message Id="1#" TypeName="LongAcronymsShouldBePascalCased" Category="Microsoft.Naming" CheckId="CA1705" Created="2007-03-27 04:29:04Z">
+              <Issue Name="Parameter">
+               <Item>regionUUID</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="AssetURL">
+            <Messages>
+             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>AssetURL</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="Circuits">
+            <Messages>
+             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>Circuits</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="CurrentSecureSessionID">
+            <Messages>
+             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>CurrentSecureSessionID</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="CurrentSessionID">
+            <Messages>
+             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>CurrentSessionID</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="firstname">
+            <Messages>
+             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>firstname</Item>
+              </Issue>
+             </Message>
+             <Message Id="firstname" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
+              <Issue Name="Member">
+               <Item>firstname</Item>
+               <Item>UserProfile.firstname</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="homelookat">
+            <Messages>
+             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>homelookat</Item>
+              </Issue>
+             </Message>
+             <Message Id="homelookat" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
+              <Issue Name="Member">
+               <Item>homelookat</Item>
+               <Item>UserProfile.homelookat</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="homepos">
+            <Messages>
+             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>homepos</Item>
+              </Issue>
+             </Message>
+             <Message Id="homepos" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
+              <Issue Name="Member">
+               <Item>homepos</Item>
+               <Item>UserProfile.homepos</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="homeregionhandle">
+            <Messages>
+             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>homeregionhandle</Item>
+              </Issue>
+             </Message>
+             <Message Id="homeregionhandle" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
+              <Issue Name="Member">
+               <Item>homeregionhandle</Item>
+               <Item>UserProfile.homeregionhandle</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="Inventory">
+            <Messages>
+             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>Inventory</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="IsGridGod">
+            <Messages>
+             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>IsGridGod</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="IsLocal">
+            <Messages>
+             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>IsLocal</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="lastname">
+            <Messages>
+             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>lastname</Item>
+              </Issue>
+             </Message>
+             <Message Id="lastname" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
+              <Issue Name="Member">
+               <Item>lastname</Item>
+               <Item>UserProfile.lastname</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="MD5passwd">
+            <Messages>
+             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>MD5passwd</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="UUID">
+            <Messages>
+             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>UUID</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+          </Members>
+         </Type>
+         <Type Name="UserProfileManager">
+          <Members>
+           <Member Name="CustomiseResponse(System.Collections.Hashtable&amp;,OpenSim.Framework.User.UserProfile):System.Void">
+            <Messages>
+             <Message Id="0#" TypeName="DoNotPassTypesByReference" Category="Microsoft.Design" CheckId="CA1045" Created="2007-03-27 04:29:04Z">
+              <Issue Level="CriticalWarning">
+               <Item>response</Item>
+              </Issue>
+             </Message>
+             <Message Id="Customise" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
+              <Issue Name="Member">
+               <Item>Customise</Item>
+               <Item>UserProfileManager.CustomiseResponse(Hashtable&amp;, UserProfile):Void</Item>
+              </Issue>
+             </Message>
+             <Message Id="GridResp" TypeName="RemoveUnusedLocals" Category="Microsoft.Performance" CheckId="CA1804" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>UserProfileManager.CustomiseResponse(Hashtable&amp;, UserProfile):Void</Item>
+               <Item>GridResp</Item>
+               <Item>Nwc.XmlRpc.XmlRpcResponse</Item>
+              </Issue>
+             </Message>
+             <Message Id="System.Single.ToString" TypeName="SpecifyIFormatProvider" Category="Microsoft.Globalization" CheckId="CA1305" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>UserProfileManager.CustomiseResponse(Hashtable&amp;, UserProfile):Void</Item>
+               <Item>System.Single.ToString</Item>
+               <Item>System.Single.ToString(System.IFormatProvider)</Item>
+              </Issue>
+              <Issue>
+               <Item>UserProfileManager.CustomiseResponse(Hashtable&amp;, UserProfile):Void</Item>
+               <Item>System.Single.ToString</Item>
+               <Item>System.Single.ToString(System.IFormatProvider)</Item>
+              </Issue>
+              <Issue>
+               <Item>UserProfileManager.CustomiseResponse(Hashtable&amp;, UserProfile):Void</Item>
+               <Item>System.Single.ToString</Item>
+               <Item>System.Single.ToString(System.IFormatProvider)</Item>
+              </Issue>
+              <Issue>
+               <Item>UserProfileManager.CustomiseResponse(Hashtable&amp;, UserProfile):Void</Item>
+               <Item>System.Single.ToString</Item>
+               <Item>System.Single.ToString(System.IFormatProvider)</Item>
+              </Issue>
+              <Issue>
+               <Item>UserProfileManager.CustomiseResponse(Hashtable&amp;, UserProfile):Void</Item>
+               <Item>System.Single.ToString</Item>
+               <Item>System.Single.ToString(System.IFormatProvider)</Item>
+              </Issue>
+              <Issue>
+               <Item>UserProfileManager.CustomiseResponse(Hashtable&amp;, UserProfile):Void</Item>
+               <Item>System.Single.ToString</Item>
+               <Item>System.Single.ToString(System.IFormatProvider)</Item>
+              </Issue>
+             </Message>
+             <Message Id="System.UInt32.ToString" TypeName="SpecifyIFormatProvider" Category="Microsoft.Globalization" CheckId="CA1305" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>UserProfileManager.CustomiseResponse(Hashtable&amp;, UserProfile):Void</Item>
+               <Item>System.UInt32.ToString</Item>
+               <Item>System.UInt32.ToString(System.IFormatProvider)</Item>
+              </Issue>
+              <Issue>
+               <Item>UserProfileManager.CustomiseResponse(Hashtable&amp;, UserProfile):Void</Item>
+               <Item>System.UInt32.ToString</Item>
+               <Item>System.UInt32.ToString(System.IFormatProvider)</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="DefaultStartupMsg">
+            <Messages>
+             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>DefaultStartupMsg</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="GridRecvKey">
+            <Messages>
+             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>GridRecvKey</Item>
+              </Issue>
+             </Message>
+             <Message Id="Recv" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
+              <Issue Name="Member">
+               <Item>Recv</Item>
+               <Item>UserProfileManager.GridRecvKey</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="GridSendKey">
+            <Messages>
+             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>GridSendKey</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="GridURL">
+            <Messages>
+             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>GridURL</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="ParseXMLRPC(System.String):System.String">
+            <Messages>
+             <Message TypeName="DoNotCatchGeneralExceptionTypes" Category="Microsoft.Design" CheckId="CA1031" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>UserProfileManager.ParseXMLRPC(String):String</Item>
+               <Item>System.Exception</Item>
+              </Issue>
+             </Message>
+             <Message Id="Member" TypeName="LongAcronymsShouldBePascalCased" Category="Microsoft.Naming" CheckId="CA1705" Created="2007-03-27 04:29:04Z">
+              <Issue Name="Member">
+               <Item>UserProfileManager.ParseXMLRPC(String):String</Item>
+              </Issue>
+             </Message>
+             <Message Id="System.Int32.ToString" TypeName="SpecifyIFormatProvider" Category="Microsoft.Globalization" CheckId="CA1305" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>UserProfileManager.ParseXMLRPC(String):String</Item>
+               <Item>System.Int32.ToString</Item>
+               <Item>System.Int32.ToString(System.IFormatProvider)</Item>
+              </Issue>
+              <Issue>
+               <Item>UserProfileManager.ParseXMLRPC(String):String</Item>
+               <Item>System.Int32.ToString</Item>
+               <Item>System.Int32.ToString(System.IFormatProvider)</Item>
+              </Issue>
+             </Message>
+             <Message Id="System.Single.ToString" TypeName="SpecifyIFormatProvider" Category="Microsoft.Globalization" CheckId="CA1305" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>UserProfileManager.ParseXMLRPC(String):String</Item>
+               <Item>System.Single.ToString</Item>
+               <Item>System.Single.ToString(System.IFormatProvider)</Item>
+              </Issue>
+              <Issue>
+               <Item>UserProfileManager.ParseXMLRPC(String):String</Item>
+               <Item>System.Single.ToString</Item>
+               <Item>System.Single.ToString(System.IFormatProvider)</Item>
+              </Issue>
+              <Issue>
+               <Item>UserProfileManager.ParseXMLRPC(String):String</Item>
+               <Item>System.Single.ToString</Item>
+               <Item>System.Single.ToString(System.IFormatProvider)</Item>
+              </Issue>
+              <Issue>
+               <Item>UserProfileManager.ParseXMLRPC(String):String</Item>
+               <Item>System.Single.ToString</Item>
+               <Item>System.Single.ToString(System.IFormatProvider)</Item>
+              </Issue>
+              <Issue>
+               <Item>UserProfileManager.ParseXMLRPC(String):String</Item>
+               <Item>System.Single.ToString</Item>
+               <Item>System.Single.ToString(System.IFormatProvider)</Item>
+              </Issue>
+              <Issue>
+               <Item>UserProfileManager.ParseXMLRPC(String):String</Item>
+               <Item>System.Single.ToString</Item>
+               <Item>System.Single.ToString(System.IFormatProvider)</Item>
+              </Issue>
+              <Issue>
+               <Item>UserProfileManager.ParseXMLRPC(String):String</Item>
+               <Item>System.Single.ToString</Item>
+               <Item>System.Single.ToString(System.IFormatProvider)</Item>
+              </Issue>
+              <Issue>
+               <Item>UserProfileManager.ParseXMLRPC(String):String</Item>
+               <Item>System.Single.ToString</Item>
+               <Item>System.Single.ToString(System.IFormatProvider)</Item>
+              </Issue>
+              <Issue>
+               <Item>UserProfileManager.ParseXMLRPC(String):String</Item>
+               <Item>System.Single.ToString</Item>
+               <Item>System.Single.ToString(System.IFormatProvider)</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="SetKeys(System.String,System.String,System.String,System.String):System.Void">
+            <Messages>
+             <Message Id="1#recv" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
+              <Issue Name="Parameter">
+               <Item>UserProfileManager.SetKeys(String, String, String, String):Void</Item>
+               <Item>recv</Item>
+               <Item>recvKey</Item>
+              </Issue>
+             </Message>
+             <Message Id="2#" TypeName="UriParametersShouldNotBeStrings" Category="Microsoft.Design" CheckId="CA1054" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>url</Item>
+               <Item>UserProfileManager.SetKeys(String, String, String, String):Void</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+          </Members>
+         </Type>
+         <Type Name="UserProfileManagerBase">
+          <Members>
+           <Member Name="AuthenticateUser(System.String,System.String,System.String):System.Boolean">
+            <Messages>
+             <Message Id="0#firstname" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
+              <Issue Name="Parameter">
+               <Item>UserProfileManagerBase.AuthenticateUser(String, String, String):Boolean</Item>
+               <Item>firstname</Item>
+               <Item>firstname</Item>
+              </Issue>
+             </Message>
+             <Message Id="1#lastname" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
+              <Issue Name="Parameter">
+               <Item>UserProfileManagerBase.AuthenticateUser(String, String, String):Boolean</Item>
+               <Item>lastname</Item>
+               <Item>lastname</Item>
+              </Issue>
+             </Message>
+             <Message Id="2#passwd" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
+              <Issue Name="Parameter">
+               <Item>UserProfileManagerBase.AuthenticateUser(String, String, String):Boolean</Item>
+               <Item>passwd</Item>
+               <Item>passwd</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="CreateNewProfile(System.String,System.String,System.String):OpenSim.Framework.User.UserProfile">
+            <Messages>
+             <Message Id="2#" TypeName="IdentifiersShouldBeCasedCorrectly" Category="Microsoft.Naming" CheckId="CA1709" Created="2007-03-27 04:29:04Z">
+              <Issue Name="Parameter">
+               <Item>MD5passwd</Item>
+              </Issue>
+             </Message>
+             <Message Id="0#firstname" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
+              <Issue Name="Parameter">
+               <Item>UserProfileManagerBase.CreateNewProfile(String, String, String):UserProfile</Item>
+               <Item>firstname</Item>
+               <Item>firstname</Item>
+              </Issue>
+             </Message>
+             <Message Id="1#lastname" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
+              <Issue Name="Parameter">
+               <Item>UserProfileManagerBase.CreateNewProfile(String, String, String):UserProfile</Item>
+               <Item>lastname</Item>
+               <Item>lastname</Item>
+              </Issue>
+             </Message>
+             <Message Id="2#M" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
+              <Issue Name="Parameter">
+               <Item>UserProfileManagerBase.CreateNewProfile(String, String, String):UserProfile</Item>
+               <Item>M</Item>
+               <Item>MD5passwd</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="GetProfileByLLUUID(libsecondlife.LLUUID):OpenSim.Framework.User.UserProfile">
+            <Messages>
+             <Message Id="0#" TypeName="IdentifiersShouldBeCasedCorrectly" Category="Microsoft.Naming" CheckId="CA1709" Created="2007-03-27 04:29:04Z">
+              <Issue Name="Parameter">
+               <Item>ProfileLLUUID</Item>
+              </Issue>
+             </Message>
+             <Message Id="0#" TypeName="LongAcronymsShouldBePascalCased" Category="Microsoft.Naming" CheckId="CA1705" Created="2007-03-27 04:29:04Z">
+              <Issue Name="Parameter">
+               <Item>ProfileLLUUID</Item>
+              </Issue>
+             </Message>
+             <Message Id="Member" TypeName="LongAcronymsShouldBePascalCased" Category="Microsoft.Naming" CheckId="CA1705" Created="2007-03-27 04:29:04Z">
+              <Issue Name="Member">
+               <Item>UserProfileManagerBase.GetProfileByLLUUID(LLUUID):UserProfile</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="GetProfileByName(System.String,System.String):OpenSim.Framework.User.UserProfile">
+            <Messages>
+             <Message Id="0#firstname" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
+              <Issue Name="Parameter">
+               <Item>UserProfileManagerBase.GetProfileByName(String, String):UserProfile</Item>
+               <Item>firstname</Item>
+               <Item>firstname</Item>
+              </Issue>
+             </Message>
+             <Message Id="1#lastname" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
+              <Issue Name="Parameter">
+               <Item>UserProfileManagerBase.GetProfileByName(String, String):UserProfile</Item>
+               <Item>lastname</Item>
+               <Item>lastname</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="GetUsersInventory(libsecondlife.LLUUID):OpenSim.Framework.Inventory.AgentInventory">
+            <Messages>
+             <Message Id="0#" TypeName="ShortAcronymsShouldBeUppercase" Category="Microsoft.Naming" CheckId="CA1706" Created="2007-03-27 04:29:04Z">
+              <Issue Name="ParameterId">
+               <Item>ID</Item>
+               <Item>agentID</Item>
+               <Item>Id</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="SetGod(libsecondlife.LLUUID):System.Void">
+            <Messages>
+             <Message Id="0#" TypeName="IdentifiersShouldBeCasedCorrectly" Category="Microsoft.Naming" CheckId="CA1709" Created="2007-03-27 04:29:04Z">
+              <Issue Name="Parameter">
+               <Item>GodID</Item>
+              </Issue>
+             </Message>
+             <Message Id="0#" TypeName="ShortAcronymsShouldBeUppercase" Category="Microsoft.Naming" CheckId="CA1706" Created="2007-03-27 04:29:04Z">
+              <Issue Name="ParameterId">
+               <Item>ID</Item>
+               <Item>GodID</Item>
+               <Item>Id</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="UserProfiles">
+            <Messages>
+             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>UserProfiles</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+          </Members>
+         </Type>
+        </Types>
+       </Namespace>
+       <Namespace Name="OpenSim.Framework.Utilities">
+        <Types>
+         <Type Name="BlockingQueue`1">
+          <Messages>
+           <Message TypeName="IdentifiersShouldNotHaveIncorrectSuffix" Category="Microsoft.Naming" CheckId="CA1711" Created="2007-03-27 04:29:04Z">
+            <Issue>
+             <Item>OpenSim.Framework.Utilities.BlockingQueue`1</Item>
+             <Item>Queue</Item>
+            </Issue>
+           </Message>
+          </Messages>
+         </Type>
+         <Type Name="Util">
+          <Messages>
+           <Message Id="Util" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
+            <Issue Name="Type">
+             <Item>Util</Item>
+             <Item>OpenSim.Framework.Utilities.Util</Item>
+            </Issue>
+           </Message>
+           <Message TypeName="StaticHolderTypesShouldNotHaveConstructors" Category="Microsoft.Design" CheckId="CA1053" Created="2007-03-27 04:29:04Z">
+            <Issue>
+             <Item>Util</Item>
+            </Issue>
+           </Message>
+           <Message TypeName="TypeNamesShouldNotMatchNamespaces" Category="Microsoft.Naming" CheckId="CA1724" Created="2007-03-27 04:29:04Z">
+            <Issue>
+             <Item>Util</Item>
+             <Item>System.Web.Util</Item>
+            </Issue>
+           </Message>
+          </Messages>
+          <Members>
+           <Member Name="GetNextXferID():System.UInt32">
+            <Messages>
+             <Message Id="Xfer" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
+              <Issue Name="Member">
+               <Item>Xfer</Item>
+               <Item>Util.GetNextXferID():UInt32</Item>
+              </Issue>
+             </Message>
+             <Message Id="Member" TypeName="ShortAcronymsShouldBeUppercase" Category="Microsoft.Naming" CheckId="CA1706" Created="2007-03-27 04:29:04Z">
+              <Issue Name="MemberId">
+               <Item>Util.GetNextXferID():UInt32</Item>
+              </Issue>
+             </Message>
+             <Message TypeName="UsePropertiesWhereAppropriate" Category="Microsoft.Design" CheckId="CA1024" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>GetNextXferID</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="UIntsToLong(System.UInt32,System.UInt32):System.UInt64">
+            <Messages>
+             <Message Id="0#" TypeName="IdentifiersShouldBeCasedCorrectly" Category="Microsoft.Naming" CheckId="CA1709" Created="2007-03-27 04:29:04Z">
+              <Issue Name="Parameter">
+               <Item>X</Item>
+              </Issue>
+             </Message>
+             <Message Id="1#" TypeName="IdentifiersShouldBeCasedCorrectly" Category="Microsoft.Naming" CheckId="CA1709" Created="2007-03-27 04:29:04Z">
+              <Issue Name="Parameter">
+               <Item>Y</Item>
+              </Issue>
+             </Message>
+             <Message Id="0#X" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
+              <Issue Name="ParameterOneLetter">
+               <Item>Util.UIntsToLong(UInt32, UInt32):UInt64</Item>
+               <Item>X</Item>
+              </Issue>
+             </Message>
+             <Message Id="1#Y" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
+              <Issue Name="ParameterOneLetter">
+               <Item>Util.UIntsToLong(UInt32, UInt32):UInt64</Item>
+               <Item>Y</Item>
+              </Issue>
+             </Message>
+             <Message Id="Ints" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
+              <Issue Name="Member">
+               <Item>Ints</Item>
+               <Item>Util.UIntsToLong(UInt32, UInt32):UInt64</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+          </Members>
+         </Type>
+        </Types>
+       </Namespace>
+      </Namespaces>
+     </Module>
+    </Modules>
+   </Target>
+   <Target Name="$(ProjectDir)/bin/OpenSim.GridInterfaces.Local.dll">
+    <Modules>
+     <Module Name="opensim.gridinterfaces.local.dll">
+      <Messages>
+       <Message TypeName="AssembliesShouldDeclareMinimumSecurity" Category="Microsoft.Usage" CheckId="CA2209" Created="2007-03-27 04:29:04Z">
+        <Issue>
+         <Item>OpenSim.GridInterfaces.Local</Item>
+        </Issue>
+       </Message>
+       <Message TypeName="AssembliesShouldHaveValidStrongNames" Category="Microsoft.Design" CheckId="CA2210" Created="2007-03-27 04:29:04Z">
+        <Issue Name="NoStrongName">
+         <Item>OpenSim.GridInterfaces.Local</Item>
+        </Issue>
+       </Message>
+       <Message TypeName="MarkAssembliesWithClsCompliant" Category="Microsoft.Design" CheckId="CA1014" Created="2007-03-27 04:29:04Z">
+        <Issue Name="NoAttr">
+         <Item>OpenSim.GridInterfaces.Local</Item>
+        </Issue>
+       </Message>
+      </Messages>
+      <Namespaces>
+       <Namespace Name="OpenSim.GridInterfaces.Local">
+        <Types>
+         <Type Name="AssetStorage">
+          <Members>
+           <Member Name="Data">
+            <Messages>
+             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>Data</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="Name">
+            <Messages>
+             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>Name</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="Type">
+            <Messages>
+             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>Type</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="UUID">
+            <Messages>
+             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>UUID</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+          </Members>
+         </Type>
+         <Type Name="AssetUUIDQuery">
+          <Messages>
+           <Message TypeName="LongAcronymsShouldBePascalCased" Category="Microsoft.Naming" CheckId="CA1705" Created="2007-03-27 04:29:04Z">
+            <Issue Name="Type">
+             <Item>AssetUUIDQuery</Item>
+            </Issue>
+           </Message>
+          </Messages>
+          <Members>
+           <Member Name="Match(OpenSim.GridInterfaces.Local.AssetStorage):System.Boolean">
+            <Messages>
+             <Message TypeName="ValidateArgumentsOfPublicMethods" Category="Microsoft.Design" CheckId="CA1062" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>'asset'</Item>
+               <Item>AssetUUIDQuery.Match(AssetStorage):Boolean</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+          </Members>
+         </Type>
+         <Type Name="LocalAssetPlugin">
+          <Messages>
+           <Message Id="Plugin" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
+            <Issue Name="Type">
+             <Item>Plugin</Item>
+             <Item>OpenSim.GridInterfaces.Local.LocalAssetPlugin</Item>
+            </Issue>
+           </Message>
+          </Messages>
+         </Type>
+         <Type Name="LocalAssetServer">
+          <Members>
+           <Member Name=".ctor()">
+            <Messages>
+             <Message TypeName="DoNotCatchGeneralExceptionTypes" Category="Microsoft.Design" CheckId="CA1031" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>LocalAssetServer.LocalAssetServer()</Item>
+               <Item>System.Exception</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="LoadAsset(OpenSim.Framework.Assets.AssetBase,System.Boolean,System.String):System.Void">
+            <Messages>
+             <Message TypeName="MarkMembersAsStatic" Category="Microsoft.Performance" CheckId="CA1822" Created="2007-03-27 04:29:04Z" FixCategory="NonBreaking">
+              <Issue>
+               <Item>LocalAssetServer.LoadAsset(AssetBase, Boolean, String):Void</Item>
+              </Issue>
+             </Message>
+             <Message Id="image" TypeName="ReviewUnusedParameters" Category="Microsoft.Usage" CheckId="CA1801" Created="2007-03-27 04:29:04Z" FixCategory="NonBreaking">
+              <Issue>
+               <Item>image</Item>
+               <Item>LocalAssetServer.LoadAsset(AssetBase, Boolean, String):Void</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="UploadNewAsset(OpenSim.Framework.Assets.AssetBase):System.Void">
+            <Messages>
+             <Message TypeName="ValidateArgumentsOfPublicMethods" Category="Microsoft.Design" CheckId="CA1062" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>'asset'</Item>
+               <Item>LocalAssetServer.UploadNewAsset(AssetBase):Void</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+          </Members>
+         </Type>
+         <Type Name="LocalGridPlugin">
+          <Messages>
+           <Message Id="Plugin" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
+            <Issue Name="Type">
+             <Item>Plugin</Item>
+             <Item>OpenSim.GridInterfaces.Local.LocalGridPlugin</Item>
+            </Issue>
+           </Message>
+          </Messages>
+         </Type>
+         <Type Name="LocalGridServer">
+          <Members>
+           <Member Name="LogoutSession(libsecondlife.LLUUID,libsecondlife.LLUUID,System.UInt32):System.Boolean">
+            <Messages>
+             <Message Id="Logout" TypeName="UsePreferredTerms" Category="Microsoft.Naming" CheckId="CA1726" Created="2007-03-27 04:29:04Z">
+              <Issue Name="Member">
+               <Item>Logout</Item>
+               <Item>LogoutSession</Item>
+               <Item>LogOff</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="Sessions">
+            <Messages>
+             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>Sessions</Item>
+              </Issue>
+             </Message>
+             <Message TypeName="DoNotExposeGenericLists" Category="Microsoft.Design" CheckId="CA1002" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>System.Collections.Generic.List`1&lt;OpenSim.Framework.Interfaces.Login&gt;</Item>
+               <Item>LocalGridServer.Sessions</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+          </Members>
+         </Type>
+        </Types>
+       </Namespace>
+      </Namespaces>
+     </Module>
+    </Modules>
+   </Target>
+   <Target Name="$(ProjectDir)/bin/OpenSim.GridInterfaces.Remote.dll">
+    <Modules>
+     <Module Name="opensim.gridinterfaces.remote.dll">
+      <Messages>
+       <Message TypeName="AssembliesShouldDeclareMinimumSecurity" Category="Microsoft.Usage" CheckId="CA2209" Created="2007-03-27 04:29:04Z">
+        <Issue>
+         <Item>OpenSim.GridInterfaces.Remote</Item>
+        </Issue>
+       </Message>
+       <Message TypeName="AssembliesShouldHaveValidStrongNames" Category="Microsoft.Design" CheckId="CA2210" Created="2007-03-27 04:29:04Z">
+        <Issue Name="NoStrongName">
+         <Item>OpenSim.GridInterfaces.Remote</Item>
+        </Issue>
+       </Message>
+       <Message TypeName="MarkAssembliesWithClsCompliant" Category="Microsoft.Design" CheckId="CA1014" Created="2007-03-27 04:29:04Z">
+        <Issue Name="NoAttr">
+         <Item>OpenSim.GridInterfaces.Remote</Item>
+        </Issue>
+       </Message>
+      </Messages>
+      <Namespaces>
+       <Namespace Name="OpenSim.GridInterfaces.Remote">
+        <Types>
+         <Type Name="RemoteAssetPlugin">
+          <Messages>
+           <Message Id="Plugin" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
+            <Issue Name="Type">
+             <Item>Plugin</Item>
+             <Item>OpenSim.GridInterfaces.Remote.RemoteAssetPlugin</Item>
+            </Issue>
+           </Message>
+          </Messages>
+         </Type>
+         <Type Name="RemoteGridPlugin">
+          <Messages>
+           <Message Id="Plugin" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
+            <Issue Name="Type">
+             <Item>Plugin</Item>
+             <Item>OpenSim.GridInterfaces.Remote.RemoteGridPlugin</Item>
+            </Issue>
+           </Message>
+          </Messages>
+         </Type>
+         <Type Name="RemoteGridServer">
+          <Members>
+           <Member Name="agentcircuits">
+            <Messages>
+             <Message TypeName="CollectionPropertiesShouldBeReadOnly" Category="Microsoft.Usage" CheckId="CA2227" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>agentcircuits</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="AuthenticateSession(libsecondlife.LLUUID,libsecondlife.LLUUID,System.UInt32):OpenSim.Framework.Interfaces.AuthenticateResponse">
+            <Messages>
+             <Message Id="2#" TypeName="ParameterNamesShouldMatchBaseDeclaration" Category="Microsoft.Naming" CheckId="CA1725" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>circuitcode</Item>
+               <Item>RemoteGridServer.AuthenticateSession(LLUUID, LLUUID, UInt32):AuthenticateResponse</Item>
+               <Item>circuitCode</Item>
+               <Item>IGridServer.AuthenticateSession(LLUUID, LLUUID, UInt32):AuthenticateResponse</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="GridRecvKey">
+            <Messages>
+             <Message TypeName="AvoidUnusedPrivateFields" Category="Microsoft.Performance" CheckId="CA1823" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>RemoteGridServer.GridRecvKey</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="GridSendKey">
+            <Messages>
+             <Message TypeName="AvoidUnusedPrivateFields" Category="Microsoft.Performance" CheckId="CA1823" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>RemoteGridServer.GridSendKey</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="LogoutSession(libsecondlife.LLUUID,libsecondlife.LLUUID,System.UInt32):System.Boolean">
+            <Messages>
+             <Message TypeName="PassSystemUriObjectsInsteadOfStrings" Category="Microsoft.Usage" CheckId="CA2234" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>RemoteGridServer.LogoutSession(LLUUID, LLUUID, UInt32):Boolean</Item>
+               <Item>WebRequest.Create(Uri):WebRequest</Item>
+               <Item>WebRequest.Create(String):WebRequest</Item>
+              </Issue>
+             </Message>
+             <Message Id="GridResponse" TypeName="RemoveUnusedLocals" Category="Microsoft.Performance" CheckId="CA1804" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>RemoteGridServer.LogoutSession(LLUUID, LLUUID, UInt32):Boolean</Item>
+               <Item>GridResponse</Item>
+               <Item>System.String</Item>
+              </Issue>
+             </Message>
+             <Message Id="Logout" TypeName="UsePreferredTerms" Category="Microsoft.Naming" CheckId="CA1726" Created="2007-03-27 04:29:04Z">
+              <Issue Name="Member">
+               <Item>Logout</Item>
+               <Item>LogoutSession</Item>
+               <Item>LogOff</Item>
+              </Issue>
+             </Message>
+             <Message TypeName="ValidateArgumentsOfPublicMethods" Category="Microsoft.Design" CheckId="CA1062" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>'sessionID'</Item>
+               <Item>RemoteGridServer.LogoutSession(LLUUID, LLUUID, UInt32):Boolean</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+          </Members>
+         </Type>
+        </Types>
+       </Namespace>
+      </Namespaces>
+     </Module>
+    </Modules>
+   </Target>
+   <Target Name="$(ProjectDir)/bin/OpenSim.Physics.Manager.dll">
+    <Modules>
+     <Module Name="opensim.physics.manager.dll">
+      <Messages>
+       <Message TypeName="AssembliesShouldDeclareMinimumSecurity" Category="Microsoft.Usage" CheckId="CA2209" Created="2007-03-27 04:29:04Z">
+        <Issue>
+         <Item>OpenSim.Physics.Manager</Item>
+        </Issue>
+       </Message>
+       <Message TypeName="AssembliesShouldHaveValidStrongNames" Category="Microsoft.Design" CheckId="CA2210" Created="2007-03-27 04:29:04Z">
+        <Issue Name="NoStrongName">
+         <Item>OpenSim.Physics.Manager</Item>
+        </Issue>
+       </Message>
+       <Message TypeName="MarkAssembliesWithClsCompliant" Category="Microsoft.Design" CheckId="CA1014" Created="2007-03-27 04:29:04Z">
+        <Issue Name="NoAttr">
+         <Item>OpenSim.Physics.Manager</Item>
+        </Issue>
+       </Message>
+      </Messages>
+      <Namespaces>
+       <Namespace Name="OpenSim.Physics.Manager">
+        <Types>
+         <Type Name="IPhysicsPlugin">
+          <Messages>
+           <Message Id="Plugin" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
+            <Issue Name="Type">
+             <Item>Plugin</Item>
+             <Item>OpenSim.Physics.Manager.IPhysicsPlugin</Item>
+            </Issue>
+           </Message>
+          </Messages>
+          <Members>
+           <Member Name="GetName():System.String">
+            <Messages>
+             <Message TypeName="UsePropertiesWhereAppropriate" Category="Microsoft.Design" CheckId="CA1024" Created="2007-03-27 04:29:04Z">
+              <Issue Certainty="50">
+               <Item>GetName</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="GetScene():OpenSim.Physics.Manager.PhysicsScene">
+            <Messages>
+             <Message TypeName="UsePropertiesWhereAppropriate" Category="Microsoft.Design" CheckId="CA1024" Created="2007-03-27 04:29:04Z">
+              <Issue Certainty="50">
+               <Item>GetScene</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+          </Members>
+         </Type>
+         <Type Name="NullPhysicsScene">
+          <Members>
+           <Member Name="SetTerrain(System.Single[]):System.Void">
+            <Messages>
+             <Message TypeName="ValidateArgumentsOfPublicMethods" Category="Microsoft.Design" CheckId="CA1062" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>'heightMap'</Item>
+               <Item>NullPhysicsScene.SetTerrain(Single[]):Void</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="Simulate(System.Single):System.Void">
+            <Messages>
+             <Message Id="System.Int32.ToString" TypeName="SpecifyIFormatProvider" Category="Microsoft.Globalization" CheckId="CA1305" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>NullPhysicsScene.Simulate(Single):Void</Item>
+               <Item>System.Int32.ToString</Item>
+               <Item>System.Int32.ToString(System.IFormatProvider)</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+          </Members>
+         </Type>
+         <Type Name="PhysicsActor">
+          <Members>
+           <Member Name="Kinematic">
+            <Messages>
+             <Message Id="Kinematic" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
+              <Issue Name="Member">
+               <Item>Kinematic</Item>
+               <Item>PhysicsActor.Kinematic:Boolean</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+          </Members>
+         </Type>
+         <Type Name="PhysicsManager">
+          <Members>
+           <Member Name="GetPhysicsScene(System.String):OpenSim.Physics.Manager.PhysicsScene">
+            <Messages>
+             <Message Id="System.String.Format(System.String,System.Object)" TypeName="SpecifyIFormatProvider" Category="Microsoft.Globalization" CheckId="CA1305" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>PhysicsManager.GetPhysicsScene(String):PhysicsScene</Item>
+               <Item>System.String.Format(System.String,System.Object)</Item>
+               <Item>System.String.Format(System.IFormatProvider,System.String,System.Object[])</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="LoadPlugins():System.Void">
+            <Messages>
+             <Message Id="Plugins" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
+              <Issue Name="Member">
+               <Item>Plugins</Item>
+               <Item>PhysicsManager.LoadPlugins():Void</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+          </Members>
+         </Type>
+         <Type Name="PhysicsVector">
+          <Members>
+           <Member Name=".ctor(System.Single,System.Single,System.Single)">
+            <Messages>
+             <Message Id="0#x" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
+              <Issue Name="ParameterOneLetter">
+               <Item>PhysicsVector.PhysicsVector(Single, Single, Single)</Item>
+               <Item>x</Item>
+              </Issue>
+             </Message>
+             <Message Id="1#y" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
+              <Issue Name="ParameterOneLetter">
+               <Item>PhysicsVector.PhysicsVector(Single, Single, Single)</Item>
+               <Item>y</Item>
+              </Issue>
+             </Message>
+             <Message Id="2#z" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
+              <Issue Name="ParameterOneLetter">
+               <Item>PhysicsVector.PhysicsVector(Single, Single, Single)</Item>
+               <Item>z</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="X">
+            <Messages>
+             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>X</Item>
+              </Issue>
+             </Message>
+             <Message Id="X" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
+              <Issue Name="MemberOneLetter">
+               <Item>X</Item>
+               <Item>PhysicsVector.X</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="Y">
+            <Messages>
+             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>Y</Item>
+              </Issue>
+             </Message>
+             <Message Id="Y" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
+              <Issue Name="MemberOneLetter">
+               <Item>Y</Item>
+               <Item>PhysicsVector.Y</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="Z">
+            <Messages>
+             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>Z</Item>
+              </Issue>
+             </Message>
+             <Message Id="Z" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
+              <Issue Name="MemberOneLetter">
+               <Item>Z</Item>
+               <Item>PhysicsVector.Z</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="Zero">
+            <Messages>
+             <Message TypeName="DoNotDeclareReadOnlyMutableReferenceTypes" Category="Microsoft.Security" CheckId="CA2104" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>PhysicsVector.Zero</Item>
+               <Item>OpenSim.Physics.Manager.PhysicsVector</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+          </Members>
+         </Type>
+        </Types>
+       </Namespace>
+      </Namespaces>
+     </Module>
+    </Modules>
+   </Target>
+   <Target Name="$(ProjectDir)/bin/OpenSim.RegionServer.dll">
+    <Modules>
+     <Module Name="opensim.regionserver.dll">
+      <Messages>
+       <Message TypeName="AssembliesShouldDeclareMinimumSecurity" Category="Microsoft.Usage" CheckId="CA2209" Created="2007-03-27 04:29:04Z">
+        <Issue>
+         <Item>OpenSim.RegionServer</Item>
+        </Issue>
+       </Message>
+       <Message TypeName="AssembliesShouldHaveValidStrongNames" Category="Microsoft.Design" CheckId="CA2210" Created="2007-03-27 04:29:04Z">
+        <Issue Name="NoStrongName">
+         <Item>OpenSim.RegionServer</Item>
+        </Issue>
+       </Message>
+       <Message TypeName="MarkAssembliesWithAssemblyVersion" Category="Microsoft.Design" CheckId="CA1016" Created="2007-03-27 04:29:04Z">
+        <Issue>
+         <Item>OpenSim.RegionServer</Item>
+        </Issue>
+       </Message>
+       <Message TypeName="MarkAssembliesWithClsCompliant" Category="Microsoft.Design" CheckId="CA1014" Created="2007-03-27 04:29:04Z">
+        <Issue Name="NoAttr">
+         <Item>OpenSim.RegionServer</Item>
+        </Issue>
+       </Message>
+       <Message TypeName="MarkAssembliesWithComVisible" Category="Microsoft.Design" CheckId="CA1017" Created="2007-03-27 04:29:04Z">
+        <Issue Name="NoAttribute" Level="CriticalError">
+         <Item>OpenSim.RegionServer</Item>
+        </Issue>
+       </Message>
+      </Messages>
+      <Namespaces>
+       <Namespace Name="OpenSim">
+        <Types>
+         <Type Name="AgentAssetUpload">
+          <Members>
+           <Member Name="AddUpload(libsecondlife.LLUUID,OpenSim.Framework.Assets.AssetBase):System.Void">
+            <Messages>
+             <Message Id="0#" TypeName="ShortAcronymsShouldBeUppercase" Category="Microsoft.Naming" CheckId="CA1706" Created="2007-03-27 04:29:04Z">
+              <Issue Name="ParameterId">
+               <Item>ID</Item>
+               <Item>transactionID</Item>
+               <Item>Id</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="AddUploadToAssetCache(libsecondlife.LLUUID):OpenSim.Framework.Assets.AssetBase">
+            <Messages>
+             <Message Id="0#" TypeName="ShortAcronymsShouldBeUppercase" Category="Microsoft.Naming" CheckId="CA1706" Created="2007-03-27 04:29:04Z">
+              <Issue Name="ParameterId">
+               <Item>ID</Item>
+               <Item>transactionID</Item>
+               <Item>Id</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="GetUpload(libsecondlife.LLUUID):OpenSim.Framework.Assets.AssetBase">
+            <Messages>
+             <Message Id="0#" TypeName="ShortAcronymsShouldBeUppercase" Category="Microsoft.Naming" CheckId="CA1706" Created="2007-03-27 04:29:04Z">
+              <Issue Name="ParameterId">
+               <Item>ID</Item>
+               <Item>transactionID</Item>
+               <Item>Id</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="HandleUploadPacket(libsecondlife.Packets.AssetUploadRequestPacket,libsecondlife.LLUUID):System.Void">
+            <Messages>
+             <Message Id="1#" TypeName="ShortAcronymsShouldBeUppercase" Category="Microsoft.Naming" CheckId="CA1706" Created="2007-03-27 04:29:04Z">
+              <Issue Name="ParameterId">
+               <Item>ID</Item>
+               <Item>assetID</Item>
+               <Item>Id</Item>
+              </Issue>
+             </Message>
+             <Message Id="System.Int32.ToString(System.String)" TypeName="SpecifyIFormatProvider" Category="Microsoft.Globalization" CheckId="CA1305" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>AgentAssetUpload.HandleUploadPacket(AssetUploadRequestPacket, LLUUID):Void</Item>
+               <Item>System.Int32.ToString(System.String)</Item>
+               <Item>System.Int32.ToString(System.String,System.IFormatProvider)</Item>
+              </Issue>
+              <Issue>
+               <Item>AgentAssetUpload.HandleUploadPacket(AssetUploadRequestPacket, LLUUID):Void</Item>
+               <Item>System.Int32.ToString(System.String)</Item>
+               <Item>System.Int32.ToString(System.String,System.IFormatProvider)</Item>
+              </Issue>
+             </Message>
+             <Message TypeName="ValidateArgumentsOfPublicMethods" Category="Microsoft.Design" CheckId="CA1062" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>'assetID'</Item>
+               <Item>AgentAssetUpload.HandleUploadPacket(AssetUploadRequestPacket, LLUUID):Void</Item>
+              </Issue>
+              <Issue>
+               <Item>'pack'</Item>
+               <Item>AgentAssetUpload.HandleUploadPacket(AssetUploadRequestPacket, LLUUID):Void</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="HandleXferPacket(libsecondlife.Packets.SendXferPacketPacket):System.Void">
+            <Messages>
+             <Message Id="0#xfer" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
+              <Issue Name="Parameter">
+               <Item>AgentAssetUpload.HandleXferPacket(SendXferPacketPacket):Void</Item>
+               <Item>xfer</Item>
+               <Item>xferPacket</Item>
+              </Issue>
+             </Message>
+             <Message Id="Xfer" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
+              <Issue Name="Member">
+               <Item>Xfer</Item>
+               <Item>AgentAssetUpload.HandleXferPacket(SendXferPacketPacket):Void</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+          </Members>
+         </Type>
+         <Type Name="AssetTransaction">
+          <Members>
+           <Member Name=".ctor()">
+            <Messages>
+             <Message TypeName="DoNotInitializeUnnecessarily" Category="Microsoft.Performance" CheckId="CA1805" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>AssetTransaction.AssetTransaction()</Item>
+               <Item>UploadComplete</Item>
+               <Item>System.Boolean</Item>
+               <Item>false</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="AddToInventory">
+            <Messages>
+             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>AddToInventory</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="Asset">
+            <Messages>
+             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>Asset</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="InventFolder">
+            <Messages>
+             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>InventFolder</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="TransactionID">
+            <Messages>
+             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>TransactionID</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="UploadComplete">
+            <Messages>
+             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>UploadComplete</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="XferID">
+            <Messages>
+             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>XferID</Item>
+              </Issue>
+             </Message>
+             <Message Id="Xfer" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
+              <Issue Name="Member">
+               <Item>Xfer</Item>
+               <Item>AssetTransaction.XferID</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+          </Members>
+         </Type>
+         <Type Name="Grid">
+          <Messages>
+           <Message TypeName="TypeNamesShouldNotMatchNamespaces" Category="Microsoft.Naming" CheckId="CA1724" Created="2007-03-27 04:29:04Z">
+            <Issue>
+             <Item>Grid</Item>
+             <Item>OpenSim.Framework.Grid</Item>
+            </Issue>
+           </Message>
+          </Messages>
+          <Members>
+           <Member Name="AssetDll">
+            <Messages>
+             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>AssetDll</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="AssetServer">
+            <Messages>
+             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>AssetServer</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="GridDll">
+            <Messages>
+             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>GridDll</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="GridServer">
+            <Messages>
+             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>GridServer</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="Initialise():System.Void">
+            <Messages>
+             <Message Id="Initialise" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
+              <Issue Name="Member">
+               <Item>Initialise</Item>
+               <Item>Grid.Initialise():Void</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="LoadAssetDll(System.String):OpenSim.Framework.Interfaces.IAssetServer">
+            <Messages>
+             <Message TypeName="MarkMembersAsStatic" Category="Microsoft.Performance" CheckId="CA1822" Created="2007-03-27 04:29:04Z" FixCategory="NonBreaking">
+              <Issue>
+               <Item>Grid.LoadAssetDll(String):IAssetServer</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="LoadGridDll(System.String):OpenSim.Framework.Interfaces.IGridServer">
+            <Messages>
+             <Message TypeName="MarkMembersAsStatic" Category="Microsoft.Performance" CheckId="CA1822" Created="2007-03-27 04:29:04Z" FixCategory="NonBreaking">
+              <Issue>
+               <Item>Grid.LoadGridDll(String):IGridServer</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+          </Members>
+         </Type>
+         <Type Name="OpenSimApplication">
+          <Messages>
+           <Message Id="Sim" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
+            <Issue Name="Type">
+             <Item>Sim</Item>
+             <Item>OpenSim.OpenSimApplication</Item>
+            </Issue>
+           </Message>
+          </Messages>
+          <Members>
+           <Member Name="RemoveClientCircuit(System.UInt32):System.Void">
+            <Messages>
+             <Message Id="0#circuitcode" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
+              <Issue Name="Parameter">
+               <Item>OpenSimApplication.RemoveClientCircuit(UInt32):Void</Item>
+               <Item>circuitcode</Item>
+               <Item>circuitcode</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="SendPacketTo(System.Byte[],System.Int32,System.Net.Sockets.SocketFlags,System.UInt32):System.Void">
+            <Messages>
+             <Message Id="3#circuitcode" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
+              <Issue Name="Parameter">
+               <Item>OpenSimApplication.SendPacketTo(Byte[], Int32, SocketFlags, UInt32):Void</Item>
+               <Item>circuitcode</Item>
+               <Item>circuitcode</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="StartUp():System.Void">
+            <Messages>
+             <Message Id="StartUp" TypeName="CompoundWordsShouldBeCasedCorrectly" Category="Microsoft.Naming" CheckId="CA1702" Created="2007-03-27 04:29:04Z">
+              <Issue Name="ShouldBeDiscreteTerm">
+               <Item>StartUp</Item>
+               <Item>method</Item>
+               <Item>StartUp</Item>
+               <Item>Startup</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+          </Members>
+         </Type>
+         <Type Name="OpenSimMain">
+          <Messages>
+           <Message Id="Sim" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
+            <Issue Name="Type">
+             <Item>Sim</Item>
+             <Item>OpenSim.OpenSimMain</Item>
+            </Issue>
+           </Message>
+           <Message TypeName="TypesThatOwnDisposableFieldsShouldBeDisposable" Category="Microsoft.Design" CheckId="CA1001" Created="2007-03-27 04:29:04Z" FixCategory="Breaking">
+            <Issue>
+             <Item>OpenSim.OpenSimMain</Item>
+             <Item>System.Timers.Timer, System.Net.Sockets.Socket</Item>
+            </Issue>
+           </Message>
+          </Messages>
+          <Members>
+           <Member Name=".ctor()">
+            <Messages>
+             <Message TypeName="DoNotInitializeUnnecessarily" Category="Microsoft.Performance" CheckId="CA1805" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>OpenSimMain.OpenSimMain()</Item>
+               <Item>loginserver</Item>
+               <Item>System.Boolean</Item>
+               <Item>false</Item>
+              </Issue>
+              <Issue>
+               <Item>OpenSimMain.OpenSimMain()</Item>
+               <Item>sandbox</Item>
+               <Item>System.Boolean</Item>
+               <Item>false</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="_physicsEngine">
+            <Messages>
+             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>_physicsEngine</Item>
+              </Issue>
+             </Message>
+             <Message Id="Member" TypeName="IdentifiersShouldNotContainUnderscores" Category="Microsoft.Naming" CheckId="CA1707" Created="2007-03-27 04:29:04Z">
+              <Issue Name="Member">
+               <Item>_physicsEngine</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="LoadConfigDll(System.String):OpenSim.Framework.Interfaces.SimConfig">
+            <Messages>
+             <Message TypeName="MarkMembersAsStatic" Category="Microsoft.Performance" CheckId="CA1822" Created="2007-03-27 04:29:04Z" FixCategory="NonBreaking">
+              <Issue>
+               <Item>OpenSimMain.LoadConfigDll(String):SimConfig</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="loginserver">
+            <Messages>
+             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>loginserver</Item>
+              </Issue>
+             </Message>
+             <Message Id="loginserver" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
+              <Issue Name="Member">
+               <Item>loginserver</Item>
+               <Item>OpenSimMain.loginserver</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="sandbox">
+            <Messages>
+             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>sandbox</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="Server">
+            <Messages>
+             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>Server</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="StartUp():System.Void">
+            <Messages>
+             <Message TypeName="DoNotUseTimersThatPreventPowerStateChanges" Category="Microsoft.Mobility" CheckId="CA1601" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>Timer.set_Interval(Double):Void</Item>
+               <Item>OpenSimMain.StartUp():Void</Item>
+              </Issue>
+             </Message>
+             <Message Id="System.UInt32.ToString" TypeName="SpecifyIFormatProvider" Category="Microsoft.Globalization" CheckId="CA1305" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>OpenSimMain.StartUp():Void</Item>
+               <Item>System.UInt32.ToString</Item>
+               <Item>System.UInt32.ToString(System.IFormatProvider)</Item>
+              </Issue>
+              <Issue>
+               <Item>OpenSimMain.StartUp():Void</Item>
+               <Item>System.UInt32.ToString</Item>
+               <Item>System.UInt32.ToString(System.IFormatProvider)</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+          </Members>
+         </Type>
+         <Type Name="OpenSimRoot">
+          <Messages>
+           <Message Id="Sim" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
+            <Issue Name="Type">
+             <Item>Sim</Item>
+             <Item>OpenSim.OpenSimRoot</Item>
+            </Issue>
+           </Message>
+          </Messages>
+          <Members>
+           <Member Name=".ctor()">
+            <Messages>
+             <Message TypeName="DoNotInitializeUnnecessarily" Category="Microsoft.Performance" CheckId="CA1805" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>OpenSimRoot.OpenSimRoot()</Item>
+               <Item>Sandbox</Item>
+               <Item>System.Boolean</Item>
+               <Item>false</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="Application">
+            <Messages>
+             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>Application</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="AssetCache">
+            <Messages>
+             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>AssetCache</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="Cfg">
+            <Messages>
+             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>Cfg</Item>
+              </Issue>
+             </Message>
+             <Message Id="Cfg" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
+              <Issue Name="Member">
+               <Item>Cfg</Item>
+               <Item>OpenSimRoot.Cfg</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="ClientThreads">
+            <Messages>
+             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>ClientThreads</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="GridServers">
+            <Messages>
+             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>GridServers</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="HttpServer">
+            <Messages>
+             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>HttpServer</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="InventoryCache">
+            <Messages>
+             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>InventoryCache</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="LocalWorld">
+            <Messages>
+             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>LocalWorld</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="Sandbox">
+            <Messages>
+             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>Sandbox</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="StartUp():System.Void">
+            <Messages>
+             <Message Id="StartUp" TypeName="CompoundWordsShouldBeCasedCorrectly" Category="Microsoft.Naming" CheckId="CA1702" Created="2007-03-27 04:29:04Z">
+              <Issue Name="ShouldBeDiscreteTerm">
+               <Item>StartUp</Item>
+               <Item>method</Item>
+               <Item>StartUp</Item>
+               <Item>Startup</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="startuptime">
+            <Messages>
+             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>startuptime</Item>
+              </Issue>
+             </Message>
+             <Message Id="startuptime" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
+              <Issue Name="Member">
+               <Item>startuptime</Item>
+               <Item>OpenSimRoot.startuptime</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+          </Members>
+         </Type>
+         <Type Name="QueItem">
+          <Messages>
+           <Message Id="Que" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
+            <Issue Name="Type">
+             <Item>Que</Item>
+             <Item>OpenSim.QueItem</Item>
+            </Issue>
+           </Message>
+          </Messages>
+          <Members>
+           <Member Name="Incoming">
+            <Messages>
+             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>Incoming</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="Packet">
+            <Messages>
+             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>Packet</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+          </Members>
+         </Type>
+         <Type Name="SimClient">
+          <Messages>
+           <Message Id="Sim" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
+            <Issue Name="Type">
+             <Item>Sim</Item>
+             <Item>OpenSim.SimClient</Item>
+            </Issue>
+           </Message>
+           <Message TypeName="TypesThatOwnDisposableFieldsShouldBeDisposable" Category="Microsoft.Design" CheckId="CA1001" Created="2007-03-27 04:29:04Z" FixCategory="Breaking">
+            <Issue>
+             <Item>OpenSim.SimClient</Item>
+             <Item>System.Timers.Timer</Item>
+            </Issue>
+           </Message>
+          </Messages>
+          <Members>
+           <Member Name=".ctor(System.Net.EndPoint,libsecondlife.Packets.UseCircuitCodePacket)">
+            <Messages>
+             <Message TypeName="DoNotInitializeUnnecessarily" Category="Microsoft.Performance" CheckId="CA1805" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>SimClient.SimClient(EndPoint, UseCircuitCodePacket)</Item>
+               <Item>Sequence</Item>
+               <Item>System.UInt32</Item>
+               <Item>0</Item>
+              </Issue>
+              <Issue>
+               <Item>SimClient.SimClient(EndPoint, UseCircuitCodePacket)</Item>
+               <Item>debug</Item>
+               <Item>System.Boolean</Item>
+               <Item>false</Item>
+              </Issue>
+             </Message>
+             <Message TypeName="DoNotUseTimersThatPreventPowerStateChanges" Category="Microsoft.Mobility" CheckId="CA1601" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>Timer.Timer(Double)</Item>
+               <Item>SimClient.SimClient(EndPoint, UseCircuitCodePacket)</Item>
+              </Issue>
+             </Message>
+             <Message Id="1#initialcirpack" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
+              <Issue Name="Parameter">
+               <Item>SimClient.SimClient(EndPoint, UseCircuitCodePacket)</Item>
+               <Item>initialcirpack</Item>
+               <Item>initialcirpack</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="AgentID">
+            <Messages>
+             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>AgentID</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="CircuitCode">
+            <Messages>
+             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>CircuitCode</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="ClientAvatar">
+            <Messages>
+             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>ClientAvatar</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="InPacket(libsecondlife.Packets.Packet):System.Void">
+            <Messages>
+             <Message Id="0#" TypeName="IdentifiersShouldBeCasedCorrectly" Category="Microsoft.Naming" CheckId="CA1709" Created="2007-03-27 04:29:04Z">
+              <Issue Name="Parameter">
+               <Item>NewPack</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="newAssetFolder">
+            <Messages>
+             <Message TypeName="AvoidUnusedPrivateFields" Category="Microsoft.Performance" CheckId="CA1823" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>SimClient.newAssetFolder</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="OutPacket(libsecondlife.Packets.Packet):System.Void">
+            <Messages>
+             <Message Id="0#" TypeName="IdentifiersShouldBeCasedCorrectly" Category="Microsoft.Naming" CheckId="CA1709" Created="2007-03-27 04:29:04Z">
+              <Issue Name="Parameter">
+               <Item>NewPack</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="ProcessInPacket(libsecondlife.Packets.Packet):System.Void">
+            <Messages>
+             <Message Id="0#" TypeName="IdentifiersShouldBeCasedCorrectly" Category="Microsoft.Naming" CheckId="CA1709" Created="2007-03-27 04:29:04Z">
+              <Issue Name="Parameter">
+               <Item>Pack</Item>
+              </Issue>
+             </Message>
+             <Message Id="wear" TypeName="RemoveUnusedLocals" Category="Microsoft.Performance" CheckId="CA1804" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>SimClient.ProcessInPacket(Packet):Void</Item>
+               <Item>wear</Item>
+               <Item>libsecondlife.Packets.AgentIsNowWearingPacket</Item>
+              </Issue>
+             </Message>
+             <Message TypeName="TestForEmptyStringsUsingStringLength" Category="Microsoft.Performance" CheckId="CA1820" Created="2007-03-27 04:29:04Z">
+              <Issue Name="IsNullOrEmpty">
+               <Item>op_Equality</Item>
+               <Item>""</Item>
+               <Item>SimClient.ProcessInPacket(Packet):Void</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="ProcessOutPacket(libsecondlife.Packets.Packet):System.Void">
+            <Messages>
+             <Message TypeName="DoNotCatchGeneralExceptionTypes" Category="Microsoft.Design" CheckId="CA1031" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>SimClient.ProcessOutPacket(Packet):Void</Item>
+               <Item>System.Exception</Item>
+              </Issue>
+             </Message>
+             <Message Id="0#" TypeName="IdentifiersShouldBeCasedCorrectly" Category="Microsoft.Naming" CheckId="CA1709" Created="2007-03-27 04:29:04Z">
+              <Issue Name="Parameter">
+               <Item>Pack</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="SecureSessionID">
+            <Messages>
+             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>SecureSessionID</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="SessionID">
+            <Messages>
+             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>SessionID</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="userEP">
+            <Messages>
+             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>userEP</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+          </Members>
+         </Type>
+         <Type Name="SimConsole">
+          <Messages>
+           <Message TypeName="ComVisibleTypeBaseTypesShouldBeComVisible" Category="Microsoft.Interoperability" CheckId="CA1405" Created="2007-03-27 04:29:04Z">
+            <Issue>
+             <Item>OpenSim.SimConsole</Item>
+             <Item> OpenSim.Framework.Console.ConsoleBase</Item>
+            </Issue>
+           </Message>
+           <Message Id="Sim" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
+            <Issue Name="Type">
+             <Item>Sim</Item>
+             <Item>OpenSim.SimConsole</Item>
+            </Issue>
+           </Message>
+          </Messages>
+          <Members>
+           <Member Name=".ctor(OpenSim.Framework.Console.ConsoleBase+ConsoleType,System.String,System.Int32)">
+            <Messages>
+             <Message Id="0#constype" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
+              <Issue Name="Parameter">
+               <Item>SimConsole.SimConsole(ConsoleType, String, Int32)</Item>
+               <Item>constype</Item>
+               <Item>constype</Item>
+              </Issue>
+             </Message>
+             <Message Id="1#sparam" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
+              <Issue Name="Parameter">
+               <Item>SimConsole.SimConsole(ConsoleType, String, Int32)</Item>
+               <Item>sparam</Item>
+               <Item>sparam</Item>
+              </Issue>
+             </Message>
+             <Message Id="2#iparam" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
+              <Issue Name="Parameter">
+               <Item>SimConsole.SimConsole(ConsoleType, String, Int32)</Item>
+               <Item>iparam</Item>
+               <Item>iparam</Item>
+              </Issue>
+             </Message>
+             <Message Id="iparam" TypeName="ReviewUnusedParameters" Category="Microsoft.Usage" CheckId="CA1801" Created="2007-03-27 04:29:04Z" FixCategory="Breaking">
+              <Issue>
+               <Item>iparam</Item>
+               <Item>SimConsole.SimConsole(ConsoleType, String, Int32)</Item>
+              </Issue>
+             </Message>
+             <Message Id="sparam" TypeName="ReviewUnusedParameters" Category="Microsoft.Usage" CheckId="CA1801" Created="2007-03-27 04:29:04Z" FixCategory="Breaking">
+              <Issue>
+               <Item>sparam</Item>
+               <Item>SimConsole.SimConsole(ConsoleType, String, Int32)</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="CmdPrompt(System.String,System.String):System.String">
+            <Messages>
+             <Message TypeName="TestForEmptyStringsUsingStringLength" Category="Microsoft.Performance" CheckId="CA1820" Created="2007-03-27 04:29:04Z">
+              <Issue Name="IsNullOrEmpty">
+               <Item>op_Equality</Item>
+               <Item>""</Item>
+               <Item>SimConsole.CmdPrompt(String, String):String</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="ConsType">
+            <Messages>
+             <Message TypeName="AvoidUnusedPrivateFields" Category="Microsoft.Performance" CheckId="CA1823" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>SimConsole.ConsType</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="MainConsolePrompt():System.Void">
+            <Messages>
+             <Message Id="System.UInt64.ToString" TypeName="SpecifyIFormatProvider" Category="Microsoft.Globalization" CheckId="CA1305" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>SimConsole.MainConsolePrompt():Void</Item>
+               <Item>System.UInt64.ToString</Item>
+               <Item>System.UInt64.ToString(System.IFormatProvider)</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="RunCmd(System.String,System.String[]):System.Object">
+            <Messages>
+             <Message TypeName="ValidateArgumentsOfPublicMethods" Category="Microsoft.Design" CheckId="CA1062" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>'cmdparams'</Item>
+               <Item>SimConsole.RunCmd(String, String[]):Object</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="ShowCommands(System.String):System.Void">
+            <Messages>
+             <Message Id="System.String.Format(System.String,System.Object[])" TypeName="SpecifyIFormatProvider" Category="Microsoft.Globalization" CheckId="CA1305" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>SimConsole.ShowCommands(String):Void</Item>
+               <Item>System.String.Format(System.String,System.Object[])</Item>
+               <Item>System.String.Format(System.IFormatProvider,System.String,System.Object[])</Item>
+              </Issue>
+              <Issue>
+               <Item>SimConsole.ShowCommands(String):Void</Item>
+               <Item>System.String.Format(System.String,System.Object[])</Item>
+               <Item>System.String.Format(System.IFormatProvider,System.String,System.Object[])</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+          </Members>
+         </Type>
+         <Type Name="VersionInfo">
+          <Members>
+           <Member Name="Version">
+            <Messages>
+             <Message TypeName="NonConstantFieldsShouldNotBeVisible" Category="Microsoft.Usage" CheckId="CA2211" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>Version</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+          </Members>
+         </Type>
+        </Types>
+       </Namespace>
+       <Namespace Name="OpenSim.Assets">
+        <Types>
+         <Type Name="AssetCache">
+          <Members>
+           <Member Name="AddTextureRequest(OpenSim.SimClient,libsecondlife.LLUUID):System.Void">
+            <Messages>
+             <Message Id="1#" TypeName="ShortAcronymsShouldBeUppercase" Category="Microsoft.Naming" CheckId="CA1706" Created="2007-03-27 04:29:04Z">
+              <Issue Name="ParameterId">
+               <Item>ID</Item>
+               <Item>imageID</Item>
+               <Item>Id</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="AssetRequests">
+            <Messages>
+             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>AssetRequests</Item>
+              </Issue>
+             </Message>
+             <Message TypeName="DoNotExposeGenericLists" Category="Microsoft.Design" CheckId="CA1002" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>System.Collections.Generic.List`1&lt;OpenSim.Assets.AssetRequest&gt;</Item>
+               <Item>AssetCache.AssetRequests</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="Assets">
+            <Messages>
+             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>Assets</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="CloneAsset(libsecondlife.LLUUID,OpenSim.Assets.AssetInfo):OpenSim.Assets.AssetInfo">
+            <Messages>
+             <Message TypeName="ConsiderPassingBaseTypesAsParameters" Category="Microsoft.Design" CheckId="CA1011" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>sourceAsset</Item>
+               <Item>AssetCache.CloneAsset(LLUUID, AssetInfo):AssetInfo</Item>
+               <Item>OpenSim.Assets.AssetInfo</Item>
+               <Item>OpenSim.Framework.Assets.AssetBase</Item>
+              </Issue>
+             </Message>
+             <Message TypeName="MarkMembersAsStatic" Category="Microsoft.Performance" CheckId="CA1822" Created="2007-03-27 04:29:04Z" FixCategory="Breaking">
+              <Issue>
+               <Item>AssetCache.CloneAsset(LLUUID, AssetInfo):AssetInfo</Item>
+              </Issue>
+             </Message>
+             <Message Id="newOwner" TypeName="ReviewUnusedParameters" Category="Microsoft.Usage" CheckId="CA1801" Created="2007-03-27 04:29:04Z" FixCategory="Breaking">
+              <Issue>
+               <Item>newOwner</Item>
+               <Item>AssetCache.CloneAsset(LLUUID, AssetInfo):AssetInfo</Item>
+              </Issue>
+             </Message>
+             <Message TypeName="ValidateArgumentsOfPublicMethods" Category="Microsoft.Design" CheckId="CA1062" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>'sourceAsset'</Item>
+               <Item>AssetCache.CloneAsset(LLUUID, AssetInfo):AssetInfo</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="CloneImage(libsecondlife.LLUUID,OpenSim.Assets.TextureImage):OpenSim.Assets.TextureImage">
+            <Messages>
+             <Message TypeName="ConsiderPassingBaseTypesAsParameters" Category="Microsoft.Design" CheckId="CA1011" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>source</Item>
+               <Item>AssetCache.CloneImage(LLUUID, TextureImage):TextureImage</Item>
+               <Item>OpenSim.Assets.TextureImage</Item>
+               <Item>OpenSim.Framework.Assets.AssetBase</Item>
+              </Issue>
+             </Message>
+             <Message TypeName="MarkMembersAsStatic" Category="Microsoft.Performance" CheckId="CA1822" Created="2007-03-27 04:29:04Z" FixCategory="Breaking">
+              <Issue>
+               <Item>AssetCache.CloneImage(LLUUID, TextureImage):TextureImage</Item>
+              </Issue>
+             </Message>
+             <Message Id="newOwner" TypeName="ReviewUnusedParameters" Category="Microsoft.Usage" CheckId="CA1801" Created="2007-03-27 04:29:04Z" FixCategory="Breaking">
+              <Issue>
+               <Item>newOwner</Item>
+               <Item>AssetCache.CloneImage(LLUUID, TextureImage):TextureImage</Item>
+              </Issue>
+             </Message>
+             <Message TypeName="ValidateArgumentsOfPublicMethods" Category="Microsoft.Design" CheckId="CA1062" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>'source'</Item>
+               <Item>AssetCache.CloneImage(LLUUID, TextureImage):TextureImage</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="CreateNewInventorySet(libsecondlife.LLUUID):OpenSim.Framework.Assets.AssetBase[]">
+            <Messages>
+             <Message Id="0#" TypeName="ShortAcronymsShouldBeUppercase" Category="Microsoft.Naming" CheckId="CA1706" Created="2007-03-27 04:29:04Z">
+              <Issue Name="ParameterId">
+               <Item>ID</Item>
+               <Item>agentID</Item>
+               <Item>Id</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="GetAsset(libsecondlife.LLUUID):OpenSim.Framework.Assets.AssetBase">
+            <Messages>
+             <Message Id="0#" TypeName="ShortAcronymsShouldBeUppercase" Category="Microsoft.Naming" CheckId="CA1706" Created="2007-03-27 04:29:04Z">
+              <Issue Name="ParameterId">
+               <Item>ID</Item>
+               <Item>assetID</Item>
+               <Item>Id</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="RequestedAssets">
+            <Messages>
+             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>RequestedAssets</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="RequestedTextures">
+            <Messages>
+             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>RequestedTextures</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="RunAssetManager():System.Void">
+            <Messages>
+             <Message TypeName="DoNotCatchGeneralExceptionTypes" Category="Microsoft.Design" CheckId="CA1031" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>AssetCache.RunAssetManager():Void</Item>
+               <Item>System.Exception</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="TextureRequests">
+            <Messages>
+             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>TextureRequests</Item>
+              </Issue>
+             </Message>
+             <Message TypeName="DoNotExposeGenericLists" Category="Microsoft.Design" CheckId="CA1002" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>System.Collections.Generic.List`1&lt;OpenSim.Assets.AssetRequest&gt;</Item>
+               <Item>AssetCache.TextureRequests</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="Textures">
+            <Messages>
+             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>Textures</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+          </Members>
+         </Type>
+         <Type Name="AssetInfo">
+          <Messages>
+           <Message TypeName="ComVisibleTypeBaseTypesShouldBeComVisible" Category="Microsoft.Interoperability" CheckId="CA1405" Created="2007-03-27 04:29:04Z">
+            <Issue>
+             <Item>OpenSim.Assets.AssetInfo</Item>
+             <Item> OpenSim.Framework.Assets.AssetBase</Item>
+            </Issue>
+           </Message>
+          </Messages>
+          <Members>
+           <Member Name=".ctor(OpenSim.Framework.Assets.AssetBase)">
+            <Messages>
+             <Message Id="0#a" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
+              <Issue Name="Parameter">
+               <Item>AssetInfo.AssetInfo(AssetBase)</Item>
+               <Item>a</Item>
+               <Item>aBase</Item>
+              </Issue>
+             </Message>
+             <Message TypeName="ValidateArgumentsOfPublicMethods" Category="Microsoft.Design" CheckId="CA1062" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>'aBase'</Item>
+               <Item>AssetInfo.AssetInfo(AssetBase)</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+          </Members>
+         </Type>
+         <Type Name="AssetRequest">
+          <Members>
+           <Member Name=".ctor()">
+            <Messages>
+             <Message TypeName="DoNotInitializeUnnecessarily" Category="Microsoft.Performance" CheckId="CA1805" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>AssetRequest.AssetRequest()</Item>
+               <Item>DataPointer</Item>
+               <Item>System.Int64</Item>
+               <Item>0</Item>
+              </Issue>
+              <Issue>
+               <Item>AssetRequest.AssetRequest()</Item>
+               <Item>NumPackets</Item>
+               <Item>System.Int32</Item>
+               <Item>0</Item>
+              </Issue>
+              <Issue>
+               <Item>AssetRequest.AssetRequest()</Item>
+               <Item>PacketCounter</Item>
+               <Item>System.Int32</Item>
+               <Item>0</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="AssetInf">
+            <Messages>
+             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>AssetInf</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="DataPointer">
+            <Messages>
+             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>DataPointer</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="ImageInfo">
+            <Messages>
+             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>ImageInfo</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="IsTextureRequest">
+            <Messages>
+             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>IsTextureRequest</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="NumPackets">
+            <Messages>
+             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>NumPackets</Item>
+              </Issue>
+             </Message>
+             <Message Id="Num" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
+              <Issue Name="Member">
+               <Item>Num</Item>
+               <Item>AssetRequest.NumPackets</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="PacketCounter">
+            <Messages>
+             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>PacketCounter</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="RequestAssetID">
+            <Messages>
+             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>RequestAssetID</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="RequestUser">
+            <Messages>
+             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>RequestUser</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="TransferRequestID">
+            <Messages>
+             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>TransferRequestID</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+          </Members>
+         </Type>
+         <Type Name="InventoryCache">
+          <Members>
+           <Member Name="AddNewInventoryItem(OpenSim.SimClient,libsecondlife.LLUUID,OpenSim.Framework.Assets.AssetBase):libsecondlife.LLUUID">
+            <Messages>
+             <Message Id="1#" TypeName="ShortAcronymsShouldBeUppercase" Category="Microsoft.Naming" CheckId="CA1706" Created="2007-03-27 04:29:04Z">
+              <Issue Name="ParameterId">
+               <Item>ID</Item>
+               <Item>folderID</Item>
+               <Item>Id</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="ClientLeaving(libsecondlife.LLUUID):System.Void">
+            <Messages>
+             <Message Id="0#" TypeName="ShortAcronymsShouldBeUppercase" Category="Microsoft.Naming" CheckId="CA1706" Created="2007-03-27 04:29:04Z">
+              <Issue Name="ParameterId">
+               <Item>ID</Item>
+               <Item>clientID</Item>
+               <Item>Id</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="CreateNewInventoryFolder(OpenSim.SimClient,libsecondlife.LLUUID):System.Boolean">
+            <Messages>
+             <Message Id="1#" TypeName="ShortAcronymsShouldBeUppercase" Category="Microsoft.Naming" CheckId="CA1706" Created="2007-03-27 04:29:04Z">
+              <Issue Name="ParameterId">
+               <Item>ID</Item>
+               <Item>folderID</Item>
+               <Item>Id</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="CreateNewInventoryFolder(OpenSim.SimClient,libsecondlife.LLUUID,System.UInt16):System.Boolean">
+            <Messages>
+             <Message Id="1#" TypeName="ShortAcronymsShouldBeUppercase" Category="Microsoft.Naming" CheckId="CA1706" Created="2007-03-27 04:29:04Z">
+              <Issue Name="ParameterId">
+               <Item>ID</Item>
+               <Item>folderID</Item>
+               <Item>Id</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="FetchInventory(OpenSim.SimClient,libsecondlife.Packets.FetchInventoryPacket):System.Void">
+            <Messages>
+             <Message Id="1#" TypeName="IdentifiersShouldBeCasedCorrectly" Category="Microsoft.Naming" CheckId="CA1709" Created="2007-03-27 04:29:04Z">
+              <Issue Name="Parameter">
+               <Item>FetchItems</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="FetchInventoryDescendents(OpenSim.SimClient,libsecondlife.Packets.FetchInventoryDescendentsPacket):System.Void">
+            <Messages>
+             <Message Id="1#" TypeName="IdentifiersShouldBeCasedCorrectly" Category="Microsoft.Naming" CheckId="CA1709" Created="2007-03-27 04:29:04Z">
+              <Issue Name="Parameter">
+               <Item>FetchDescend</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="GetAgentsInventory(libsecondlife.LLUUID):OpenSim.Framework.Inventory.AgentInventory">
+            <Messages>
+             <Message Id="0#" TypeName="ShortAcronymsShouldBeUppercase" Category="Microsoft.Naming" CheckId="CA1706" Created="2007-03-27 04:29:04Z">
+              <Issue Name="ParameterId">
+               <Item>ID</Item>
+               <Item>agentID</Item>
+               <Item>Id</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="UpdateInventoryItem(OpenSim.SimClient,libsecondlife.LLUUID,OpenSim.Framework.Assets.AssetBase):System.Boolean">
+            <Messages>
+             <Message Id="1#" TypeName="ShortAcronymsShouldBeUppercase" Category="Microsoft.Naming" CheckId="CA1706" Created="2007-03-27 04:29:04Z">
+              <Issue Name="ParameterId">
+               <Item>ID</Item>
+               <Item>itemID</Item>
+               <Item>Id</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+          </Members>
+         </Type>
+         <Type Name="TextureImage">
+          <Messages>
+           <Message TypeName="ComVisibleTypeBaseTypesShouldBeComVisible" Category="Microsoft.Interoperability" CheckId="CA1405" Created="2007-03-27 04:29:04Z">
+            <Issue>
+             <Item>OpenSim.Assets.TextureImage</Item>
+             <Item> OpenSim.Framework.Assets.AssetBase</Item>
+            </Issue>
+           </Message>
+          </Messages>
+          <Members>
+           <Member Name=".ctor(OpenSim.Framework.Assets.AssetBase)">
+            <Messages>
+             <Message Id="0#a" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
+              <Issue Name="Parameter">
+               <Item>TextureImage.TextureImage(AssetBase)</Item>
+               <Item>a</Item>
+               <Item>aBase</Item>
+              </Issue>
+             </Message>
+             <Message TypeName="ValidateArgumentsOfPublicMethods" Category="Microsoft.Design" CheckId="CA1062" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>'aBase'</Item>
+               <Item>TextureImage.TextureImage(AssetBase)</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+          </Members>
+         </Type>
+        </Types>
+       </Namespace>
+       <Namespace Name="OpenSim.CAPS">
+        <Types>
+         <Type Name="SimCAPSHTTPServer">
+          <Messages>
+           <Message Id="Sim" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
+            <Issue Name="Type">
+             <Item>Sim</Item>
+             <Item>OpenSim.CAPS.SimCAPSHTTPServer</Item>
+            </Issue>
+           </Message>
+           <Message TypeName="LongAcronymsShouldBePascalCased" Category="Microsoft.Naming" CheckId="CA1705" Created="2007-03-27 04:29:04Z">
+            <Issue Name="Type">
+             <Item>SimCAPSHTTPServer</Item>
+            </Issue>
+           </Message>
+           <Message TypeName="TypesThatOwnDisposableFieldsShouldBeDisposable" Category="Microsoft.Design" CheckId="CA1001" Created="2007-03-27 04:29:04Z" FixCategory="Breaking">
+            <Issue>
+             <Item>OpenSim.CAPS.SimCAPSHTTPServer</Item>
+             <Item>System.Net.HttpListener</Item>
+            </Issue>
+           </Message>
+          </Messages>
+          <Members>
+           <Member Name="HandleRequest(System.Object):System.Void">
+            <Messages>
+             <Message Id="0#stateinfo" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
+              <Issue Name="Parameter">
+               <Item>SimCAPSHTTPServer.HandleRequest(Object):Void</Item>
+               <Item>stateinfo</Item>
+               <Item>stateinfo</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="HTTPD">
+            <Messages>
+             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>HTTPD</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="Listener">
+            <Messages>
+             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>Listener</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="LoadAdminPage():System.Void">
+            <Messages>
+             <Message TypeName="DoNotCatchGeneralExceptionTypes" Category="Microsoft.Design" CheckId="CA1031" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>SimCAPSHTTPServer.LoadAdminPage():Void</Item>
+               <Item>System.Exception</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="ParseLLSDXML(System.String):System.String">
+            <Messages>
+             <Message TypeName="MarkMembersAsStatic" Category="Microsoft.Performance" CheckId="CA1822" Created="2007-03-27 04:29:04Z" FixCategory="NonBreaking">
+              <Issue>
+               <Item>SimCAPSHTTPServer.ParseLLSDXML(String):String</Item>
+              </Issue>
+             </Message>
+             <Message Id="requestBody" TypeName="ReviewUnusedParameters" Category="Microsoft.Usage" CheckId="CA1801" Created="2007-03-27 04:29:04Z" FixCategory="NonBreaking">
+              <Issue>
+               <Item>requestBody</Item>
+               <Item>SimCAPSHTTPServer.ParseLLSDXML(String):String</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="ParseREST(System.String,System.String,System.String):System.String">
+            <Messages>
+             <Message TypeName="DoNotCatchGeneralExceptionTypes" Category="Microsoft.Design" CheckId="CA1031" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>SimCAPSHTTPServer.ParseREST(String, String, String):String</Item>
+               <Item>System.Exception</Item>
+              </Issue>
+             </Message>
+             <Message Id="System.String.Format(System.String,System.Object[])" TypeName="SpecifyIFormatProvider" Category="Microsoft.Globalization" CheckId="CA1305" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>SimCAPSHTTPServer.ParseREST(String, String, String):String</Item>
+               <Item>System.String.Format(System.String,System.Object[])</Item>
+               <Item>System.String.Format(System.IFormatProvider,System.String,System.Object[])</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="ParseXMLRPC(System.String):System.String">
+            <Messages>
+             <Message TypeName="DoNotCatchGeneralExceptionTypes" Category="Microsoft.Design" CheckId="CA1031" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>SimCAPSHTTPServer.ParseXMLRPC(String):String</Item>
+               <Item>System.Exception</Item>
+              </Issue>
+             </Message>
+             <Message TypeName="MarkMembersAsStatic" Category="Microsoft.Performance" CheckId="CA1822" Created="2007-03-27 04:29:04Z" FixCategory="NonBreaking">
+              <Issue>
+               <Item>SimCAPSHTTPServer.ParseXMLRPC(String):String</Item>
+              </Issue>
+             </Message>
+             <Message Id="System.Convert.ToUInt32(System.Object)" TypeName="SpecifyIFormatProvider" Category="Microsoft.Globalization" CheckId="CA1305" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>SimCAPSHTTPServer.ParseXMLRPC(String):String</Item>
+               <Item>System.Convert.ToUInt32(System.Object)</Item>
+               <Item>System.Convert.ToUInt32(System.Object,System.IFormatProvider)</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="StartHTTP():System.Void">
+            <Messages>
+             <Message TypeName="DoNotCatchGeneralExceptionTypes" Category="Microsoft.Design" CheckId="CA1031" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>SimCAPSHTTPServer.StartHTTP():Void</Item>
+               <Item>System.Exception</Item>
+              </Issue>
+             </Message>
+             <Message Id="Member" TypeName="LongAcronymsShouldBePascalCased" Category="Microsoft.Naming" CheckId="CA1705" Created="2007-03-27 04:29:04Z">
+              <Issue Name="Member">
+               <Item>SimCAPSHTTPServer.StartHTTP():Void</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+          </Members>
+         </Type>
+        </Types>
+       </Namespace>
+       <Namespace Name="OpenSim.types">
+        <Types>
+         <Type Name="Mesh">
+          <Members>
+           <Member Name="mesh">
+            <Messages>
+             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>mesh</Item>
+              </Issue>
+             </Message>
+             <Message TypeName="DoNotExposeGenericLists" Category="Microsoft.Design" CheckId="CA1002" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>System.Collections.Generic.List`1&lt;OpenSim.types.Triangle&gt;</Item>
+               <Item>Mesh.mesh</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="op_Addition(OpenSim.types.Mesh,OpenSim.types.Mesh):OpenSim.types.Mesh">
+            <Messages>
+             <Message Id="0#a" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
+              <Issue Name="ParameterOneLetter">
+               <Item>Mesh.op_Addition(Mesh, Mesh):Mesh</Item>
+               <Item>a</Item>
+              </Issue>
+             </Message>
+             <Message Id="1#b" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
+              <Issue Name="ParameterOneLetter">
+               <Item>Mesh.op_Addition(Mesh, Mesh):Mesh</Item>
+               <Item>b</Item>
+              </Issue>
+             </Message>
+             <Message TypeName="OperatorOverloadsHaveNamedAlternates" Category="Microsoft.Usage" CheckId="CA2225" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>Add</Item>
+               <Item>Mesh.op_Addition(Mesh, Mesh):Mesh</Item>
+              </Issue>
+             </Message>
+             <Message TypeName="OverloadOperatorEqualsOnOverloadingAddAndSubtract" Category="Microsoft.Design" CheckId="CA1013" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>Mesh</Item>
+               <Item>Mesh.op_Addition(Mesh, Mesh):Mesh</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+          </Members>
+         </Type>
+         <Type Name="Triangle">
+          <Members>
+           <Member Name=".ctor(Axiom.MathLib.Vector3,Axiom.MathLib.Vector3,Axiom.MathLib.Vector3)">
+            <Messages>
+             <Message Id="0#" TypeName="IdentifiersShouldBeCasedCorrectly" Category="Microsoft.Naming" CheckId="CA1709" Created="2007-03-27 04:29:04Z">
+              <Issue Name="Parameter">
+               <Item>A</Item>
+              </Issue>
+             </Message>
+             <Message Id="1#" TypeName="IdentifiersShouldBeCasedCorrectly" Category="Microsoft.Naming" CheckId="CA1709" Created="2007-03-27 04:29:04Z">
+              <Issue Name="Parameter">
+               <Item>B</Item>
+              </Issue>
+             </Message>
+             <Message Id="2#" TypeName="IdentifiersShouldBeCasedCorrectly" Category="Microsoft.Naming" CheckId="CA1709" Created="2007-03-27 04:29:04Z">
+              <Issue Name="Parameter">
+               <Item>C</Item>
+              </Issue>
+             </Message>
+             <Message Id="0#A" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
+              <Issue Name="ParameterOneLetter">
+               <Item>Triangle.Triangle(Vector3, Vector3, Vector3)</Item>
+               <Item>A</Item>
+              </Issue>
+             </Message>
+             <Message Id="1#B" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
+              <Issue Name="ParameterOneLetter">
+               <Item>Triangle.Triangle(Vector3, Vector3, Vector3)</Item>
+               <Item>B</Item>
+              </Issue>
+             </Message>
+             <Message Id="2#C" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
+              <Issue Name="ParameterOneLetter">
+               <Item>Triangle.Triangle(Vector3, Vector3, Vector3)</Item>
+               <Item>C</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+          </Members>
+         </Type>
+        </Types>
+       </Namespace>
+       <Namespace Name="OpenSim.UserServer">
+        <Types>
+         <Type Name="LocalUserProfileManager">
+          <Members>
+           <Member Name="CustomiseResponse(System.Collections.Hashtable&amp;,OpenSim.Framework.User.UserProfile):System.Void">
+            <Messages>
+             <Message Id="System.Int32.ToString" TypeName="SpecifyIFormatProvider" Category="Microsoft.Globalization" CheckId="CA1305" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>LocalUserProfileManager.CustomiseResponse(Hashtable&amp;, UserProfile):Void</Item>
+               <Item>System.Int32.ToString</Item>
+               <Item>System.Int32.ToString(System.IFormatProvider)</Item>
+              </Issue>
+              <Issue>
+               <Item>LocalUserProfileManager.CustomiseResponse(Hashtable&amp;, UserProfile):Void</Item>
+               <Item>System.Int32.ToString</Item>
+               <Item>System.Int32.ToString(System.IFormatProvider)</Item>
+              </Issue>
+             </Message>
+             <Message Id="System.Single.ToString" TypeName="SpecifyIFormatProvider" Category="Microsoft.Globalization" CheckId="CA1305" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>LocalUserProfileManager.CustomiseResponse(Hashtable&amp;, UserProfile):Void</Item>
+               <Item>System.Single.ToString</Item>
+               <Item>System.Single.ToString(System.IFormatProvider)</Item>
+              </Issue>
+              <Issue>
+               <Item>LocalUserProfileManager.CustomiseResponse(Hashtable&amp;, UserProfile):Void</Item>
+               <Item>System.Single.ToString</Item>
+               <Item>System.Single.ToString(System.IFormatProvider)</Item>
+              </Issue>
+              <Issue>
+               <Item>LocalUserProfileManager.CustomiseResponse(Hashtable&amp;, UserProfile):Void</Item>
+               <Item>System.Single.ToString</Item>
+               <Item>System.Single.ToString(System.IFormatProvider)</Item>
+              </Issue>
+              <Issue>
+               <Item>LocalUserProfileManager.CustomiseResponse(Hashtable&amp;, UserProfile):Void</Item>
+               <Item>System.Single.ToString</Item>
+               <Item>System.Single.ToString(System.IFormatProvider)</Item>
+              </Issue>
+              <Issue>
+               <Item>LocalUserProfileManager.CustomiseResponse(Hashtable&amp;, UserProfile):Void</Item>
+               <Item>System.Single.ToString</Item>
+               <Item>System.Single.ToString(System.IFormatProvider)</Item>
+              </Issue>
+              <Issue>
+               <Item>LocalUserProfileManager.CustomiseResponse(Hashtable&amp;, UserProfile):Void</Item>
+               <Item>System.Single.ToString</Item>
+               <Item>System.Single.ToString(System.IFormatProvider)</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+          </Members>
+         </Type>
+         <Type Name="LoginServer">
+          <Messages>
+           <Message TypeName="ComVisibleTypeBaseTypesShouldBeComVisible" Category="Microsoft.Interoperability" CheckId="CA1405" Created="2007-03-27 04:29:04Z">
+            <Issue>
+             <Item>OpenSim.UserServer.LoginServer</Item>
+             <Item> OpenSim.Framework.Grid.LoginService</Item>
+            </Issue>
+           </Message>
+           <Message TypeName="TypesThatOwnDisposableFieldsShouldBeDisposable" Category="Microsoft.Design" CheckId="CA1001" Created="2007-03-27 04:29:04Z" FixCategory="Breaking">
+            <Issue>
+             <Item>OpenSim.UserServer.LoginServer</Item>
+             <Item>System.Net.Sockets.Socket</Item>
+            </Issue>
+           </Message>
+           <Message Id="Login" TypeName="UsePreferredTerms" Category="Microsoft.Naming" CheckId="CA1726" Created="2007-03-27 04:29:04Z">
+            <Issue Name="Type">
+             <Item>Login</Item>
+             <Item>LoginServer</Item>
+             <Item>LogOn</Item>
+            </Issue>
+           </Message>
+          </Messages>
+          <Members>
+           <Member Name=".ctor(OpenSim.Framework.Interfaces.IGridServer)">
+            <Messages>
+             <Message TypeName="DoNotInitializeUnnecessarily" Category="Microsoft.Performance" CheckId="CA1805" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>LoginServer.LoginServer(IGridServer)</Item>
+               <Item>_needPasswd</Item>
+               <Item>System.Boolean</Item>
+               <Item>false</Item>
+              </Issue>
+              <Issue>
+               <Item>LoginServer.LoginServer(IGridServer)</Item>
+               <Item>userAccounts</Item>
+               <Item>System.Boolean</Item>
+               <Item>false</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="Authenticate(System.String,System.String,System.String):System.Boolean">
+            <Messages>
+             <Message Id="2#passwd" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
+              <Issue Name="Parameter">
+               <Item>LoginServer.Authenticate(String, String, String):Boolean</Item>
+               <Item>passwd</Item>
+               <Item>passwd</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="clientAddress">
+            <Messages>
+             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>clientAddress</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="CustomiseLoginResponse(System.Collections.Hashtable,System.String,System.String):System.Void">
+            <Messages>
+             <Message Id="Customise" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
+              <Issue Name="Member">
+               <Item>Customise</Item>
+               <Item>LoginServer.CustomiseLoginResponse(Hashtable, String, String):Void</Item>
+              </Issue>
+             </Message>
+             <Message Id="Login" TypeName="UsePreferredTerms" Category="Microsoft.Naming" CheckId="CA1726" Created="2007-03-27 04:29:04Z">
+              <Issue Name="Member">
+               <Item>Login</Item>
+               <Item>CustomiseLoginResponse</Item>
+               <Item>LogOn</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="EncodePassword(System.String):System.String">
+            <Messages>
+             <Message Id="System.String.ToLower" TypeName="SpecifyCultureInfo" Category="Microsoft.Globalization" CheckId="CA1304" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>LoginServer.EncodePassword(String):String</Item>
+               <Item>System.String.ToLower</Item>
+               <Item>System.String.ToLower(System.Globalization.CultureInfo)</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="GetAgentId(System.String,System.String):libsecondlife.LLUUID">
+            <Messages>
+             <Message Id="System.Int32.ToString(System.String)" TypeName="SpecifyIFormatProvider" Category="Microsoft.Globalization" CheckId="CA1305" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>LoginServer.GetAgentId(String, String):LLUUID</Item>
+               <Item>System.Int32.ToString(System.String)</Item>
+               <Item>System.Int32.ToString(System.String,System.IFormatProvider)</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="InitializeLogin():System.Void">
+            <Messages>
+             <Message Id="OpenSim.Framework.User.UserProfileManager.SetKeys(System.String,System.String,System.String,System.String)" TypeName="DoNotPassLiteralsAsLocalizedParameters" Category="Microsoft.Globalization" CheckId="CA1303" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>LoginServer.InitializeLogin():Void</Item>
+               <Item>4</Item>
+               <Item>UserProfileManager.SetKeys(String, String, String, String):Void</Item>
+               <Item>Welcome to OpenSim</Item>
+              </Issue>
+             </Message>
+             <Message Id="Sim" TypeName="LiteralsShouldBeSpelledCorrectly" Category="Microsoft.Usage" CheckId="CA2204" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>Sim</Item>
+               <Item>OpenSim</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="LoginRequest(System.IO.StreamReader,System.IO.StreamWriter):System.Void">
+            <Messages>
+             <Message TypeName="DoNotRaiseReservedExceptionTypes" Category="Microsoft.Usage" CheckId="CA2201" Created="2007-03-27 04:29:04Z">
+              <Issue Name="TooGeneric">
+               <Item>LoginServer.LoginRequest(StreamReader, StreamWriter):Void</Item>
+               <Item>System.Exception</Item>
+              </Issue>
+             </Message>
+             <Message Id="System.Convert.ToInt32(System.String)" TypeName="SpecifyIFormatProvider" Category="Microsoft.Globalization" CheckId="CA1305" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>LoginServer.LoginRequest(StreamReader, StreamWriter):Void</Item>
+               <Item>System.Convert.ToInt32(System.String)</Item>
+               <Item>System.Convert.ToInt32(System.String,System.IFormatProvider)</Item>
+              </Issue>
+             </Message>
+             <Message TypeName="TestForEmptyStringsUsingStringLength" Category="Microsoft.Performance" CheckId="CA1820" Created="2007-03-27 04:29:04Z">
+              <Issue Name="IsNullOrEmpty">
+               <Item>op_Inequality</Item>
+               <Item>""</Item>
+               <Item>LoginServer.LoginRequest(StreamReader, StreamWriter):Void</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="ProcessXmlRequest(Nwc.XmlRpc.XmlRpcRequest,System.IO.StreamWriter):System.Boolean">
+            <Messages>
+             <Message TypeName="ConsiderPassingBaseTypesAsParameters" Category="Microsoft.Design" CheckId="CA1011" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>writer</Item>
+               <Item>LoginServer.ProcessXmlRequest(XmlRpcRequest, StreamWriter):Boolean</Item>
+               <Item>System.IO.StreamWriter</Item>
+               <Item>System.IO.TextWriter</Item>
+              </Issue>
+             </Message>
+             <Message Id="System.Int32.ToString" TypeName="SpecifyIFormatProvider" Category="Microsoft.Globalization" CheckId="CA1305" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>LoginServer.ProcessXmlRequest(XmlRpcRequest, StreamWriter):Boolean</Item>
+               <Item>System.Int32.ToString</Item>
+               <Item>System.Int32.ToString(System.IFormatProvider)</Item>
+              </Issue>
+             </Message>
+             <Message Id="System.Int32.ToString(System.String)" TypeName="SpecifyIFormatProvider" Category="Microsoft.Globalization" CheckId="CA1305" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>LoginServer.ProcessXmlRequest(XmlRpcRequest, StreamWriter):Boolean</Item>
+               <Item>System.Int32.ToString(System.String)</Item>
+               <Item>System.Int32.ToString(System.String,System.IFormatProvider)</Item>
+              </Issue>
+             </Message>
+             <Message TypeName="ValidateArgumentsOfPublicMethods" Category="Microsoft.Design" CheckId="CA1062" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>'request'</Item>
+               <Item>LoginServer.ProcessXmlRequest(XmlRpcRequest, StreamWriter):Boolean</Item>
+              </Issue>
+              <Issue>
+               <Item>'writer'</Item>
+               <Item>LoginServer.ProcessXmlRequest(XmlRpcRequest, StreamWriter):Boolean</Item>
+              </Issue>
+              <Issue>
+               <Item>'writer'</Item>
+               <Item>LoginServer.ProcessXmlRequest(XmlRpcRequest, StreamWriter):Boolean</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="remoteAddress">
+            <Messages>
+             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>remoteAddress</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="RunLogin():System.Void">
+            <Messages>
+             <Message TypeName="DoNotCatchGeneralExceptionTypes" Category="Microsoft.Design" CheckId="CA1031" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>LoginServer.RunLogin():Void</Item>
+               <Item>System.Exception</Item>
+              </Issue>
+              <Issue>
+               <Item>LoginServer.RunLogin():Void</Item>
+               <Item>System.Exception</Item>
+              </Issue>
+             </Message>
+             <Message Id="clientEndPoint" TypeName="RemoveUnusedLocals" Category="Microsoft.Performance" CheckId="CA1804" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>LoginServer.RunLogin():Void</Item>
+               <Item>clientEndPoint</Item>
+               <Item>System.Net.IPEndPoint</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+          </Members>
+         </Type>
+        </Types>
+       </Namespace>
+       <Namespace Name="OpenSim.world">
+        <Types>
+         <Type Name="Avatar">
+          <Members>
+           <Member Name=".cctor()">
+            <Messages>
+             <Message TypeName="DoNotInitializeUnnecessarily" Category="Microsoft.Performance" CheckId="CA1805" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>Avatar.Avatar()</Item>
+               <Item>PhysicsEngineFlying</Item>
+               <Item>System.Boolean</Item>
+               <Item>false</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name=".ctor(OpenSim.SimClient)">
+            <Messages>
+             <Message TypeName="DoNotInitializeUnnecessarily" Category="Microsoft.Performance" CheckId="CA1805" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>Avatar.Avatar(SimClient)</Item>
+               <Item>_updateCount</Item>
+               <Item>System.Int16</Item>
+               <Item>0</Item>
+              </Issue>
+              <Issue>
+               <Item>Avatar.Avatar(SimClient)</Item>
+               <Item>avatarAppearanceTexture</Item>
+               <Item>libsecondlife.LLObject+TextureEntry</Item>
+               <Item>null</Item>
+              </Issue>
+              <Issue>
+               <Item>Avatar.Avatar(SimClient)</Item>
+               <Item>movementflag</Item>
+               <Item>System.Byte</Item>
+               <Item>0</Item>
+              </Issue>
+              <Issue>
+               <Item>Avatar.Avatar(SimClient)</Item>
+               <Item>updateflag</Item>
+               <Item>System.Boolean</Item>
+               <Item>false</Item>
+              </Issue>
+             </Message>
+             <Message Id="0#" TypeName="IdentifiersShouldBeCasedCorrectly" Category="Microsoft.Naming" CheckId="CA1709" Created="2007-03-27 04:29:04Z">
+              <Issue Name="Parameter">
+               <Item>TheClient</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="anim_seq">
+            <Messages>
+             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>anim_seq</Item>
+              </Issue>
+             </Message>
+             <Message Id="anim" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
+              <Issue Name="Member">
+               <Item>anim</Item>
+               <Item>Avatar.anim_seq</Item>
+              </Issue>
+             </Message>
+             <Message Id="Member" TypeName="IdentifiersShouldNotContainUnderscores" Category="Microsoft.Naming" CheckId="CA1707" Created="2007-03-27 04:29:04Z">
+              <Issue Name="Member">
+               <Item>anim_seq</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="Animations">
+            <Messages>
+             <Message TypeName="NonConstantFieldsShouldNotBeVisible" Category="Microsoft.Usage" CheckId="CA2211" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>Animations</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="CompleteMovement(OpenSim.world.World):System.Void">
+            <Messages>
+             <Message Id="0#" TypeName="IdentifiersShouldBeCasedCorrectly" Category="Microsoft.Naming" CheckId="CA1709" Created="2007-03-27 04:29:04Z">
+              <Issue Name="Parameter">
+               <Item>RegionInfo</Item>
+              </Issue>
+             </Message>
+             <Message Id="RegionInfo" TypeName="ReviewUnusedParameters" Category="Microsoft.Usage" CheckId="CA1801" Created="2007-03-27 04:29:04Z" FixCategory="Breaking">
+              <Issue>
+               <Item>RegionInfo</Item>
+               <Item>Avatar.CompleteMovement(World):Void</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="ControllingClient">
+            <Messages>
+             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>ControllingClient</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="current_anim">
+            <Messages>
+             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>current_anim</Item>
+              </Issue>
+             </Message>
+             <Message Id="anim" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
+              <Issue Name="Member">
+               <Item>anim</Item>
+               <Item>Avatar.current_anim</Item>
+              </Issue>
+             </Message>
+             <Message Id="Member" TypeName="IdentifiersShouldNotContainUnderscores" Category="Microsoft.Naming" CheckId="CA1707" Created="2007-03-27 04:29:04Z">
+              <Issue Name="Member">
+               <Item>current_anim</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="firstname">
+            <Messages>
+             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>firstname</Item>
+              </Issue>
+             </Message>
+             <Message Id="firstname" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
+              <Issue Name="Member">
+               <Item>firstname</Item>
+               <Item>Avatar.firstname</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="lastname">
+            <Messages>
+             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>lastname</Item>
+              </Issue>
+             </Message>
+             <Message Id="lastname" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
+              <Issue Name="Member">
+               <Item>lastname</Item>
+               <Item>Avatar.lastname</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="LoadAnims():System.Void">
+            <Messages>
+             <Message Id="Anims" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
+              <Issue Name="Member">
+               <Item>Anims</Item>
+               <Item>Avatar.LoadAnims():Void</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="PhysActor">
+            <Messages>
+             <Message TypeName="PropertiesShouldNotBeWriteOnly" Category="Microsoft.Design" CheckId="CA1044" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>PhysActor</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="PhysicsEngineFlying">
+            <Messages>
+             <Message TypeName="NonConstantFieldsShouldNotBeVisible" Category="Microsoft.Usage" CheckId="CA2211" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>PhysicsEngineFlying</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="SendAnimPack():System.Void">
+            <Messages>
+             <Message Id="Anim" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
+              <Issue Name="Member">
+               <Item>Anim</Item>
+               <Item>Avatar.SendAnimPack():Void</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="SendAppearanceToOtherAgent(OpenSim.SimClient):System.Void">
+            <Messages>
+             <Message TypeName="ValidateArgumentsOfPublicMethods" Category="Microsoft.Design" CheckId="CA1062" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>'userInfo'</Item>
+               <Item>Avatar.SendAppearanceToOtherAgent(SimClient):Void</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="SendRegionHandshake(OpenSim.world.World):System.Void">
+            <Messages>
+             <Message Id="0#" TypeName="IdentifiersShouldBeCasedCorrectly" Category="Microsoft.Naming" CheckId="CA1709" Created="2007-03-27 04:29:04Z">
+              <Issue Name="Parameter">
+               <Item>RegionInfo</Item>
+              </Issue>
+             </Message>
+             <Message Id="RegionInfo" TypeName="ReviewUnusedParameters" Category="Microsoft.Usage" CheckId="CA1801" Created="2007-03-27 04:29:04Z" FixCategory="Breaking">
+              <Issue>
+               <Item>RegionInfo</Item>
+               <Item>Avatar.SendRegionHandshake(World):Void</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+          </Members>
+         </Type>
+         <Type Name="AvatarAnimations">
+          <Members>
+           <Member Name="AnimsLLUUID">
+            <Messages>
+             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>AnimsLLUUID</Item>
+              </Issue>
+             </Message>
+             <Message Id="Anims" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
+              <Issue Name="Member">
+               <Item>Anims</Item>
+               <Item>AvatarAnimations.AnimsLLUUID</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="AnimsNames">
+            <Messages>
+             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>AnimsNames</Item>
+              </Issue>
+             </Message>
+             <Message Id="Anims" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
+              <Issue Name="Member">
+               <Item>Anims</Item>
+               <Item>AvatarAnimations.AnimsNames</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="LoadAnims():System.Void">
+            <Messages>
+             <Message Id="Anims" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
+              <Issue Name="Member">
+               <Item>Anims</Item>
+               <Item>AvatarAnimations.LoadAnims():Void</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+          </Members>
+         </Type>
+         <Type Name="Entity">
+          <Members>
+           <Member Name=".ctor()">
+            <Messages>
+             <Message TypeName="DoNotInitializeUnnecessarily" Category="Microsoft.Performance" CheckId="CA1805" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>Entity.Entity()</Item>
+               <Item>localid</Item>
+               <Item>System.UInt32</Item>
+               <Item>0</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="addForces():System.Void">
+            <Messages>
+             <Message Id="Member" TypeName="IdentifiersShouldBeCasedCorrectly" Category="Microsoft.Naming" CheckId="CA1709" Created="2007-03-27 04:29:04Z">
+              <Issue Name="Member">
+               <Item>addForces</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="BackUp():System.Void">
+            <Messages>
+             <Message Id="BackUp" TypeName="CompoundWordsShouldBeCasedCorrectly" Category="Microsoft.Naming" CheckId="CA1702" Created="2007-03-27 04:29:04Z">
+              <Issue Name="ShouldBeDiscreteTerm">
+               <Item>BackUp</Item>
+               <Item>method</Item>
+               <Item>BackUp</Item>
+               <Item>Backup</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="children">
+            <Messages>
+             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>children</Item>
+              </Issue>
+             </Message>
+             <Message TypeName="DoNotExposeGenericLists" Category="Microsoft.Design" CheckId="CA1002" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>System.Collections.Generic.List`1&lt;OpenSim.world.Entity&gt;</Item>
+               <Item>Entity.children</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="getMesh():OpenSim.types.Mesh">
+            <Messages>
+             <Message Id="Member" TypeName="IdentifiersShouldBeCasedCorrectly" Category="Microsoft.Naming" CheckId="CA1709" Created="2007-03-27 04:29:04Z">
+              <Issue Name="Member">
+               <Item>getMesh</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="getName():System.String">
+            <Messages>
+             <Message Id="Member" TypeName="IdentifiersShouldBeCasedCorrectly" Category="Microsoft.Naming" CheckId="CA1709" Created="2007-03-27 04:29:04Z">
+              <Issue Name="Member">
+               <Item>getName</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="localid">
+            <Messages>
+             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>localid</Item>
+              </Issue>
+             </Message>
+             <Message Id="localid" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
+              <Issue Name="Member">
+               <Item>localid</Item>
+               <Item>Entity.localid</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="name">
+            <Messages>
+             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>name</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="position">
+            <Messages>
+             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>position</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="rotation">
+            <Messages>
+             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>rotation</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="update():System.Void">
+            <Messages>
+             <Message Id="Member" TypeName="IdentifiersShouldBeCasedCorrectly" Category="Microsoft.Naming" CheckId="CA1709" Created="2007-03-27 04:29:04Z">
+              <Issue Name="Member">
+               <Item>update</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="uuid">
+            <Messages>
+             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>uuid</Item>
+              </Issue>
+             </Message>
+             <Message Id="uuid" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
+              <Issue Name="Member">
+               <Item>uuid</Item>
+               <Item>Entity.uuid</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="velocity">
+            <Messages>
+             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>velocity</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+          </Members>
+         </Type>
+         <Type Name="NewForce">
+          <Members>
+           <Member Name="X">
+            <Messages>
+             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>X</Item>
+              </Issue>
+             </Message>
+             <Message Id="X" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
+              <Issue Name="MemberOneLetter">
+               <Item>X</Item>
+               <Item>NewForce.X</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="Y">
+            <Messages>
+             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>Y</Item>
+              </Issue>
+             </Message>
+             <Message Id="Y" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
+              <Issue Name="MemberOneLetter">
+               <Item>Y</Item>
+               <Item>NewForce.Y</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="Z">
+            <Messages>
+             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>Z</Item>
+              </Issue>
+             </Message>
+             <Message Id="Z" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
+              <Issue Name="MemberOneLetter">
+               <Item>Z</Item>
+               <Item>NewForce.Z</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+          </Members>
+         </Type>
+         <Type Name="Primitive">
+          <Messages>
+           <Message TypeName="IdentifiersShouldDifferByMoreThanCase" Category="Microsoft.Naming" CheckId="CA1708" Created="2007-03-27 04:29:04Z">
+            <Issue Name="Member">
+             <Item>'UpdateFlag'</Item>
+             <Item>updateFlag</Item>
+            </Issue>
+           </Message>
+          </Messages>
+          <Members>
+           <Member Name=".ctor()">
+            <Messages>
+             <Message TypeName="DoNotInitializeUnnecessarily" Category="Microsoft.Performance" CheckId="CA1805" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>Primitive.Primitive()</Item>
+               <Item>dirtyFlag</Item>
+               <Item>System.Boolean</Item>
+               <Item>false</Item>
+              </Issue>
+              <Issue>
+               <Item>Primitive.Primitive()</Item>
+               <Item>mesh_cutbegin</Item>
+               <Item>System.Single</Item>
+               <Item>0.0</Item>
+              </Issue>
+              <Issue>
+               <Item>Primitive.Primitive()</Item>
+               <Item>newPrimFlag</Item>
+               <Item>System.Boolean</Item>
+               <Item>false</Item>
+              </Issue>
+              <Issue>
+               <Item>Primitive.Primitive()</Item>
+               <Item>physicsEnabled</Item>
+               <Item>System.Boolean</Item>
+               <Item>false</Item>
+              </Issue>
+              <Issue>
+               <Item>Primitive.Primitive()</Item>
+               <Item>physicstest</Item>
+               <Item>System.Boolean</Item>
+               <Item>false</Item>
+              </Issue>
+              <Issue>
+               <Item>Primitive.Primitive()</Item>
+               <Item>updateFlag</Item>
+               <Item>System.Boolean</Item>
+               <Item>false</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="CreateFromPacket(libsecondlife.Packets.ObjectAddPacket,libsecondlife.LLUUID,System.UInt32):System.Void">
+            <Messages>
+             <Message Id="localID-702000" TypeName="OperationsShouldNotOverflow" Category="Microsoft.Usage" CheckId="CA2233" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>localID-702000</Item>
+               <Item>Primitive.CreateFromPacket(ObjectAddPacket, LLUUID, UInt32):Void</Item>
+              </Issue>
+             </Message>
+             <Message Id="1#" TypeName="ShortAcronymsShouldBeUppercase" Category="Microsoft.Naming" CheckId="CA1706" Created="2007-03-27 04:29:04Z">
+              <Issue Name="ParameterId">
+               <Item>ID</Item>
+               <Item>agentID</Item>
+               <Item>Id</Item>
+              </Issue>
+             </Message>
+             <Message Id="2#" TypeName="ShortAcronymsShouldBeUppercase" Category="Microsoft.Naming" CheckId="CA1706" Created="2007-03-27 04:29:04Z">
+              <Issue Name="ParameterId">
+               <Item>ID</Item>
+               <Item>localID</Item>
+               <Item>Id</Item>
+              </Issue>
+             </Message>
+             <Message Id="System.UInt32.ToString(System.String)" TypeName="SpecifyIFormatProvider" Category="Microsoft.Globalization" CheckId="CA1305" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>Primitive.CreateFromPacket(ObjectAddPacket, LLUUID, UInt32):Void</Item>
+               <Item>System.UInt32.ToString(System.String)</Item>
+               <Item>System.UInt32.ToString(System.String,System.IFormatProvider)</Item>
+              </Issue>
+             </Message>
+             <Message TypeName="ValidateArgumentsOfPublicMethods" Category="Microsoft.Design" CheckId="CA1062" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>'addPacket'</Item>
+               <Item>Primitive.CreateFromPacket(ObjectAddPacket, LLUUID, UInt32):Void</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="CreateFromStorage(OpenSim.Framework.Assets.PrimData):System.Void">
+            <Messages>
+             <Message TypeName="ValidateArgumentsOfPublicMethods" Category="Microsoft.Design" CheckId="CA1062" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>'store'</Item>
+               <Item>Primitive.CreateFromStorage(PrimData):Void</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="dirtyFlag">
+            <Messages>
+             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>dirtyFlag</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="mesh_cutbegin">
+            <Messages>
+             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>mesh_cutbegin</Item>
+              </Issue>
+             </Message>
+             <Message Id="cutbegin" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
+              <Issue Name="Member">
+               <Item>cutbegin</Item>
+               <Item>Primitive.mesh_cutbegin</Item>
+              </Issue>
+             </Message>
+             <Message Id="Member" TypeName="IdentifiersShouldNotContainUnderscores" Category="Microsoft.Naming" CheckId="CA1707" Created="2007-03-27 04:29:04Z">
+              <Issue Name="Member">
+               <Item>mesh_cutbegin</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="mesh_cutend">
+            <Messages>
+             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>mesh_cutend</Item>
+              </Issue>
+             </Message>
+             <Message Id="cutend" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
+              <Issue Name="Member">
+               <Item>cutend</Item>
+               <Item>Primitive.mesh_cutend</Item>
+              </Issue>
+             </Message>
+             <Message Id="Member" TypeName="IdentifiersShouldNotContainUnderscores" Category="Microsoft.Naming" CheckId="CA1707" Created="2007-03-27 04:29:04Z">
+              <Issue Name="Member">
+               <Item>mesh_cutend</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="newPrimFlag">
+            <Messages>
+             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>newPrimFlag</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="PhysActor">
+            <Messages>
+             <Message TypeName="PropertiesShouldNotBeWriteOnly" Category="Microsoft.Design" CheckId="CA1044" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>PhysActor</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="primData">
+            <Messages>
+             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>primData</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="UpdateClient(OpenSim.SimClient):System.Void">
+            <Messages>
+             <Message Id="0#" TypeName="IdentifiersShouldBeCasedCorrectly" Category="Microsoft.Naming" CheckId="CA1709" Created="2007-03-27 04:29:04Z">
+              <Issue Name="Parameter">
+               <Item>RemoteClient</Item>
+              </Issue>
+             </Message>
+             <Message TypeName="ValidateArgumentsOfPublicMethods" Category="Microsoft.Design" CheckId="CA1062" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>'RemoteClient'</Item>
+               <Item>Primitive.UpdateClient(SimClient):Void</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="updateFlag">
+            <Messages>
+             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>updateFlag</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="UpdateObjectFlags(libsecondlife.Packets.ObjectFlagUpdatePacket):System.Void">
+            <Messages>
+             <Message TypeName="ValidateArgumentsOfPublicMethods" Category="Microsoft.Design" CheckId="CA1062" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>'pack'</Item>
+               <Item>Primitive.UpdateObjectFlags(ObjectFlagUpdatePacket):Void</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="UpdateShape(libsecondlife.Packets.ObjectShapePacket+ObjectDataBlock):System.Void">
+            <Messages>
+             <Message TypeName="ValidateArgumentsOfPublicMethods" Category="Microsoft.Design" CheckId="CA1062" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>'addPacket'</Item>
+               <Item>Primitive.UpdateShape(ObjectDataBlock):Void</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+          </Members>
+         </Type>
+         <Type Name="ScriptEngine">
+          <Members>
+           <Member Name=".ctor(OpenSim.world.World)">
+            <Messages>
+             <Message Id="0#env" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
+              <Issue Name="Parameter">
+               <Item>ScriptEngine.ScriptEngine(World)</Item>
+               <Item>env</Item>
+               <Item>env</Item>
+              </Issue>
+             </Message>
+             <Message Id="env" TypeName="ReviewUnusedParameters" Category="Microsoft.Usage" CheckId="CA1801" Created="2007-03-27 04:29:04Z" FixCategory="Breaking">
+              <Issue>
+               <Item>env</Item>
+               <Item>ScriptEngine.ScriptEngine(World)</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="LoadScript():System.Void">
+            <Messages>
+             <Message TypeName="MarkMembersAsStatic" Category="Microsoft.Performance" CheckId="CA1822" Created="2007-03-27 04:29:04Z" FixCategory="Breaking">
+              <Issue>
+               <Item>ScriptEngine.LoadScript():Void</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+          </Members>
+         </Type>
+         <Type Name="SurfacePatch">
+          <Members>
+           <Member Name="HeightMap">
+            <Messages>
+             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>HeightMap</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+          </Members>
+         </Type>
+         <Type Name="World">
+          <Messages>
+           <Message TypeName="TypeNamesShouldNotMatchNamespaces" Category="Microsoft.Naming" CheckId="CA1724" Created="2007-03-27 04:29:04Z">
+            <Issue>
+             <Item>World</Item>
+             <Item>OpenSim.world</Item>
+            </Issue>
+           </Message>
+          </Messages>
+          <Members>
+           <Member Name=".ctor()">
+            <Messages>
+             <Message TypeName="DoNotInitializeUnnecessarily" Category="Microsoft.Performance" CheckId="CA1805" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>World.World()</Item>
+               <Item>_localNumber</Item>
+               <Item>System.UInt32</Item>
+               <Item>0</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="_localNumber">
+            <Messages>
+             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>_localNumber</Item>
+              </Issue>
+             </Message>
+             <Message Id="Member" TypeName="IdentifiersShouldNotContainUnderscores" Category="Microsoft.Naming" CheckId="CA1707" Created="2007-03-27 04:29:04Z">
+              <Issue Name="Member">
+               <Item>_localNumber</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="AddNewPrim(libsecondlife.Packets.ObjectAddPacket,OpenSim.SimClient):System.Void">
+            <Messages>
+             <Message Id="1#" TypeName="IdentifiersShouldBeCasedCorrectly" Category="Microsoft.Naming" CheckId="CA1709" Created="2007-03-27 04:29:04Z">
+              <Issue Name="Parameter">
+               <Item>AgentClient</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="AddViewerAgent(OpenSim.SimClient):System.Void">
+            <Messages>
+             <Message Id="0#" TypeName="IdentifiersShouldBeCasedCorrectly" Category="Microsoft.Naming" CheckId="CA1709" Created="2007-03-27 04:29:04Z">
+              <Issue Name="Parameter">
+               <Item>AgentClient</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="DeRezObject(libsecondlife.Packets.DeRezObjectPacket,OpenSim.SimClient):System.Void">
+            <Messages>
+             <Message Id="0#" TypeName="IdentifiersShouldBeCasedCorrectly" Category="Microsoft.Naming" CheckId="CA1709" Created="2007-03-27 04:29:04Z">
+              <Issue Name="Parameter">
+               <Item>DeRezPacket</Item>
+              </Issue>
+             </Message>
+             <Message Id="1#" TypeName="IdentifiersShouldBeCasedCorrectly" Category="Microsoft.Naming" CheckId="CA1709" Created="2007-03-27 04:29:04Z">
+              <Issue Name="Parameter">
+               <Item>AgentClient</Item>
+              </Issue>
+             </Message>
+             <Message Id="0#Rez" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
+              <Issue Name="Parameter">
+               <Item>World.DeRezObject(DeRezObjectPacket, SimClient):Void</Item>
+               <Item>Rez</Item>
+               <Item>DeRezPacket</Item>
+              </Issue>
+             </Message>
+             <Message Id="Rez" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
+              <Issue Name="Member">
+               <Item>Rez</Item>
+               <Item>World.DeRezObject(DeRezObjectPacket, SimClient):Void</Item>
+              </Issue>
+             </Message>
+             <Message Id="AgentClient" TypeName="ReviewUnusedParameters" Category="Microsoft.Usage" CheckId="CA1801" Created="2007-03-27 04:29:04Z" FixCategory="Breaking">
+              <Issue>
+               <Item>AgentClient</Item>
+               <Item>World.DeRezObject(DeRezObjectPacket, SimClient):Void</Item>
+              </Issue>
+             </Message>
+             <Message Id="Member" TypeName="ShortAcronymsShouldBeUppercase" Category="Microsoft.Naming" CheckId="CA1706" Created="2007-03-27 04:29:04Z">
+              <Issue Name="Member">
+               <Item>De</Item>
+               <Item>World.DeRezObject(DeRezObjectPacket, SimClient):Void</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="Entities">
+            <Messages>
+             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>Entities</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="GetInitialPrims(OpenSim.SimClient):System.Void">
+            <Messages>
+             <Message Id="0#" TypeName="IdentifiersShouldBeCasedCorrectly" Category="Microsoft.Naming" CheckId="CA1709" Created="2007-03-27 04:29:04Z">
+              <Issue Name="Parameter">
+               <Item>RemoteClient</Item>
+              </Issue>
+             </Message>
+             <Message Id="Prims" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
+              <Issue Name="Member">
+               <Item>Prims</Item>
+               <Item>World.GetInitialPrims(SimClient):Void</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="LandMap">
+            <Messages>
+             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>LandMap</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="LoadPrimsFromStorage():System.Void">
+            <Messages>
+             <Message Id="Prims" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
+              <Issue Name="Member">
+               <Item>Prims</Item>
+               <Item>World.LoadPrimsFromStorage():Void</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="LoadStorageDLL(System.String):System.Boolean">
+            <Messages>
+             <Message Id="Member" TypeName="LongAcronymsShouldBePascalCased" Category="Microsoft.Naming" CheckId="CA1705" Created="2007-03-27 04:29:04Z">
+              <Issue Name="Member">
+               <Item>World.LoadStorageDLL(String):Boolean</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="localStorage">
+            <Messages>
+             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>localStorage</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="Rand">
+            <Messages>
+             <Message TypeName="AvoidUnusedPrivateFields" Category="Microsoft.Performance" CheckId="CA1823" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>World.Rand</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="Scripts">
+            <Messages>
+             <Message TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>Scripts</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="SendLayerData(OpenSim.SimClient):System.Void">
+            <Messages>
+             <Message Id="0#" TypeName="IdentifiersShouldBeCasedCorrectly" Category="Microsoft.Naming" CheckId="CA1709" Created="2007-03-27 04:29:04Z">
+              <Issue Name="Parameter">
+               <Item>RemoteClient</Item>
+              </Issue>
+             </Message>
+             <Message TypeName="ValidateArgumentsOfPublicMethods" Category="Microsoft.Design" CheckId="CA1062" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>'RemoteClient'</Item>
+               <Item>World.SendLayerData(SimClient):Void</Item>
+              </Issue>
+              <Issue>
+               <Item>'RemoteClient'</Item>
+               <Item>World.SendLayerData(SimClient):Void</Item>
+              </Issue>
+              <Issue>
+               <Item>'RemoteClient'</Item>
+               <Item>World.SendLayerData(SimClient):Void</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+          </Members>
+         </Type>
+        </Types>
+       </Namespace>
+       <Namespace Name="OpenSim.world.scripting">
+        <Types>
+         <Type Name="IScriptHost">
+          <Members>
+           <Member Name="Register(OpenSim.world.scripting.IScript):System.Boolean">
+            <Messages>
+             <Message Id="0#iscript" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
+              <Issue Name="Parameter">
+               <Item>IScriptHost.Register(IScript):Boolean</Item>
+               <Item>iscript</Item>
+               <Item>iscript</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+          </Members>
+         </Type>
+        </Types>
+       </Namespace>
+      </Namespaces>
+     </Module>
+    </Modules>
+   </Target>
+   <Target Name="$(ProjectDir)/bin/OpenSim.Storage.LocalStorageDb4o.dll">
+    <Modules>
+     <Module Name="opensim.storage.localstoragedb4o.dll">
+      <Messages>
+       <Message TypeName="AssembliesShouldDeclareMinimumSecurity" Category="Microsoft.Usage" CheckId="CA2209" Created="2007-03-27 04:29:04Z">
+        <Issue>
+         <Item>OpenSim.Storage.LocalStorageDb4o</Item>
+        </Issue>
+       </Message>
+       <Message TypeName="AssembliesShouldHaveValidStrongNames" Category="Microsoft.Design" CheckId="CA2210" Created="2007-03-27 04:29:04Z">
+        <Issue Name="NoStrongName">
+         <Item>OpenSim.Storage.LocalStorageDb4o</Item>
+        </Issue>
+       </Message>
+       <Message TypeName="MarkAssembliesWithClsCompliant" Category="Microsoft.Design" CheckId="CA1014" Created="2007-03-27 04:29:04Z">
+        <Issue Name="NoAttr">
+         <Item>OpenSim.Storage.LocalStorageDb4o</Item>
+        </Issue>
+       </Message>
+      </Messages>
+      <Namespaces>
+       <Namespace Name="OpenSim.Storage.LocalStorageDb4o">
+        <Types>
+         <Type Name="Db4LocalStorage">
+          <Members>
+           <Member Name=".ctor()">
+            <Messages>
+             <Message TypeName="DoNotCatchGeneralExceptionTypes" Category="Microsoft.Design" CheckId="CA1031" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>Db4LocalStorage.Db4LocalStorage()</Item>
+               <Item>System.Exception</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="LoadPrimitives(OpenSim.Framework.Interfaces.ILocalStorageReceiver):System.Void">
+            <Messages>
+             <Message TypeName="ValidateArgumentsOfPublicMethods" Category="Microsoft.Design" CheckId="CA1062" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>'receiver'</Item>
+               <Item>Db4LocalStorage.LoadPrimitives(ILocalStorageReceiver):Void</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="StorePrim(OpenSim.Framework.Assets.PrimData):System.Void">
+            <Messages>
+             <Message TypeName="ValidateArgumentsOfPublicMethods" Category="Microsoft.Design" CheckId="CA1062" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>'prim'</Item>
+               <Item>Db4LocalStorage.StorePrim(PrimData):Void</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+          </Members>
+         </Type>
+         <Type Name="UUIDQuery">
+          <Messages>
+           <Message TypeName="LongAcronymsShouldBePascalCased" Category="Microsoft.Naming" CheckId="CA1705" Created="2007-03-27 04:29:04Z">
+            <Issue Name="Type">
+             <Item>UUIDQuery</Item>
+            </Issue>
+           </Message>
+          </Messages>
+          <Members>
+           <Member Name="Match(OpenSim.Framework.Assets.PrimData):System.Boolean">
+            <Messages>
+             <Message TypeName="ValidateArgumentsOfPublicMethods" Category="Microsoft.Design" CheckId="CA1062" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>'prim'</Item>
+               <Item>UUIDQuery.Match(PrimData):Boolean</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+          </Members>
+         </Type>
+        </Types>
+       </Namespace>
+      </Namespaces>
+     </Module>
+    </Modules>
+   </Target>
+   <Target Name="$(ProjectDir)/bin/Physics/OpenSim.Physics.BasicPhysicsPlugin.dll">
+    <Modules>
+     <Module Name="opensim.physics.basicphysicsplugin.dll">
+      <Messages>
+       <Message TypeName="AssembliesShouldDeclareMinimumSecurity" Category="Microsoft.Usage" CheckId="CA2209" Status="Excluded" Created="2007-03-27 04:29:04Z">
+        <Issue>
+         <Item>OpenSim.Physics.BasicPhysicsPlugin</Item>
+        </Issue>
+        <Notes>
+         <User Name="Stefan">
+          <Note Id="2" />
+         </User>
+        </Notes>
+       </Message>
+       <Message TypeName="AssembliesShouldHaveValidStrongNames" Category="Microsoft.Design" CheckId="CA2210" Status="Excluded" Created="2007-03-27 04:29:04Z">
+        <Issue Name="NoStrongName">
+         <Item>OpenSim.Physics.BasicPhysicsPlugin</Item>
+        </Issue>
+        <Notes>
+         <User Name="Stefan">
+          <Note Id="0" />
+         </User>
+        </Notes>
+       </Message>
+       <Message TypeName="MarkAssembliesWithClsCompliant" Category="Microsoft.Design" CheckId="CA1014" Status="Excluded" Created="2007-03-27 04:29:04Z">
+        <Issue Name="NoAttr">
+         <Item>OpenSim.Physics.BasicPhysicsPlugin</Item>
+        </Issue>
+        <Notes>
+         <User Name="Stefan">
+          <Note Id="1" />
+         </User>
+        </Notes>
+       </Message>
+      </Messages>
+      <Namespaces>
+       <Namespace Name="OpenSim.Physics.BasicPhysicsPlugin">
+        <Types>
+         <Type Name="BasicActor">
+          <Members>
+           <Member Name="flying">
+            <Messages>
+             <Message TypeName="AvoidUnusedPrivateFields" Category="Microsoft.Performance" CheckId="CA1823" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>BasicActor.flying</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="SetAcceleration(OpenSim.Physics.Manager.PhysicsVector):System.Void">
+            <Messages>
+             <Message Id="0#accel" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
+              <Issue Name="Parameter">
+               <Item>BasicActor.SetAcceleration(PhysicsVector):Void</Item>
+               <Item>accel</Item>
+               <Item>accel</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+          </Members>
+         </Type>
+         <Type Name="BasicPhysicsPlugin">
+          <Messages>
+           <Message Id="Plugin" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
+            <Issue Name="Type">
+             <Item>Plugin</Item>
+             <Item>OpenSim.Physics.BasicPhysicsPlugin.BasicPhysicsPlugin</Item>
+            </Issue>
+           </Message>
+           <Message TypeName="TypeNamesShouldNotMatchNamespaces" Category="Microsoft.Naming" CheckId="CA1724" Created="2007-03-27 04:29:04Z">
+            <Issue>
+             <Item>BasicPhysicsPlugin</Item>
+             <Item>OpenSim.Physics.BasicPhysicsPlugin</Item>
+            </Issue>
+           </Message>
+          </Messages>
+         </Type>
+        </Types>
+       </Namespace>
+      </Namespaces>
+     </Module>
+    </Modules>
+   </Target>
+   <Target Name="$(ProjectDir)/bin/Physics/OpenSim.Physics.OdePlugin.dll">
+    <Modules>
+     <Module Name="opensim.physics.odeplugin.dll">
+      <Messages>
+       <Message TypeName="AssembliesShouldDeclareMinimumSecurity" Category="Microsoft.Usage" CheckId="CA2209" Created="2007-03-27 04:29:04Z">
+        <Issue>
+         <Item>OpenSim.Physics.OdePlugin</Item>
+        </Issue>
+       </Message>
+       <Message TypeName="AssembliesShouldHaveValidStrongNames" Category="Microsoft.Design" CheckId="CA2210" Created="2007-03-27 04:29:04Z">
+        <Issue Name="NoStrongName">
+         <Item>OpenSim.Physics.OdePlugin</Item>
+        </Issue>
+       </Message>
+       <Message TypeName="MarkAssembliesWithClsCompliant" Category="Microsoft.Design" CheckId="CA1014" Created="2007-03-27 04:29:04Z">
+        <Issue Name="NoAttr">
+         <Item>OpenSim.Physics.OdePlugin</Item>
+        </Issue>
+       </Message>
+      </Messages>
+      <Namespaces>
+       <Namespace Name="OpenSim.Physics.OdePlugin">
+        <Types>
+         <Type Name="OdeCharacter">
+          <Messages>
+           <Message TypeName="TypesThatOwnNativeResourcesShouldBeDisposable" Category="Microsoft.Design" CheckId="CA1049" Created="2007-03-27 04:29:04Z">
+            <Issue>
+             <Item>OdeCharacter</Item>
+            </Issue>
+           </Message>
+          </Messages>
+          <Members>
+           <Member Name=".ctor(OpenSim.Physics.OdePlugin.OdeScene,OpenSim.Physics.Manager.PhysicsVector)">
+            <Messages>
+             <Message Id="parent_scene" TypeName="ReviewUnusedParameters" Category="Microsoft.Usage" CheckId="CA1801" Created="2007-03-27 04:29:04Z" FixCategory="Breaking">
+              <Issue>
+               <Item>parent_scene</Item>
+               <Item>OdeCharacter.OdeCharacter(OdeScene, PhysicsVector)</Item>
+              </Issue>
+             </Message>
+             <Message TypeName="ValidateArgumentsOfPublicMethods" Category="Microsoft.Design" CheckId="CA1062" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>'pos'</Item>
+               <Item>OdeCharacter.OdeCharacter(OdeScene, PhysicsVector)</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="capsule_geom">
+            <Messages>
+             <Message TypeName="AvoidUnusedPrivateFields" Category="Microsoft.Performance" CheckId="CA1823" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>OdeCharacter.capsule_geom</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="gravityAccel">
+            <Messages>
+             <Message TypeName="AvoidUnusedPrivateFields" Category="Microsoft.Performance" CheckId="CA1823" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>OdeCharacter.gravityAccel</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="SetAcceleration(OpenSim.Physics.Manager.PhysicsVector):System.Void">
+            <Messages>
+             <Message Id="0#accel" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
+              <Issue Name="Parameter">
+               <Item>OdeCharacter.SetAcceleration(PhysicsVector):Void</Item>
+               <Item>accel</Item>
+               <Item>accel</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+          </Members>
+         </Type>
+         <Type Name="OdePlugin">
+          <Messages>
+           <Message Id="Plugin" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
+            <Issue Name="Type">
+             <Item>Plugin</Item>
+             <Item>OpenSim.Physics.OdePlugin.OdePlugin</Item>
+            </Issue>
+           </Message>
+           <Message TypeName="TypeNamesShouldNotMatchNamespaces" Category="Microsoft.Naming" CheckId="CA1724" Created="2007-03-27 04:29:04Z">
+            <Issue>
+             <Item>OdePlugin</Item>
+             <Item>OpenSim.Physics.OdePlugin</Item>
+            </Issue>
+           </Message>
+          </Messages>
+         </Type>
+         <Type Name="OdePrim">
+          <Members>
+           <Member Name="_position">
+            <Messages>
+             <Message TypeName="AvoidUnusedPrivateFields" Category="Microsoft.Performance" CheckId="CA1823" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>OdePrim._position</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="SetAcceleration(OpenSim.Physics.Manager.PhysicsVector):System.Void">
+            <Messages>
+             <Message Id="0#accel" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
+              <Issue Name="Parameter">
+               <Item>OdePrim.SetAcceleration(PhysicsVector):Void</Item>
+               <Item>accel</Item>
+               <Item>accel</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+          </Members>
+         </Type>
+         <Type Name="OdeScene">
+          <Members>
+           <Member Name="AddPrim(OpenSim.Physics.Manager.PhysicsVector,OpenSim.Physics.Manager.PhysicsVector):OpenSim.Physics.Manager.PhysicsActor">
+            <Messages>
+             <Message TypeName="ValidateArgumentsOfPublicMethods" Category="Microsoft.Design" CheckId="CA1062" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>'position'</Item>
+               <Item>OdeScene.AddPrim(PhysicsVector, PhysicsVector):PhysicsActor</Item>
+              </Issue>
+              <Issue>
+               <Item>'size'</Item>
+               <Item>OdeScene.AddPrim(PhysicsVector, PhysicsVector):PhysicsActor</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="Land">
+            <Messages>
+             <Message TypeName="AvoidUnusedPrivateFields" Category="Microsoft.Performance" CheckId="CA1823" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>OdeScene.Land</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="LandGeom">
+            <Messages>
+             <Message TypeName="AvoidUnusedPrivateFields" Category="Microsoft.Performance" CheckId="CA1823" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>OdeScene.LandGeom</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="SetTerrain(System.Single[]):System.Void">
+            <Messages>
+             <Message TypeName="ValidateArgumentsOfPublicMethods" Category="Microsoft.Design" CheckId="CA1062" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>'heightMap'</Item>
+               <Item>OdeScene.SetTerrain(Single[]):Void</Item>
+              </Issue>
+              <Issue>
+               <Item>'heightMap'</Item>
+               <Item>OdeScene.SetTerrain(Single[]):Void</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="space">
+            <Messages>
+             <Message TypeName="NonConstantFieldsShouldNotBeVisible" Category="Microsoft.Usage" CheckId="CA2211" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>space</Item>
+              </Issue>
+             </Message>
+             <Message TypeName="PointersShouldNotBeVisible" Category="Microsoft.Security" CheckId="CA2111" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>space</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="world">
+            <Messages>
+             <Message TypeName="NonConstantFieldsShouldNotBeVisible" Category="Microsoft.Usage" CheckId="CA2211" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>world</Item>
+              </Issue>
+             </Message>
+             <Message TypeName="PointersShouldNotBeVisible" Category="Microsoft.Security" CheckId="CA2111" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>world</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+          </Members>
+         </Type>
+        </Types>
+       </Namespace>
+      </Namespaces>
+     </Module>
+    </Modules>
+   </Target>
+   <Target Name="$(ProjectDir)/bin/Physics/OpenSim.Physics.PhysXPlugin.dll">
+    <Modules>
+     <Module Name="opensim.physics.physxplugin.dll">
+      <Messages>
+       <Message TypeName="AssembliesShouldDeclareMinimumSecurity" Category="Microsoft.Usage" CheckId="CA2209" Created="2007-03-27 04:29:04Z">
+        <Issue>
+         <Item>OpenSim.Physics.PhysXPlugin</Item>
+        </Issue>
+       </Message>
+       <Message TypeName="AssembliesShouldHaveValidStrongNames" Category="Microsoft.Design" CheckId="CA2210" Created="2007-03-27 04:29:04Z">
+        <Issue Name="NoStrongName">
+         <Item>OpenSim.Physics.PhysXPlugin</Item>
+        </Issue>
+       </Message>
+       <Message TypeName="MarkAssembliesWithClsCompliant" Category="Microsoft.Design" CheckId="CA1014" Created="2007-03-27 04:29:04Z">
+        <Issue Name="NoAttr">
+         <Item>OpenSim.Physics.PhysXPlugin</Item>
+        </Issue>
+       </Message>
+      </Messages>
+      <Namespaces>
+       <Namespace Name="OpenSim.Physics.PhysXPlugin">
+        <Types>
+         <Type Name="PhysXCharacter">
+          <Members>
+           <Member Name="SetAcceleration(OpenSim.Physics.Manager.PhysicsVector):System.Void">
+            <Messages>
+             <Message Id="0#accel" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
+              <Issue Name="Parameter">
+               <Item>PhysXCharacter.SetAcceleration(PhysicsVector):Void</Item>
+               <Item>accel</Item>
+               <Item>accel</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+          </Members>
+         </Type>
+         <Type Name="PhysXPlugin">
+          <Messages>
+           <Message Id="Plugin" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
+            <Issue Name="Type">
+             <Item>Plugin</Item>
+             <Item>OpenSim.Physics.PhysXPlugin.PhysXPlugin</Item>
+            </Issue>
+           </Message>
+           <Message TypeName="TypeNamesShouldNotMatchNamespaces" Category="Microsoft.Naming" CheckId="CA1724" Created="2007-03-27 04:29:04Z">
+            <Issue>
+             <Item>PhysXPlugin</Item>
+             <Item>OpenSim.Physics.PhysXPlugin</Item>
+            </Issue>
+           </Message>
+          </Messages>
+         </Type>
+         <Type Name="PhysXPrim">
+          <Members>
+           <Member Name="_position">
+            <Messages>
+             <Message TypeName="AvoidUnusedPrivateFields" Category="Microsoft.Performance" CheckId="CA1823" Created="2007-03-27 04:29:04Z">
+              <Issue>
+               <Item>PhysXPrim._position</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+           <Member Name="SetAcceleration(OpenSim.Physics.Manager.PhysicsVector):System.Void">
+            <Messages>
+             <Message Id="0#accel" TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704" Created="2007-03-27 04:29:04Z">
+              <Issue Name="Parameter">
+               <Item>PhysXPrim.SetAcceleration(PhysicsVector):Void</Item>
+               <Item>accel</Item>
+               <Item>accel</Item>
+              </Issue>
+             </Message>
+            </Messages>
+           </Member>
+          </Members>
+         </Type>
+        </Types>
+       </Namespace>
+      </Namespaces>
+     </Module>
+    </Modules>
+   </Target>
+  </Targets>
+  <Notes>
+   <User Name="Stefan">
+    <Note Id="0" Modified="2007-03-27 04:30:24Z">Save it for a rainy day.</Note>
+    <Note Id="1" Modified="2007-03-27 04:30:31Z">Save it for a rainy day.</Note>
+    <Note Id="2" Modified="2007-03-27 04:30:38Z">Save it for a rainy day.</Note>
+   </User>
+  </Notes>
+  <Rules>
+   <Rule TypeName="AssembliesShouldDeclareMinimumSecurity" Category="Microsoft.Usage" CheckId="CA2209">
+    <Resolution Name="Default">No valid permission requests were found for assembly '{0}'. You should always specify the minimum security permissions using SecurityAction.RequestMinimum.</Resolution>
+   </Rule>
+   <Rule TypeName="AssembliesShouldHaveValidStrongNames" Category="Microsoft.Design" CheckId="CA2210">
+    <Resolution Name="NoStrongName">Sign '{0}' with a strong name key.</Resolution>
+   </Rule>
+   <Rule TypeName="AvoidNamespacesWithFewTypes" Category="Microsoft.Design" CheckId="CA1020">
+    <Resolution Name="Default">Consider merging the types defined in '{0}' with another namespace.</Resolution>
+   </Rule>
+   <Rule TypeName="AvoidUnusedPrivateFields" Category="Microsoft.Performance" CheckId="CA1823">
+    <Resolution Name="Default">It appears that field '{0}' is never used or is only ever assigned to. Use this field or remove it.</Resolution>
+   </Rule>
+   <Rule TypeName="CollectionPropertiesShouldBeReadOnly" Category="Microsoft.Usage" CheckId="CA2227">
+    <Resolution Name="Default">Change '{0}' to be read-only by removing the property setter.</Resolution>
+   </Rule>
+   <Rule TypeName="CompoundWordsShouldBeCasedCorrectly" Category="Microsoft.Naming" CheckId="CA1702">
+    <Resolution Name="ShouldBeDiscreteTerm">The compound word '{0}' in {1} '{2}' exists as a discrete term. If your usage is intended to be single word, case it as '{3}'.</Resolution>
+   </Rule>
+   <Rule TypeName="ComVisibleTypeBaseTypesShouldBeComVisible" Category="Microsoft.Interoperability" CheckId="CA1405">
+    <Resolution Name="Default">'{0}' is marked ComVisible(true) but has the following ComVisible(false) types in its object hierarchy: {1}</Resolution>
+   </Rule>
+   <Rule TypeName="ConsiderPassingBaseTypesAsParameters" Category="Microsoft.Design" CheckId="CA1011">
+    <Resolution Name="Default">Consider changing the type of parameter '{0}' in {1} from {2} to its base type {3}. This method appears to only require base class members in its implementation. Suppress this violation if there is a compelling reason to require the more derived type in the method signature.</Resolution>
+   </Rule>
+   <Rule TypeName="DoNotCallOverridableMethodsInConstructors" Category="Microsoft.Usage" CheckId="CA2214">
+    <Resolution Name="Default">'{0}' contains a call chain that results in a call to a virtual method defined by the class. Review the following call stack for unintended consequences: {1}</Resolution>
+   </Rule>
+   <Rule TypeName="DoNotCatchGeneralExceptionTypes" Category="Microsoft.Design" CheckId="CA1031">
+    <Resolution Name="Default">Modify '{0}' to catch a more specific exception than '{1}' or rethrow the exception.</Resolution>
+   </Rule>
+   <Rule TypeName="DoNotDeclareReadOnlyMutableReferenceTypes" Category="Microsoft.Security" CheckId="CA2104">
+    <Resolution Name="Default">Remove the readonly declaration from '{0}' or change the field to one that is an immutable reference type. If the reference type '{1}' is, in fact, immutable, exclude this message.</Resolution>
+   </Rule>
+   <Rule TypeName="DoNotDeclareVisibleInstanceFields" Category="Microsoft.Design" CheckId="CA1051">
+    <Resolution Name="Default">Make '{0}' private or internal (Friend in VB, public private in C++) and provide a public or protected property to access it.</Resolution>
+   </Rule>
+   <Rule TypeName="DoNotExposeGenericLists" Category="Microsoft.Design" CheckId="CA1002">
+    <Resolution Name="Default">Change '{0}' in {1} to use Collection&lt;T&gt;, ReadOnlyCollection&lt;T&gt; or KeyedCollection&lt;K,V&gt;</Resolution>
+   </Rule>
+   <Rule TypeName="DoNotInitializeUnnecessarily" Category="Microsoft.Performance" CheckId="CA1805">
+    <Resolution Name="Default">{0} initializes field {1} of type {2} to {3}. Remove this initialization as it will be done automatically by the runtime.</Resolution>
+   </Rule>
+   <Rule TypeName="DoNotPassLiteralsAsLocalizedParameters" Category="Microsoft.Globalization" CheckId="CA1303">
+    <Resolution Name="Default">{0} passes a literal as parameter {1} of a call to {2}. Retrieve the following string argument from a resource table instead: '{3}'</Resolution>
+   </Rule>
+   <Rule TypeName="DoNotPassTypesByReference" Category="Microsoft.Design" CheckId="CA1045">
+    <Resolution Name="Default">Consider a design that does not require that '{0}' be a reference parameter.</Resolution>
+   </Rule>
+   <Rule TypeName="DoNotRaiseReservedExceptionTypes" Category="Microsoft.Usage" CheckId="CA2201">
+    <Resolution Name="TooGeneric">{0} creates an exception of type '{1}', an exception type that is not sufficiently specific and should never be raised by user code. If this exception instance might be thrown, use a different exception type.</Resolution>
+   </Rule>
+   <Rule TypeName="DoNotUseTimersThatPreventPowerStateChanges" Category="Microsoft.Mobility" CheckId="CA1601">
+    <Resolution Name="Default">Modify the call to {0} in method {1} to set the timer interval to a value that's greater than or equal to one second.</Resolution>
+   </Rule>
+   <Rule TypeName="IdentifiersShouldBeCasedCorrectly" Category="Microsoft.Naming" CheckId="CA1709">
+    <Resolution Name="Member">Correct the casing of member name '{0}'.</Resolution>
+    <Resolution Name="Namespace">Correct the casing of namespace name '{0}'.</Resolution>
+    <Resolution Name="Parameter">Correct the casing of parameter name '{0}'.</Resolution>
+    <Resolution Name="Type">Correct the casing of type name '{0}'.</Resolution>
+   </Rule>
+   <Rule TypeName="IdentifiersShouldBeSpelledCorrectly" Category="Microsoft.Naming" CheckId="CA1704">
+    <Resolution Name="Member">Correct the spelling of the unrecognized token '{0}' in member name '{1}'.</Resolution>
+    <Resolution Name="MemberOneLetter">Consider providing a more meaningful name than the one-letter token '{0}' in member name '{1}'.</Resolution>
+    <Resolution Name="Namespace">Correct the spelling of the unrecognized token '{0}' in namespace '{1}'.</Resolution>
+    <Resolution Name="Parameter">In method {0}, correct the spelling of the unrecognized token '{1}' in parameter name '{2}' or strip it entirely if it represents any sort of hungarian notation.</Resolution>
+    <Resolution Name="ParameterOneLetter">In method {0}, consider providing a more meaningful name than the one-letter parameter name '{1}'.</Resolution>
+    <Resolution Name="Type">Correct the spelling of the unrecognized token '{0}' in type name '{1}'.</Resolution>
+   </Rule>
+   <Rule TypeName="IdentifiersShouldDifferByMoreThanCase" Category="Microsoft.Naming" CheckId="CA1708">
+    <Resolution Name="Member">Change member names {0} and '{1}' so that they differ by more than case.</Resolution>
+   </Rule>
+   <Rule TypeName="IdentifiersShouldNotContainUnderscores" Category="Microsoft.Naming" CheckId="CA1707">
+    <Resolution Name="Member">Remove all underscores from member '{0}'.</Resolution>
+    <Resolution Name="Parameter">Remove all underscores from parameter '{0}'.</Resolution>
+    <Resolution Name="Type">Remove all underscores from type '{0}'.</Resolution>
+   </Rule>
+   <Rule TypeName="IdentifiersShouldNotHaveIncorrectSuffix" Category="Microsoft.Naming" CheckId="CA1711">
+    <Resolution Name="Default">Rename '{0}' so that it does not end in '{1}'.</Resolution>
+   </Rule>
+   <Rule TypeName="LiteralsShouldBeSpelledCorrectly" Category="Microsoft.Usage" CheckId="CA2204">
+    <Resolution Name="Default">Correct the spelling of the unrecognized token '{0}' in the literal '{1}'.</Resolution>
+   </Rule>
+   <Rule TypeName="LongAcronymsShouldBePascalCased" Category="Microsoft.Naming" CheckId="CA1705">
+    <Resolution Name="Member">Correct the capitalization of member name '{0}'.</Resolution>
+    <Resolution Name="Namespace">Correct the capitalization of namespace name '{0}'.</Resolution>
+    <Resolution Name="Parameter">Correct the capitalization of parameter name '{0}'.</Resolution>
+    <Resolution Name="Type">Correct the capitalization of type name '{0}'.</Resolution>
+   </Rule>
+   <Rule TypeName="MarkAssembliesWithAssemblyVersion" Category="Microsoft.Design" CheckId="CA1016">
+    <Resolution Name="Default">Add an AssemblyVersion attribute to '{0}'.</Resolution>
+   </Rule>
+   <Rule TypeName="MarkAssembliesWithClsCompliant" Category="Microsoft.Design" CheckId="CA1014">
+    <Resolution Name="NoAttr">'{0}' should be marked with CLSCompliantAttribute and its value should be true.</Resolution>
+   </Rule>
+   <Rule TypeName="MarkAssembliesWithComVisible" Category="Microsoft.Design" CheckId="CA1017">
+    <Resolution Name="NoAttribute">Mark '{0}' as ComVisible(false) at the assembly level, then mark all types within the assembly that should be exposed to Com clients as ComVisible(true).</Resolution>
+   </Rule>
+   <Rule TypeName="MarkMembersAsStatic" Category="Microsoft.Performance" CheckId="CA1822">
+    <Resolution Name="Default">The 'this' parameter (or 'Me' in VB) of {0} is never used. Mark the member as static (or Shared in VB) or use 'this'/'Me' in the method body or at least one property accessor, if appropriate.</Resolution>
+   </Rule>
+   <Rule TypeName="NonConstantFieldsShouldNotBeVisible" Category="Microsoft.Usage" CheckId="CA2211">
+    <Resolution Name="Default">Consider making '{0}' non-public or a constant.</Resolution>
+   </Rule>
+   <Rule TypeName="OperationsShouldNotOverflow" Category="Microsoft.Usage" CheckId="CA2233">
+    <Resolution Name="Default">Correct the potential overflow in the operation '{0}' in '{1}'.</Resolution>
+   </Rule>
+   <Rule TypeName="OperatorOverloadsHaveNamedAlternates" Category="Microsoft.Usage" CheckId="CA2225">
+    <Resolution Name="Default">Provide a method named '{0}' as a friendly alternate for operator {1}.</Resolution>
+   </Rule>
+   <Rule TypeName="OverloadOperatorEqualsOnOverloadingAddAndSubtract" Category="Microsoft.Design" CheckId="CA1013">
+    <Resolution Name="Default">Consider adding an overload of the equality operator for '{0}' that takes the same parameters as {1}.</Resolution>
+   </Rule>
+   <Rule TypeName="OverrideEqualsAndOperatorEqualsOnValueTypes" Category="Microsoft.Performance" CheckId="CA1815">
+    <Resolution Name="Equals">'{0}' should override Equals.</Resolution>
+    <Resolution Name="op_Equality">'{0}' should override the equality (==) and inequality (!=) operators.</Resolution>
+   </Rule>
+   <Rule TypeName="ParameterNamesShouldMatchBaseDeclaration" Category="Microsoft.Naming" CheckId="CA1725">
+    <Resolution Name="Default">Change parameter name '{0}' of method {1} to '{2}' in order to match the identifier as it has been declared in {3}.</Resolution>
+   </Rule>
+   <Rule TypeName="PassSystemUriObjectsInsteadOfStrings" Category="Microsoft.Usage" CheckId="CA2234">
+    <Resolution Name="Default">Modify {0} to call {1} instead of {2}.</Resolution>
+   </Rule>
+   <Rule TypeName="PointersShouldNotBeVisible" Category="Microsoft.Security" CheckId="CA2111">
+    <Resolution Name="Default">Make '{0}' private.</Resolution>
+   </Rule>
+   <Rule TypeName="PropertiesShouldNotBeWriteOnly" Category="Microsoft.Design" CheckId="CA1044">
+    <Resolution Name="Default">Add a property getter to '{0}'.</Resolution>
+   </Rule>
+   <Rule TypeName="RemoveUnusedLocals" Category="Microsoft.Performance" CheckId="CA1804">
+    <Resolution Name="Default">{0} declares a local, '{1}', of type {2}, which is never used or is only assigned to. Use this local or remove it.</Resolution>
+   </Rule>
+   <Rule TypeName="ReviewUnusedParameters" Category="Microsoft.Usage" CheckId="CA1801">
+    <Resolution Name="Default">Parameter '{0}' of {1} is never used. Remove the parameter or use it in the method body.</Resolution>
+   </Rule>
+   <Rule TypeName="ShortAcronymsShouldBeUppercase" Category="Microsoft.Naming" CheckId="CA1706">
+    <Resolution Name="Member">Correct the capitalization of '{0}' in member name '{1}'.</Resolution>
+    <Resolution Name="MemberId">'Id' is an abbreviation and therefore is not subject to acronym casing guidelines. Correct the capitalization of 'ID' in member name '{0}' by changing it to 'Id'.</Resolution>
+    <Resolution Name="ParameterId">'Id' is an abbreviation and therefore is not subject to acronym casing guidelines. Correct the capitalization of '{0}' in parameter name '{1}' by changing it to '{2}'.</Resolution>
+    <Resolution Name="Type">Correct the capitalization of '{0}' in type name '{1}'.</Resolution>
+   </Rule>
+   <Rule TypeName="SpecifyCultureInfo" Category="Microsoft.Globalization" CheckId="CA1304">
+    <Resolution Name="Default">{0} makes a call to {1} that does not explicitly provide a CultureInfo. This should be replaced with a call to {2}.</Resolution>
+   </Rule>
+   <Rule TypeName="SpecifyIFormatProvider" Category="Microsoft.Globalization" CheckId="CA1305">
+    <Resolution Name="Default">{0} makes a call to {1} that does not explicitly provide an IFormatProvider. This should be replaced with a call to {2}.</Resolution>
+   </Rule>
+   <Rule TypeName="StaticHolderTypesShouldNotHaveConstructors" Category="Microsoft.Design" CheckId="CA1053">
+    <Resolution Name="Default">Remove the public constructors from '{0}'.</Resolution>
+   </Rule>
+   <Rule TypeName="TestForEmptyStringsUsingStringLength" Category="Microsoft.Performance" CheckId="CA1820">
+    <Resolution Name="IsNullOrEmpty">Replace the call to String.{0}({1}) in '{2}' with a call to String.IsNullOrEmpty.</Resolution>
+   </Rule>
+   <Rule TypeName="TypeNamesShouldNotMatchNamespaces" Category="Microsoft.Naming" CheckId="CA1724">
+    <Resolution Name="Default">The type name '{0}' conflicts in whole or in part with the namespace name '{1}'. Change either name to eliminate the conflict.</Resolution>
+   </Rule>
+   <Rule TypeName="TypesThatOwnDisposableFieldsShouldBeDisposable" Category="Microsoft.Design" CheckId="CA1001">
+    <Resolution Name="Default">Implement IDisposable on '{0}' as it instantiates members of the following IDisposable types: {1}</Resolution>
+   </Rule>
+   <Rule TypeName="TypesThatOwnNativeResourcesShouldBeDisposable" Category="Microsoft.Design" CheckId="CA1049">
+    <Resolution Name="Default">Implement IDisposable on '{0}'.</Resolution>
+   </Rule>
+   <Rule TypeName="UriParametersShouldNotBeStrings" Category="Microsoft.Design" CheckId="CA1054">
+    <Resolution Name="Default">Change the type of parameter '{0}' of method {1} from string to System.Uri, or provide an overload of {1}, that allows '{0}' to be passed as a System.Uri object.</Resolution>
+   </Rule>
+   <Rule TypeName="UsePreferredTerms" Category="Microsoft.Naming" CheckId="CA1726">
+    <Resolution Name="Member">Replace the term '{0}' in member name '{1}' with the preferred alternate '{2}'.</Resolution>
+    <Resolution Name="Type">Replace the term '{0}' in type name '{1}' with the preferred alternate '{2}'.</Resolution>
+   </Rule>
+   <Rule TypeName="UsePropertiesWhereAppropriate" Category="Microsoft.Design" CheckId="CA1024">
+    <Resolution Name="Default">Change '{0}' to a property if appropriate.</Resolution>
+   </Rule>
+   <Rule TypeName="ValidateArgumentsOfPublicMethods" Category="Microsoft.Design" CheckId="CA1062">
+    <Resolution Name="Default">Validate parameter {0} passed to externally visible method {1}.</Resolution>
+   </Rule>
+  </Rules>
+ </FxCopReport>
+</FxCopProject>

+ 71 - 71
OpenSim/Framework/Communications/CommunicationsManager.cs

@@ -1,71 +1,71 @@
-/*
-* Copyright (c) Contributors, http://www.openmetaverse.org/
-* See CONTRIBUTORS.TXT for a full list of copyright holders.
-*
-* Redistribution and use in source and binary forms, with or without
-* modification, are permitted provided that the following conditions are met:
-*     * Redistributions of source code must retain the above copyright
-*       notice, this list of conditions and the following disclaimer.
-*     * Redistributions in binary form must reproduce the above copyright
-*       notice, this list of conditions and the following disclaimer in the
-*       documentation and/or other materials provided with the distribution.
-*     * Neither the name of the OpenSim Project nor the
-*       names of its contributors may be used to endorse or promote products
-*       derived from this software without specific prior written permission.
-*
-* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS AND ANY
-* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
-* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-* 
-*/
-using System.Text;
-using libsecondlife;
-using libsecondlife.Packets;
-using OpenSim.Framework.Data;
-using OpenSim.Framework.Interfaces;
-using OpenSim.Framework.Types;
-using OpenSim.Framework.Servers;
-using OpenSim.Framework.Communications.Caches;
-
-namespace OpenSim.Framework.Communications
-{
- 
-    public class CommunicationsManager
-    {
-        public IUserServices UserServer;
-        public IGridServices GridServer;
-        public IInventoryServices InventoryServer;
-        public IInterRegionCommunications InterRegion;
-        public UserProfileCache UserProfilesCache;
-
-        public NetworkServersInfo ServersInfo;
-        public CommunicationsManager(NetworkServersInfo serversInfo, BaseHttpServer httpServer)
-        {
-            ServersInfo = serversInfo;
-            UserProfilesCache = new UserProfileCache(this);
-        }
-
-        #region Packet Handlers
-        public void HandleUUIDNameRequest(LLUUID uuid, IClientAPI remote_client)
-        {
-            UserProfileData profileData = this.UserServer.GetUserProfile(uuid);
-            if (profileData != null)
-            {
-                LLUUID profileId = profileData.UUID;
-                string firstname = profileData.username;
-                string lastname = profileData.surname;
-
-                remote_client.SendNameReply(profileId, firstname, lastname);
-            }            
-        }
-
-        #endregion
-    }
-}
+/*
+* Copyright (c) Contributors, http://www.openmetaverse.org/
+* See CONTRIBUTORS.TXT for a full list of copyright holders.
+*
+* Redistribution and use in source and binary forms, with or without
+* modification, are permitted provided that the following conditions are met:
+*     * Redistributions of source code must retain the above copyright
+*       notice, this list of conditions and the following disclaimer.
+*     * Redistributions in binary form must reproduce the above copyright
+*       notice, this list of conditions and the following disclaimer in the
+*       documentation and/or other materials provided with the distribution.
+*     * Neither the name of the OpenSim Project nor the
+*       names of its contributors may be used to endorse or promote products
+*       derived from this software without specific prior written permission.
+*
+* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS AND ANY
+* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
+* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+* 
+*/
+using System.Text;
+using libsecondlife;
+using libsecondlife.Packets;
+using OpenSim.Framework.Data;
+using OpenSim.Framework.Interfaces;
+using OpenSim.Framework.Types;
+using OpenSim.Framework.Servers;
+using OpenSim.Framework.Communications.Caches;
+
+namespace OpenSim.Framework.Communications
+{
+ 
+    public class CommunicationsManager
+    {
+        public IUserServices UserServer;
+        public IGridServices GridServer;
+        public IInventoryServices InventoryServer;
+        public IInterRegionCommunications InterRegion;
+        public UserProfileCache UserProfilesCache;
+
+        public NetworkServersInfo ServersInfo;
+        public CommunicationsManager(NetworkServersInfo serversInfo, BaseHttpServer httpServer)
+        {
+            ServersInfo = serversInfo;
+            UserProfilesCache = new UserProfileCache(this);
+        }
+
+        #region Packet Handlers
+        public void HandleUUIDNameRequest(LLUUID uuid, IClientAPI remote_client)
+        {
+            UserProfileData profileData = this.UserServer.GetUserProfile(uuid);
+            if (profileData != null)
+            {
+                LLUUID profileId = profileData.UUID;
+                string firstname = profileData.username;
+                string lastname = profileData.surname;
+
+                remote_client.SendNameReply(profileId, firstname, lastname);
+            }            
+        }
+
+        #endregion
+    }
+}

+ 41 - 41
OpenSim/Framework/Communications/IGridServices.cs

@@ -1,41 +1,41 @@
-/*
-* Copyright (c) Contributors, http://www.openmetaverse.org/
-* See CONTRIBUTORS.TXT for a full list of copyright holders.
-*
-* Redistribution and use in source and binary forms, with or without
-* modification, are permitted provided that the following conditions are met:
-*     * Redistributions of source code must retain the above copyright
-*       notice, this list of conditions and the following disclaimer.
-*     * Redistributions in binary form must reproduce the above copyright
-*       notice, this list of conditions and the following disclaimer in the
-*       documentation and/or other materials provided with the distribution.
-*     * Neither the name of the OpenSim Project nor the
-*       names of its contributors may be used to endorse or promote products
-*       derived from this software without specific prior written permission.
-*
-* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS AND ANY
-* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
-* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-* 
-*/
-
-using System.Collections.Generic;
-using OpenSim.Framework.Types;
-
-namespace OpenSim.Framework.Communications
-{
-    public interface IGridServices
-    {
-        RegionCommsListener RegisterRegion(RegionInfo regionInfos);
-        List<RegionInfo> RequestNeighbours(RegionInfo regionInfo);
-        RegionInfo RequestNeighbourInfo(ulong regionHandle);
-        List<MapBlockData> RequestNeighbourMapBlocks(int minX, int minY, int maxX, int maxY);
-    }
-}
+/*
+* Copyright (c) Contributors, http://www.openmetaverse.org/
+* See CONTRIBUTORS.TXT for a full list of copyright holders.
+*
+* Redistribution and use in source and binary forms, with or without
+* modification, are permitted provided that the following conditions are met:
+*     * Redistributions of source code must retain the above copyright
+*       notice, this list of conditions and the following disclaimer.
+*     * Redistributions in binary form must reproduce the above copyright
+*       notice, this list of conditions and the following disclaimer in the
+*       documentation and/or other materials provided with the distribution.
+*     * Neither the name of the OpenSim Project nor the
+*       names of its contributors may be used to endorse or promote products
+*       derived from this software without specific prior written permission.
+*
+* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS AND ANY
+* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
+* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+* 
+*/
+
+using System.Collections.Generic;
+using OpenSim.Framework.Types;
+
+namespace OpenSim.Framework.Communications
+{
+    public interface IGridServices
+    {
+        RegionCommsListener RegisterRegion(RegionInfo regionInfos);
+        List<RegionInfo> RequestNeighbours(RegionInfo regionInfo);
+        RegionInfo RequestNeighbourInfo(ulong regionHandle);
+        List<MapBlockData> RequestNeighbourMapBlocks(int minX, int minY, int maxX, int maxY);
+    }
+}

+ 38 - 38
OpenSim/Framework/Communications/IInterRegionCommunications.cs

@@ -1,38 +1,38 @@
-/*
-* Copyright (c) Contributors, http://www.openmetaverse.org/
-* See CONTRIBUTORS.TXT for a full list of copyright holders.
-*
-* Redistribution and use in source and binary forms, with or without
-* modification, are permitted provided that the following conditions are met:
-*     * Redistributions of source code must retain the above copyright
-*       notice, this list of conditions and the following disclaimer.
-*     * Redistributions in binary form must reproduce the above copyright
-*       notice, this list of conditions and the following disclaimer in the
-*       documentation and/or other materials provided with the distribution.
-*     * Neither the name of the OpenSim Project nor the
-*       names of its contributors may be used to endorse or promote products
-*       derived from this software without specific prior written permission.
-*
-* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS AND ANY
-* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
-* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-* 
-*/
-using libsecondlife;
-using OpenSim.Framework.Types;
-
-namespace OpenSim.Framework.Communications
-{
-    public  interface IInterRegionCommunications
-    {
-         bool InformRegionOfChildAgent(ulong regionHandle, AgentCircuitData agentData);
-         bool ExpectAvatarCrossing(ulong regionHandle, LLUUID agentID, LLVector3 position); 
-    }
-}
+/*
+* Copyright (c) Contributors, http://www.openmetaverse.org/
+* See CONTRIBUTORS.TXT for a full list of copyright holders.
+*
+* Redistribution and use in source and binary forms, with or without
+* modification, are permitted provided that the following conditions are met:
+*     * Redistributions of source code must retain the above copyright
+*       notice, this list of conditions and the following disclaimer.
+*     * Redistributions in binary form must reproduce the above copyright
+*       notice, this list of conditions and the following disclaimer in the
+*       documentation and/or other materials provided with the distribution.
+*     * Neither the name of the OpenSim Project nor the
+*       names of its contributors may be used to endorse or promote products
+*       derived from this software without specific prior written permission.
+*
+* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS AND ANY
+* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
+* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+* 
+*/
+using libsecondlife;
+using OpenSim.Framework.Types;
+
+namespace OpenSim.Framework.Communications
+{
+    public  interface IInterRegionCommunications
+    {
+         bool InformRegionOfChildAgent(ulong regionHandle, AgentCircuitData agentData);
+         bool ExpectAvatarCrossing(ulong regionHandle, LLUUID agentID, LLVector3 position); 
+    }
+}

+ 17 - 17
OpenSim/Framework/Communications/IInventoryServices.cs

@@ -1,17 +1,17 @@
-using System;
-using System.Collections.Generic;
-using System.Text;
-using OpenSim.Framework.Data;
-using libsecondlife;
-using OpenSim.Framework.Communications.Caches;
-
-namespace OpenSim.Framework.Communications
-{
-    public delegate void InventoryFolderInfo(LLUUID userID, InventoryFolder folderInfo);
-    public delegate void InventoryItemInfo(LLUUID userID, InventoryItemBase itemInfo);
-
-    public interface IInventoryServices
-    {
-        void RequestInventoryForUser(LLUUID userID, InventoryFolderInfo folderCallBack, InventoryItemInfo itemCallBack);
-    }
-}
+using System;
+using System.Collections.Generic;
+using System.Text;
+using OpenSim.Framework.Data;
+using libsecondlife;
+using OpenSim.Framework.Communications.Caches;
+
+namespace OpenSim.Framework.Communications
+{
+    public delegate void InventoryFolderInfo(LLUUID userID, InventoryFolder folderInfo);
+    public delegate void InventoryItemInfo(LLUUID userID, InventoryItemBase itemInfo);
+
+    public interface IInventoryServices
+    {
+        void RequestInventoryForUser(LLUUID userID, InventoryFolderInfo folderCallBack, InventoryItemInfo itemCallBack);
+    }
+}

+ 43 - 43
OpenSim/Framework/Communications/IUserServices.cs

@@ -1,43 +1,43 @@
-/*
-* Copyright (c) Contributors, http://www.openmetaverse.org/
-* See CONTRIBUTORS.TXT for a full list of copyright holders.
-*
-* Redistribution and use in source and binary forms, with or without
-* modification, are permitted provided that the following conditions are met:
-*     * Redistributions of source code must retain the above copyright
-*       notice, this list of conditions and the following disclaimer.
-*     * Redistributions in binary form must reproduce the above copyright
-*       notice, this list of conditions and the following disclaimer in the
-*       documentation and/or other materials provided with the distribution.
-*     * Neither the name of the OpenSim Project nor the
-*       names of its contributors may be used to endorse or promote products
-*       derived from this software without specific prior written permission.
-*
-* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS AND ANY
-* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
-* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-* 
-*/
-using libsecondlife;
-using OpenSim.Framework.Data;
-
-namespace OpenSim.Framework.Communications
-{
-    public interface IUserServices
-    {
-        UserProfileData GetUserProfile(string firstName, string lastName);
-        UserProfileData GetUserProfile(string name);
-        UserProfileData GetUserProfile(LLUUID avatarID);
-
-        UserProfileData SetupMasterUser(string firstName, string lastName);
-        UserProfileData SetupMasterUser(string firstName, string lastName, string password);
-
-    }
-}
+/*
+* Copyright (c) Contributors, http://www.openmetaverse.org/
+* See CONTRIBUTORS.TXT for a full list of copyright holders.
+*
+* Redistribution and use in source and binary forms, with or without
+* modification, are permitted provided that the following conditions are met:
+*     * Redistributions of source code must retain the above copyright
+*       notice, this list of conditions and the following disclaimer.
+*     * Redistributions in binary form must reproduce the above copyright
+*       notice, this list of conditions and the following disclaimer in the
+*       documentation and/or other materials provided with the distribution.
+*     * Neither the name of the OpenSim Project nor the
+*       names of its contributors may be used to endorse or promote products
+*       derived from this software without specific prior written permission.
+*
+* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS AND ANY
+* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
+* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+* 
+*/
+using libsecondlife;
+using OpenSim.Framework.Data;
+
+namespace OpenSim.Framework.Communications
+{
+    public interface IUserServices
+    {
+        UserProfileData GetUserProfile(string firstName, string lastName);
+        UserProfileData GetUserProfile(string name);
+        UserProfileData GetUserProfile(LLUUID avatarID);
+
+        UserProfileData SetupMasterUser(string firstName, string lastName);
+        UserProfileData SetupMasterUser(string firstName, string lastName, string password);
+
+    }
+}

+ 60 - 60
OpenSim/Framework/Communications/Properties/AssemblyInfo.cs

@@ -1,60 +1,60 @@
-/*
-* Copyright (c) Contributors, http://www.openmetaverse.org/
-* See CONTRIBUTORS.TXT for a full list of copyright holders.
-*
-* Redistribution and use in source and binary forms, with or without
-* modification, are permitted provided that the following conditions are met:
-*     * Redistributions of source code must retain the above copyright
-*       notice, this list of conditions and the following disclaimer.
-*     * Redistributions in binary form must reproduce the above copyright
-*       notice, this list of conditions and the following disclaimer in the
-*       documentation and/or other materials provided with the distribution.
-*     * Neither the name of the OpenSim Project nor the
-*       names of its contributors may be used to endorse or promote products
-*       derived from this software without specific prior written permission.
-*
-* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS AND ANY
-* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
-* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-* 
-*/
-using System.Reflection;
-using System.Runtime.InteropServices;
-// General Information about an assembly is controlled through the following 
-// set of attributes. Change these attribute values to modify the information
-// associated with an assembly.
-[assembly: AssemblyTitle("OpenGrid.Framework.Communications")]
-[assembly: AssemblyDescription("")]
-[assembly: AssemblyConfiguration("")]
-[assembly: AssemblyCompany("")]
-[assembly: AssemblyProduct("OpenGrid.Framework.Communications")]
-[assembly: AssemblyCopyright("Copyright ©  2007")]
-[assembly: AssemblyTrademark("")]
-[assembly: AssemblyCulture("")]
-
-// Setting ComVisible to false makes the types in this assembly not visible 
-// to COM components.  If you need to access a type in this assembly from 
-// COM, set the ComVisible attribute to true on that type.
-[assembly: ComVisible(false)]
-
-// The following GUID is for the ID of the typelib if this project is exposed to COM
-[assembly: Guid("13e7c396-78a9-4a5c-baf2-6f980ea75d95")]
-
-// Version information for an assembly consists of the following four values:
-//
-//      Major Version
-//      Minor Version 
-//      Build Number
-//      Revision
-//
-// You can specify all the values or you can default the Revision and Build Numbers 
-// by using the '*' as shown below:
-[assembly: AssemblyVersion("1.0.0.0")]
-[assembly: AssemblyFileVersion("1.0.0.0")]
+/*
+* Copyright (c) Contributors, http://www.openmetaverse.org/
+* See CONTRIBUTORS.TXT for a full list of copyright holders.
+*
+* Redistribution and use in source and binary forms, with or without
+* modification, are permitted provided that the following conditions are met:
+*     * Redistributions of source code must retain the above copyright
+*       notice, this list of conditions and the following disclaimer.
+*     * Redistributions in binary form must reproduce the above copyright
+*       notice, this list of conditions and the following disclaimer in the
+*       documentation and/or other materials provided with the distribution.
+*     * Neither the name of the OpenSim Project nor the
+*       names of its contributors may be used to endorse or promote products
+*       derived from this software without specific prior written permission.
+*
+* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS AND ANY
+* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
+* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+* 
+*/
+using System.Reflection;
+using System.Runtime.InteropServices;
+// General Information about an assembly is controlled through the following 
+// set of attributes. Change these attribute values to modify the information
+// associated with an assembly.
+[assembly: AssemblyTitle("OpenGrid.Framework.Communications")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("")]
+[assembly: AssemblyProduct("OpenGrid.Framework.Communications")]
+[assembly: AssemblyCopyright("Copyright ©  2007")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// Setting ComVisible to false makes the types in this assembly not visible 
+// to COM components.  If you need to access a type in this assembly from 
+// COM, set the ComVisible attribute to true on that type.
+[assembly: ComVisible(false)]
+
+// The following GUID is for the ID of the typelib if this project is exposed to COM
+[assembly: Guid("13e7c396-78a9-4a5c-baf2-6f980ea75d95")]
+
+// Version information for an assembly consists of the following four values:
+//
+//      Major Version
+//      Minor Version 
+//      Build Number
+//      Revision
+//
+// You can specify all the values or you can default the Revision and Build Numbers 
+// by using the '*' as shown below:
+[assembly: AssemblyVersion("1.0.0.0")]
+[assembly: AssemblyFileVersion("1.0.0.0")]

+ 77 - 77
OpenSim/Framework/Communications/caches/CachedUserInfo.cs

@@ -1,77 +1,77 @@
-using System;
-using System.Collections.Generic;
-using System.Text;
-using OpenSim.Framework.Data;
-using libsecondlife;
-
-namespace OpenSim.Framework.Communications.Caches
-{
-    public class CachedUserInfo
-    {
-        public UserProfileData UserProfile;
-        //public Dictionary<LLUUID, InventoryFolder> Folders = new Dictionary<LLUUID, InventoryFolder>();
-        public InventoryFolder RootFolder;
-
-        public CachedUserInfo()
-        {
-
-        }
-
-        /// <summary>
-        /// 
-        /// </summary>
-        /// <param name="userID"></param>
-        /// <param name="folderInfo"></param>
-        public void FolderReceive(LLUUID userID, InventoryFolder folderInfo)
-        {
-            if (userID == UserProfile.UUID)
-            {
-                if (this.RootFolder == null)
-                {
-                    if (folderInfo.parentID == LLUUID.Zero)
-                    {
-                        this.RootFolder = folderInfo;
-                    }
-                }
-                else
-                {
-                    if (this.RootFolder.folderID == folderInfo.parentID)
-                    {
-                        this.RootFolder.SubFolders.Add(folderInfo.folderID, folderInfo);
-                    }
-                    else
-                    {
-                        InventoryFolder pFolder = this.RootFolder.HasSubFolder(folderInfo.parentID);
-                        if (pFolder != null)
-                        {
-                            pFolder.SubFolders.Add(folderInfo.folderID, folderInfo);
-                        }
-                    }
-                }
-            }
-        }
-
-        public void ItemReceive(LLUUID userID, InventoryItemBase itemInfo)
-        {
-            if (userID == UserProfile.UUID)
-            {
-                if (this.RootFolder != null)
-                {
-                    if (itemInfo.parentFolderID == this.RootFolder.folderID)
-                    {
-                        this.RootFolder.Items.Add(itemInfo.inventoryID, itemInfo);
-                    }
-                    else
-                    {
-                        InventoryFolder pFolder = this.RootFolder.HasSubFolder(itemInfo.parentFolderID);
-                        if (pFolder != null)
-                        {
-                            pFolder.Items.Add(itemInfo.inventoryID, itemInfo);
-                        }
-                    }
-                }
-
-            }
-        }
-    }
-}
+using System;
+using System.Collections.Generic;
+using System.Text;
+using OpenSim.Framework.Data;
+using libsecondlife;
+
+namespace OpenSim.Framework.Communications.Caches
+{
+    public class CachedUserInfo
+    {
+        public UserProfileData UserProfile;
+        //public Dictionary<LLUUID, InventoryFolder> Folders = new Dictionary<LLUUID, InventoryFolder>();
+        public InventoryFolder RootFolder;
+
+        public CachedUserInfo()
+        {
+
+        }
+
+        /// <summary>
+        /// 
+        /// </summary>
+        /// <param name="userID"></param>
+        /// <param name="folderInfo"></param>
+        public void FolderReceive(LLUUID userID, InventoryFolder folderInfo)
+        {
+            if (userID == UserProfile.UUID)
+            {
+                if (this.RootFolder == null)
+                {
+                    if (folderInfo.parentID == LLUUID.Zero)
+                    {
+                        this.RootFolder = folderInfo;
+                    }
+                }
+                else
+                {
+                    if (this.RootFolder.folderID == folderInfo.parentID)
+                    {
+                        this.RootFolder.SubFolders.Add(folderInfo.folderID, folderInfo);
+                    }
+                    else
+                    {
+                        InventoryFolder pFolder = this.RootFolder.HasSubFolder(folderInfo.parentID);
+                        if (pFolder != null)
+                        {
+                            pFolder.SubFolders.Add(folderInfo.folderID, folderInfo);
+                        }
+                    }
+                }
+            }
+        }
+
+        public void ItemReceive(LLUUID userID, InventoryItemBase itemInfo)
+        {
+            if (userID == UserProfile.UUID)
+            {
+                if (this.RootFolder != null)
+                {
+                    if (itemInfo.parentFolderID == this.RootFolder.folderID)
+                    {
+                        this.RootFolder.Items.Add(itemInfo.inventoryID, itemInfo);
+                    }
+                    else
+                    {
+                        InventoryFolder pFolder = this.RootFolder.HasSubFolder(itemInfo.parentFolderID);
+                        if (pFolder != null)
+                        {
+                            pFolder.Items.Add(itemInfo.inventoryID, itemInfo);
+                        }
+                    }
+                }
+
+            }
+        }
+    }
+}

+ 51 - 51
OpenSim/Framework/Communications/caches/InventoryFolder.cs

@@ -1,51 +1,51 @@
-using System;
-using System.Collections.Generic;
-using System.Text;
-using libsecondlife;
-using OpenSim.Framework.Data;
-
-namespace OpenSim.Framework.Communications.Caches
-{
-    public class InventoryFolder : InventoryFolderBase
-    {
-        public Dictionary<LLUUID, InventoryFolder> SubFolders = new Dictionary<LLUUID, InventoryFolder>();
-        public Dictionary<LLUUID, InventoryItemBase> Items = new Dictionary<LLUUID, InventoryItemBase>();
-
-        public InventoryFolder()
-        {
-        }
-
-        public InventoryFolder HasSubFolder(LLUUID folderID)
-        {
-            InventoryFolder returnFolder = null;
-            if (this.SubFolders.ContainsKey(folderID))
-            {
-                returnFolder = this.SubFolders[folderID];
-            }
-            else
-            {
-                foreach (InventoryFolder folder in this.SubFolders.Values)
-                {
-                   returnFolder = folder.HasSubFolder(folderID);
-                   if (returnFolder != null)
-                   {
-                       break;
-                   }
-                }
-            }
-            return returnFolder;
-        }
-
-        public InventoryFolder CreateNewSubFolder(LLUUID folderID, string folderName, ushort type)
-        {
-            InventoryFolder subFold = new InventoryFolder();
-            subFold.name = folderName;
-            subFold.folderID = folderID;
-            subFold.type = type;
-            subFold.parentID = this.folderID;
-            subFold.agentID = this.agentID;
-            this.SubFolders.Add(subFold.folderID, subFold);
-            return subFold;
-        }
-    }
-}
+using System;
+using System.Collections.Generic;
+using System.Text;
+using libsecondlife;
+using OpenSim.Framework.Data;
+
+namespace OpenSim.Framework.Communications.Caches
+{
+    public class InventoryFolder : InventoryFolderBase
+    {
+        public Dictionary<LLUUID, InventoryFolder> SubFolders = new Dictionary<LLUUID, InventoryFolder>();
+        public Dictionary<LLUUID, InventoryItemBase> Items = new Dictionary<LLUUID, InventoryItemBase>();
+
+        public InventoryFolder()
+        {
+        }
+
+        public InventoryFolder HasSubFolder(LLUUID folderID)
+        {
+            InventoryFolder returnFolder = null;
+            if (this.SubFolders.ContainsKey(folderID))
+            {
+                returnFolder = this.SubFolders[folderID];
+            }
+            else
+            {
+                foreach (InventoryFolder folder in this.SubFolders.Values)
+                {
+                   returnFolder = folder.HasSubFolder(folderID);
+                   if (returnFolder != null)
+                   {
+                       break;
+                   }
+                }
+            }
+            return returnFolder;
+        }
+
+        public InventoryFolder CreateNewSubFolder(LLUUID folderID, string folderName, ushort type)
+        {
+            InventoryFolder subFold = new InventoryFolder();
+            subFold.name = folderName;
+            subFold.folderID = folderID;
+            subFold.type = type;
+            subFold.parentID = this.folderID;
+            subFold.agentID = this.agentID;
+            this.SubFolders.Add(subFold.folderID, subFold);
+            return subFold;
+        }
+    }
+}

+ 107 - 107
OpenSim/Framework/Communications/caches/UserProfileCache.cs

@@ -1,107 +1,107 @@
-using System;
-using System.Collections.Generic;
-using System.Text;
-using libsecondlife;
-using OpenSim.Framework.Data;
-using OpenSim.Framework.Communications;
-
-namespace OpenSim.Framework.Communications.Caches
-{
-    public class UserProfileCache
-    {
-        public Dictionary<LLUUID, CachedUserInfo> UserProfiles = new Dictionary<LLUUID, CachedUserInfo>();
-
-        private CommunicationsManager m_parent;
-
-        public UserProfileCache(CommunicationsManager parent)
-        {
-            m_parent = parent;
-        }
-
-        /// <summary>
-        /// A new user has moved into a region in this instance
-        /// so get info from servers
-        /// </summary>
-        /// <param name="userID"></param>
-        public void AddNewUser(LLUUID userID)
-        {
-            if (!this.UserProfiles.ContainsKey(userID))
-            {
-                CachedUserInfo userInfo = new CachedUserInfo();
-                userInfo.UserProfile = this.RequestUserProfileForUser(userID);
-                this.m_parent.InventoryServer.RequestInventoryForUser(userID, userInfo.FolderReceive, userInfo.ItemReceive);
-                if (userInfo.UserProfile != null)
-                {
-                    this.UserProfiles.Add(userID, userInfo);
-                }
-                else
-                {
-                    //no profile for this user, what do we do now?
-                }
-            }
-            else
-            {
-                //already have a cached profile for this user
-                //we should make sure its upto date with the user server version
-            }
-        }
-
-        /// <summary>
-        /// A new user has moved into a region in this instance
-        /// so get info from servers
-        /// </summary>
-        /// <param name="firstName"></param>
-        /// <param name="lastName"></param>
-        public void AddNewUser(string firstName, string lastName)
-        {
-            
-        }
-
-        /// <summary>
-        /// A user has left this instance 
-        /// so make sure servers have been updated
-        /// Then remove cached info
-        /// </summary>
-        /// <param name="userID"></param>
-        public void UserLogOut(LLUUID userID)
-        {
-
-        }
-
-        /// <summary>
-        /// Request the user profile from User server
-        /// </summary>
-        /// <param name="userID"></param>
-        private UserProfileData RequestUserProfileForUser(LLUUID userID)
-        {
-            return this.m_parent.UserServer.GetUserProfile(userID);
-        }
-
-        /// <summary>
-        /// Request Iventory Info from Inventory server
-        /// </summary>
-        /// <param name="userID"></param>
-        private void RequestInventoryForUser(LLUUID userID)
-        {
-
-        }
-
-        /// <summary>
-        /// Make sure UserProfile is updated on user server
-        /// </summary>
-        /// <param name="userID"></param>
-        private void UpdateUserProfileToServer(LLUUID userID)
-        {
-
-        }
-
-        /// <summary>
-        /// Update Inventory data to Inventory server
-        /// </summary>
-        /// <param name="userID"></param>
-        private void UpdateInventoryToServer(LLUUID userID)
-        {
-
-        }
-    }
-}
+using System;
+using System.Collections.Generic;
+using System.Text;
+using libsecondlife;
+using OpenSim.Framework.Data;
+using OpenSim.Framework.Communications;
+
+namespace OpenSim.Framework.Communications.Caches
+{
+    public class UserProfileCache
+    {
+        public Dictionary<LLUUID, CachedUserInfo> UserProfiles = new Dictionary<LLUUID, CachedUserInfo>();
+
+        private CommunicationsManager m_parent;
+
+        public UserProfileCache(CommunicationsManager parent)
+        {
+            m_parent = parent;
+        }
+
+        /// <summary>
+        /// A new user has moved into a region in this instance
+        /// so get info from servers
+        /// </summary>
+        /// <param name="userID"></param>
+        public void AddNewUser(LLUUID userID)
+        {
+            if (!this.UserProfiles.ContainsKey(userID))
+            {
+                CachedUserInfo userInfo = new CachedUserInfo();
+                userInfo.UserProfile = this.RequestUserProfileForUser(userID);
+                this.m_parent.InventoryServer.RequestInventoryForUser(userID, userInfo.FolderReceive, userInfo.ItemReceive);
+                if (userInfo.UserProfile != null)
+                {
+                    this.UserProfiles.Add(userID, userInfo);
+                }
+                else
+                {
+                    //no profile for this user, what do we do now?
+                }
+            }
+            else
+            {
+                //already have a cached profile for this user
+                //we should make sure its upto date with the user server version
+            }
+        }
+
+        /// <summary>
+        /// A new user has moved into a region in this instance
+        /// so get info from servers
+        /// </summary>
+        /// <param name="firstName"></param>
+        /// <param name="lastName"></param>
+        public void AddNewUser(string firstName, string lastName)
+        {
+            
+        }
+
+        /// <summary>
+        /// A user has left this instance 
+        /// so make sure servers have been updated
+        /// Then remove cached info
+        /// </summary>
+        /// <param name="userID"></param>
+        public void UserLogOut(LLUUID userID)
+        {
+
+        }
+
+        /// <summary>
+        /// Request the user profile from User server
+        /// </summary>
+        /// <param name="userID"></param>
+        private UserProfileData RequestUserProfileForUser(LLUUID userID)
+        {
+            return this.m_parent.UserServer.GetUserProfile(userID);
+        }
+
+        /// <summary>
+        /// Request Iventory Info from Inventory server
+        /// </summary>
+        /// <param name="userID"></param>
+        private void RequestInventoryForUser(LLUUID userID)
+        {
+
+        }
+
+        /// <summary>
+        /// Make sure UserProfile is updated on user server
+        /// </summary>
+        /// <param name="userID"></param>
+        private void UpdateUserProfileToServer(LLUUID userID)
+        {
+
+        }
+
+        /// <summary>
+        /// Update Inventory data to Inventory server
+        /// </summary>
+        /// <param name="userID"></param>
+        private void UpdateInventoryToServer(LLUUID userID)
+        {
+
+        }
+    }
+}

+ 56 - 56
OpenSim/Framework/Console/AssemblyInfo.cs

@@ -1,56 +1,56 @@
-/*
-* Copyright (c) Contributors, http://www.openmetaverse.org/
-* See CONTRIBUTORS.TXT for a full list of copyright holders.
-*
-* Redistribution and use in source and binary forms, with or without
-* modification, are permitted provided that the following conditions are met:
-*     * Redistributions of source code must retain the above copyright
-*       notice, this list of conditions and the following disclaimer.
-*     * Redistributions in binary form must reproduce the above copyright
-*       notice, this list of conditions and the following disclaimer in the
-*       documentation and/or other materials provided with the distribution.
-*     * Neither the name of the OpenSim Project nor the
-*       names of its contributors may be used to endorse or promote products
-*       derived from this software without specific prior written permission.
-*
-* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS AND ANY
-* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
-* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-* 
-*/
-using System.Reflection;
-using System.Runtime.InteropServices;
-// Information about this assembly is defined by the following
-// attributes.
-//
-// change them to the information which is associated with the assembly
-// you compile.
-
-[assembly: AssemblyTitle("ServerConsole")]
-[assembly: AssemblyDescription("")]
-[assembly: AssemblyConfiguration("")]
-[assembly: AssemblyCompany("")]
-[assembly: AssemblyProduct("ServerConsole")]
-[assembly: AssemblyCopyright("")]
-[assembly: AssemblyTrademark("")]
-[assembly: AssemblyCulture("")]
-
-// This sets the default COM visibility of types in the assembly to invisible.
-// If you need to expose a type to COM, use [ComVisible(true)] on that type.
-[assembly: ComVisible(false)]
-
-// The assembly version has following format :
-//
-// Major.Minor.Build.Revision
-//
-// You can specify all values by your own or you can build default build and revision
-// numbers with the '*' character (the default):
-
-[assembly: AssemblyVersion("1.0.*")]
+/*
+* Copyright (c) Contributors, http://www.openmetaverse.org/
+* See CONTRIBUTORS.TXT for a full list of copyright holders.
+*
+* Redistribution and use in source and binary forms, with or without
+* modification, are permitted provided that the following conditions are met:
+*     * Redistributions of source code must retain the above copyright
+*       notice, this list of conditions and the following disclaimer.
+*     * Redistributions in binary form must reproduce the above copyright
+*       notice, this list of conditions and the following disclaimer in the
+*       documentation and/or other materials provided with the distribution.
+*     * Neither the name of the OpenSim Project nor the
+*       names of its contributors may be used to endorse or promote products
+*       derived from this software without specific prior written permission.
+*
+* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS AND ANY
+* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
+* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+* 
+*/
+using System.Reflection;
+using System.Runtime.InteropServices;
+// Information about this assembly is defined by the following
+// attributes.
+//
+// change them to the information which is associated with the assembly
+// you compile.
+
+[assembly: AssemblyTitle("ServerConsole")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("")]
+[assembly: AssemblyProduct("ServerConsole")]
+[assembly: AssemblyCopyright("")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// This sets the default COM visibility of types in the assembly to invisible.
+// If you need to expose a type to COM, use [ComVisible(true)] on that type.
+[assembly: ComVisible(false)]
+
+// The assembly version has following format :
+//
+// Major.Minor.Build.Revision
+//
+// You can specify all values by your own or you can build default build and revision
+// numbers with the '*' character (the default):
+
+[assembly: AssemblyVersion("1.0.*")]

+ 35 - 35
OpenSim/Framework/Console/ConsoleCallbacksBase.cs

@@ -1,35 +1,35 @@
-/*
-* Copyright (c) Contributors, http://www.openmetaverse.org/
-* See CONTRIBUTORS.TXT for a full list of copyright holders.
-*
-* Redistribution and use in source and binary forms, with or without
-* modification, are permitted provided that the following conditions are met:
-*     * Redistributions of source code must retain the above copyright
-*       notice, this list of conditions and the following disclaimer.
-*     * Redistributions in binary form must reproduce the above copyright
-*       notice, this list of conditions and the following disclaimer in the
-*       documentation and/or other materials provided with the distribution.
-*     * Neither the name of the OpenSim Project nor the
-*       names of its contributors may be used to endorse or promote products
-*       derived from this software without specific prior written permission.
-*
-* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS AND ANY
-* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
-* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-* 
-*/
-namespace OpenSim.Framework.Console
-{    
-    public interface conscmd_callback
-    {
-        void RunCmd(string cmd, string[] cmdparams);
-        void Show(string ShowWhat);
-    }
-}
+/*
+* Copyright (c) Contributors, http://www.openmetaverse.org/
+* See CONTRIBUTORS.TXT for a full list of copyright holders.
+*
+* Redistribution and use in source and binary forms, with or without
+* modification, are permitted provided that the following conditions are met:
+*     * Redistributions of source code must retain the above copyright
+*       notice, this list of conditions and the following disclaimer.
+*     * Redistributions in binary form must reproduce the above copyright
+*       notice, this list of conditions and the following disclaimer in the
+*       documentation and/or other materials provided with the distribution.
+*     * Neither the name of the OpenSim Project nor the
+*       names of its contributors may be used to endorse or promote products
+*       derived from this software without specific prior written permission.
+*
+* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS AND ANY
+* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
+* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+* 
+*/
+namespace OpenSim.Framework.Console
+{    
+    public interface conscmd_callback
+    {
+        void RunCmd(string cmd, string[] cmdparams);
+        void Show(string ShowWhat);
+    }
+}

+ 282 - 282
OpenSim/Framework/Console/LogBase.cs

@@ -1,282 +1,282 @@
-/*
-* Copyright (c) Contributors, http://www.openmetaverse.org/
-* See CONTRIBUTORS.TXT for a full list of copyright holders.
-*
-* Redistribution and use in source and binary forms, with or without
-* modification, are permitted provided that the following conditions are met:
-*     * Redistributions of source code must retain the above copyright
-*       notice, this list of conditions and the following disclaimer.
-*     * Redistributions in binary form must reproduce the above copyright
-*       notice, this list of conditions and the following disclaimer in the
-*       documentation and/or other materials provided with the distribution.
-*     * Neither the name of the OpenSim Project nor the
-*       names of its contributors may be used to endorse or promote products
-*       derived from this software without specific prior written permission.
-*
-* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS AND ANY
-* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
-* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-* 
-*/
-using System;
-using System.IO;
-using System.Net;
-
-namespace OpenSim.Framework.Console
-{
-    public enum LogPriority : int
-    {
-        CRITICAL,
-        HIGH,
-        MEDIUM,
-        NORMAL,
-        LOW,
-        VERBOSE,
-        EXTRAVERBOSE
-    }
-
-    public class LogBase
-    {
-        StreamWriter Log;
-        public conscmd_callback cmdparser;
-        public string componentname;
-        private bool m_silent;
-
-        public LogBase(string LogFile, string componentname, conscmd_callback cmdparser, bool silent)
-        {
-            this.componentname = componentname;
-            this.cmdparser = cmdparser;
-            this.m_silent = silent;
-            System.Console.WriteLine("ServerConsole.cs - creating new local console");
-
-            if (String.IsNullOrEmpty(LogFile))
-            {
-                LogFile = componentname + ".log";
-            }
-
-            System.Console.WriteLine("Logs will be saved to current directory in " + LogFile);
-            Log = File.AppendText(LogFile);
-            Log.WriteLine("========================================================================");
-            Log.WriteLine(componentname + " Started at " + DateTime.Now.ToString());
-        }
-
-        public void Close()
-        {
-            Log.WriteLine("Shutdown at " + DateTime.Now.ToString());
-            Log.Close();
-        }
-
-        public void Write(string format, params object[] args)
-        {
-            Notice(format, args);
-            return;
-        }
-
-        public void WriteLine(LogPriority importance, string format, params object[] args)
-        {
-            Log.WriteLine(format, args);
-            Log.Flush();
-            if (!m_silent)
-            {
-                System.Console.WriteLine(format, args);
-            }
-            return;
-        }
-
-        public void Warn(string format, params object[] args)
-        {
-            WriteNewLine(ConsoleColor.Yellow, format, args);
-            return;
-        }
-
-        public void Notice(string format, params object[] args)
-        {
-            WriteNewLine(ConsoleColor.White, format, args);
-            return;
-        }
-
-        public void Error(string format, params object[] args)
-        {
-            WriteNewLine(ConsoleColor.Red, format, args);
-            return;
-        }
-
-        public void Verbose(string format, params object[] args)
-        {
-            WriteNewLine(ConsoleColor.Gray, format, args);
-            return;
-        }
-
-        public void Status(string format, params object[] args)
-        {
-            WriteNewLine(ConsoleColor.Blue, format, args);
-            return;
-        }
-
-        private void WriteNewLine(ConsoleColor color, string format, params object[] args)
-        {
-            Log.WriteLine(format, args);
-            Log.Flush();
-            if (!m_silent)
-            {
-                try
-                {
-                    System.Console.ForegroundColor = color;
-                    System.Console.WriteLine(format, args);
-                    System.Console.ResetColor();
-                }
-                catch (ArgumentNullException)
-                {
-                    // Some older systems dont support coloured text.
-                    System.Console.WriteLine(format, args);
-                }
-            }
-            return;
-        }
-
-        public string ReadLine()
-        {
-            string TempStr = System.Console.ReadLine();
-            Log.WriteLine(TempStr);
-            return TempStr;
-        }
-
-        public int Read()
-        {
-            int TempInt = System.Console.Read();
-            Log.Write((char)TempInt);
-            return TempInt;
-        }
-
-        public IPAddress CmdPromptIPAddress(string prompt, string defaultvalue)
-        {
-            IPAddress address;
-            string addressStr;
-
-            while (true)
-            {
-                addressStr = MainLog.Instance.CmdPrompt(prompt, defaultvalue);
-                if (IPAddress.TryParse(addressStr, out address))
-                {
-                    break;
-                }
-                else
-                {
-                    MainLog.Instance.Error("Illegal address. Please re-enter.");
-                }
-            }
-
-            return address;
-        }
-
-        public int CmdPromptIPPort(string prompt, string defaultvalue)
-        {
-            int port;
-            string portStr;
-
-            while (true)
-            {
-                portStr = MainLog.Instance.CmdPrompt(prompt, defaultvalue);
-                if (int.TryParse(portStr, out port))
-                {
-                    if (port >= IPEndPoint.MinPort && port <= IPEndPoint.MaxPort)
-                    {
-                        break;
-                    }
-                }
-
-                MainLog.Instance.Error("Illegal address. Please re-enter.");
-            }
-
-            return port;
-        }
-
-        // Displays a prompt and waits for the user to enter a string, then returns that string
-        // Done with no echo and suitable for passwords
-        public string PasswdPrompt(string prompt)
-        {
-            // FIXME: Needs to be better abstracted
-            Log.WriteLine(prompt);
-            this.Write(prompt);
-            ConsoleColor oldfg = System.Console.ForegroundColor;
-            System.Console.ForegroundColor = System.Console.BackgroundColor;
-            string temp = System.Console.ReadLine();
-            System.Console.ForegroundColor = oldfg;
-            return temp;
-        }
-
-        // Displays a command prompt and waits for the user to enter a string, then returns that string
-        public string CmdPrompt(string prompt)
-        {
-            this.Write(String.Format("{0}: ", prompt));
-            return this.ReadLine();
-        }
-
-        // Displays a command prompt and returns a default value if the user simply presses enter
-        public string CmdPrompt(string prompt, string defaultresponse)
-        {
-            string temp = CmdPrompt(String.Format("{0} [{1}]", prompt, defaultresponse));
-            if (temp == "")
-            {
-                return defaultresponse;
-            }
-            else
-            {
-                return temp;
-            }
-        }
-
-        // Displays a command prompt and returns a default value, user may only enter 1 of 2 options
-        public string CmdPrompt(string prompt, string defaultresponse, string OptionA, string OptionB)
-        {
-            bool itisdone = false;
-            string temp = CmdPrompt(prompt, defaultresponse);
-            while (itisdone == false)
-            {
-                if ((temp == OptionA) || (temp == OptionB))
-                {
-                    itisdone = true;
-                }
-                else
-                {
-                    Notice("Valid options are " + OptionA + " or " + OptionB);
-                    temp = CmdPrompt(prompt, defaultresponse);
-                }
-            }
-            return temp;
-        }
-
-        // Runs a command with a number of parameters
-        public Object RunCmd(string Cmd, string[] cmdparams)
-        {
-            cmdparser.RunCmd(Cmd, cmdparams);
-            return null;
-        }
-
-        // Shows data about something
-        public void ShowCommands(string ShowWhat)
-        {
-            cmdparser.Show(ShowWhat);
-        }
-
-        public void MainLogPrompt()
-        {
-            string[] tempstrarray;
-            string tempstr = this.CmdPrompt(this.componentname + "# ");
-            tempstrarray = tempstr.Split(' ');
-            string cmd = tempstrarray[0];
-            Array.Reverse(tempstrarray);
-            Array.Resize<string>(ref tempstrarray, tempstrarray.Length - 1);
-            Array.Reverse(tempstrarray);
-            string[] cmdparams = (string[])tempstrarray;
-            RunCmd(cmd, cmdparams);
-        }
-    }
-}
+/*
+* Copyright (c) Contributors, http://www.openmetaverse.org/
+* See CONTRIBUTORS.TXT for a full list of copyright holders.
+*
+* Redistribution and use in source and binary forms, with or without
+* modification, are permitted provided that the following conditions are met:
+*     * Redistributions of source code must retain the above copyright
+*       notice, this list of conditions and the following disclaimer.
+*     * Redistributions in binary form must reproduce the above copyright
+*       notice, this list of conditions and the following disclaimer in the
+*       documentation and/or other materials provided with the distribution.
+*     * Neither the name of the OpenSim Project nor the
+*       names of its contributors may be used to endorse or promote products
+*       derived from this software without specific prior written permission.
+*
+* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS AND ANY
+* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
+* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+* 
+*/
+using System;
+using System.IO;
+using System.Net;
+
+namespace OpenSim.Framework.Console
+{
+    public enum LogPriority : int
+    {
+        CRITICAL,
+        HIGH,
+        MEDIUM,
+        NORMAL,
+        LOW,
+        VERBOSE,
+        EXTRAVERBOSE
+    }
+
+    public class LogBase
+    {
+        StreamWriter Log;
+        public conscmd_callback cmdparser;
+        public string componentname;
+        private bool m_silent;
+
+        public LogBase(string LogFile, string componentname, conscmd_callback cmdparser, bool silent)
+        {
+            this.componentname = componentname;
+            this.cmdparser = cmdparser;
+            this.m_silent = silent;
+            System.Console.WriteLine("ServerConsole.cs - creating new local console");
+
+            if (String.IsNullOrEmpty(LogFile))
+            {
+                LogFile = componentname + ".log";
+            }
+
+            System.Console.WriteLine("Logs will be saved to current directory in " + LogFile);
+            Log = File.AppendText(LogFile);
+            Log.WriteLine("========================================================================");
+            Log.WriteLine(componentname + " Started at " + DateTime.Now.ToString());
+        }
+
+        public void Close()
+        {
+            Log.WriteLine("Shutdown at " + DateTime.Now.ToString());
+            Log.Close();
+        }
+
+        public void Write(string format, params object[] args)
+        {
+            Notice(format, args);
+            return;
+        }
+
+        public void WriteLine(LogPriority importance, string format, params object[] args)
+        {
+            Log.WriteLine(format, args);
+            Log.Flush();
+            if (!m_silent)
+            {
+                System.Console.WriteLine(format, args);
+            }
+            return;
+        }
+
+        public void Warn(string format, params object[] args)
+        {
+            WriteNewLine(ConsoleColor.Yellow, format, args);
+            return;
+        }
+
+        public void Notice(string format, params object[] args)
+        {
+            WriteNewLine(ConsoleColor.White, format, args);
+            return;
+        }
+
+        public void Error(string format, params object[] args)
+        {
+            WriteNewLine(ConsoleColor.Red, format, args);
+            return;
+        }
+
+        public void Verbose(string format, params object[] args)
+        {
+            WriteNewLine(ConsoleColor.Gray, format, args);
+            return;
+        }
+
+        public void Status(string format, params object[] args)
+        {
+            WriteNewLine(ConsoleColor.Blue, format, args);
+            return;
+        }
+
+        private void WriteNewLine(ConsoleColor color, string format, params object[] args)
+        {
+            Log.WriteLine(format, args);
+            Log.Flush();
+            if (!m_silent)
+            {
+                try
+                {
+                    System.Console.ForegroundColor = color;
+                    System.Console.WriteLine(format, args);
+                    System.Console.ResetColor();
+                }
+                catch (ArgumentNullException)
+                {
+                    // Some older systems dont support coloured text.
+                    System.Console.WriteLine(format, args);
+                }
+            }
+            return;
+        }
+
+        public string ReadLine()
+        {
+            string TempStr = System.Console.ReadLine();
+            Log.WriteLine(TempStr);
+            return TempStr;
+        }
+
+        public int Read()
+        {
+            int TempInt = System.Console.Read();
+            Log.Write((char)TempInt);
+            return TempInt;
+        }
+
+        public IPAddress CmdPromptIPAddress(string prompt, string defaultvalue)
+        {
+            IPAddress address;
+            string addressStr;
+
+            while (true)
+            {
+                addressStr = MainLog.Instance.CmdPrompt(prompt, defaultvalue);
+                if (IPAddress.TryParse(addressStr, out address))
+                {
+                    break;
+                }
+                else
+                {
+                    MainLog.Instance.Error("Illegal address. Please re-enter.");
+                }
+            }
+
+            return address;
+        }
+
+        public int CmdPromptIPPort(string prompt, string defaultvalue)
+        {
+            int port;
+            string portStr;
+
+            while (true)
+            {
+                portStr = MainLog.Instance.CmdPrompt(prompt, defaultvalue);
+                if (int.TryParse(portStr, out port))
+                {
+                    if (port >= IPEndPoint.MinPort && port <= IPEndPoint.MaxPort)
+                    {
+                        break;
+                    }
+                }
+
+                MainLog.Instance.Error("Illegal address. Please re-enter.");
+            }
+
+            return port;
+        }
+
+        // Displays a prompt and waits for the user to enter a string, then returns that string
+        // Done with no echo and suitable for passwords
+        public string PasswdPrompt(string prompt)
+        {
+            // FIXME: Needs to be better abstracted
+            Log.WriteLine(prompt);
+            this.Write(prompt);
+            ConsoleColor oldfg = System.Console.ForegroundColor;
+            System.Console.ForegroundColor = System.Console.BackgroundColor;
+            string temp = System.Console.ReadLine();
+            System.Console.ForegroundColor = oldfg;
+            return temp;
+        }
+
+        // Displays a command prompt and waits for the user to enter a string, then returns that string
+        public string CmdPrompt(string prompt)
+        {
+            this.Write(String.Format("{0}: ", prompt));
+            return this.ReadLine();
+        }
+
+        // Displays a command prompt and returns a default value if the user simply presses enter
+        public string CmdPrompt(string prompt, string defaultresponse)
+        {
+            string temp = CmdPrompt(String.Format("{0} [{1}]", prompt, defaultresponse));
+            if (temp == "")
+            {
+                return defaultresponse;
+            }
+            else
+            {
+                return temp;
+            }
+        }
+
+        // Displays a command prompt and returns a default value, user may only enter 1 of 2 options
+        public string CmdPrompt(string prompt, string defaultresponse, string OptionA, string OptionB)
+        {
+            bool itisdone = false;
+            string temp = CmdPrompt(prompt, defaultresponse);
+            while (itisdone == false)
+            {
+                if ((temp == OptionA) || (temp == OptionB))
+                {
+                    itisdone = true;
+                }
+                else
+                {
+                    Notice("Valid options are " + OptionA + " or " + OptionB);
+                    temp = CmdPrompt(prompt, defaultresponse);
+                }
+            }
+            return temp;
+        }
+
+        // Runs a command with a number of parameters
+        public Object RunCmd(string Cmd, string[] cmdparams)
+        {
+            cmdparser.RunCmd(Cmd, cmdparams);
+            return null;
+        }
+
+        // Shows data about something
+        public void ShowCommands(string ShowWhat)
+        {
+            cmdparser.Show(ShowWhat);
+        }
+
+        public void MainLogPrompt()
+        {
+            string[] tempstrarray;
+            string tempstr = this.CmdPrompt(this.componentname + "# ");
+            tempstrarray = tempstr.Split(' ');
+            string cmd = tempstrarray[0];
+            Array.Reverse(tempstrarray);
+            Array.Resize<string>(ref tempstrarray, tempstrarray.Length - 1);
+            Array.Reverse(tempstrarray);
+            string[] cmdparams = (string[])tempstrarray;
+            RunCmd(cmd, cmdparams);
+        }
+    }
+}

+ 47 - 47
OpenSim/Framework/Console/MainLog.cs

@@ -1,47 +1,47 @@
-/*
-* Copyright (c) Contributors, http://www.openmetaverse.org/
-* See CONTRIBUTORS.TXT for a full list of copyright holders.
-*
-* Redistribution and use in source and binary forms, with or without
-* modification, are permitted provided that the following conditions are met:
-*     * Redistributions of source code must retain the above copyright
-*       notice, this list of conditions and the following disclaimer.
-*     * Redistributions in binary form must reproduce the above copyright
-*       notice, this list of conditions and the following disclaimer in the
-*       documentation and/or other materials provided with the distribution.
-*     * Neither the name of the OpenSim Project nor the
-*       names of its contributors may be used to endorse or promote products
-*       derived from this software without specific prior written permission.
-*
-* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS AND ANY
-* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
-* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-* 
-*/
-namespace OpenSim.Framework.Console
-{
-	public class MainLog {
-		
-		private static LogBase instance;
-		
-		public static LogBase Instance 
-		{
-			get 
-			{
-				return instance;
-			}
-			set
-			{
-				instance = value;
-			}
-		}
-    }
-
-}
+/*
+* Copyright (c) Contributors, http://www.openmetaverse.org/
+* See CONTRIBUTORS.TXT for a full list of copyright holders.
+*
+* Redistribution and use in source and binary forms, with or without
+* modification, are permitted provided that the following conditions are met:
+*     * Redistributions of source code must retain the above copyright
+*       notice, this list of conditions and the following disclaimer.
+*     * Redistributions in binary form must reproduce the above copyright
+*       notice, this list of conditions and the following disclaimer in the
+*       documentation and/or other materials provided with the distribution.
+*     * Neither the name of the OpenSim Project nor the
+*       names of its contributors may be used to endorse or promote products
+*       derived from this software without specific prior written permission.
+*
+* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS AND ANY
+* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
+* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+* 
+*/
+namespace OpenSim.Framework.Console
+{
+	public class MainLog {
+		
+		private static LogBase instance;
+		
+		public static LogBase Instance 
+		{
+			get 
+			{
+				return instance;
+			}
+			set
+			{
+				instance = value;
+			}
+		}
+    }
+
+}

+ 162 - 162
OpenSim/Framework/Data.DB4o/DB4oGridData.cs

@@ -1,162 +1,162 @@
-/*
-* Copyright (c) Contributors, http://www.openmetaverse.org/
-* See CONTRIBUTORS.TXT for a full list of copyright holders.
-*
-* Redistribution and use in source and binary forms, with or without
-* modification, are permitted provided that the following conditions are met:
-*     * Redistributions of source code must retain the above copyright
-*       notice, this list of conditions and the following disclaimer.
-*     * Redistributions in binary form must reproduce the above copyright
-*       notice, this list of conditions and the following disclaimer in the
-*       documentation and/or other materials provided with the distribution.
-*     * Neither the name of the OpenSim Project nor the
-*       names of its contributors may be used to endorse or promote products
-*       derived from this software without specific prior written permission.
-*
-* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS AND ANY
-* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
-* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-* 
-*/
-
-using System;
-using libsecondlife;
-
-namespace OpenSim.Framework.Data.DB4o
-{
-    /// <summary>
-    /// A grid server storage mechanism employing the DB4o database system
-    /// </summary>
-    class DB4oGridData : IGridData
-    {
-        /// <summary>
-        /// The database manager object
-        /// </summary>
-        DB4oGridManager manager;
-
-        /// <summary>
-        /// Called when the plugin is first loaded (as constructors are not called)
-        /// </summary>
-        public void Initialise() {
-             manager = new DB4oGridManager("gridserver.yap");
-        }
-
-        /// <summary>
-        /// Returns a list of regions within the specified ranges
-        /// </summary>
-        /// <param name="a">minimum X coordinate</param>
-        /// <param name="b">minimum Y coordinate</param>
-        /// <param name="c">maximum X coordinate</param>
-        /// <param name="d">maximum Y coordinate</param>
-        /// <returns>An array of region profiles</returns>
-        public SimProfileData[] GetProfilesInRange(uint a, uint b, uint c, uint d)
-        {
-            return null;
-        }
-
-        /// <summary>
-        /// Returns a region located at the specified regionHandle (warning multiple regions may occupy the one spot, first found is returned)
-        /// </summary>
-        /// <param name="handle">The handle to search for</param>
-        /// <returns>A region profile</returns>
-        public SimProfileData GetProfileByHandle(ulong handle) {
-            lock (manager.simProfiles)
-            {
-                foreach (LLUUID UUID in manager.simProfiles.Keys)
-                {
-                    if (manager.simProfiles[UUID].regionHandle == handle)
-                    {
-                        return manager.simProfiles[UUID];
-                    }
-                }
-            }
-            throw new Exception("Unable to find profile with handle (" + handle.ToString() + ")");
-        }
-
-        /// <summary>
-        /// Returns a specific region
-        /// </summary>
-        /// <param name="uuid">The region ID code</param>
-        /// <returns>A region profile</returns>
-        public SimProfileData GetProfileByLLUUID(LLUUID uuid)
-        {
-            lock (manager.simProfiles)
-            {
-                if (manager.simProfiles.ContainsKey(uuid))
-                    return manager.simProfiles[uuid];
-            }
-            throw new Exception("Unable to find profile with UUID (" + uuid.ToStringHyphenated() + "). Total Registered Regions: " + manager.simProfiles.Count);
-        }
-
-        /// <summary>
-        /// Adds a new specified region to the database
-        /// </summary>
-        /// <param name="profile">The profile to add</param>
-        /// <returns>A dataresponse enum indicating success</returns>
-        public DataResponse AddProfile(SimProfileData profile)
-        {
-            lock (manager.simProfiles)
-            {
-                if (manager.AddRow(profile))
-                {
-                    return DataResponse.RESPONSE_OK;
-                }
-                else
-                {
-                    return DataResponse.RESPONSE_ERROR;
-                }
-            }
-        }
-
-        /// <summary>
-        /// Authenticates a new region using the shared secrets. NOT SECURE.
-        /// </summary>
-        /// <param name="uuid">The UUID the region is authenticating with</param>
-        /// <param name="handle">The location the region is logging into (unused in Db4o)</param>
-        /// <param name="key">The shared secret</param>
-        /// <returns>Authenticated?</returns>
-        public bool AuthenticateSim(LLUUID uuid, ulong handle, string key) {
-            if (manager.simProfiles[uuid].regionRecvKey == key)
-                return true;
-            return false;
-        }
-
-        /// <summary>
-        /// Shuts down the database
-        /// </summary>
-        public void Close()
-        {
-            manager = null;
-        }
-
-        /// <summary>
-        /// Returns the providers name
-        /// </summary>
-        /// <returns>The name of the storage system</returns>
-        public string getName()
-        {
-            return "DB4o Grid Provider";
-        }
-
-        /// <summary>
-        /// Returns the providers version
-        /// </summary>
-        /// <returns>The version of the storage system</returns>
-        public string getVersion()
-        {
-            return "0.1";
-        }
-
-        public ReservationData GetReservationAtPoint(uint x, uint y)
-        {
-            return null;
-        }
-    }
-}
+/*
+* Copyright (c) Contributors, http://www.openmetaverse.org/
+* See CONTRIBUTORS.TXT for a full list of copyright holders.
+*
+* Redistribution and use in source and binary forms, with or without
+* modification, are permitted provided that the following conditions are met:
+*     * Redistributions of source code must retain the above copyright
+*       notice, this list of conditions and the following disclaimer.
+*     * Redistributions in binary form must reproduce the above copyright
+*       notice, this list of conditions and the following disclaimer in the
+*       documentation and/or other materials provided with the distribution.
+*     * Neither the name of the OpenSim Project nor the
+*       names of its contributors may be used to endorse or promote products
+*       derived from this software without specific prior written permission.
+*
+* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS AND ANY
+* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
+* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+* 
+*/
+
+using System;
+using libsecondlife;
+
+namespace OpenSim.Framework.Data.DB4o
+{
+    /// <summary>
+    /// A grid server storage mechanism employing the DB4o database system
+    /// </summary>
+    class DB4oGridData : IGridData
+    {
+        /// <summary>
+        /// The database manager object
+        /// </summary>
+        DB4oGridManager manager;
+
+        /// <summary>
+        /// Called when the plugin is first loaded (as constructors are not called)
+        /// </summary>
+        public void Initialise() {
+             manager = new DB4oGridManager("gridserver.yap");
+        }
+
+        /// <summary>
+        /// Returns a list of regions within the specified ranges
+        /// </summary>
+        /// <param name="a">minimum X coordinate</param>
+        /// <param name="b">minimum Y coordinate</param>
+        /// <param name="c">maximum X coordinate</param>
+        /// <param name="d">maximum Y coordinate</param>
+        /// <returns>An array of region profiles</returns>
+        public SimProfileData[] GetProfilesInRange(uint a, uint b, uint c, uint d)
+        {
+            return null;
+        }
+
+        /// <summary>
+        /// Returns a region located at the specified regionHandle (warning multiple regions may occupy the one spot, first found is returned)
+        /// </summary>
+        /// <param name="handle">The handle to search for</param>
+        /// <returns>A region profile</returns>
+        public SimProfileData GetProfileByHandle(ulong handle) {
+            lock (manager.simProfiles)
+            {
+                foreach (LLUUID UUID in manager.simProfiles.Keys)
+                {
+                    if (manager.simProfiles[UUID].regionHandle == handle)
+                    {
+                        return manager.simProfiles[UUID];
+                    }
+                }
+            }
+            throw new Exception("Unable to find profile with handle (" + handle.ToString() + ")");
+        }
+
+        /// <summary>
+        /// Returns a specific region
+        /// </summary>
+        /// <param name="uuid">The region ID code</param>
+        /// <returns>A region profile</returns>
+        public SimProfileData GetProfileByLLUUID(LLUUID uuid)
+        {
+            lock (manager.simProfiles)
+            {
+                if (manager.simProfiles.ContainsKey(uuid))
+                    return manager.simProfiles[uuid];
+            }
+            throw new Exception("Unable to find profile with UUID (" + uuid.ToStringHyphenated() + "). Total Registered Regions: " + manager.simProfiles.Count);
+        }
+
+        /// <summary>
+        /// Adds a new specified region to the database
+        /// </summary>
+        /// <param name="profile">The profile to add</param>
+        /// <returns>A dataresponse enum indicating success</returns>
+        public DataResponse AddProfile(SimProfileData profile)
+        {
+            lock (manager.simProfiles)
+            {
+                if (manager.AddRow(profile))
+                {
+                    return DataResponse.RESPONSE_OK;
+                }
+                else
+                {
+                    return DataResponse.RESPONSE_ERROR;
+                }
+            }
+        }
+
+        /// <summary>
+        /// Authenticates a new region using the shared secrets. NOT SECURE.
+        /// </summary>
+        /// <param name="uuid">The UUID the region is authenticating with</param>
+        /// <param name="handle">The location the region is logging into (unused in Db4o)</param>
+        /// <param name="key">The shared secret</param>
+        /// <returns>Authenticated?</returns>
+        public bool AuthenticateSim(LLUUID uuid, ulong handle, string key) {
+            if (manager.simProfiles[uuid].regionRecvKey == key)
+                return true;
+            return false;
+        }
+
+        /// <summary>
+        /// Shuts down the database
+        /// </summary>
+        public void Close()
+        {
+            manager = null;
+        }
+
+        /// <summary>
+        /// Returns the providers name
+        /// </summary>
+        /// <returns>The name of the storage system</returns>
+        public string getName()
+        {
+            return "DB4o Grid Provider";
+        }
+
+        /// <summary>
+        /// Returns the providers version
+        /// </summary>
+        /// <returns>The version of the storage system</returns>
+        public string getVersion()
+        {
+            return "0.1";
+        }
+
+        public ReservationData GetReservationAtPoint(uint x, uint y)
+        {
+            return null;
+        }
+    }
+}

+ 163 - 163
OpenSim/Framework/Data.DB4o/DB4oManager.cs

@@ -1,163 +1,163 @@
-/*
-* Copyright (c) Contributors, http://www.openmetaverse.org/
-* See CONTRIBUTORS.TXT for a full list of copyright holders.
-*
-* Redistribution and use in source and binary forms, with or without
-* modification, are permitted provided that the following conditions are met:
-*     * Redistributions of source code must retain the above copyright
-*       notice, this list of conditions and the following disclaimer.
-*     * Redistributions in binary form must reproduce the above copyright
-*       notice, this list of conditions and the following disclaimer in the
-*       documentation and/or other materials provided with the distribution.
-*     * Neither the name of the OpenSim Project nor the
-*       names of its contributors may be used to endorse or promote products
-*       derived from this software without specific prior written permission.
-*
-* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS AND ANY
-* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
-* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-* 
-*/
-using System;
-using System.Collections.Generic;
-using Db4objects.Db4o;
-using libsecondlife;
-
-namespace OpenSim.Framework.Data.DB4o
-{
-    /// <summary>
-    /// A Database manager for Db4o
-    /// </summary>
-    class DB4oGridManager
-    {
-        /// <summary>
-        /// A list of the current regions connected (in-memory cache)
-        /// </summary>
-        public Dictionary<LLUUID, SimProfileData> simProfiles = new Dictionary<LLUUID, SimProfileData>();
-        /// <summary>
-        /// Database File Name
-        /// </summary>
-        string dbfl;
-
-        /// <summary>
-        /// Creates a new grid storage manager
-        /// </summary>
-        /// <param name="db4odb">Filename to the database file</param>
-        public DB4oGridManager(string db4odb)
-        {
-            dbfl = db4odb;
-            IObjectContainer database;
-            database = Db4oFactory.OpenFile(dbfl);
-            IObjectSet result = database.Get(typeof(SimProfileData));
-            // Loads the file into the in-memory cache
-            foreach(SimProfileData row in result) {
-                simProfiles.Add(row.UUID, row);
-            }
-            database.Close();
-        }
-
-        /// <summary>
-        /// Adds a new profile to the database (Warning: Probably slow.)
-        /// </summary>
-        /// <param name="row">The profile to add</param>
-        /// <returns>Successful?</returns>
-        public bool AddRow(SimProfileData row)
-        {
-            if (simProfiles.ContainsKey(row.UUID))
-            {
-                simProfiles[row.UUID] = row;
-            }
-            else
-            {
-                simProfiles.Add(row.UUID, row);
-            }
-
-            try
-            {
-                IObjectContainer database;
-                database = Db4oFactory.OpenFile(dbfl);
-                database.Set(row);
-                database.Close();
-                return true;
-            }
-            catch (Exception)
-            {
-                return false;
-            }
-        }
-
-
-    }
-
-    /// <summary>
-    /// A manager for the DB4o database (user profiles)
-    /// </summary>
-    class DB4oUserManager
-    {
-        /// <summary>
-        /// A list of the user profiles (in memory cache)
-        /// </summary>
-        public Dictionary<LLUUID, UserProfileData> userProfiles = new Dictionary<LLUUID, UserProfileData>();
-        /// <summary>
-        /// Database filename
-        /// </summary>
-        string dbfl;
-
-        /// <summary>
-        /// Initialises a new DB manager
-        /// </summary>
-        /// <param name="db4odb">The filename to the database</param>
-        public DB4oUserManager(string db4odb)
-        {
-            dbfl = db4odb;
-            IObjectContainer database;
-            database = Db4oFactory.OpenFile(dbfl);
-            // Load to cache
-            IObjectSet result = database.Get(typeof(UserProfileData));
-            foreach (UserProfileData row in result)
-            {
-                userProfiles.Add(row.UUID, row);
-            }
-            database.Close();
-        }
-
-        /// <summary>
-        /// Adds a new profile to the database (Warning: Probably slow.)
-        /// </summary>
-        /// <param name="row">The profile to add</param>
-        /// <returns>Successful?</returns>
-        public bool AddRow(UserProfileData row)
-        { 
-            if (userProfiles.ContainsKey(row.UUID))
-            {
-                userProfiles[row.UUID] = row;
-            }
-            else
-            {
-                userProfiles.Add(row.UUID, row);
-            }
-
-            try
-            {
-                IObjectContainer database;
-                database = Db4oFactory.OpenFile(dbfl);
-                database.Set(row);
-                database.Close();
-                return true;
-            }
-            catch (Exception)
-            {
-                return false;
-            }
-        }
-
-
-    }
-}
+/*
+* Copyright (c) Contributors, http://www.openmetaverse.org/
+* See CONTRIBUTORS.TXT for a full list of copyright holders.
+*
+* Redistribution and use in source and binary forms, with or without
+* modification, are permitted provided that the following conditions are met:
+*     * Redistributions of source code must retain the above copyright
+*       notice, this list of conditions and the following disclaimer.
+*     * Redistributions in binary form must reproduce the above copyright
+*       notice, this list of conditions and the following disclaimer in the
+*       documentation and/or other materials provided with the distribution.
+*     * Neither the name of the OpenSim Project nor the
+*       names of its contributors may be used to endorse or promote products
+*       derived from this software without specific prior written permission.
+*
+* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS AND ANY
+* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
+* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+* 
+*/
+using System;
+using System.Collections.Generic;
+using Db4objects.Db4o;
+using libsecondlife;
+
+namespace OpenSim.Framework.Data.DB4o
+{
+    /// <summary>
+    /// A Database manager for Db4o
+    /// </summary>
+    class DB4oGridManager
+    {
+        /// <summary>
+        /// A list of the current regions connected (in-memory cache)
+        /// </summary>
+        public Dictionary<LLUUID, SimProfileData> simProfiles = new Dictionary<LLUUID, SimProfileData>();
+        /// <summary>
+        /// Database File Name
+        /// </summary>
+        string dbfl;
+
+        /// <summary>
+        /// Creates a new grid storage manager
+        /// </summary>
+        /// <param name="db4odb">Filename to the database file</param>
+        public DB4oGridManager(string db4odb)
+        {
+            dbfl = db4odb;
+            IObjectContainer database;
+            database = Db4oFactory.OpenFile(dbfl);
+            IObjectSet result = database.Get(typeof(SimProfileData));
+            // Loads the file into the in-memory cache
+            foreach(SimProfileData row in result) {
+                simProfiles.Add(row.UUID, row);
+            }
+            database.Close();
+        }
+
+        /// <summary>
+        /// Adds a new profile to the database (Warning: Probably slow.)
+        /// </summary>
+        /// <param name="row">The profile to add</param>
+        /// <returns>Successful?</returns>
+        public bool AddRow(SimProfileData row)
+        {
+            if (simProfiles.ContainsKey(row.UUID))
+            {
+                simProfiles[row.UUID] = row;
+            }
+            else
+            {
+                simProfiles.Add(row.UUID, row);
+            }
+
+            try
+            {
+                IObjectContainer database;
+                database = Db4oFactory.OpenFile(dbfl);
+                database.Set(row);
+                database.Close();
+                return true;
+            }
+            catch (Exception)
+            {
+                return false;
+            }
+        }
+
+
+    }
+
+    /// <summary>
+    /// A manager for the DB4o database (user profiles)
+    /// </summary>
+    class DB4oUserManager
+    {
+        /// <summary>
+        /// A list of the user profiles (in memory cache)
+        /// </summary>
+        public Dictionary<LLUUID, UserProfileData> userProfiles = new Dictionary<LLUUID, UserProfileData>();
+        /// <summary>
+        /// Database filename
+        /// </summary>
+        string dbfl;
+
+        /// <summary>
+        /// Initialises a new DB manager
+        /// </summary>
+        /// <param name="db4odb">The filename to the database</param>
+        public DB4oUserManager(string db4odb)
+        {
+            dbfl = db4odb;
+            IObjectContainer database;
+            database = Db4oFactory.OpenFile(dbfl);
+            // Load to cache
+            IObjectSet result = database.Get(typeof(UserProfileData));
+            foreach (UserProfileData row in result)
+            {
+                userProfiles.Add(row.UUID, row);
+            }
+            database.Close();
+        }
+
+        /// <summary>
+        /// Adds a new profile to the database (Warning: Probably slow.)
+        /// </summary>
+        /// <param name="row">The profile to add</param>
+        /// <returns>Successful?</returns>
+        public bool AddRow(UserProfileData row)
+        { 
+            if (userProfiles.ContainsKey(row.UUID))
+            {
+                userProfiles[row.UUID] = row;
+            }
+            else
+            {
+                userProfiles.Add(row.UUID, row);
+            }
+
+            try
+            {
+                IObjectContainer database;
+                database = Db4oFactory.OpenFile(dbfl);
+                database.Set(row);
+                database.Close();
+                return true;
+            }
+            catch (Exception)
+            {
+                return false;
+            }
+        }
+
+
+    }
+}

+ 202 - 202
OpenSim/Framework/Data.DB4o/DB4oUserData.cs

@@ -1,202 +1,202 @@
-/*
-* Copyright (c) Contributors, http://www.openmetaverse.org/
-* See CONTRIBUTORS.TXT for a full list of copyright holders.
-*
-* Redistribution and use in source and binary forms, with or without
-* modification, are permitted provided that the following conditions are met:
-*     * Redistributions of source code must retain the above copyright
-*       notice, this list of conditions and the following disclaimer.
-*     * Redistributions in binary form must reproduce the above copyright
-*       notice, this list of conditions and the following disclaimer in the
-*       documentation and/or other materials provided with the distribution.
-*     * Neither the name of the OpenSim Project nor the
-*       names of its contributors may be used to endorse or promote products
-*       derived from this software without specific prior written permission.
-*
-* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS AND ANY
-* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
-* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-* 
-*/
-using System;
-using libsecondlife;
-
-namespace OpenSim.Framework.Data.DB4o
-{
-    /// <summary>
-    /// A User storage interface for the DB4o database system
-    /// </summary>
-    public class DB4oUserData : IUserData
-    {
-        /// <summary>
-        /// The database manager
-        /// </summary>
-        DB4oUserManager manager;
-
-        /// <summary>
-        /// Artificial constructor called upon plugin load
-        /// </summary>
-        public void Initialise()
-        {
-            manager = new DB4oUserManager("userprofiles.yap");
-        }
-
-        /// <summary>
-        /// Loads a specified user profile from a UUID
-        /// </summary>
-        /// <param name="uuid">The users UUID</param>
-        /// <returns>A user profile</returns>
-        public UserProfileData getUserByUUID(LLUUID uuid)
-        {
-            if(manager.userProfiles.ContainsKey(uuid))
-                return manager.userProfiles[uuid];
-            return null;
-        }
-
-        /// <summary>
-        /// Returns a user by searching for its name
-        /// </summary>
-        /// <param name="name">The users account name</param>
-        /// <returns>A matching users profile</returns>
-        public UserProfileData getUserByName(string name)
-        {
-            return getUserByName(name.Split(' ')[0], name.Split(' ')[1]);
-        }
-
-        /// <summary>
-        /// Returns a user by searching for its name
-        /// </summary>
-        /// <param name="fname">The first part of the users account name</param>
-        /// <param name="lname">The second part of the users account name</param>
-        /// <returns>A matching users profile</returns>
-        public UserProfileData getUserByName(string fname, string lname)
-        {
-            foreach (UserProfileData profile in manager.userProfiles.Values)
-            {
-                if (profile.username == fname && profile.surname == lname)
-                    return profile;
-            }
-            return null;
-        }
-
-        /// <summary>
-        /// Returns a user by UUID direct
-        /// </summary>
-        /// <param name="uuid">The users account ID</param>
-        /// <returns>A matching users profile</returns>
-        public UserAgentData getAgentByUUID(LLUUID uuid)
-        {   
-            try
-            {
-                return getUserByUUID(uuid).currentAgent;
-            }
-            catch (Exception)
-            {
-                return null;
-            }
-        }
-
-        /// <summary>
-        /// Returns a session by account name
-        /// </summary>
-        /// <param name="name">The account name</param>
-        /// <returns>The users session agent</returns>
-        public UserAgentData getAgentByName(string name)
-        {
-            return getAgentByName(name.Split(' ')[0], name.Split(' ')[1]);
-        }
-
-        /// <summary>
-        /// Returns a session by account name
-        /// </summary>
-        /// <param name="fname">The first part of the users account name</param>
-        /// <param name="lname">The second part of the users account name</param>
-        /// <returns>A user agent</returns>
-        public UserAgentData getAgentByName(string fname, string lname)
-        {
-            try
-            {
-                return getUserByName(fname,lname).currentAgent;
-            }
-            catch (Exception)
-            {
-                return null;
-            }
-        }
-
-        /// <summary>
-        /// Creates a new user profile
-        /// </summary>
-        /// <param name="user">The profile to add to the database</param>
-        public void addNewUserProfile(UserProfileData user)
-        {
-            try
-            {
-                manager.AddRow(user);
-            }
-            catch (Exception e)
-            {
-                Console.WriteLine(e.ToString());
-            }
-        }
-
-        /// <summary>
-        /// Creates a new user agent
-        /// </summary>
-        /// <param name="agent">The agent to add to the database</param>
-        public void addNewUserAgent(UserAgentData agent)
-        {
-            // Do nothing. yet.
-        }
-
-        /// <summary>
-        /// Transfers money between two user accounts
-        /// </summary>
-        /// <param name="from">Starting account</param>
-        /// <param name="to">End account</param>
-        /// <param name="amount">The amount to move</param>
-        /// <returns>Success?</returns>
-        public bool moneyTransferRequest(LLUUID from, LLUUID to, uint amount)
-        {
-            return true;
-        }
-
-        /// <summary>
-        /// Transfers inventory between two accounts
-        /// </summary>
-        /// <remarks>Move to inventory server</remarks>
-        /// <param name="from">Senders account</param>
-        /// <param name="to">Recievers account</param>
-        /// <param name="item">Inventory item</param>
-        /// <returns>Success?</returns>
-        public bool inventoryTransferRequest(LLUUID from, LLUUID to, LLUUID item)
-        {
-            return true;
-        }
-
-        /// <summary>
-        /// Returns the name of the storage provider
-        /// </summary>
-        /// <returns>Storage provider name</returns>
-        public string getName()
-        {
-            return "DB4o Userdata";
-        }
-
-        /// <summary>
-        /// Returns the version of the storage provider
-        /// </summary>
-        /// <returns>Storage provider version</returns>
-        public string getVersion()
-        {
-            return "0.1";
-        }
-    }
-}
+/*
+* Copyright (c) Contributors, http://www.openmetaverse.org/
+* See CONTRIBUTORS.TXT for a full list of copyright holders.
+*
+* Redistribution and use in source and binary forms, with or without
+* modification, are permitted provided that the following conditions are met:
+*     * Redistributions of source code must retain the above copyright
+*       notice, this list of conditions and the following disclaimer.
+*     * Redistributions in binary form must reproduce the above copyright
+*       notice, this list of conditions and the following disclaimer in the
+*       documentation and/or other materials provided with the distribution.
+*     * Neither the name of the OpenSim Project nor the
+*       names of its contributors may be used to endorse or promote products
+*       derived from this software without specific prior written permission.
+*
+* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS AND ANY
+* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
+* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+* 
+*/
+using System;
+using libsecondlife;
+
+namespace OpenSim.Framework.Data.DB4o
+{
+    /// <summary>
+    /// A User storage interface for the DB4o database system
+    /// </summary>
+    public class DB4oUserData : IUserData
+    {
+        /// <summary>
+        /// The database manager
+        /// </summary>
+        DB4oUserManager manager;
+
+        /// <summary>
+        /// Artificial constructor called upon plugin load
+        /// </summary>
+        public void Initialise()
+        {
+            manager = new DB4oUserManager("userprofiles.yap");
+        }
+
+        /// <summary>
+        /// Loads a specified user profile from a UUID
+        /// </summary>
+        /// <param name="uuid">The users UUID</param>
+        /// <returns>A user profile</returns>
+        public UserProfileData getUserByUUID(LLUUID uuid)
+        {
+            if(manager.userProfiles.ContainsKey(uuid))
+                return manager.userProfiles[uuid];
+            return null;
+        }
+
+        /// <summary>
+        /// Returns a user by searching for its name
+        /// </summary>
+        /// <param name="name">The users account name</param>
+        /// <returns>A matching users profile</returns>
+        public UserProfileData getUserByName(string name)
+        {
+            return getUserByName(name.Split(' ')[0], name.Split(' ')[1]);
+        }
+
+        /// <summary>
+        /// Returns a user by searching for its name
+        /// </summary>
+        /// <param name="fname">The first part of the users account name</param>
+        /// <param name="lname">The second part of the users account name</param>
+        /// <returns>A matching users profile</returns>
+        public UserProfileData getUserByName(string fname, string lname)
+        {
+            foreach (UserProfileData profile in manager.userProfiles.Values)
+            {
+                if (profile.username == fname && profile.surname == lname)
+                    return profile;
+            }
+            return null;
+        }
+
+        /// <summary>
+        /// Returns a user by UUID direct
+        /// </summary>
+        /// <param name="uuid">The users account ID</param>
+        /// <returns>A matching users profile</returns>
+        public UserAgentData getAgentByUUID(LLUUID uuid)
+        {   
+            try
+            {
+                return getUserByUUID(uuid).currentAgent;
+            }
+            catch (Exception)
+            {
+                return null;
+            }
+        }
+
+        /// <summary>
+        /// Returns a session by account name
+        /// </summary>
+        /// <param name="name">The account name</param>
+        /// <returns>The users session agent</returns>
+        public UserAgentData getAgentByName(string name)
+        {
+            return getAgentByName(name.Split(' ')[0], name.Split(' ')[1]);
+        }
+
+        /// <summary>
+        /// Returns a session by account name
+        /// </summary>
+        /// <param name="fname">The first part of the users account name</param>
+        /// <param name="lname">The second part of the users account name</param>
+        /// <returns>A user agent</returns>
+        public UserAgentData getAgentByName(string fname, string lname)
+        {
+            try
+            {
+                return getUserByName(fname,lname).currentAgent;
+            }
+            catch (Exception)
+            {
+                return null;
+            }
+        }
+
+        /// <summary>
+        /// Creates a new user profile
+        /// </summary>
+        /// <param name="user">The profile to add to the database</param>
+        public void addNewUserProfile(UserProfileData user)
+        {
+            try
+            {
+                manager.AddRow(user);
+            }
+            catch (Exception e)
+            {
+                Console.WriteLine(e.ToString());
+            }
+        }
+
+        /// <summary>
+        /// Creates a new user agent
+        /// </summary>
+        /// <param name="agent">The agent to add to the database</param>
+        public void addNewUserAgent(UserAgentData agent)
+        {
+            // Do nothing. yet.
+        }
+
+        /// <summary>
+        /// Transfers money between two user accounts
+        /// </summary>
+        /// <param name="from">Starting account</param>
+        /// <param name="to">End account</param>
+        /// <param name="amount">The amount to move</param>
+        /// <returns>Success?</returns>
+        public bool moneyTransferRequest(LLUUID from, LLUUID to, uint amount)
+        {
+            return true;
+        }
+
+        /// <summary>
+        /// Transfers inventory between two accounts
+        /// </summary>
+        /// <remarks>Move to inventory server</remarks>
+        /// <param name="from">Senders account</param>
+        /// <param name="to">Recievers account</param>
+        /// <param name="item">Inventory item</param>
+        /// <returns>Success?</returns>
+        public bool inventoryTransferRequest(LLUUID from, LLUUID to, LLUUID item)
+        {
+            return true;
+        }
+
+        /// <summary>
+        /// Returns the name of the storage provider
+        /// </summary>
+        /// <returns>Storage provider name</returns>
+        public string getName()
+        {
+            return "DB4o Userdata";
+        }
+
+        /// <summary>
+        /// Returns the version of the storage provider
+        /// </summary>
+        /// <returns>Storage provider version</returns>
+        public string getVersion()
+        {
+            return "0.1";
+        }
+    }
+}

+ 33 - 33
OpenSim/Framework/Data.DB4o/Properties/AssemblyInfo.cs

@@ -1,33 +1,33 @@
-using System.Reflection;
-using System.Runtime.InteropServices;
-// General Information about an assembly is controlled through the following 
-// set of attributes. Change these attribute values to modify the information
-// associated with an assembly.
-[assembly: AssemblyTitle("OpenSim.Framework.Data.DB4o")]
-[assembly: AssemblyDescription("")]
-[assembly: AssemblyConfiguration("")]
-[assembly: AssemblyCompany("")]
-[assembly: AssemblyProduct("OpenSim.Framework.Data.DB4o")]
-[assembly: AssemblyCopyright("Copyright ©  2007")]
-[assembly: AssemblyTrademark("")]
-[assembly: AssemblyCulture("")]
-
-// Setting ComVisible to false makes the types in this assembly not visible 
-// to COM components.  If you need to access a type in this assembly from 
-// COM, set the ComVisible attribute to true on that type.
-[assembly: ComVisible(false)]
-
-// The following GUID is for the ID of the typelib if this project is exposed to COM
-[assembly: Guid("57991e15-79da-41b7-aa06-2e6b49165a63")]
-
-// Version information for an assembly consists of the following four values:
-//
-//      Major Version
-//      Minor Version 
-//      Build Number
-//      Revision
-//
-// You can specify all the values or you can default the Revision and Build Numbers 
-// by using the '*' as shown below:
-[assembly: AssemblyVersion("1.0.0.0")]
-[assembly: AssemblyFileVersion("1.0.0.0")]
+using System.Reflection;
+using System.Runtime.InteropServices;
+// General Information about an assembly is controlled through the following 
+// set of attributes. Change these attribute values to modify the information
+// associated with an assembly.
+[assembly: AssemblyTitle("OpenSim.Framework.Data.DB4o")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("")]
+[assembly: AssemblyProduct("OpenSim.Framework.Data.DB4o")]
+[assembly: AssemblyCopyright("Copyright ©  2007")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// Setting ComVisible to false makes the types in this assembly not visible 
+// to COM components.  If you need to access a type in this assembly from 
+// COM, set the ComVisible attribute to true on that type.
+[assembly: ComVisible(false)]
+
+// The following GUID is for the ID of the typelib if this project is exposed to COM
+[assembly: Guid("57991e15-79da-41b7-aa06-2e6b49165a63")]
+
+// Version information for an assembly consists of the following four values:
+//
+//      Major Version
+//      Minor Version 
+//      Build Number
+//      Revision
+//
+// You can specify all the values or you can default the Revision and Build Numbers 
+// by using the '*' as shown below:
+[assembly: AssemblyVersion("1.0.0.0")]
+[assembly: AssemblyFileVersion("1.0.0.0")]

+ 194 - 194
OpenSim/Framework/Data.MSSQL/MSSQLGridData.cs

@@ -1,194 +1,194 @@
-/*
-* Copyright (c) Contributors, http://www.openmetaverse.org/
-* See CONTRIBUTORS.TXT for a full list of copyright holders.
-*
-* Redistribution and use in source and binary forms, with or without
-* modification, are permitted provided that the following conditions are met:
-*     * Redistributions of source code must retain the above copyright
-*       notice, this list of conditions and the following disclaimer.
-*     * Redistributions in binary form must reproduce the above copyright
-*       notice, this list of conditions and the following disclaimer in the
-*       documentation and/or other materials provided with the distribution.
-*     * Neither the name of the OpenSim Project nor the
-*       names of its contributors may be used to endorse or promote products
-*       derived from this software without specific prior written permission.
-*
-* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS AND ANY
-* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
-* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-* 
-*/
-using System;
-using System.Collections.Generic;
-using System.Data;
-using System.Security.Cryptography;
-using System.Text;
-using libsecondlife;
-
-namespace OpenSim.Framework.Data.MSSQL
-{
-    /// <summary>
-    /// A grid data interface for Microsoft SQL Server
-    /// </summary>
-    public class SqlGridData : IGridData
-    {
-        /// <summary>
-        /// Database manager
-        /// </summary>
-        private MSSqlManager database;
-
-        /// <summary>
-        /// Initialises the Grid Interface
-        /// </summary>
-        public void Initialise()
-        {
-            database = new MSSqlManager("localhost", "db", "user", "password", "false");
-        }
-
-        /// <summary>
-        /// Shuts down the grid interface
-        /// </summary>
-        public void Close()
-        {
-            database.Close();
-        }
-
-        /// <summary>
-        /// Returns the storage system name
-        /// </summary>
-        /// <returns>A string containing the storage system name</returns>
-        public string getName()
-        {
-            return "Sql OpenGridData";
-        }
-
-        /// <summary>
-        /// Returns the storage system version
-        /// </summary>
-        /// <returns>A string containing the storage system version</returns>
-        public string getVersion()
-        {
-            return "0.1";
-        }
-
-        /// <summary>
-        /// Returns a list of regions within the specified ranges
-        /// </summary>
-        /// <param name="a">minimum X coordinate</param>
-        /// <param name="b">minimum Y coordinate</param>
-        /// <param name="c">maximum X coordinate</param>
-        /// <param name="d">maximum Y coordinate</param>
-        /// <returns>An array of region profiles</returns>
-        public SimProfileData[] GetProfilesInRange(uint a, uint b, uint c, uint d)
-        {
-            return null;
-        }
-
-        /// <summary>
-        /// Returns a sim profile from it's location
-        /// </summary>
-        /// <param name="handle">Region location handle</param>
-        /// <returns>Sim profile</returns>
-        public SimProfileData GetProfileByHandle(ulong handle)
-        {
-            Dictionary<string, string> param = new Dictionary<string, string>();
-            param["handle"] = handle.ToString();
-
-            IDbCommand result = database.Query("SELECT * FROM regions WHERE handle = @handle", param);
-            IDataReader reader = result.ExecuteReader();
-
-            SimProfileData row = database.getRow(reader);
-            reader.Close();
-            result.Dispose();
-
-            return row;
-        }
-
-        /// <summary>
-        /// Returns a sim profile from it's UUID
-        /// </summary>
-        /// <param name="uuid">The region UUID</param>
-        /// <returns>The sim profile</returns>
-        public SimProfileData GetProfileByLLUUID(LLUUID uuid)
-        {
-            Dictionary<string, string> param = new Dictionary<string, string>();
-            param["uuid"] = uuid.ToStringHyphenated();
-
-            IDbCommand result = database.Query("SELECT * FROM regions WHERE uuid = @uuid", param);
-            IDataReader reader = result.ExecuteReader();
-
-            SimProfileData row = database.getRow(reader);
-            reader.Close();
-            result.Dispose();
-
-            return row;
-        }
-
-        /// <summary>
-        /// Adds a new specified region to the database
-        /// </summary>
-        /// <param name="profile">The profile to add</param>
-        /// <returns>A dataresponse enum indicating success</returns>
-        public DataResponse AddProfile(SimProfileData profile)
-        {
-            if (database.insertRow(profile))
-            {
-                return DataResponse.RESPONSE_OK;
-            }
-            else
-            {
-                return DataResponse.RESPONSE_ERROR;
-            }
-        }
-
-        /// <summary>
-        /// DEPRECIATED. Attempts to authenticate a region by comparing a shared secret.
-        /// </summary>
-        /// <param name="uuid">The UUID of the challenger</param>
-        /// <param name="handle">The attempted regionHandle of the challenger</param>
-        /// <param name="authkey">The secret</param>
-        /// <returns>Whether the secret and regionhandle match the database entry for UUID</returns>
-        public bool AuthenticateSim(LLUUID uuid, ulong handle, string authkey)
-        {
-            bool throwHissyFit = false; // Should be true by 1.0
-
-            if (throwHissyFit)
-                throw new Exception("CRYPTOWEAK AUTHENTICATE: Refusing to authenticate due to replay potential.");
-
-            SimProfileData data = GetProfileByLLUUID(uuid);
-
-            return (handle == data.regionHandle && authkey == data.regionSecret);
-        }
-
-        /// <summary>
-        /// NOT YET FUNCTIONAL. Provides a cryptographic authentication of a region
-        /// </summary>
-        /// <remarks>This requires a security audit.</remarks>
-        /// <param name="uuid"></param>
-        /// <param name="handle"></param>
-        /// <param name="authhash"></param>
-        /// <param name="challenge"></param>
-        /// <returns></returns>
-        public bool AuthenticateSim(LLUUID uuid, ulong handle, string authhash, string challenge)
-        {
-            SHA512Managed HashProvider = new SHA512Managed();
-            ASCIIEncoding TextProvider = new ASCIIEncoding();
-
-            byte[] stream = TextProvider.GetBytes(uuid.ToStringHyphenated() + ":" + handle.ToString() + ":" + challenge);
-            byte[] hash = HashProvider.ComputeHash(stream);
-            return false;
-        }
-        public ReservationData GetReservationAtPoint(uint x, uint y)
-        {
-            return null;
-        }
-    }
-    
-}
+/*
+* Copyright (c) Contributors, http://www.openmetaverse.org/
+* See CONTRIBUTORS.TXT for a full list of copyright holders.
+*
+* Redistribution and use in source and binary forms, with or without
+* modification, are permitted provided that the following conditions are met:
+*     * Redistributions of source code must retain the above copyright
+*       notice, this list of conditions and the following disclaimer.
+*     * Redistributions in binary form must reproduce the above copyright
+*       notice, this list of conditions and the following disclaimer in the
+*       documentation and/or other materials provided with the distribution.
+*     * Neither the name of the OpenSim Project nor the
+*       names of its contributors may be used to endorse or promote products
+*       derived from this software without specific prior written permission.
+*
+* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS AND ANY
+* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
+* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+* 
+*/
+using System;
+using System.Collections.Generic;
+using System.Data;
+using System.Security.Cryptography;
+using System.Text;
+using libsecondlife;
+
+namespace OpenSim.Framework.Data.MSSQL
+{
+    /// <summary>
+    /// A grid data interface for Microsoft SQL Server
+    /// </summary>
+    public class SqlGridData : IGridData
+    {
+        /// <summary>
+        /// Database manager
+        /// </summary>
+        private MSSqlManager database;
+
+        /// <summary>
+        /// Initialises the Grid Interface
+        /// </summary>
+        public void Initialise()
+        {
+            database = new MSSqlManager("localhost", "db", "user", "password", "false");
+        }
+
+        /// <summary>
+        /// Shuts down the grid interface
+        /// </summary>
+        public void Close()
+        {
+            database.Close();
+        }
+
+        /// <summary>
+        /// Returns the storage system name
+        /// </summary>
+        /// <returns>A string containing the storage system name</returns>
+        public string getName()
+        {
+            return "Sql OpenGridData";
+        }
+
+        /// <summary>
+        /// Returns the storage system version
+        /// </summary>
+        /// <returns>A string containing the storage system version</returns>
+        public string getVersion()
+        {
+            return "0.1";
+        }
+
+        /// <summary>
+        /// Returns a list of regions within the specified ranges
+        /// </summary>
+        /// <param name="a">minimum X coordinate</param>
+        /// <param name="b">minimum Y coordinate</param>
+        /// <param name="c">maximum X coordinate</param>
+        /// <param name="d">maximum Y coordinate</param>
+        /// <returns>An array of region profiles</returns>
+        public SimProfileData[] GetProfilesInRange(uint a, uint b, uint c, uint d)
+        {
+            return null;
+        }
+
+        /// <summary>
+        /// Returns a sim profile from it's location
+        /// </summary>
+        /// <param name="handle">Region location handle</param>
+        /// <returns>Sim profile</returns>
+        public SimProfileData GetProfileByHandle(ulong handle)
+        {
+            Dictionary<string, string> param = new Dictionary<string, string>();
+            param["handle"] = handle.ToString();
+
+            IDbCommand result = database.Query("SELECT * FROM regions WHERE handle = @handle", param);
+            IDataReader reader = result.ExecuteReader();
+
+            SimProfileData row = database.getRow(reader);
+            reader.Close();
+            result.Dispose();
+
+            return row;
+        }
+
+        /// <summary>
+        /// Returns a sim profile from it's UUID
+        /// </summary>
+        /// <param name="uuid">The region UUID</param>
+        /// <returns>The sim profile</returns>
+        public SimProfileData GetProfileByLLUUID(LLUUID uuid)
+        {
+            Dictionary<string, string> param = new Dictionary<string, string>();
+            param["uuid"] = uuid.ToStringHyphenated();
+
+            IDbCommand result = database.Query("SELECT * FROM regions WHERE uuid = @uuid", param);
+            IDataReader reader = result.ExecuteReader();
+
+            SimProfileData row = database.getRow(reader);
+            reader.Close();
+            result.Dispose();
+
+            return row;
+        }
+
+        /// <summary>
+        /// Adds a new specified region to the database
+        /// </summary>
+        /// <param name="profile">The profile to add</param>
+        /// <returns>A dataresponse enum indicating success</returns>
+        public DataResponse AddProfile(SimProfileData profile)
+        {
+            if (database.insertRow(profile))
+            {
+                return DataResponse.RESPONSE_OK;
+            }
+            else
+            {
+                return DataResponse.RESPONSE_ERROR;
+            }
+        }
+
+        /// <summary>
+        /// DEPRECIATED. Attempts to authenticate a region by comparing a shared secret.
+        /// </summary>
+        /// <param name="uuid">The UUID of the challenger</param>
+        /// <param name="handle">The attempted regionHandle of the challenger</param>
+        /// <param name="authkey">The secret</param>
+        /// <returns>Whether the secret and regionhandle match the database entry for UUID</returns>
+        public bool AuthenticateSim(LLUUID uuid, ulong handle, string authkey)
+        {
+            bool throwHissyFit = false; // Should be true by 1.0
+
+            if (throwHissyFit)
+                throw new Exception("CRYPTOWEAK AUTHENTICATE: Refusing to authenticate due to replay potential.");
+
+            SimProfileData data = GetProfileByLLUUID(uuid);
+
+            return (handle == data.regionHandle && authkey == data.regionSecret);
+        }
+
+        /// <summary>
+        /// NOT YET FUNCTIONAL. Provides a cryptographic authentication of a region
+        /// </summary>
+        /// <remarks>This requires a security audit.</remarks>
+        /// <param name="uuid"></param>
+        /// <param name="handle"></param>
+        /// <param name="authhash"></param>
+        /// <param name="challenge"></param>
+        /// <returns></returns>
+        public bool AuthenticateSim(LLUUID uuid, ulong handle, string authhash, string challenge)
+        {
+            SHA512Managed HashProvider = new SHA512Managed();
+            ASCIIEncoding TextProvider = new ASCIIEncoding();
+
+            byte[] stream = TextProvider.GetBytes(uuid.ToStringHyphenated() + ":" + handle.ToString() + ":" + challenge);
+            byte[] hash = HashProvider.ComputeHash(stream);
+            return false;
+        }
+        public ReservationData GetReservationAtPoint(uint x, uint y)
+        {
+            return null;
+        }
+    }
+    
+}

+ 211 - 211
OpenSim/Framework/Data.MSSQL/MSSQLManager.cs

@@ -1,211 +1,211 @@
-/*
-* Copyright (c) Contributors, http://www.openmetaverse.org/
-* See CONTRIBUTORS.TXT for a full list of copyright holders.
-*
-* Redistribution and use in source and binary forms, with or without
-* modification, are permitted provided that the following conditions are met:
-*     * Redistributions of source code must retain the above copyright
-*       notice, this list of conditions and the following disclaimer.
-*     * Redistributions in binary form must reproduce the above copyright
-*       notice, this list of conditions and the following disclaimer in the
-*       documentation and/or other materials provided with the distribution.
-*     * Neither the name of the OpenSim Project nor the
-*       names of its contributors may be used to endorse or promote products
-*       derived from this software without specific prior written permission.
-*
-* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS AND ANY
-* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
-* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-* 
-*/
-using System;
-using System.Collections.Generic;
-using System.Data;
-using System.Data.SqlClient;
-using libsecondlife;
-
-namespace OpenSim.Framework.Data.MSSQL
-{
-    /// <summary>
-    /// A management class for the MS SQL Storage Engine
-    /// </summary>
-    class MSSqlManager
-    {
-        /// <summary>
-        /// The database connection object
-        /// </summary>
-        IDbConnection dbcon;
-
-        /// <summary>
-        /// Initialises and creates a new Sql connection and maintains it.
-        /// </summary>
-        /// <param name="hostname">The Sql server being connected to</param>
-        /// <param name="database">The name of the Sql database being used</param>
-        /// <param name="username">The username logging into the database</param>
-        /// <param name="password">The password for the user logging in</param>
-        /// <param name="cpooling">Whether to use connection pooling or not, can be one of the following: 'yes', 'true', 'no' or 'false', if unsure use 'false'.</param>
-        public MSSqlManager(string hostname, string database, string username, string password, string cpooling)
-        {
-            try
-            {
-                string connectionString = "Server=" + hostname + ";Database=" + database + ";User ID=" + username + ";Password=" + password + ";Pooling=" + cpooling + ";";
-                dbcon = new SqlConnection(connectionString);
-
-                dbcon.Open();
-            }
-            catch (Exception e)
-            {
-                throw new Exception("Error initialising Sql Database: " + e.ToString());
-            }
-        }
-
-        /// <summary>
-        /// Shuts down the database connection
-        /// </summary>
-        public void Close()
-        {
-            dbcon.Close();
-            dbcon = null;
-        }
-
-        /// <summary>
-        /// Runs a query with protection against SQL Injection by using parameterised input.
-        /// </summary>
-        /// <param name="sql">The SQL string - replace any variables such as WHERE x = "y" with WHERE x = @y</param>
-        /// <param name="parameters">The parameters - index so that @y is indexed as 'y'</param>
-        /// <returns>A Sql DB Command</returns>
-        public IDbCommand Query(string sql, Dictionary<string, string> parameters)
-        {
-            SqlCommand dbcommand = (SqlCommand)dbcon.CreateCommand();
-            dbcommand.CommandText = sql;
-            foreach (KeyValuePair<string, string> param in parameters)
-            {
-                dbcommand.Parameters.AddWithValue(param.Key, param.Value);
-            }
-
-            return (IDbCommand)dbcommand;
-        }
-
-        /// <summary>
-        /// Runs a database reader object and returns a region row
-        /// </summary>
-        /// <param name="reader">An active database reader</param>
-        /// <returns>A region row</returns>
-        public SimProfileData getRow(IDataReader reader)
-        {
-            SimProfileData regionprofile = new SimProfileData();
-
-            if (reader.Read())
-            {
-                // Region Main
-                regionprofile.regionHandle = (ulong)reader["regionHandle"];
-                regionprofile.regionName = (string)reader["regionName"];
-                regionprofile.UUID = new LLUUID((string)reader["uuid"]);
-
-                // Secrets
-                regionprofile.regionRecvKey = (string)reader["regionRecvKey"];
-                regionprofile.regionSecret = (string)reader["regionSecret"];
-                regionprofile.regionSendKey = (string)reader["regionSendKey"];
-
-                // Region Server
-                regionprofile.regionDataURI = (string)reader["regionDataURI"];
-                regionprofile.regionOnline = false; // Needs to be pinged before this can be set.
-                regionprofile.serverIP = (string)reader["serverIP"];
-                regionprofile.serverPort = (uint)reader["serverPort"];
-                regionprofile.serverURI = (string)reader["serverURI"];
-
-                // Location
-                regionprofile.regionLocX = (uint)((int)reader["locX"]);
-                regionprofile.regionLocY = (uint)((int)reader["locY"]);
-                regionprofile.regionLocZ = (uint)((int)reader["locZ"]);
-
-                // Neighbours - 0 = No Override
-                regionprofile.regionEastOverrideHandle = (ulong)reader["eastOverrideHandle"];
-                regionprofile.regionWestOverrideHandle = (ulong)reader["westOverrideHandle"];
-                regionprofile.regionSouthOverrideHandle = (ulong)reader["southOverrideHandle"];
-                regionprofile.regionNorthOverrideHandle = (ulong)reader["northOverrideHandle"];
-
-                // Assets
-                regionprofile.regionAssetURI = (string)reader["regionAssetURI"];
-                regionprofile.regionAssetRecvKey = (string)reader["regionAssetRecvKey"];
-                regionprofile.regionAssetSendKey = (string)reader["regionAssetSendKey"];
-
-                // Userserver
-                regionprofile.regionUserURI = (string)reader["regionUserURI"];
-                regionprofile.regionUserRecvKey = (string)reader["regionUserRecvKey"];
-                regionprofile.regionUserSendKey = (string)reader["regionUserSendKey"];
-            }
-            else
-            {
-                throw new Exception("No rows to return");
-            }
-            return regionprofile;
-        }
-
-        /// <summary>
-        /// Creates a new region in the database
-        /// </summary>
-        /// <param name="profile">The region profile to insert</param>
-        /// <returns>Successful?</returns>
-        public bool insertRow(SimProfileData profile)
-        {
-            string sql = "REPLACE INTO regions VALUES (regionHandle, regionName, uuid, regionRecvKey, regionSecret, regionSendKey, regionDataURI, ";
-            sql += "serverIP, serverPort, serverURI, locX, locY, locZ, eastOverrideHandle, westOverrideHandle, southOverrideHandle, northOverrideHandle, regionAssetURI, regionAssetRecvKey, ";
-            sql += "regionAssetSendKey, regionUserURI, regionUserRecvKey, regionUserSendKey) VALUES ";
-
-            sql += "(@regionHandle, @regionName, @uuid, @regionRecvKey, @regionSecret, @regionSendKey, @regionDataURI, ";
-            sql += "@serverIP, @serverPort, @serverURI, @locX, @locY, @locZ, @eastOverrideHandle, @westOverrideHandle, @southOverrideHandle, @northOverrideHandle, @regionAssetURI, @regionAssetRecvKey, ";
-            sql += "@regionAssetSendKey, @regionUserURI, @regionUserRecvKey, @regionUserSendKey);";
-
-            Dictionary<string, string> parameters = new Dictionary<string, string>();
-
-            parameters["regionHandle"] = profile.regionHandle.ToString();
-            parameters["regionName"] = profile.regionName;
-            parameters["uuid"] = profile.UUID.ToString();
-            parameters["regionRecvKey"] = profile.regionRecvKey;
-            parameters["regionSendKey"] = profile.regionSendKey;
-            parameters["regionDataURI"] = profile.regionDataURI;
-            parameters["serverIP"] = profile.serverIP;
-            parameters["serverPort"] = profile.serverPort.ToString();
-            parameters["serverURI"] = profile.serverURI;
-            parameters["locX"] = profile.regionLocX.ToString();
-            parameters["locY"] = profile.regionLocY.ToString();
-            parameters["locZ"] = profile.regionLocZ.ToString();
-            parameters["eastOverrideHandle"] = profile.regionEastOverrideHandle.ToString();
-            parameters["westOverrideHandle"] = profile.regionWestOverrideHandle.ToString();
-            parameters["northOverrideHandle"] = profile.regionNorthOverrideHandle.ToString();
-            parameters["southOverrideHandle"] = profile.regionSouthOverrideHandle.ToString();
-            parameters["regionAssetURI"] = profile.regionAssetURI;
-            parameters["regionAssetRecvKey"] = profile.regionAssetRecvKey;
-            parameters["regionAssetSendKey"] = profile.regionAssetSendKey;
-            parameters["regionUserURI"] = profile.regionUserURI;
-            parameters["regionUserRecvKey"] = profile.regionUserRecvKey;
-            parameters["regionUserSendKey"] = profile.regionUserSendKey;
-
-            bool returnval = false;
-
-            try
-            {
-                IDbCommand result = Query(sql, parameters);
-
-                if (result.ExecuteNonQuery() == 1)
-                    returnval = true;
-
-                result.Dispose();
-            }
-            catch (Exception)
-            {
-                return false;
-            }
-
-            return returnval;
-        }
-    }
-}
+/*
+* Copyright (c) Contributors, http://www.openmetaverse.org/
+* See CONTRIBUTORS.TXT for a full list of copyright holders.
+*
+* Redistribution and use in source and binary forms, with or without
+* modification, are permitted provided that the following conditions are met:
+*     * Redistributions of source code must retain the above copyright
+*       notice, this list of conditions and the following disclaimer.
+*     * Redistributions in binary form must reproduce the above copyright
+*       notice, this list of conditions and the following disclaimer in the
+*       documentation and/or other materials provided with the distribution.
+*     * Neither the name of the OpenSim Project nor the
+*       names of its contributors may be used to endorse or promote products
+*       derived from this software without specific prior written permission.
+*
+* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS AND ANY
+* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
+* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+* 
+*/
+using System;
+using System.Collections.Generic;
+using System.Data;
+using System.Data.SqlClient;
+using libsecondlife;
+
+namespace OpenSim.Framework.Data.MSSQL
+{
+    /// <summary>
+    /// A management class for the MS SQL Storage Engine
+    /// </summary>
+    class MSSqlManager
+    {
+        /// <summary>
+        /// The database connection object
+        /// </summary>
+        IDbConnection dbcon;
+
+        /// <summary>
+        /// Initialises and creates a new Sql connection and maintains it.
+        /// </summary>
+        /// <param name="hostname">The Sql server being connected to</param>
+        /// <param name="database">The name of the Sql database being used</param>
+        /// <param name="username">The username logging into the database</param>
+        /// <param name="password">The password for the user logging in</param>
+        /// <param name="cpooling">Whether to use connection pooling or not, can be one of the following: 'yes', 'true', 'no' or 'false', if unsure use 'false'.</param>
+        public MSSqlManager(string hostname, string database, string username, string password, string cpooling)
+        {
+            try
+            {
+                string connectionString = "Server=" + hostname + ";Database=" + database + ";User ID=" + username + ";Password=" + password + ";Pooling=" + cpooling + ";";
+                dbcon = new SqlConnection(connectionString);
+
+                dbcon.Open();
+            }
+            catch (Exception e)
+            {
+                throw new Exception("Error initialising Sql Database: " + e.ToString());
+            }
+        }
+
+        /// <summary>
+        /// Shuts down the database connection
+        /// </summary>
+        public void Close()
+        {
+            dbcon.Close();
+            dbcon = null;
+        }
+
+        /// <summary>
+        /// Runs a query with protection against SQL Injection by using parameterised input.
+        /// </summary>
+        /// <param name="sql">The SQL string - replace any variables such as WHERE x = "y" with WHERE x = @y</param>
+        /// <param name="parameters">The parameters - index so that @y is indexed as 'y'</param>
+        /// <returns>A Sql DB Command</returns>
+        public IDbCommand Query(string sql, Dictionary<string, string> parameters)
+        {
+            SqlCommand dbcommand = (SqlCommand)dbcon.CreateCommand();
+            dbcommand.CommandText = sql;
+            foreach (KeyValuePair<string, string> param in parameters)
+            {
+                dbcommand.Parameters.AddWithValue(param.Key, param.Value);
+            }
+
+            return (IDbCommand)dbcommand;
+        }
+
+        /// <summary>
+        /// Runs a database reader object and returns a region row
+        /// </summary>
+        /// <param name="reader">An active database reader</param>
+        /// <returns>A region row</returns>
+        public SimProfileData getRow(IDataReader reader)
+        {
+            SimProfileData regionprofile = new SimProfileData();
+
+            if (reader.Read())
+            {
+                // Region Main
+                regionprofile.regionHandle = (ulong)reader["regionHandle"];
+                regionprofile.regionName = (string)reader["regionName"];
+                regionprofile.UUID = new LLUUID((string)reader["uuid"]);
+
+                // Secrets
+                regionprofile.regionRecvKey = (string)reader["regionRecvKey"];
+                regionprofile.regionSecret = (string)reader["regionSecret"];
+                regionprofile.regionSendKey = (string)reader["regionSendKey"];
+
+                // Region Server
+                regionprofile.regionDataURI = (string)reader["regionDataURI"];
+                regionprofile.regionOnline = false; // Needs to be pinged before this can be set.
+                regionprofile.serverIP = (string)reader["serverIP"];
+                regionprofile.serverPort = (uint)reader["serverPort"];
+                regionprofile.serverURI = (string)reader["serverURI"];
+
+                // Location
+                regionprofile.regionLocX = (uint)((int)reader["locX"]);
+                regionprofile.regionLocY = (uint)((int)reader["locY"]);
+                regionprofile.regionLocZ = (uint)((int)reader["locZ"]);
+
+                // Neighbours - 0 = No Override
+                regionprofile.regionEastOverrideHandle = (ulong)reader["eastOverrideHandle"];
+                regionprofile.regionWestOverrideHandle = (ulong)reader["westOverrideHandle"];
+                regionprofile.regionSouthOverrideHandle = (ulong)reader["southOverrideHandle"];
+                regionprofile.regionNorthOverrideHandle = (ulong)reader["northOverrideHandle"];
+
+                // Assets
+                regionprofile.regionAssetURI = (string)reader["regionAssetURI"];
+                regionprofile.regionAssetRecvKey = (string)reader["regionAssetRecvKey"];
+                regionprofile.regionAssetSendKey = (string)reader["regionAssetSendKey"];
+
+                // Userserver
+                regionprofile.regionUserURI = (string)reader["regionUserURI"];
+                regionprofile.regionUserRecvKey = (string)reader["regionUserRecvKey"];
+                regionprofile.regionUserSendKey = (string)reader["regionUserSendKey"];
+            }
+            else
+            {
+                throw new Exception("No rows to return");
+            }
+            return regionprofile;
+        }
+
+        /// <summary>
+        /// Creates a new region in the database
+        /// </summary>
+        /// <param name="profile">The region profile to insert</param>
+        /// <returns>Successful?</returns>
+        public bool insertRow(SimProfileData profile)
+        {
+            string sql = "REPLACE INTO regions VALUES (regionHandle, regionName, uuid, regionRecvKey, regionSecret, regionSendKey, regionDataURI, ";
+            sql += "serverIP, serverPort, serverURI, locX, locY, locZ, eastOverrideHandle, westOverrideHandle, southOverrideHandle, northOverrideHandle, regionAssetURI, regionAssetRecvKey, ";
+            sql += "regionAssetSendKey, regionUserURI, regionUserRecvKey, regionUserSendKey) VALUES ";
+
+            sql += "(@regionHandle, @regionName, @uuid, @regionRecvKey, @regionSecret, @regionSendKey, @regionDataURI, ";
+            sql += "@serverIP, @serverPort, @serverURI, @locX, @locY, @locZ, @eastOverrideHandle, @westOverrideHandle, @southOverrideHandle, @northOverrideHandle, @regionAssetURI, @regionAssetRecvKey, ";
+            sql += "@regionAssetSendKey, @regionUserURI, @regionUserRecvKey, @regionUserSendKey);";
+
+            Dictionary<string, string> parameters = new Dictionary<string, string>();
+
+            parameters["regionHandle"] = profile.regionHandle.ToString();
+            parameters["regionName"] = profile.regionName;
+            parameters["uuid"] = profile.UUID.ToString();
+            parameters["regionRecvKey"] = profile.regionRecvKey;
+            parameters["regionSendKey"] = profile.regionSendKey;
+            parameters["regionDataURI"] = profile.regionDataURI;
+            parameters["serverIP"] = profile.serverIP;
+            parameters["serverPort"] = profile.serverPort.ToString();
+            parameters["serverURI"] = profile.serverURI;
+            parameters["locX"] = profile.regionLocX.ToString();
+            parameters["locY"] = profile.regionLocY.ToString();
+            parameters["locZ"] = profile.regionLocZ.ToString();
+            parameters["eastOverrideHandle"] = profile.regionEastOverrideHandle.ToString();
+            parameters["westOverrideHandle"] = profile.regionWestOverrideHandle.ToString();
+            parameters["northOverrideHandle"] = profile.regionNorthOverrideHandle.ToString();
+            parameters["southOverrideHandle"] = profile.regionSouthOverrideHandle.ToString();
+            parameters["regionAssetURI"] = profile.regionAssetURI;
+            parameters["regionAssetRecvKey"] = profile.regionAssetRecvKey;
+            parameters["regionAssetSendKey"] = profile.regionAssetSendKey;
+            parameters["regionUserURI"] = profile.regionUserURI;
+            parameters["regionUserRecvKey"] = profile.regionUserRecvKey;
+            parameters["regionUserSendKey"] = profile.regionUserSendKey;
+
+            bool returnval = false;
+
+            try
+            {
+                IDbCommand result = Query(sql, parameters);
+
+                if (result.ExecuteNonQuery() == 1)
+                    returnval = true;
+
+                result.Dispose();
+            }
+            catch (Exception)
+            {
+                return false;
+            }
+
+            return returnval;
+        }
+    }
+}

+ 33 - 33
OpenSim/Framework/Data.MSSQL/Properties/AssemblyInfo.cs

@@ -1,33 +1,33 @@
-using System.Reflection;
-using System.Runtime.InteropServices;
-// General Information about an assembly is controlled through the following 
-// set of attributes. Change these attribute values to modify the information
-// associated with an assembly.
-[assembly: AssemblyTitle("OpenSim.Framework.Data.MSSQL")]
-[assembly: AssemblyDescription("")]
-[assembly: AssemblyConfiguration("")]
-[assembly: AssemblyCompany("")]
-[assembly: AssemblyProduct("OpenSim.Framework.Data.MSSQL")]
-[assembly: AssemblyCopyright("Copyright ©  2007")]
-[assembly: AssemblyTrademark("")]
-[assembly: AssemblyCulture("")]
-
-// Setting ComVisible to false makes the types in this assembly not visible 
-// to COM components.  If you need to access a type in this assembly from 
-// COM, set the ComVisible attribute to true on that type.
-[assembly: ComVisible(false)]
-
-// The following GUID is for the ID of the typelib if this project is exposed to COM
-[assembly: Guid("0e1c1ca4-2cf2-4315-b0e7-432c02feea8a")]
-
-// Version information for an assembly consists of the following four values:
-//
-//      Major Version
-//      Minor Version 
-//      Build Number
-//      Revision
-//
-// You can specify all the values or you can default the Revision and Build Numbers 
-// by using the '*' as shown below:
-[assembly: AssemblyVersion("1.0.0.0")]
-[assembly: AssemblyFileVersion("1.0.0.0")]
+using System.Reflection;
+using System.Runtime.InteropServices;
+// General Information about an assembly is controlled through the following 
+// set of attributes. Change these attribute values to modify the information
+// associated with an assembly.
+[assembly: AssemblyTitle("OpenSim.Framework.Data.MSSQL")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("")]
+[assembly: AssemblyProduct("OpenSim.Framework.Data.MSSQL")]
+[assembly: AssemblyCopyright("Copyright ©  2007")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// Setting ComVisible to false makes the types in this assembly not visible 
+// to COM components.  If you need to access a type in this assembly from 
+// COM, set the ComVisible attribute to true on that type.
+[assembly: ComVisible(false)]
+
+// The following GUID is for the ID of the typelib if this project is exposed to COM
+[assembly: Guid("0e1c1ca4-2cf2-4315-b0e7-432c02feea8a")]
+
+// Version information for an assembly consists of the following four values:
+//
+//      Major Version
+//      Minor Version 
+//      Build Number
+//      Revision
+//
+// You can specify all the values or you can default the Revision and Build Numbers 
+// by using the '*' as shown below:
+[assembly: AssemblyVersion("1.0.0.0")]
+[assembly: AssemblyFileVersion("1.0.0.0")]

+ 287 - 287
OpenSim/Framework/Data.MySQL/MySQLGridData.cs

@@ -1,287 +1,287 @@
-/*
-* Copyright (c) Contributors, http://www.openmetaverse.org/
-* See CONTRIBUTORS.TXT for a full list of copyright holders.
-*
-* Redistribution and use in source and binary forms, with or without
-* modification, are permitted provided that the following conditions are met:
-*     * Redistributions of source code must retain the above copyright
-*       notice, this list of conditions and the following disclaimer.
-*     * Redistributions in binary form must reproduce the above copyright
-*       notice, this list of conditions and the following disclaimer in the
-*       documentation and/or other materials provided with the distribution.
-*     * Neither the name of the OpenSim Project nor the
-*       names of its contributors may be used to endorse or promote products
-*       derived from this software without specific prior written permission.
-*
-* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS AND ANY
-* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
-* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-* 
-*/
-using System;
-using System.Collections.Generic;
-using System.Data;
-using System.Security.Cryptography;
-using System.Text;
-using libsecondlife;
-
-namespace OpenSim.Framework.Data.MySQL
-{
-    /// <summary>
-    /// A MySQL Interface for the Grid Server
-    /// </summary>
-    public class MySQLGridData : IGridData
-    {
-        /// <summary>
-        /// MySQL Database Manager
-        /// </summary>
-        private MySQLManager database;
-
-        /// <summary>
-        /// Initialises the Grid Interface
-        /// </summary>
-        public void Initialise()
-        {
-            IniFile GridDataMySqlFile = new IniFile("mysql_connection.ini");
-            string settingHostname = GridDataMySqlFile.ParseFileReadValue("hostname");
-            string settingDatabase = GridDataMySqlFile.ParseFileReadValue("database");
-            string settingUsername = GridDataMySqlFile.ParseFileReadValue("username");
-            string settingPassword = GridDataMySqlFile.ParseFileReadValue("password");
-            string settingPooling = GridDataMySqlFile.ParseFileReadValue("pooling");
-            string settingPort = GridDataMySqlFile.ParseFileReadValue("port");
-
-            database = new MySQLManager(settingHostname, settingDatabase, settingUsername, settingPassword, settingPooling, settingPort);
-        }
-
-        /// <summary>
-        /// Shuts down the grid interface
-        /// </summary>
-        public void Close()
-        {
-            database.Close();
-        }
-
-        /// <summary>
-        /// Returns the plugin name
-        /// </summary>
-        /// <returns>Plugin name</returns>
-        public string getName()
-        {
-            return "MySql OpenGridData";
-        }
-
-        /// <summary>
-        /// Returns the plugin version
-        /// </summary>
-        /// <returns>Plugin version</returns>
-        public string getVersion()
-        {
-            return "0.1";
-        }
-
-        /// <summary>
-        /// Returns all the specified region profiles within coordates -- coordinates are inclusive
-        /// </summary>
-        /// <param name="xmin">Minimum X coordinate</param>
-        /// <param name="ymin">Minimum Y coordinate</param>
-        /// <param name="xmax">Maximum X coordinate</param>
-        /// <param name="ymax">Maximum Y coordinate</param>
-        /// <returns></returns>
-        public SimProfileData[] GetProfilesInRange(uint xmin, uint ymin, uint xmax, uint ymax)
-        {
-            try
-            {
-                lock (database)
-                {
-                    Dictionary<string, string> param = new Dictionary<string, string>();
-                    param["?xmin"] = xmin.ToString();
-                    param["?ymin"] = ymin.ToString();
-                    param["?xmax"] = xmax.ToString();
-                    param["?ymax"] = ymax.ToString();
-
-                    IDbCommand result = database.Query("SELECT * FROM regions WHERE locX >= ?xmin AND locX <= ?xmax AND locY >= ?ymin AND locY <= ?ymax", param);
-                    IDataReader reader = result.ExecuteReader();
-
-                    SimProfileData row;
-
-                    List<SimProfileData> rows = new List<SimProfileData>();
-
-                    while ((row = database.readSimRow(reader)) != null)
-                    {
-                        rows.Add(row);
-                    }
-                    reader.Close();
-                    result.Dispose();
-
-                    return rows.ToArray();
-
-                }
-            }
-            catch (Exception e)
-            {
-                database.Reconnect();
-                Console.WriteLine(e.ToString());
-                return null;
-            }
-        }
-
-        /// <summary>
-        /// Returns a sim profile from it's location
-        /// </summary>
-        /// <param name="handle">Region location handle</param>
-        /// <returns>Sim profile</returns>
-        public SimProfileData GetProfileByHandle(ulong handle)
-        {
-            try
-            {
-                lock (database)
-                {
-                    Dictionary<string, string> param = new Dictionary<string, string>();
-                    param["?handle"] = handle.ToString();
-
-                    IDbCommand result = database.Query("SELECT * FROM regions WHERE regionHandle = ?handle", param);
-                    IDataReader reader = result.ExecuteReader();
-
-                    SimProfileData row = database.readSimRow(reader);
-                    reader.Close();
-                    result.Dispose();
-
-                    return row;
-                }
-            }
-            catch (Exception e)
-            {
-                database.Reconnect();
-                Console.WriteLine(e.ToString());
-                return null;
-            }
-        }
-
-        /// <summary>
-        /// Returns a sim profile from it's UUID
-        /// </summary>
-        /// <param name="uuid">The region UUID</param>
-        /// <returns>The sim profile</returns>
-        public SimProfileData GetProfileByLLUUID(LLUUID uuid)
-        {
-            try
-            {
-                lock (database)
-                {
-                    Dictionary<string, string> param = new Dictionary<string, string>();
-                    param["?uuid"] = uuid.ToStringHyphenated();
-
-                    IDbCommand result = database.Query("SELECT * FROM regions WHERE uuid = ?uuid", param);
-                    IDataReader reader = result.ExecuteReader();
-
-                    SimProfileData row = database.readSimRow(reader);
-                    reader.Close();
-                    result.Dispose();
-
-                    return row;
-                }
-            }
-            catch (Exception e)
-            {
-                database.Reconnect();
-                Console.WriteLine(e.ToString());
-                return null;
-            }
-        }
-
-        /// <summary>
-        /// Adds a new profile to the database
-        /// </summary>
-        /// <param name="profile">The profile to add</param>
-        /// <returns>Successful?</returns>
-        public DataResponse AddProfile(SimProfileData profile)
-        {
-            lock (database)
-            {
-                if (database.insertRegion(profile))
-                {
-                    return DataResponse.RESPONSE_OK;
-                }
-                else
-                {
-                    return DataResponse.RESPONSE_ERROR;
-                }
-            }
-        }
-
-        /// <summary>
-        /// DEPRECIATED. Attempts to authenticate a region by comparing a shared secret.
-        /// </summary>
-        /// <param name="uuid">The UUID of the challenger</param>
-        /// <param name="handle">The attempted regionHandle of the challenger</param>
-        /// <param name="authkey">The secret</param>
-        /// <returns>Whether the secret and regionhandle match the database entry for UUID</returns>
-        public bool AuthenticateSim(LLUUID uuid, ulong handle, string authkey)
-        {
-            bool throwHissyFit = false; // Should be true by 1.0
-
-            if (throwHissyFit)
-                throw new Exception("CRYPTOWEAK AUTHENTICATE: Refusing to authenticate due to replay potential.");
-
-            SimProfileData data = GetProfileByLLUUID(uuid);
-
-            return (handle == data.regionHandle && authkey == data.regionSecret);
-        }
-
-        /// <summary>
-        /// NOT YET FUNCTIONAL. Provides a cryptographic authentication of a region
-        /// </summary>
-        /// <remarks>This requires a security audit.</remarks>
-        /// <param name="uuid"></param>
-        /// <param name="handle"></param>
-        /// <param name="authhash"></param>
-        /// <param name="challenge"></param>
-        /// <returns></returns>
-        public bool AuthenticateSim(LLUUID uuid, ulong handle, string authhash, string challenge)
-        {
-            SHA512Managed HashProvider = new SHA512Managed();
-            ASCIIEncoding TextProvider = new ASCIIEncoding();
-
-            byte[] stream = TextProvider.GetBytes(uuid.ToStringHyphenated() + ":" + handle.ToString() + ":" + challenge);
-            byte[] hash = HashProvider.ComputeHash(stream);
-
-            return false;
-        }
-
-        public ReservationData GetReservationAtPoint(uint x, uint y)
-        {
-            try
-            {
-                lock (database)
-                {
-                    Dictionary<string, string> param = new Dictionary<string, string>();
-                    param["?x"] = x.ToString();
-                    param["?y"] = y.ToString();
-                    IDbCommand result = database.Query("SELECT * FROM reservations WHERE resXMin <= ?x AND resXMax >= ?x AND resYMin <= ?y AND resYMax >= ?y", param);
-                    IDataReader reader = result.ExecuteReader();
-
-                    ReservationData row = database.readReservationRow(reader);
-                    reader.Close();
-                    result.Dispose();
-
-                    return row;
-                }
-            }
-            catch (Exception e)
-            {
-                database.Reconnect();
-                Console.WriteLine(e.ToString());
-                return null;
-            }
-        }
-    }
-
-
-}
+/*
+* Copyright (c) Contributors, http://www.openmetaverse.org/
+* See CONTRIBUTORS.TXT for a full list of copyright holders.
+*
+* Redistribution and use in source and binary forms, with or without
+* modification, are permitted provided that the following conditions are met:
+*     * Redistributions of source code must retain the above copyright
+*       notice, this list of conditions and the following disclaimer.
+*     * Redistributions in binary form must reproduce the above copyright
+*       notice, this list of conditions and the following disclaimer in the
+*       documentation and/or other materials provided with the distribution.
+*     * Neither the name of the OpenSim Project nor the
+*       names of its contributors may be used to endorse or promote products
+*       derived from this software without specific prior written permission.
+*
+* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS AND ANY
+* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
+* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+* 
+*/
+using System;
+using System.Collections.Generic;
+using System.Data;
+using System.Security.Cryptography;
+using System.Text;
+using libsecondlife;
+
+namespace OpenSim.Framework.Data.MySQL
+{
+    /// <summary>
+    /// A MySQL Interface for the Grid Server
+    /// </summary>
+    public class MySQLGridData : IGridData
+    {
+        /// <summary>
+        /// MySQL Database Manager
+        /// </summary>
+        private MySQLManager database;
+
+        /// <summary>
+        /// Initialises the Grid Interface
+        /// </summary>
+        public void Initialise()
+        {
+            IniFile GridDataMySqlFile = new IniFile("mysql_connection.ini");
+            string settingHostname = GridDataMySqlFile.ParseFileReadValue("hostname");
+            string settingDatabase = GridDataMySqlFile.ParseFileReadValue("database");
+            string settingUsername = GridDataMySqlFile.ParseFileReadValue("username");
+            string settingPassword = GridDataMySqlFile.ParseFileReadValue("password");
+            string settingPooling = GridDataMySqlFile.ParseFileReadValue("pooling");
+            string settingPort = GridDataMySqlFile.ParseFileReadValue("port");
+
+            database = new MySQLManager(settingHostname, settingDatabase, settingUsername, settingPassword, settingPooling, settingPort);
+        }
+
+        /// <summary>
+        /// Shuts down the grid interface
+        /// </summary>
+        public void Close()
+        {
+            database.Close();
+        }
+
+        /// <summary>
+        /// Returns the plugin name
+        /// </summary>
+        /// <returns>Plugin name</returns>
+        public string getName()
+        {
+            return "MySql OpenGridData";
+        }
+
+        /// <summary>
+        /// Returns the plugin version
+        /// </summary>
+        /// <returns>Plugin version</returns>
+        public string getVersion()
+        {
+            return "0.1";
+        }
+
+        /// <summary>
+        /// Returns all the specified region profiles within coordates -- coordinates are inclusive
+        /// </summary>
+        /// <param name="xmin">Minimum X coordinate</param>
+        /// <param name="ymin">Minimum Y coordinate</param>
+        /// <param name="xmax">Maximum X coordinate</param>
+        /// <param name="ymax">Maximum Y coordinate</param>
+        /// <returns></returns>
+        public SimProfileData[] GetProfilesInRange(uint xmin, uint ymin, uint xmax, uint ymax)
+        {
+            try
+            {
+                lock (database)
+                {
+                    Dictionary<string, string> param = new Dictionary<string, string>();
+                    param["?xmin"] = xmin.ToString();
+                    param["?ymin"] = ymin.ToString();
+                    param["?xmax"] = xmax.ToString();
+                    param["?ymax"] = ymax.ToString();
+
+                    IDbCommand result = database.Query("SELECT * FROM regions WHERE locX >= ?xmin AND locX <= ?xmax AND locY >= ?ymin AND locY <= ?ymax", param);
+                    IDataReader reader = result.ExecuteReader();
+
+                    SimProfileData row;
+
+                    List<SimProfileData> rows = new List<SimProfileData>();
+
+                    while ((row = database.readSimRow(reader)) != null)
+                    {
+                        rows.Add(row);
+                    }
+                    reader.Close();
+                    result.Dispose();
+
+                    return rows.ToArray();
+
+                }
+            }
+            catch (Exception e)
+            {
+                database.Reconnect();
+                Console.WriteLine(e.ToString());
+                return null;
+            }
+        }
+
+        /// <summary>
+        /// Returns a sim profile from it's location
+        /// </summary>
+        /// <param name="handle">Region location handle</param>
+        /// <returns>Sim profile</returns>
+        public SimProfileData GetProfileByHandle(ulong handle)
+        {
+            try
+            {
+                lock (database)
+                {
+                    Dictionary<string, string> param = new Dictionary<string, string>();
+                    param["?handle"] = handle.ToString();
+
+                    IDbCommand result = database.Query("SELECT * FROM regions WHERE regionHandle = ?handle", param);
+                    IDataReader reader = result.ExecuteReader();
+
+                    SimProfileData row = database.readSimRow(reader);
+                    reader.Close();
+                    result.Dispose();
+
+                    return row;
+                }
+            }
+            catch (Exception e)
+            {
+                database.Reconnect();
+                Console.WriteLine(e.ToString());
+                return null;
+            }
+        }
+
+        /// <summary>
+        /// Returns a sim profile from it's UUID
+        /// </summary>
+        /// <param name="uuid">The region UUID</param>
+        /// <returns>The sim profile</returns>
+        public SimProfileData GetProfileByLLUUID(LLUUID uuid)
+        {
+            try
+            {
+                lock (database)
+                {
+                    Dictionary<string, string> param = new Dictionary<string, string>();
+                    param["?uuid"] = uuid.ToStringHyphenated();
+
+                    IDbCommand result = database.Query("SELECT * FROM regions WHERE uuid = ?uuid", param);
+                    IDataReader reader = result.ExecuteReader();
+
+                    SimProfileData row = database.readSimRow(reader);
+                    reader.Close();
+                    result.Dispose();
+
+                    return row;
+                }
+            }
+            catch (Exception e)
+            {
+                database.Reconnect();
+                Console.WriteLine(e.ToString());
+                return null;
+            }
+        }
+
+        /// <summary>
+        /// Adds a new profile to the database
+        /// </summary>
+        /// <param name="profile">The profile to add</param>
+        /// <returns>Successful?</returns>
+        public DataResponse AddProfile(SimProfileData profile)
+        {
+            lock (database)
+            {
+                if (database.insertRegion(profile))
+                {
+                    return DataResponse.RESPONSE_OK;
+                }
+                else
+                {
+                    return DataResponse.RESPONSE_ERROR;
+                }
+            }
+        }
+
+        /// <summary>
+        /// DEPRECIATED. Attempts to authenticate a region by comparing a shared secret.
+        /// </summary>
+        /// <param name="uuid">The UUID of the challenger</param>
+        /// <param name="handle">The attempted regionHandle of the challenger</param>
+        /// <param name="authkey">The secret</param>
+        /// <returns>Whether the secret and regionhandle match the database entry for UUID</returns>
+        public bool AuthenticateSim(LLUUID uuid, ulong handle, string authkey)
+        {
+            bool throwHissyFit = false; // Should be true by 1.0
+
+            if (throwHissyFit)
+                throw new Exception("CRYPTOWEAK AUTHENTICATE: Refusing to authenticate due to replay potential.");
+
+            SimProfileData data = GetProfileByLLUUID(uuid);
+
+            return (handle == data.regionHandle && authkey == data.regionSecret);
+        }
+
+        /// <summary>
+        /// NOT YET FUNCTIONAL. Provides a cryptographic authentication of a region
+        /// </summary>
+        /// <remarks>This requires a security audit.</remarks>
+        /// <param name="uuid"></param>
+        /// <param name="handle"></param>
+        /// <param name="authhash"></param>
+        /// <param name="challenge"></param>
+        /// <returns></returns>
+        public bool AuthenticateSim(LLUUID uuid, ulong handle, string authhash, string challenge)
+        {
+            SHA512Managed HashProvider = new SHA512Managed();
+            ASCIIEncoding TextProvider = new ASCIIEncoding();
+
+            byte[] stream = TextProvider.GetBytes(uuid.ToStringHyphenated() + ":" + handle.ToString() + ":" + challenge);
+            byte[] hash = HashProvider.ComputeHash(stream);
+
+            return false;
+        }
+
+        public ReservationData GetReservationAtPoint(uint x, uint y)
+        {
+            try
+            {
+                lock (database)
+                {
+                    Dictionary<string, string> param = new Dictionary<string, string>();
+                    param["?x"] = x.ToString();
+                    param["?y"] = y.ToString();
+                    IDbCommand result = database.Query("SELECT * FROM reservations WHERE resXMin <= ?x AND resXMax >= ?x AND resYMin <= ?y AND resYMax >= ?y", param);
+                    IDataReader reader = result.ExecuteReader();
+
+                    ReservationData row = database.readReservationRow(reader);
+                    reader.Close();
+                    result.Dispose();
+
+                    return row;
+                }
+            }
+            catch (Exception e)
+            {
+                database.Reconnect();
+                Console.WriteLine(e.ToString());
+                return null;
+            }
+        }
+    }
+
+
+}

+ 309 - 309
OpenSim/Framework/Data.MySQL/MySQLInventoryData.cs

@@ -1,309 +1,309 @@
-/*
-* Copyright (c) Contributors, http://www.openmetaverse.org/
-* See CONTRIBUTORS.TXT for a full list of copyright holders.
-*
-* Redistribution and use in source and binary forms, with or without
-* modification, are permitted provided that the following conditions are met:
-*     * Redistributions of source code must retain the above copyright
-*       notice, this list of conditions and the following disclaimer.
-*     * Redistributions in binary form must reproduce the above copyright
-*       notice, this list of conditions and the following disclaimer in the
-*       documentation and/or other materials provided with the distribution.
-*     * Neither the name of the OpenSim Project nor the
-*       names of its contributors may be used to endorse or promote products
-*       derived from this software without specific prior written permission.
-*
-* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS AND ANY
-* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
-* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-* 
-*/
-using System;
-using System.Collections.Generic;
-using System.Data;
-using libsecondlife;
-
-namespace OpenSim.Framework.Data.MySQL
-{
-    /// <summary>
-    /// A MySQL interface for the inventory server
-    /// </summary>
-    class MySQLInventoryData : IInventoryData
-    {
-        /// <summary>
-        /// The database manager
-        /// </summary>
-        public MySQLManager database;
-
-        /// <summary>
-        /// Loads and initialises this database plugin
-        /// </summary>
-        public void Initialise()
-        {
-            IniFile GridDataMySqlFile = new IniFile("mysql_connection.ini");
-            string settingHostname = GridDataMySqlFile.ParseFileReadValue("hostname");
-            string settingDatabase = GridDataMySqlFile.ParseFileReadValue("database");
-            string settingUsername = GridDataMySqlFile.ParseFileReadValue("username");
-            string settingPassword = GridDataMySqlFile.ParseFileReadValue("password");
-            string settingPooling = GridDataMySqlFile.ParseFileReadValue("pooling");
-            string settingPort = GridDataMySqlFile.ParseFileReadValue("port");
-
-            database = new MySQLManager(settingHostname, settingDatabase, settingUsername, settingPassword, settingPooling, settingPort);
-        }
-        
-        /// <summary>
-        /// The name of this DB provider
-        /// </summary>
-        /// <returns>Name of DB provider</returns>
-        public string getName()
-        {
-            return "MySQL Inventory Data Interface";
-        }
-
-        /// <summary>
-        /// Closes this DB provider
-        /// </summary>
-        public void Close()
-        {
-            // Do nothing.
-        }
-
-        /// <summary>
-        /// Returns the version of this DB provider
-        /// </summary>
-        /// <returns>A string containing the DB provider</returns>
-        public string getVersion()
-        {
-            return "0.1";
-        }
-
-        /// <summary>
-        /// Returns a list of items in a specified folder
-        /// </summary>
-        /// <param name="folderID">The folder to search</param>
-        /// <returns>A list containing inventory items</returns>
-        public List<InventoryItemBase> getInventoryInFolder(LLUUID folderID)
-        {
-            try
-            {
-                lock (database)
-                {
-                    Dictionary<string, string> param = new Dictionary<string, string>();
-                    param["?uuid"] = folderID.ToStringHyphenated();
-
-                    IDbCommand result = database.Query("SELECT * FROM inventoryitems WHERE parentFolderID = ?uuid", param);
-                    IDataReader reader = result.ExecuteReader();
-
-                    List<InventoryItemBase> items = database.readInventoryItems(reader);
-
-                    reader.Close();
-                    result.Dispose();
-
-                    return items;
-                }
-            }
-            catch (Exception e)
-            {
-                database.Reconnect();
-                Console.WriteLine(e.ToString());
-                return null;
-            }
-        }
-
-        /// <summary>
-        /// Returns a list of the root folders within a users inventory
-        /// </summary>
-        /// <param name="user">The user whos inventory is to be searched</param>
-        /// <returns>A list of folder objects</returns>
-        public List<InventoryFolderBase> getUserRootFolders(LLUUID user)
-        {
-            try
-            {
-                lock (database)
-                {
-                    Dictionary<string, string> param = new Dictionary<string, string>();
-                    param["?uuid"] = user.ToStringHyphenated();
-                    param["?zero"] = LLUUID.Zero.ToStringHyphenated();
-
-                    IDbCommand result = database.Query("SELECT * FROM inventoryfolders WHERE parentFolderID = ?zero AND agentID = ?uuid", param);
-                    IDataReader reader = result.ExecuteReader();
-
-                    List<InventoryFolderBase> items = database.readInventoryFolders(reader);
-
-                    reader.Close();
-                    result.Dispose();
-
-                    return items;
-                }
-            }
-            catch (Exception e)
-            {
-                database.Reconnect();
-                Console.WriteLine(e.ToString());
-                return null;
-            }
-        }
-
-        /// <summary>
-        /// Returns a list of folders in a users inventory contained within the specified folder
-        /// </summary>
-        /// <param name="parentID">The folder to search</param>
-        /// <returns>A list of inventory folders</returns>
-        public List<InventoryFolderBase> getInventoryFolders(LLUUID parentID)
-        {
-            try
-            {
-                lock (database)
-                {
-                    Dictionary<string, string> param = new Dictionary<string, string>();
-                    param["?uuid"] = parentID.ToStringHyphenated();
-
-                    IDbCommand result = database.Query("SELECT * FROM inventoryfolders WHERE parentFolderID = ?uuid", param);
-                    IDataReader reader = result.ExecuteReader();
-
-                    List<InventoryFolderBase> items = database.readInventoryFolders(reader);
-
-                    reader.Close();
-                    result.Dispose();
-
-                    return items;
-                }
-            }
-            catch (Exception e)
-            {
-                database.Reconnect();
-                Console.WriteLine(e.ToString());
-                return null;
-            }
-        }
-
-        /// <summary>
-        /// Returns a specified inventory item
-        /// </summary>
-        /// <param name="item">The item to return</param>
-        /// <returns>An inventory item</returns>
-        public InventoryItemBase getInventoryItem(LLUUID item)
-        {
-            try
-            {
-                lock (database)
-                {
-                    Dictionary<string, string> param = new Dictionary<string, string>();
-                    param["?uuid"] = item.ToStringHyphenated();
-
-                    IDbCommand result = database.Query("SELECT * FROM inventoryitems WHERE inventoryID = ?uuid", param);
-                    IDataReader reader = result.ExecuteReader();
-
-                    List<InventoryItemBase> items = database.readInventoryItems(reader);
-
-                    reader.Close();
-                    result.Dispose();
-
-                    if (items.Count > 0)
-                    {
-                        return items[0];
-                    }
-                    else
-                    {
-                        return null;
-                    }
-                }
-            }
-            catch (Exception e)
-            {
-                database.Reconnect();
-                Console.WriteLine(e.ToString());
-                return null;
-            }
-        }
-
-        /// <summary>
-        /// Returns a specified inventory folder
-        /// </summary>
-        /// <param name="folder">The folder to return</param>
-        /// <returns>A folder class</returns>
-        public InventoryFolderBase getInventoryFolder(LLUUID folder)
-        {
-            try
-            {
-                lock (database)
-                {
-                    Dictionary<string, string> param = new Dictionary<string, string>();
-                    param["?uuid"] = folder.ToStringHyphenated();
-
-                    IDbCommand result = database.Query("SELECT * FROM inventoryfolders WHERE folderID = ?uuid", param);
-                    IDataReader reader = result.ExecuteReader();
-
-                    List<InventoryFolderBase> items = database.readInventoryFolders(reader);
-
-                    reader.Close();
-                    result.Dispose();
-
-                    if (items.Count > 0)
-                    {
-                        return items[0];
-                    }
-                    else
-                    {
-                        return null;
-                    }
-                }
-            }
-            catch (Exception e)
-            {
-                database.Reconnect();
-                Console.WriteLine(e.ToString());
-                return null;
-            }
-        }
-
-        /// <summary>
-        /// Adds a specified item to the database
-        /// </summary>
-        /// <param name="item">The inventory item</param>
-        public void addInventoryItem(InventoryItemBase item)
-        {
-            lock (database)
-            {
-                database.insertItem(item);
-            }
-        }
-
-        /// <summary>
-        /// Updates the specified inventory item
-        /// </summary>
-        /// <param name="item">Inventory item to update</param>
-        public void updateInventoryItem(InventoryItemBase item)
-        {
-            addInventoryItem(item);
-        }
-
-        /// <summary>
-        /// Creates a new inventory folder
-        /// </summary>
-        /// <param name="folder">Folder to create</param>
-        public void addInventoryFolder(InventoryFolderBase folder)
-        {
-            lock (database)
-            {
-                database.insertFolder(folder);
-            }
-        }
-
-        /// <summary>
-        /// Updates an inventory folder
-        /// </summary>
-        /// <param name="folder">Folder to update</param>
-        public void updateInventoryFolder(InventoryFolderBase folder)
-        {
-            addInventoryFolder(folder);
-        }
-    }
-}
+/*
+* Copyright (c) Contributors, http://www.openmetaverse.org/
+* See CONTRIBUTORS.TXT for a full list of copyright holders.
+*
+* Redistribution and use in source and binary forms, with or without
+* modification, are permitted provided that the following conditions are met:
+*     * Redistributions of source code must retain the above copyright
+*       notice, this list of conditions and the following disclaimer.
+*     * Redistributions in binary form must reproduce the above copyright
+*       notice, this list of conditions and the following disclaimer in the
+*       documentation and/or other materials provided with the distribution.
+*     * Neither the name of the OpenSim Project nor the
+*       names of its contributors may be used to endorse or promote products
+*       derived from this software without specific prior written permission.
+*
+* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS AND ANY
+* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
+* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+* 
+*/
+using System;
+using System.Collections.Generic;
+using System.Data;
+using libsecondlife;
+
+namespace OpenSim.Framework.Data.MySQL
+{
+    /// <summary>
+    /// A MySQL interface for the inventory server
+    /// </summary>
+    class MySQLInventoryData : IInventoryData
+    {
+        /// <summary>
+        /// The database manager
+        /// </summary>
+        public MySQLManager database;
+
+        /// <summary>
+        /// Loads and initialises this database plugin
+        /// </summary>
+        public void Initialise()
+        {
+            IniFile GridDataMySqlFile = new IniFile("mysql_connection.ini");
+            string settingHostname = GridDataMySqlFile.ParseFileReadValue("hostname");
+            string settingDatabase = GridDataMySqlFile.ParseFileReadValue("database");
+            string settingUsername = GridDataMySqlFile.ParseFileReadValue("username");
+            string settingPassword = GridDataMySqlFile.ParseFileReadValue("password");
+            string settingPooling = GridDataMySqlFile.ParseFileReadValue("pooling");
+            string settingPort = GridDataMySqlFile.ParseFileReadValue("port");
+
+            database = new MySQLManager(settingHostname, settingDatabase, settingUsername, settingPassword, settingPooling, settingPort);
+        }
+        
+        /// <summary>
+        /// The name of this DB provider
+        /// </summary>
+        /// <returns>Name of DB provider</returns>
+        public string getName()
+        {
+            return "MySQL Inventory Data Interface";
+        }
+
+        /// <summary>
+        /// Closes this DB provider
+        /// </summary>
+        public void Close()
+        {
+            // Do nothing.
+        }
+
+        /// <summary>
+        /// Returns the version of this DB provider
+        /// </summary>
+        /// <returns>A string containing the DB provider</returns>
+        public string getVersion()
+        {
+            return "0.1";
+        }
+
+        /// <summary>
+        /// Returns a list of items in a specified folder
+        /// </summary>
+        /// <param name="folderID">The folder to search</param>
+        /// <returns>A list containing inventory items</returns>
+        public List<InventoryItemBase> getInventoryInFolder(LLUUID folderID)
+        {
+            try
+            {
+                lock (database)
+                {
+                    Dictionary<string, string> param = new Dictionary<string, string>();
+                    param["?uuid"] = folderID.ToStringHyphenated();
+
+                    IDbCommand result = database.Query("SELECT * FROM inventoryitems WHERE parentFolderID = ?uuid", param);
+                    IDataReader reader = result.ExecuteReader();
+
+                    List<InventoryItemBase> items = database.readInventoryItems(reader);
+
+                    reader.Close();
+                    result.Dispose();
+
+                    return items;
+                }
+            }
+            catch (Exception e)
+            {
+                database.Reconnect();
+                Console.WriteLine(e.ToString());
+                return null;
+            }
+        }
+
+        /// <summary>
+        /// Returns a list of the root folders within a users inventory
+        /// </summary>
+        /// <param name="user">The user whos inventory is to be searched</param>
+        /// <returns>A list of folder objects</returns>
+        public List<InventoryFolderBase> getUserRootFolders(LLUUID user)
+        {
+            try
+            {
+                lock (database)
+                {
+                    Dictionary<string, string> param = new Dictionary<string, string>();
+                    param["?uuid"] = user.ToStringHyphenated();
+                    param["?zero"] = LLUUID.Zero.ToStringHyphenated();
+
+                    IDbCommand result = database.Query("SELECT * FROM inventoryfolders WHERE parentFolderID = ?zero AND agentID = ?uuid", param);
+                    IDataReader reader = result.ExecuteReader();
+
+                    List<InventoryFolderBase> items = database.readInventoryFolders(reader);
+
+                    reader.Close();
+                    result.Dispose();
+
+                    return items;
+                }
+            }
+            catch (Exception e)
+            {
+                database.Reconnect();
+                Console.WriteLine(e.ToString());
+                return null;
+            }
+        }
+
+        /// <summary>
+        /// Returns a list of folders in a users inventory contained within the specified folder
+        /// </summary>
+        /// <param name="parentID">The folder to search</param>
+        /// <returns>A list of inventory folders</returns>
+        public List<InventoryFolderBase> getInventoryFolders(LLUUID parentID)
+        {
+            try
+            {
+                lock (database)
+                {
+                    Dictionary<string, string> param = new Dictionary<string, string>();
+                    param["?uuid"] = parentID.ToStringHyphenated();
+
+                    IDbCommand result = database.Query("SELECT * FROM inventoryfolders WHERE parentFolderID = ?uuid", param);
+                    IDataReader reader = result.ExecuteReader();
+
+                    List<InventoryFolderBase> items = database.readInventoryFolders(reader);
+
+                    reader.Close();
+                    result.Dispose();
+
+                    return items;
+                }
+            }
+            catch (Exception e)
+            {
+                database.Reconnect();
+                Console.WriteLine(e.ToString());
+                return null;
+            }
+        }
+
+        /// <summary>
+        /// Returns a specified inventory item
+        /// </summary>
+        /// <param name="item">The item to return</param>
+        /// <returns>An inventory item</returns>
+        public InventoryItemBase getInventoryItem(LLUUID item)
+        {
+            try
+            {
+                lock (database)
+                {
+                    Dictionary<string, string> param = new Dictionary<string, string>();
+                    param["?uuid"] = item.ToStringHyphenated();
+
+                    IDbCommand result = database.Query("SELECT * FROM inventoryitems WHERE inventoryID = ?uuid", param);
+                    IDataReader reader = result.ExecuteReader();
+
+                    List<InventoryItemBase> items = database.readInventoryItems(reader);
+
+                    reader.Close();
+                    result.Dispose();
+
+                    if (items.Count > 0)
+                    {
+                        return items[0];
+                    }
+                    else
+                    {
+                        return null;
+                    }
+                }
+            }
+            catch (Exception e)
+            {
+                database.Reconnect();
+                Console.WriteLine(e.ToString());
+                return null;
+            }
+        }
+
+        /// <summary>
+        /// Returns a specified inventory folder
+        /// </summary>
+        /// <param name="folder">The folder to return</param>
+        /// <returns>A folder class</returns>
+        public InventoryFolderBase getInventoryFolder(LLUUID folder)
+        {
+            try
+            {
+                lock (database)
+                {
+                    Dictionary<string, string> param = new Dictionary<string, string>();
+                    param["?uuid"] = folder.ToStringHyphenated();
+
+                    IDbCommand result = database.Query("SELECT * FROM inventoryfolders WHERE folderID = ?uuid", param);
+                    IDataReader reader = result.ExecuteReader();
+
+                    List<InventoryFolderBase> items = database.readInventoryFolders(reader);
+
+                    reader.Close();
+                    result.Dispose();
+
+                    if (items.Count > 0)
+                    {
+                        return items[0];
+                    }
+                    else
+                    {
+                        return null;
+                    }
+                }
+            }
+            catch (Exception e)
+            {
+                database.Reconnect();
+                Console.WriteLine(e.ToString());
+                return null;
+            }
+        }
+
+        /// <summary>
+        /// Adds a specified item to the database
+        /// </summary>
+        /// <param name="item">The inventory item</param>
+        public void addInventoryItem(InventoryItemBase item)
+        {
+            lock (database)
+            {
+                database.insertItem(item);
+            }
+        }
+
+        /// <summary>
+        /// Updates the specified inventory item
+        /// </summary>
+        /// <param name="item">Inventory item to update</param>
+        public void updateInventoryItem(InventoryItemBase item)
+        {
+            addInventoryItem(item);
+        }
+
+        /// <summary>
+        /// Creates a new inventory folder
+        /// </summary>
+        /// <param name="folder">Folder to create</param>
+        public void addInventoryFolder(InventoryFolderBase folder)
+        {
+            lock (database)
+            {
+                database.insertFolder(folder);
+            }
+        }
+
+        /// <summary>
+        /// Updates an inventory folder
+        /// </summary>
+        /// <param name="folder">Folder to update</param>
+        public void updateInventoryFolder(InventoryFolderBase folder)
+        {
+            addInventoryFolder(folder);
+        }
+    }
+}

+ 105 - 105
OpenSim/Framework/Data.MySQL/MySQLLogData.cs

@@ -1,105 +1,105 @@
-/*
-* Copyright (c) Contributors, http://www.openmetaverse.org/
-* See CONTRIBUTORS.TXT for a full list of copyright holders.
-*
-* Redistribution and use in source and binary forms, with or without
-* modification, are permitted provided that the following conditions are met:
-*     * Redistributions of source code must retain the above copyright
-*       notice, this list of conditions and the following disclaimer.
-*     * Redistributions in binary form must reproduce the above copyright
-*       notice, this list of conditions and the following disclaimer in the
-*       documentation and/or other materials provided with the distribution.
-*     * Neither the name of the OpenSim Project nor the
-*       names of its contributors may be used to endorse or promote products
-*       derived from this software without specific prior written permission.
-*
-* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS AND ANY
-* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
-* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-* 
-*/
-using System;
-
-namespace OpenSim.Framework.Data.MySQL
-{
-    /// <summary>
-    /// An interface to the log database for MySQL
-    /// </summary>
-    class MySQLLogData : ILogData
-    {
-        /// <summary>
-        /// The database manager
-        /// </summary>
-        public MySQLManager database;
-
-        /// <summary>
-        /// Artificial constructor called when the plugin is loaded
-        /// </summary>
-        public void Initialise()
-        {
-            IniFile GridDataMySqlFile = new IniFile("mysql_connection.ini");
-            string settingHostname = GridDataMySqlFile.ParseFileReadValue("hostname");
-            string settingDatabase = GridDataMySqlFile.ParseFileReadValue("database");
-            string settingUsername = GridDataMySqlFile.ParseFileReadValue("username");
-            string settingPassword = GridDataMySqlFile.ParseFileReadValue("password");
-            string settingPooling = GridDataMySqlFile.ParseFileReadValue("pooling");
-            string settingPort = GridDataMySqlFile.ParseFileReadValue("port");
-
-            database = new MySQLManager(settingHostname, settingDatabase, settingUsername, settingPassword, settingPooling, settingPort);
-        }
-
-        /// <summary>
-        /// Saves a log item to the database
-        /// </summary>
-        /// <param name="serverDaemon">The daemon triggering the event</param>
-        /// <param name="target">The target of the action (region / agent UUID, etc)</param>
-        /// <param name="methodCall">The method call where the problem occured</param>
-        /// <param name="arguments">The arguments passed to the method</param>
-        /// <param name="priority">How critical is this?</param>
-        /// <param name="logMessage">The message to log</param>
-        public void saveLog(string serverDaemon, string target, string methodCall, string arguments, int priority, string logMessage)
-        {
-            try
-            {
-                database.insertLogRow(serverDaemon, target, methodCall, arguments, priority, logMessage);
-            }
-            catch
-            {
-                database.Reconnect();
-            }
-        }
-
-        /// <summary>
-        /// Returns the name of this DB provider
-        /// </summary>
-        /// <returns>A string containing the DB provider name</returns>
-        public string getName()
-        {
-            return "MySQL Logdata Interface";
-        }
-
-        /// <summary>
-        /// Closes the database provider
-        /// </summary>
-        public void Close()
-        {
-            // Do nothing.
-        }
-
-        /// <summary>
-        /// Returns the version of this DB provider
-        /// </summary>
-        /// <returns>A string containing the provider version</returns>
-        public string getVersion()
-        {
-            return "0.1";
-        }
-    }
-}
+/*
+* Copyright (c) Contributors, http://www.openmetaverse.org/
+* See CONTRIBUTORS.TXT for a full list of copyright holders.
+*
+* Redistribution and use in source and binary forms, with or without
+* modification, are permitted provided that the following conditions are met:
+*     * Redistributions of source code must retain the above copyright
+*       notice, this list of conditions and the following disclaimer.
+*     * Redistributions in binary form must reproduce the above copyright
+*       notice, this list of conditions and the following disclaimer in the
+*       documentation and/or other materials provided with the distribution.
+*     * Neither the name of the OpenSim Project nor the
+*       names of its contributors may be used to endorse or promote products
+*       derived from this software without specific prior written permission.
+*
+* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS AND ANY
+* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
+* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+* 
+*/
+using System;
+
+namespace OpenSim.Framework.Data.MySQL
+{
+    /// <summary>
+    /// An interface to the log database for MySQL
+    /// </summary>
+    class MySQLLogData : ILogData
+    {
+        /// <summary>
+        /// The database manager
+        /// </summary>
+        public MySQLManager database;
+
+        /// <summary>
+        /// Artificial constructor called when the plugin is loaded
+        /// </summary>
+        public void Initialise()
+        {
+            IniFile GridDataMySqlFile = new IniFile("mysql_connection.ini");
+            string settingHostname = GridDataMySqlFile.ParseFileReadValue("hostname");
+            string settingDatabase = GridDataMySqlFile.ParseFileReadValue("database");
+            string settingUsername = GridDataMySqlFile.ParseFileReadValue("username");
+            string settingPassword = GridDataMySqlFile.ParseFileReadValue("password");
+            string settingPooling = GridDataMySqlFile.ParseFileReadValue("pooling");
+            string settingPort = GridDataMySqlFile.ParseFileReadValue("port");
+
+            database = new MySQLManager(settingHostname, settingDatabase, settingUsername, settingPassword, settingPooling, settingPort);
+        }
+
+        /// <summary>
+        /// Saves a log item to the database
+        /// </summary>
+        /// <param name="serverDaemon">The daemon triggering the event</param>
+        /// <param name="target">The target of the action (region / agent UUID, etc)</param>
+        /// <param name="methodCall">The method call where the problem occured</param>
+        /// <param name="arguments">The arguments passed to the method</param>
+        /// <param name="priority">How critical is this?</param>
+        /// <param name="logMessage">The message to log</param>
+        public void saveLog(string serverDaemon, string target, string methodCall, string arguments, int priority, string logMessage)
+        {
+            try
+            {
+                database.insertLogRow(serverDaemon, target, methodCall, arguments, priority, logMessage);
+            }
+            catch
+            {
+                database.Reconnect();
+            }
+        }
+
+        /// <summary>
+        /// Returns the name of this DB provider
+        /// </summary>
+        /// <returns>A string containing the DB provider name</returns>
+        public string getName()
+        {
+            return "MySQL Logdata Interface";
+        }
+
+        /// <summary>
+        /// Closes the database provider
+        /// </summary>
+        public void Close()
+        {
+            // Do nothing.
+        }
+
+        /// <summary>
+        /// Returns the version of this DB provider
+        /// </summary>
+        /// <returns>A string containing the provider version</returns>
+        public string getVersion()
+        {
+            return "0.1";
+        }
+    }
+}

+ 606 - 606
OpenSim/Framework/Data.MySQL/MySQLManager.cs

@@ -1,606 +1,606 @@
-/*
-* Copyright (c) Contributors, http://www.openmetaverse.org/
-* See CONTRIBUTORS.TXT for a full list of copyright holders.
-*
-* Redistribution and use in source and binary forms, with or without
-* modification, are permitted provided that the following conditions are met:
-*     * Redistributions of source code must retain the above copyright
-*       notice, this list of conditions and the following disclaimer.
-*     * Redistributions in binary form must reproduce the above copyright
-*       notice, this list of conditions and the following disclaimer in the
-*       documentation and/or other materials provided with the distribution.
-*     * Neither the name of the OpenSim Project nor the
-*       names of its contributors may be used to endorse or promote products
-*       derived from this software without specific prior written permission.
-*
-* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS AND ANY
-* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
-* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-* 
-*/
-using System;
-using System.Collections.Generic;
-using System.Data;
-using libsecondlife;
-using MySql.Data.MySqlClient;
-
-namespace OpenSim.Framework.Data.MySQL
-{
-    /// <summary>
-    /// A MySQL Database manager
-    /// </summary>
-    class MySQLManager
-    {
-        /// <summary>
-        /// The database connection object
-        /// </summary>
-        IDbConnection dbcon;
-        /// <summary>
-        /// Connection string for ADO.net
-        /// </summary>
-        string connectionString;
-
-        /// <summary>
-        /// Initialises and creates a new MySQL connection and maintains it.
-        /// </summary>
-        /// <param name="hostname">The MySQL server being connected to</param>
-        /// <param name="database">The name of the MySQL database being used</param>
-        /// <param name="username">The username logging into the database</param>
-        /// <param name="password">The password for the user logging in</param>
-        /// <param name="cpooling">Whether to use connection pooling or not, can be one of the following: 'yes', 'true', 'no' or 'false', if unsure use 'false'.</param>
-        public MySQLManager(string hostname, string database, string username, string password, string cpooling, string port)
-        {
-            try
-            {
-                connectionString = "Server=" + hostname + ";Port=" + port + ";Database=" + database + ";User ID=" + username + ";Password=" + password + ";Pooling=" + cpooling + ";";
-                dbcon = new MySqlConnection(connectionString);
-
-                dbcon.Open();
-
-                Console.WriteLine("MySQL connection established");
-            }
-            catch (Exception e)
-            {
-                throw new Exception("Error initialising MySql Database: " + e.ToString());
-            }
-        }
-
-        /// <summary>
-        /// Shuts down the database connection
-        /// </summary>
-        public void Close()
-        {
-            dbcon.Close();
-            dbcon = null;
-        }
-
-        /// <summary>
-        /// Reconnects to the database
-        /// </summary>
-        public void Reconnect()
-        {
-            lock (dbcon)
-            {
-                try
-                {
-                    // Close the DB connection
-                    dbcon.Close();
-                    // Try reopen it
-                    dbcon = new MySqlConnection(connectionString);
-                    dbcon.Open();
-                }
-                catch (Exception e)
-                {
-                    Console.WriteLine("Unable to reconnect to database " + e.ToString());
-                }
-            }
-        }
-
-        /// <summary>
-        /// Runs a query with protection against SQL Injection by using parameterised input.
-        /// </summary>
-        /// <param name="sql">The SQL string - replace any variables such as WHERE x = "y" with WHERE x = @y</param>
-        /// <param name="parameters">The parameters - index so that @y is indexed as 'y'</param>
-        /// <returns>A MySQL DB Command</returns>
-        public IDbCommand Query(string sql, Dictionary<string, string> parameters)
-        {
-            try
-            {
-                MySqlCommand dbcommand = (MySqlCommand)dbcon.CreateCommand();
-                dbcommand.CommandText = sql;
-                foreach (KeyValuePair<string, string> param in parameters)
-                {
-                    dbcommand.Parameters.Add(param.Key, param.Value);
-                }
-
-                return (IDbCommand)dbcommand;
-            }
-            catch
-            {
-                lock (dbcon)
-                {
-                    // Close the DB connection
-                    try
-                    {
-                        dbcon.Close();
-                    }
-                    catch { }
-
-                    // Try reopen it
-                    try
-                    {
-                        dbcon = new MySqlConnection(connectionString);
-                        dbcon.Open();
-                    }
-                    catch (Exception e)
-                    {
-                        Console.WriteLine("Unable to reconnect to database " + e.ToString());
-                    }
-
-                    // Run the query again
-                    try
-                    {
-                        MySqlCommand dbcommand = (MySqlCommand)dbcon.CreateCommand();
-                        dbcommand.CommandText = sql;
-                        foreach (KeyValuePair<string, string> param in parameters)
-                        {
-                            dbcommand.Parameters.Add(param.Key, param.Value);
-                        }
-
-                        return (IDbCommand)dbcommand;
-                    }
-                    catch (Exception e)
-                    {
-                        // Return null if it fails.
-                        Console.WriteLine("Failed during Query generation: " + e.ToString());
-                        return null;
-                    }
-                }
-            }
-        }
-
-        /// <summary>
-        /// Reads a region row from a database reader
-        /// </summary>
-        /// <param name="reader">An active database reader</param>
-        /// <returns>A region profile</returns>
-        public SimProfileData readSimRow(IDataReader reader)
-        {
-            SimProfileData retval = new SimProfileData();
-
-            if (reader.Read())
-            {
-                // Region Main
-                retval.regionHandle = Convert.ToUInt64(reader["regionHandle"].ToString());
-                retval.regionName = (string)reader["regionName"];
-                retval.UUID = new LLUUID((string)reader["uuid"]);
-
-                // Secrets
-                retval.regionRecvKey = (string)reader["regionRecvKey"];
-                retval.regionSecret = (string)reader["regionSecret"];
-                retval.regionSendKey = (string)reader["regionSendKey"];
-
-                // Region Server
-                retval.regionDataURI = (string)reader["regionDataURI"];
-                retval.regionOnline = false; // Needs to be pinged before this can be set.
-                retval.serverIP = (string)reader["serverIP"];
-                retval.serverPort = (uint)reader["serverPort"];
-                retval.serverURI = (string)reader["serverURI"];
-                retval.httpPort = Convert.ToUInt32(reader["serverHttpPort"].ToString());
-                retval.remotingPort = Convert.ToUInt32(reader["serverRemotingPort"].ToString());
-
-                // Location
-                retval.regionLocX = Convert.ToUInt32(reader["locX"].ToString());
-                retval.regionLocY = Convert.ToUInt32(reader["locY"].ToString());
-                retval.regionLocZ = Convert.ToUInt32(reader["locZ"].ToString());
-
-                // Neighbours - 0 = No Override
-                retval.regionEastOverrideHandle = Convert.ToUInt64(reader["eastOverrideHandle"].ToString());
-                retval.regionWestOverrideHandle = Convert.ToUInt64(reader["westOverrideHandle"].ToString());
-                retval.regionSouthOverrideHandle = Convert.ToUInt64(reader["southOverrideHandle"].ToString());
-                retval.regionNorthOverrideHandle = Convert.ToUInt64(reader["northOverrideHandle"].ToString());
-
-                // Assets
-                retval.regionAssetURI = (string)reader["regionAssetURI"];
-                retval.regionAssetRecvKey = (string)reader["regionAssetRecvKey"];
-                retval.regionAssetSendKey = (string)reader["regionAssetSendKey"];
-
-                // Userserver
-                retval.regionUserURI = (string)reader["regionUserURI"];
-                retval.regionUserRecvKey = (string)reader["regionUserRecvKey"];
-                retval.regionUserSendKey = (string)reader["regionUserSendKey"];
-
-                // World Map Addition
-                string tempRegionMap = reader["regionMapTexture"].ToString();
-                if (tempRegionMap != "")
-                {
-                    retval.regionMapTextureID = new LLUUID(tempRegionMap);
-                }
-                else
-                {
-                    retval.regionMapTextureID = new LLUUID();
-                }
-            }
-            else
-            {
-                return null;
-            }
-            return retval;
-        }
-
-        /// <summary>
-        /// Reads a reservation row from a database reader
-        /// </summary>
-        /// <param name="reader">An active database reader</param>
-        /// <returns>A reservation data object</returns>
-        public ReservationData readReservationRow(IDataReader reader)
-        {
-            ReservationData retval = new ReservationData();
-            if (reader.Read())
-            {
-                retval.gridRecvKey = (string)reader["gridRecvKey"];
-                retval.gridSendKey = (string)reader["gridSendKey"];
-                retval.reservationCompany = (string)reader["resCompany"];
-                retval.reservationMaxX = Convert.ToInt32(reader["resXMax"].ToString());
-                retval.reservationMaxY = Convert.ToInt32(reader["resYMax"].ToString());
-                retval.reservationMinX = Convert.ToInt32(reader["resXMin"].ToString());
-                retval.reservationMinY = Convert.ToInt32(reader["resYMin"].ToString());
-                retval.reservationName = (string)reader["resName"];
-                retval.status = Convert.ToInt32(reader["status"].ToString()) == 1;
-                retval.userUUID = new LLUUID((string)reader["userUUID"]);
-
-            }
-            else
-            {
-                return null;
-            }
-            return retval;
-        }
-        /// <summary>
-        /// Reads an agent row from a database reader
-        /// </summary>
-        /// <param name="reader">An active database reader</param>
-        /// <returns>A user session agent</returns>
-        public UserAgentData readAgentRow(IDataReader reader)
-        {
-            UserAgentData retval = new UserAgentData();
-
-            if (reader.Read())
-            {
-                // Agent IDs
-                retval.UUID = new LLUUID((string)reader["UUID"]);
-                retval.sessionID = new LLUUID((string)reader["sessionID"]);
-                retval.secureSessionID = new LLUUID((string)reader["secureSessionID"]);
-
-                // Agent Who?
-                retval.agentIP = (string)reader["agentIP"];
-                retval.agentPort = Convert.ToUInt32(reader["agentPort"].ToString());
-                retval.agentOnline = Convert.ToBoolean(reader["agentOnline"].ToString());
-
-                // Login/Logout times (UNIX Epoch)
-                retval.loginTime = Convert.ToInt32(reader["loginTime"].ToString());
-                retval.logoutTime = Convert.ToInt32(reader["logoutTime"].ToString());
-
-                // Current position
-                retval.currentRegion = (string)reader["currentRegion"];
-                retval.currentHandle = Convert.ToUInt64(reader["currentHandle"].ToString());
-                LLVector3.TryParse((string)reader["currentPos"], out retval.currentPos);
-            }
-            else
-            {
-                return null;
-            }
-            return retval;
-        }
-
-        /// <summary>
-        /// Reads a user profile from an active data reader
-        /// </summary>
-        /// <param name="reader">An active database reader</param>
-        /// <returns>A user profile</returns>
-        public UserProfileData readUserRow(IDataReader reader)
-        {
-            UserProfileData retval = new UserProfileData();
-
-            if (reader.Read())
-            {
-                retval.UUID = new LLUUID((string)reader["UUID"]);
-                retval.username = (string)reader["username"];
-                retval.surname = (string)reader["lastname"];
-
-                retval.passwordHash = (string)reader["passwordHash"];
-                retval.passwordSalt = (string)reader["passwordSalt"];
-
-                retval.homeRegion = Convert.ToUInt64(reader["homeRegion"].ToString());
-                retval.homeLocation = new LLVector3(
-                    Convert.ToSingle(reader["homeLocationX"].ToString()),
-                    Convert.ToSingle(reader["homeLocationY"].ToString()),
-                    Convert.ToSingle(reader["homeLocationZ"].ToString()));
-                retval.homeLookAt = new LLVector3(
-                    Convert.ToSingle(reader["homeLookAtX"].ToString()),
-                    Convert.ToSingle(reader["homeLookAtY"].ToString()),
-                    Convert.ToSingle(reader["homeLookAtZ"].ToString()));
-
-                retval.created = Convert.ToInt32(reader["created"].ToString());
-                retval.lastLogin = Convert.ToInt32(reader["lastLogin"].ToString());
-
-                retval.userInventoryURI = (string)reader["userInventoryURI"];
-                retval.userAssetURI = (string)reader["userAssetURI"];
-
-                retval.profileCanDoMask = Convert.ToUInt32(reader["profileCanDoMask"].ToString());
-                retval.profileWantDoMask = Convert.ToUInt32(reader["profileWantDoMask"].ToString());
-
-                retval.profileAboutText = (string)reader["profileAboutText"];
-                retval.profileFirstText = (string)reader["profileFirstText"];
-
-                retval.profileImage = new LLUUID((string)reader["profileImage"]);
-                retval.profileFirstImage = new LLUUID((string)reader["profileFirstImage"]);
-
-            }
-            else
-            {
-                return null;
-            }
-            return retval;
-        }
-
-        /// <summary>
-        /// Reads a list of inventory folders returned by a query.
-        /// </summary>
-        /// <param name="reader">A MySQL Data Reader</param>
-        /// <returns>A List containing inventory folders</returns>
-        public List<InventoryFolderBase> readInventoryFolders(IDataReader reader)
-        {
-            List<InventoryFolderBase> rows = new List<InventoryFolderBase>();
-
-            while(reader.Read())
-            {
-                try
-                {
-                    InventoryFolderBase folder = new InventoryFolderBase();
-
-                    folder.agentID = new LLUUID((string)reader["agentID"]);
-                    folder.parentID = new LLUUID((string)reader["parentFolderID"]);
-                    folder.folderID = new LLUUID((string)reader["folderID"]);
-                    folder.name = (string)reader["folderName"];
-
-                    rows.Add(folder);
-                }
-                catch (Exception e)
-                {
-                    Console.WriteLine(e.ToString());
-                }
-            }
-
-            return rows;
-        }
-
-        /// <summary>
-        /// Reads a collection of items from an SQL result
-        /// </summary>
-        /// <param name="reader">The SQL Result</param>
-        /// <returns>A List containing Inventory Items</returns>
-        public List<InventoryItemBase> readInventoryItems(IDataReader reader)
-        {
-            List<InventoryItemBase> rows = new List<InventoryItemBase>();
-
-            while (reader.Read())
-            {
-                try
-                {
-                    InventoryItemBase item = new InventoryItemBase();
-
-                    item.assetID = new LLUUID((string)reader["assetID"]);
-                    item.avatarID = new LLUUID((string)reader["avatarID"]);
-                    item.inventoryCurrentPermissions = Convert.ToUInt32(reader["inventoryCurrentPermissions"].ToString());
-                    item.inventoryDescription = (string)reader["inventoryDescription"];
-                    item.inventoryID = new LLUUID((string)reader["inventoryID"]);
-                    item.inventoryName = (string)reader["inventoryName"];
-                    item.inventoryNextPermissions = Convert.ToUInt32(reader["inventoryNextPermissions"].ToString());
-                    item.parentFolderID = new LLUUID((string)reader["parentFolderID"]);
-                    item.type = Convert.ToInt32(reader["type"].ToString());
-
-                    rows.Add(item);
-                }
-                catch (Exception e)
-                {
-                    Console.WriteLine(e.ToString());
-                }
-            }
-
-            return rows;
-        }
-
-        /// <summary>
-        /// Inserts a new row into the log database
-        /// </summary>
-        /// <param name="serverDaemon">The daemon which triggered this event</param>
-        /// <param name="target">Who were we operating on when this occured (region UUID, user UUID, etc)</param>
-        /// <param name="methodCall">The method call where the problem occured</param>
-        /// <param name="arguments">The arguments passed to the method</param>
-        /// <param name="priority">How critical is this?</param>
-        /// <param name="logMessage">Extra message info</param>
-        /// <returns>Saved successfully?</returns>
-        public bool insertLogRow(string serverDaemon, string target, string methodCall, string arguments, int priority, string logMessage)
-        {
-            string sql = "INSERT INTO logs (`target`, `server`, `method`, `arguments`, `priority`, `message`) VALUES ";
-            sql += "(?target, ?server, ?method, ?arguments, ?priority, ?message)";
-
-            Dictionary<string, string> parameters = new Dictionary<string, string>();
-            parameters["?server"] = serverDaemon;
-            parameters["?target"] = target;
-            parameters["?method"] = methodCall;
-            parameters["?arguments"] = arguments;
-            parameters["?priority"] = priority.ToString();
-            parameters["?message"] = logMessage;
-
-            bool returnval = false;
-
-            try
-            {
-                IDbCommand result = Query(sql, parameters);
-
-                if (result.ExecuteNonQuery() == 1)
-                    returnval = true;
-
-                result.Dispose();
-            }
-            catch (Exception e)
-            {
-                Console.WriteLine(e.ToString());
-                return false;
-            }
-
-            return returnval;
-        }
-
-        /// <summary>
-        /// Inserts a new item into the database
-        /// </summary>
-        /// <param name="item">The item</param>
-        /// <returns>Success?</returns>
-        public bool insertItem(InventoryItemBase item)
-        {
-            string sql = "REPLACE INTO inventoryitems (inventoryID, assetID, type, parentFolderID, avatarID, inventoryName, inventoryDescription, inventoryNextPermissions, inventoryCurrentPermissions) VALUES ";
-            sql += "(?inventoryID, ?assetID, ?type, ?parentFolderID, ?avatarID, ?inventoryName, ?inventoryDescription, ?inventoryNextPermissions, ?inventoryCurrentPermissions)";
-
-            Dictionary<string, string> parameters = new Dictionary<string, string>();
-            parameters["?inventoryID"] = item.inventoryID.ToStringHyphenated();
-            parameters["?assetID"] = item.assetID.ToStringHyphenated();
-            parameters["?type"] = item.type.ToString();
-            parameters["?parentFolderID"] = item.parentFolderID.ToStringHyphenated();
-            parameters["?avatarID"] = item.avatarID.ToStringHyphenated();
-            parameters["?inventoryName"] = item.inventoryName;
-            parameters["?inventoryDescription"] = item.inventoryDescription;
-            parameters["?inventoryNextPermissions"] = item.inventoryNextPermissions.ToString();
-            parameters["?inventoryCurrentPermissions"] = item.inventoryCurrentPermissions.ToString();
-
-            bool returnval = false;
-
-            try
-            {
-                IDbCommand result = Query(sql, parameters);
-
-                if (result.ExecuteNonQuery() == 1)
-                    returnval = true;
-
-                result.Dispose();
-            }
-            catch (Exception e)
-            {
-                Console.WriteLine(e.ToString());
-                return false;
-            }
-
-            return returnval;
-        }
-
-        /// <summary>
-        /// Inserts a new folder into the database
-        /// </summary>
-        /// <param name="folder">The folder</param>
-        /// <returns>Success?</returns>
-        public bool insertFolder(InventoryFolderBase folder)
-        {
-            string sql = "REPLACE INTO inventoryfolders (folderID, agentID, parentFolderID, folderName) VALUES ";
-            sql += "(?folderID, ?agentID, ?parentFolderID, ?folderName)";
-
-            Dictionary<string, string> parameters = new Dictionary<string, string>();
-            parameters["?folderID"] = folder.folderID.ToStringHyphenated();
-            parameters["?agentID"] = folder.agentID.ToStringHyphenated();
-            parameters["?parentFolderID"] = folder.parentID.ToStringHyphenated();
-            parameters["?folderName"] = folder.name;
-
-            bool returnval = false;
-            try
-            {
-                IDbCommand result = Query(sql, parameters);
-
-                if (result.ExecuteNonQuery() == 1)
-                    returnval = true;
-
-                result.Dispose();
-            }
-            catch (Exception e)
-            {
-                Console.WriteLine(e.ToString());
-                return false;
-            }
-            return returnval;
-        }
-
-        /// <summary>
-        /// Inserts a new region into the database
-        /// </summary>
-        /// <param name="profile">The region to insert</param>
-        /// <returns>Success?</returns>
-        public bool insertRegion(SimProfileData regiondata)
-        {
-            string sql = "REPLACE INTO regions (regionHandle, regionName, uuid, regionRecvKey, regionSecret, regionSendKey, regionDataURI, ";
-            sql += "serverIP, serverPort, serverURI, locX, locY, locZ, eastOverrideHandle, westOverrideHandle, southOverrideHandle, northOverrideHandle, regionAssetURI, regionAssetRecvKey, ";
-            sql += "regionAssetSendKey, regionUserURI, regionUserRecvKey, regionUserSendKey, regionMapTexture, serverHttpPort, serverRemotingPort) VALUES ";
-
-            sql += "(?regionHandle, ?regionName, ?uuid, ?regionRecvKey, ?regionSecret, ?regionSendKey, ?regionDataURI, ";
-            sql += "?serverIP, ?serverPort, ?serverURI, ?locX, ?locY, ?locZ, ?eastOverrideHandle, ?westOverrideHandle, ?southOverrideHandle, ?northOverrideHandle, ?regionAssetURI, ?regionAssetRecvKey, ";
-            sql += "?regionAssetSendKey, ?regionUserURI, ?regionUserRecvKey, ?regionUserSendKey, ?regionMapTexture, ?serverHttpPort, ?serverRemotingPort);";
-
-            Dictionary<string, string> parameters = new Dictionary<string, string>();
-
-            parameters["?regionHandle"] = regiondata.regionHandle.ToString();
-            parameters["?regionName"] = regiondata.regionName.ToString();
-            parameters["?uuid"] = regiondata.UUID.ToStringHyphenated();
-            parameters["?regionRecvKey"] = regiondata.regionRecvKey.ToString();
-            parameters["?regionSecret"] = regiondata.regionSecret.ToString();
-            parameters["?regionSendKey"] = regiondata.regionSendKey.ToString();
-            parameters["?regionDataURI"] = regiondata.regionDataURI.ToString();
-            parameters["?serverIP"] = regiondata.serverIP.ToString();
-            parameters["?serverPort"] = regiondata.serverPort.ToString();
-            parameters["?serverURI"] = regiondata.serverURI.ToString();
-            parameters["?locX"] = regiondata.regionLocX.ToString();
-            parameters["?locY"] = regiondata.regionLocY.ToString();
-            parameters["?locZ"] = regiondata.regionLocZ.ToString();
-            parameters["?eastOverrideHandle"] = regiondata.regionEastOverrideHandle.ToString();
-            parameters["?westOverrideHandle"] = regiondata.regionWestOverrideHandle.ToString();
-            parameters["?northOverrideHandle"] = regiondata.regionNorthOverrideHandle.ToString();
-            parameters["?southOverrideHandle"] = regiondata.regionSouthOverrideHandle.ToString();
-            parameters["?regionAssetURI"] = regiondata.regionAssetURI.ToString();
-            parameters["?regionAssetRecvKey"] = regiondata.regionAssetRecvKey.ToString();
-            parameters["?regionAssetSendKey"] = regiondata.regionAssetSendKey.ToString();
-            parameters["?regionUserURI"] = regiondata.regionUserURI.ToString();
-            parameters["?regionUserRecvKey"] = regiondata.regionUserRecvKey.ToString();
-            parameters["?regionUserSendKey"] = regiondata.regionUserSendKey.ToString();
-            parameters["?regionMapTexture"] = regiondata.regionMapTextureID.ToStringHyphenated();
-            parameters["?serverHttpPort"] = regiondata.httpPort.ToString();
-            parameters["?serverRemotingPort"] = regiondata.remotingPort.ToString();
-
-            bool returnval = false;
-
-            try
-            {
-                
-                IDbCommand result = Query(sql, parameters);
-
-                //Console.WriteLine(result.CommandText);
-
-                if (result.ExecuteNonQuery() == 1)
-                    returnval = true;
-
-                result.Dispose();
-            }
-            catch (Exception e)
-            {
-                Console.WriteLine(e.ToString());
-                return false;
-            }
-
-            return returnval;
-        }
-    }
-}
+/*
+* Copyright (c) Contributors, http://www.openmetaverse.org/
+* See CONTRIBUTORS.TXT for a full list of copyright holders.
+*
+* Redistribution and use in source and binary forms, with or without
+* modification, are permitted provided that the following conditions are met:
+*     * Redistributions of source code must retain the above copyright
+*       notice, this list of conditions and the following disclaimer.
+*     * Redistributions in binary form must reproduce the above copyright
+*       notice, this list of conditions and the following disclaimer in the
+*       documentation and/or other materials provided with the distribution.
+*     * Neither the name of the OpenSim Project nor the
+*       names of its contributors may be used to endorse or promote products
+*       derived from this software without specific prior written permission.
+*
+* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS AND ANY
+* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
+* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+* 
+*/
+using System;
+using System.Collections.Generic;
+using System.Data;
+using libsecondlife;
+using MySql.Data.MySqlClient;
+
+namespace OpenSim.Framework.Data.MySQL
+{
+    /// <summary>
+    /// A MySQL Database manager
+    /// </summary>
+    class MySQLManager
+    {
+        /// <summary>
+        /// The database connection object
+        /// </summary>
+        IDbConnection dbcon;
+        /// <summary>
+        /// Connection string for ADO.net
+        /// </summary>
+        string connectionString;
+
+        /// <summary>
+        /// Initialises and creates a new MySQL connection and maintains it.
+        /// </summary>
+        /// <param name="hostname">The MySQL server being connected to</param>
+        /// <param name="database">The name of the MySQL database being used</param>
+        /// <param name="username">The username logging into the database</param>
+        /// <param name="password">The password for the user logging in</param>
+        /// <param name="cpooling">Whether to use connection pooling or not, can be one of the following: 'yes', 'true', 'no' or 'false', if unsure use 'false'.</param>
+        public MySQLManager(string hostname, string database, string username, string password, string cpooling, string port)
+        {
+            try
+            {
+                connectionString = "Server=" + hostname + ";Port=" + port + ";Database=" + database + ";User ID=" + username + ";Password=" + password + ";Pooling=" + cpooling + ";";
+                dbcon = new MySqlConnection(connectionString);
+
+                dbcon.Open();
+
+                Console.WriteLine("MySQL connection established");
+            }
+            catch (Exception e)
+            {
+                throw new Exception("Error initialising MySql Database: " + e.ToString());
+            }
+        }
+
+        /// <summary>
+        /// Shuts down the database connection
+        /// </summary>
+        public void Close()
+        {
+            dbcon.Close();
+            dbcon = null;
+        }
+
+        /// <summary>
+        /// Reconnects to the database
+        /// </summary>
+        public void Reconnect()
+        {
+            lock (dbcon)
+            {
+                try
+                {
+                    // Close the DB connection
+                    dbcon.Close();
+                    // Try reopen it
+                    dbcon = new MySqlConnection(connectionString);
+                    dbcon.Open();
+                }
+                catch (Exception e)
+                {
+                    Console.WriteLine("Unable to reconnect to database " + e.ToString());
+                }
+            }
+        }
+
+        /// <summary>
+        /// Runs a query with protection against SQL Injection by using parameterised input.
+        /// </summary>
+        /// <param name="sql">The SQL string - replace any variables such as WHERE x = "y" with WHERE x = @y</param>
+        /// <param name="parameters">The parameters - index so that @y is indexed as 'y'</param>
+        /// <returns>A MySQL DB Command</returns>
+        public IDbCommand Query(string sql, Dictionary<string, string> parameters)
+        {
+            try
+            {
+                MySqlCommand dbcommand = (MySqlCommand)dbcon.CreateCommand();
+                dbcommand.CommandText = sql;
+                foreach (KeyValuePair<string, string> param in parameters)
+                {
+                    dbcommand.Parameters.Add(param.Key, param.Value);
+                }
+
+                return (IDbCommand)dbcommand;
+            }
+            catch
+            {
+                lock (dbcon)
+                {
+                    // Close the DB connection
+                    try
+                    {
+                        dbcon.Close();
+                    }
+                    catch { }
+
+                    // Try reopen it
+                    try
+                    {
+                        dbcon = new MySqlConnection(connectionString);
+                        dbcon.Open();
+                    }
+                    catch (Exception e)
+                    {
+                        Console.WriteLine("Unable to reconnect to database " + e.ToString());
+                    }
+
+                    // Run the query again
+                    try
+                    {
+                        MySqlCommand dbcommand = (MySqlCommand)dbcon.CreateCommand();
+                        dbcommand.CommandText = sql;
+                        foreach (KeyValuePair<string, string> param in parameters)
+                        {
+                            dbcommand.Parameters.Add(param.Key, param.Value);
+                        }
+
+                        return (IDbCommand)dbcommand;
+                    }
+                    catch (Exception e)
+                    {
+                        // Return null if it fails.
+                        Console.WriteLine("Failed during Query generation: " + e.ToString());
+                        return null;
+                    }
+                }
+            }
+        }
+
+        /// <summary>
+        /// Reads a region row from a database reader
+        /// </summary>
+        /// <param name="reader">An active database reader</param>
+        /// <returns>A region profile</returns>
+        public SimProfileData readSimRow(IDataReader reader)
+        {
+            SimProfileData retval = new SimProfileData();
+
+            if (reader.Read())
+            {
+                // Region Main
+                retval.regionHandle = Convert.ToUInt64(reader["regionHandle"].ToString());
+                retval.regionName = (string)reader["regionName"];
+                retval.UUID = new LLUUID((string)reader["uuid"]);
+
+                // Secrets
+                retval.regionRecvKey = (string)reader["regionRecvKey"];
+                retval.regionSecret = (string)reader["regionSecret"];
+                retval.regionSendKey = (string)reader["regionSendKey"];
+
+                // Region Server
+                retval.regionDataURI = (string)reader["regionDataURI"];
+                retval.regionOnline = false; // Needs to be pinged before this can be set.
+                retval.serverIP = (string)reader["serverIP"];
+                retval.serverPort = (uint)reader["serverPort"];
+                retval.serverURI = (string)reader["serverURI"];
+                retval.httpPort = Convert.ToUInt32(reader["serverHttpPort"].ToString());
+                retval.remotingPort = Convert.ToUInt32(reader["serverRemotingPort"].ToString());
+
+                // Location
+                retval.regionLocX = Convert.ToUInt32(reader["locX"].ToString());
+                retval.regionLocY = Convert.ToUInt32(reader["locY"].ToString());
+                retval.regionLocZ = Convert.ToUInt32(reader["locZ"].ToString());
+
+                // Neighbours - 0 = No Override
+                retval.regionEastOverrideHandle = Convert.ToUInt64(reader["eastOverrideHandle"].ToString());
+                retval.regionWestOverrideHandle = Convert.ToUInt64(reader["westOverrideHandle"].ToString());
+                retval.regionSouthOverrideHandle = Convert.ToUInt64(reader["southOverrideHandle"].ToString());
+                retval.regionNorthOverrideHandle = Convert.ToUInt64(reader["northOverrideHandle"].ToString());
+
+                // Assets
+                retval.regionAssetURI = (string)reader["regionAssetURI"];
+                retval.regionAssetRecvKey = (string)reader["regionAssetRecvKey"];
+                retval.regionAssetSendKey = (string)reader["regionAssetSendKey"];
+
+                // Userserver
+                retval.regionUserURI = (string)reader["regionUserURI"];
+                retval.regionUserRecvKey = (string)reader["regionUserRecvKey"];
+                retval.regionUserSendKey = (string)reader["regionUserSendKey"];
+
+                // World Map Addition
+                string tempRegionMap = reader["regionMapTexture"].ToString();
+                if (tempRegionMap != "")
+                {
+                    retval.regionMapTextureID = new LLUUID(tempRegionMap);
+                }
+                else
+                {
+                    retval.regionMapTextureID = new LLUUID();
+                }
+            }
+            else
+            {
+                return null;
+            }
+            return retval;
+        }
+
+        /// <summary>
+        /// Reads a reservation row from a database reader
+        /// </summary>
+        /// <param name="reader">An active database reader</param>
+        /// <returns>A reservation data object</returns>
+        public ReservationData readReservationRow(IDataReader reader)
+        {
+            ReservationData retval = new ReservationData();
+            if (reader.Read())
+            {
+                retval.gridRecvKey = (string)reader["gridRecvKey"];
+                retval.gridSendKey = (string)reader["gridSendKey"];
+                retval.reservationCompany = (string)reader["resCompany"];
+                retval.reservationMaxX = Convert.ToInt32(reader["resXMax"].ToString());
+                retval.reservationMaxY = Convert.ToInt32(reader["resYMax"].ToString());
+                retval.reservationMinX = Convert.ToInt32(reader["resXMin"].ToString());
+                retval.reservationMinY = Convert.ToInt32(reader["resYMin"].ToString());
+                retval.reservationName = (string)reader["resName"];
+                retval.status = Convert.ToInt32(reader["status"].ToString()) == 1;
+                retval.userUUID = new LLUUID((string)reader["userUUID"]);
+
+            }
+            else
+            {
+                return null;
+            }
+            return retval;
+        }
+        /// <summary>
+        /// Reads an agent row from a database reader
+        /// </summary>
+        /// <param name="reader">An active database reader</param>
+        /// <returns>A user session agent</returns>
+        public UserAgentData readAgentRow(IDataReader reader)
+        {
+            UserAgentData retval = new UserAgentData();
+
+            if (reader.Read())
+            {
+                // Agent IDs
+                retval.UUID = new LLUUID((string)reader["UUID"]);
+                retval.sessionID = new LLUUID((string)reader["sessionID"]);
+                retval.secureSessionID = new LLUUID((string)reader["secureSessionID"]);
+
+                // Agent Who?
+                retval.agentIP = (string)reader["agentIP"];
+                retval.agentPort = Convert.ToUInt32(reader["agentPort"].ToString());
+                retval.agentOnline = Convert.ToBoolean(reader["agentOnline"].ToString());
+
+                // Login/Logout times (UNIX Epoch)
+                retval.loginTime = Convert.ToInt32(reader["loginTime"].ToString());
+                retval.logoutTime = Convert.ToInt32(reader["logoutTime"].ToString());
+
+                // Current position
+                retval.currentRegion = (string)reader["currentRegion"];
+                retval.currentHandle = Convert.ToUInt64(reader["currentHandle"].ToString());
+                LLVector3.TryParse((string)reader["currentPos"], out retval.currentPos);
+            }
+            else
+            {
+                return null;
+            }
+            return retval;
+        }
+
+        /// <summary>
+        /// Reads a user profile from an active data reader
+        /// </summary>
+        /// <param name="reader">An active database reader</param>
+        /// <returns>A user profile</returns>
+        public UserProfileData readUserRow(IDataReader reader)
+        {
+            UserProfileData retval = new UserProfileData();
+
+            if (reader.Read())
+            {
+                retval.UUID = new LLUUID((string)reader["UUID"]);
+                retval.username = (string)reader["username"];
+                retval.surname = (string)reader["lastname"];
+
+                retval.passwordHash = (string)reader["passwordHash"];
+                retval.passwordSalt = (string)reader["passwordSalt"];
+
+                retval.homeRegion = Convert.ToUInt64(reader["homeRegion"].ToString());
+                retval.homeLocation = new LLVector3(
+                    Convert.ToSingle(reader["homeLocationX"].ToString()),
+                    Convert.ToSingle(reader["homeLocationY"].ToString()),
+                    Convert.ToSingle(reader["homeLocationZ"].ToString()));
+                retval.homeLookAt = new LLVector3(
+                    Convert.ToSingle(reader["homeLookAtX"].ToString()),
+                    Convert.ToSingle(reader["homeLookAtY"].ToString()),
+                    Convert.ToSingle(reader["homeLookAtZ"].ToString()));
+
+                retval.created = Convert.ToInt32(reader["created"].ToString());
+                retval.lastLogin = Convert.ToInt32(reader["lastLogin"].ToString());
+
+                retval.userInventoryURI = (string)reader["userInventoryURI"];
+                retval.userAssetURI = (string)reader["userAssetURI"];
+
+                retval.profileCanDoMask = Convert.ToUInt32(reader["profileCanDoMask"].ToString());
+                retval.profileWantDoMask = Convert.ToUInt32(reader["profileWantDoMask"].ToString());
+
+                retval.profileAboutText = (string)reader["profileAboutText"];
+                retval.profileFirstText = (string)reader["profileFirstText"];
+
+                retval.profileImage = new LLUUID((string)reader["profileImage"]);
+                retval.profileFirstImage = new LLUUID((string)reader["profileFirstImage"]);
+
+            }
+            else
+            {
+                return null;
+            }
+            return retval;
+        }
+
+        /// <summary>
+        /// Reads a list of inventory folders returned by a query.
+        /// </summary>
+        /// <param name="reader">A MySQL Data Reader</param>
+        /// <returns>A List containing inventory folders</returns>
+        public List<InventoryFolderBase> readInventoryFolders(IDataReader reader)
+        {
+            List<InventoryFolderBase> rows = new List<InventoryFolderBase>();
+
+            while(reader.Read())
+            {
+                try
+                {
+                    InventoryFolderBase folder = new InventoryFolderBase();
+
+                    folder.agentID = new LLUUID((string)reader["agentID"]);
+                    folder.parentID = new LLUUID((string)reader["parentFolderID"]);
+                    folder.folderID = new LLUUID((string)reader["folderID"]);
+                    folder.name = (string)reader["folderName"];
+
+                    rows.Add(folder);
+                }
+                catch (Exception e)
+                {
+                    Console.WriteLine(e.ToString());
+                }
+            }
+
+            return rows;
+        }
+
+        /// <summary>
+        /// Reads a collection of items from an SQL result
+        /// </summary>
+        /// <param name="reader">The SQL Result</param>
+        /// <returns>A List containing Inventory Items</returns>
+        public List<InventoryItemBase> readInventoryItems(IDataReader reader)
+        {
+            List<InventoryItemBase> rows = new List<InventoryItemBase>();
+
+            while (reader.Read())
+            {
+                try
+                {
+                    InventoryItemBase item = new InventoryItemBase();
+
+                    item.assetID = new LLUUID((string)reader["assetID"]);
+                    item.avatarID = new LLUUID((string)reader["avatarID"]);
+                    item.inventoryCurrentPermissions = Convert.ToUInt32(reader["inventoryCurrentPermissions"].ToString());
+                    item.inventoryDescription = (string)reader["inventoryDescription"];
+                    item.inventoryID = new LLUUID((string)reader["inventoryID"]);
+                    item.inventoryName = (string)reader["inventoryName"];
+                    item.inventoryNextPermissions = Convert.ToUInt32(reader["inventoryNextPermissions"].ToString());
+                    item.parentFolderID = new LLUUID((string)reader["parentFolderID"]);
+                    item.type = Convert.ToInt32(reader["type"].ToString());
+
+                    rows.Add(item);
+                }
+                catch (Exception e)
+                {
+                    Console.WriteLine(e.ToString());
+                }
+            }
+
+            return rows;
+        }
+
+        /// <summary>
+        /// Inserts a new row into the log database
+        /// </summary>
+        /// <param name="serverDaemon">The daemon which triggered this event</param>
+        /// <param name="target">Who were we operating on when this occured (region UUID, user UUID, etc)</param>
+        /// <param name="methodCall">The method call where the problem occured</param>
+        /// <param name="arguments">The arguments passed to the method</param>
+        /// <param name="priority">How critical is this?</param>
+        /// <param name="logMessage">Extra message info</param>
+        /// <returns>Saved successfully?</returns>
+        public bool insertLogRow(string serverDaemon, string target, string methodCall, string arguments, int priority, string logMessage)
+        {
+            string sql = "INSERT INTO logs (`target`, `server`, `method`, `arguments`, `priority`, `message`) VALUES ";
+            sql += "(?target, ?server, ?method, ?arguments, ?priority, ?message)";
+
+            Dictionary<string, string> parameters = new Dictionary<string, string>();
+            parameters["?server"] = serverDaemon;
+            parameters["?target"] = target;
+            parameters["?method"] = methodCall;
+            parameters["?arguments"] = arguments;
+            parameters["?priority"] = priority.ToString();
+            parameters["?message"] = logMessage;
+
+            bool returnval = false;
+
+            try
+            {
+                IDbCommand result = Query(sql, parameters);
+
+                if (result.ExecuteNonQuery() == 1)
+                    returnval = true;
+
+                result.Dispose();
+            }
+            catch (Exception e)
+            {
+                Console.WriteLine(e.ToString());
+                return false;
+            }
+
+            return returnval;
+        }
+
+        /// <summary>
+        /// Inserts a new item into the database
+        /// </summary>
+        /// <param name="item">The item</param>
+        /// <returns>Success?</returns>
+        public bool insertItem(InventoryItemBase item)
+        {
+            string sql = "REPLACE INTO inventoryitems (inventoryID, assetID, type, parentFolderID, avatarID, inventoryName, inventoryDescription, inventoryNextPermissions, inventoryCurrentPermissions) VALUES ";
+            sql += "(?inventoryID, ?assetID, ?type, ?parentFolderID, ?avatarID, ?inventoryName, ?inventoryDescription, ?inventoryNextPermissions, ?inventoryCurrentPermissions)";
+
+            Dictionary<string, string> parameters = new Dictionary<string, string>();
+            parameters["?inventoryID"] = item.inventoryID.ToStringHyphenated();
+            parameters["?assetID"] = item.assetID.ToStringHyphenated();
+            parameters["?type"] = item.type.ToString();
+            parameters["?parentFolderID"] = item.parentFolderID.ToStringHyphenated();
+            parameters["?avatarID"] = item.avatarID.ToStringHyphenated();
+            parameters["?inventoryName"] = item.inventoryName;
+            parameters["?inventoryDescription"] = item.inventoryDescription;
+            parameters["?inventoryNextPermissions"] = item.inventoryNextPermissions.ToString();
+            parameters["?inventoryCurrentPermissions"] = item.inventoryCurrentPermissions.ToString();
+
+            bool returnval = false;
+
+            try
+            {
+                IDbCommand result = Query(sql, parameters);
+
+                if (result.ExecuteNonQuery() == 1)
+                    returnval = true;
+
+                result.Dispose();
+            }
+            catch (Exception e)
+            {
+                Console.WriteLine(e.ToString());
+                return false;
+            }
+
+            return returnval;
+        }
+
+        /// <summary>
+        /// Inserts a new folder into the database
+        /// </summary>
+        /// <param name="folder">The folder</param>
+        /// <returns>Success?</returns>
+        public bool insertFolder(InventoryFolderBase folder)
+        {
+            string sql = "REPLACE INTO inventoryfolders (folderID, agentID, parentFolderID, folderName) VALUES ";
+            sql += "(?folderID, ?agentID, ?parentFolderID, ?folderName)";
+
+            Dictionary<string, string> parameters = new Dictionary<string, string>();
+            parameters["?folderID"] = folder.folderID.ToStringHyphenated();
+            parameters["?agentID"] = folder.agentID.ToStringHyphenated();
+            parameters["?parentFolderID"] = folder.parentID.ToStringHyphenated();
+            parameters["?folderName"] = folder.name;
+
+            bool returnval = false;
+            try
+            {
+                IDbCommand result = Query(sql, parameters);
+
+                if (result.ExecuteNonQuery() == 1)
+                    returnval = true;
+
+                result.Dispose();
+            }
+            catch (Exception e)
+            {
+                Console.WriteLine(e.ToString());
+                return false;
+            }
+            return returnval;
+        }
+
+        /// <summary>
+        /// Inserts a new region into the database
+        /// </summary>
+        /// <param name="profile">The region to insert</param>
+        /// <returns>Success?</returns>
+        public bool insertRegion(SimProfileData regiondata)
+        {
+            string sql = "REPLACE INTO regions (regionHandle, regionName, uuid, regionRecvKey, regionSecret, regionSendKey, regionDataURI, ";
+            sql += "serverIP, serverPort, serverURI, locX, locY, locZ, eastOverrideHandle, westOverrideHandle, southOverrideHandle, northOverrideHandle, regionAssetURI, regionAssetRecvKey, ";
+            sql += "regionAssetSendKey, regionUserURI, regionUserRecvKey, regionUserSendKey, regionMapTexture, serverHttpPort, serverRemotingPort) VALUES ";
+
+            sql += "(?regionHandle, ?regionName, ?uuid, ?regionRecvKey, ?regionSecret, ?regionSendKey, ?regionDataURI, ";
+            sql += "?serverIP, ?serverPort, ?serverURI, ?locX, ?locY, ?locZ, ?eastOverrideHandle, ?westOverrideHandle, ?southOverrideHandle, ?northOverrideHandle, ?regionAssetURI, ?regionAssetRecvKey, ";
+            sql += "?regionAssetSendKey, ?regionUserURI, ?regionUserRecvKey, ?regionUserSendKey, ?regionMapTexture, ?serverHttpPort, ?serverRemotingPort);";
+
+            Dictionary<string, string> parameters = new Dictionary<string, string>();
+
+            parameters["?regionHandle"] = regiondata.regionHandle.ToString();
+            parameters["?regionName"] = regiondata.regionName.ToString();
+            parameters["?uuid"] = regiondata.UUID.ToStringHyphenated();
+            parameters["?regionRecvKey"] = regiondata.regionRecvKey.ToString();
+            parameters["?regionSecret"] = regiondata.regionSecret.ToString();
+            parameters["?regionSendKey"] = regiondata.regionSendKey.ToString();
+            parameters["?regionDataURI"] = regiondata.regionDataURI.ToString();
+            parameters["?serverIP"] = regiondata.serverIP.ToString();
+            parameters["?serverPort"] = regiondata.serverPort.ToString();
+            parameters["?serverURI"] = regiondata.serverURI.ToString();
+            parameters["?locX"] = regiondata.regionLocX.ToString();
+            parameters["?locY"] = regiondata.regionLocY.ToString();
+            parameters["?locZ"] = regiondata.regionLocZ.ToString();
+            parameters["?eastOverrideHandle"] = regiondata.regionEastOverrideHandle.ToString();
+            parameters["?westOverrideHandle"] = regiondata.regionWestOverrideHandle.ToString();
+            parameters["?northOverrideHandle"] = regiondata.regionNorthOverrideHandle.ToString();
+            parameters["?southOverrideHandle"] = regiondata.regionSouthOverrideHandle.ToString();
+            parameters["?regionAssetURI"] = regiondata.regionAssetURI.ToString();
+            parameters["?regionAssetRecvKey"] = regiondata.regionAssetRecvKey.ToString();
+            parameters["?regionAssetSendKey"] = regiondata.regionAssetSendKey.ToString();
+            parameters["?regionUserURI"] = regiondata.regionUserURI.ToString();
+            parameters["?regionUserRecvKey"] = regiondata.regionUserRecvKey.ToString();
+            parameters["?regionUserSendKey"] = regiondata.regionUserSendKey.ToString();
+            parameters["?regionMapTexture"] = regiondata.regionMapTextureID.ToStringHyphenated();
+            parameters["?serverHttpPort"] = regiondata.httpPort.ToString();
+            parameters["?serverRemotingPort"] = regiondata.remotingPort.ToString();
+
+            bool returnval = false;
+
+            try
+            {
+                
+                IDbCommand result = Query(sql, parameters);
+
+                //Console.WriteLine(result.CommandText);
+
+                if (result.ExecuteNonQuery() == 1)
+                    returnval = true;
+
+                result.Dispose();
+            }
+            catch (Exception e)
+            {
+                Console.WriteLine(e.ToString());
+                return false;
+            }
+
+            return returnval;
+        }
+    }
+}

+ 256 - 256
OpenSim/Framework/Data.MySQL/MySQLUserData.cs

@@ -1,256 +1,256 @@
-/*
-* Copyright (c) Contributors, http://www.openmetaverse.org/
-* See CONTRIBUTORS.TXT for a full list of copyright holders.
-*
-* Redistribution and use in source and binary forms, with or without
-* modification, are permitted provided that the following conditions are met:
-*     * Redistributions of source code must retain the above copyright
-*       notice, this list of conditions and the following disclaimer.
-*     * Redistributions in binary form must reproduce the above copyright
-*       notice, this list of conditions and the following disclaimer in the
-*       documentation and/or other materials provided with the distribution.
-*     * Neither the name of the OpenSim Project nor the
-*       names of its contributors may be used to endorse or promote products
-*       derived from this software without specific prior written permission.
-*
-* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS AND ANY
-* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
-* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-* 
-*/
-using System;
-using System.Collections.Generic;
-using System.Data;
-using libsecondlife;
-
-namespace OpenSim.Framework.Data.MySQL
-{
-    /// <summary>
-    /// A database interface class to a user profile storage system
-    /// </summary>
-    class MySQLUserData : IUserData
-    {
-        /// <summary>
-        /// Database manager for MySQL
-        /// </summary>
-        public MySQLManager database;
-
-        /// <summary>
-        /// Loads and initialises the MySQL storage plugin
-        /// </summary>
-        public void Initialise()
-        {
-            // Load from an INI file connection details
-            // TODO: move this to XML?
-            IniFile GridDataMySqlFile = new IniFile("mysql_connection.ini");
-            string settingHostname = GridDataMySqlFile.ParseFileReadValue("hostname");
-            string settingDatabase = GridDataMySqlFile.ParseFileReadValue("database");
-            string settingUsername = GridDataMySqlFile.ParseFileReadValue("username");
-            string settingPassword = GridDataMySqlFile.ParseFileReadValue("password");
-            string settingPooling = GridDataMySqlFile.ParseFileReadValue("pooling");
-            string settingPort = GridDataMySqlFile.ParseFileReadValue("port");
-
-            database = new MySQLManager(settingHostname, settingDatabase, settingUsername, settingPassword, settingPooling, settingPort);
-        }
-
-        /// <summary>
-        /// Searches the database for a specified user profile
-        /// </summary>
-        /// <param name="name">The account name of the user</param>
-        /// <returns>A user profile</returns>
-        public UserProfileData getUserByName(string name)
-        {
-            return getUserByName(name.Split(' ')[0], name.Split(' ')[1]);
-        }
-
-        /// <summary>
-        /// Searches the database for a specified user profile by name components
-        /// </summary>
-        /// <param name="user">The first part of the account name</param>
-        /// <param name="last">The second part of the account name</param>
-        /// <returns>A user profile</returns>
-        public UserProfileData getUserByName(string user, string last)
-        {
-            try
-            {
-                lock (database)
-                {
-                    Dictionary<string, string> param = new Dictionary<string, string>();
-                    param["?first"] = user;
-                    param["?second"] = last;
-
-                    IDbCommand result = database.Query("SELECT * FROM users WHERE username = ?first AND lastname = ?second", param);
-                    IDataReader reader = result.ExecuteReader();
-
-                    UserProfileData row = database.readUserRow(reader);
-                    
-                    reader.Close();
-                    result.Dispose();
-
-                    return row;
-                }
-            }
-            catch (Exception e)
-            {
-                database.Reconnect();
-                Console.WriteLine(e.ToString());
-                return null;
-            }
-        }
-
-        /// <summary>
-        /// Searches the database for a specified user profile by UUID
-        /// </summary>
-        /// <param name="uuid">The account ID</param>
-        /// <returns>The users profile</returns>
-        public UserProfileData getUserByUUID(LLUUID uuid)
-        {
-            try
-            {
-                lock (database)
-                {
-                    Dictionary<string, string> param = new Dictionary<string, string>();
-                    param["?uuid"] = uuid.ToStringHyphenated();
-
-                    IDbCommand result = database.Query("SELECT * FROM users WHERE UUID = ?uuid", param);
-                    IDataReader reader = result.ExecuteReader();
-
-                    UserProfileData row = database.readUserRow(reader);
-
-                    reader.Close();
-                    result.Dispose();
-
-                    return row;
-                }
-            }
-            catch (Exception e)
-            {
-                database.Reconnect();
-                Console.WriteLine(e.ToString());
-                return null;
-            }
-        }
-
-        /// <summary>
-        /// Returns a user session searching by name
-        /// </summary>
-        /// <param name="name">The account name</param>
-        /// <returns>The users session</returns>
-        public UserAgentData getAgentByName(string name)
-        {
-            return getAgentByName(name.Split(' ')[0], name.Split(' ')[1]);
-        }
-
-        /// <summary>
-        /// Returns a user session by account name
-        /// </summary>
-        /// <param name="user">First part of the users account name</param>
-        /// <param name="last">Second part of the users account name</param>
-        /// <returns>The users session</returns>
-        public UserAgentData getAgentByName(string user, string last)
-        {
-            UserProfileData profile = getUserByName(user, last);
-            return getAgentByUUID(profile.UUID);
-        }
-
-        /// <summary>
-        /// Returns an agent session by account UUID
-        /// </summary>
-        /// <param name="uuid">The accounts UUID</param>
-        /// <returns>The users session</returns>
-        public UserAgentData getAgentByUUID(LLUUID uuid)
-        {
-            try
-            {
-                lock (database)
-                {
-                    Dictionary<string, string> param = new Dictionary<string, string>();
-                    param["?uuid"] = uuid.ToStringHyphenated();
-
-                    IDbCommand result = database.Query("SELECT * FROM agents WHERE UUID = ?uuid", param);
-                    IDataReader reader = result.ExecuteReader();
-
-                    UserAgentData row = database.readAgentRow(reader);
-
-                    reader.Close();
-                    result.Dispose();
-
-                    return row;
-                }
-            }
-            catch (Exception e)
-            {
-                database.Reconnect();
-                Console.WriteLine(e.ToString());
-                return null;
-            }
-        }
-
-        /// <summary>
-        /// Creates a new users profile
-        /// </summary>
-        /// <param name="user">The user profile to create</param>
-        public void addNewUserProfile(UserProfileData user)
-        {
-        }
-
-        /// <summary>
-        /// Creates a new agent
-        /// </summary>
-        /// <param name="agent">The agent to create</param>
-        public void addNewUserAgent(UserAgentData agent)
-        {
-            // Do nothing.
-        }
-
-        /// <summary>
-        /// Performs a money transfer request between two accounts
-        /// </summary>
-        /// <param name="from">The senders account ID</param>
-        /// <param name="to">The recievers account ID</param>
-        /// <param name="amount">The amount to transfer</param>
-        /// <returns>Success?</returns>
-        public bool moneyTransferRequest(LLUUID from, LLUUID to, uint amount)
-        {
-            return false;
-        }
-
-        /// <summary>
-        /// Performs an inventory transfer request between two accounts
-        /// </summary>
-        /// <remarks>TODO: Move to inventory server</remarks>
-        /// <param name="from">The senders account ID</param>
-        /// <param name="to">The recievers account ID</param>
-        /// <param name="item">The item to transfer</param>
-        /// <returns>Success?</returns>
-        public bool inventoryTransferRequest(LLUUID from, LLUUID to, LLUUID item)
-        {
-            return false;
-        }
-
-        /// <summary>
-        /// Database provider name
-        /// </summary>
-        /// <returns>Provider name</returns>
-        public string getName()
-        {
-            return "MySQL Userdata Interface";
-        }
-
-        /// <summary>
-        /// Database provider version
-        /// </summary>
-        /// <returns>provider version</returns>
-        public string getVersion()
-        {
-            return "0.1";
-        }
-    }
-}
+/*
+* Copyright (c) Contributors, http://www.openmetaverse.org/
+* See CONTRIBUTORS.TXT for a full list of copyright holders.
+*
+* Redistribution and use in source and binary forms, with or without
+* modification, are permitted provided that the following conditions are met:
+*     * Redistributions of source code must retain the above copyright
+*       notice, this list of conditions and the following disclaimer.
+*     * Redistributions in binary form must reproduce the above copyright
+*       notice, this list of conditions and the following disclaimer in the
+*       documentation and/or other materials provided with the distribution.
+*     * Neither the name of the OpenSim Project nor the
+*       names of its contributors may be used to endorse or promote products
+*       derived from this software without specific prior written permission.
+*
+* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS AND ANY
+* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
+* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+* 
+*/
+using System;
+using System.Collections.Generic;
+using System.Data;
+using libsecondlife;
+
+namespace OpenSim.Framework.Data.MySQL
+{
+    /// <summary>
+    /// A database interface class to a user profile storage system
+    /// </summary>
+    class MySQLUserData : IUserData
+    {
+        /// <summary>
+        /// Database manager for MySQL
+        /// </summary>
+        public MySQLManager database;
+
+        /// <summary>
+        /// Loads and initialises the MySQL storage plugin
+        /// </summary>
+        public void Initialise()
+        {
+            // Load from an INI file connection details
+            // TODO: move this to XML?
+            IniFile GridDataMySqlFile = new IniFile("mysql_connection.ini");
+            string settingHostname = GridDataMySqlFile.ParseFileReadValue("hostname");
+            string settingDatabase = GridDataMySqlFile.ParseFileReadValue("database");
+            string settingUsername = GridDataMySqlFile.ParseFileReadValue("username");
+            string settingPassword = GridDataMySqlFile.ParseFileReadValue("password");
+            string settingPooling = GridDataMySqlFile.ParseFileReadValue("pooling");
+            string settingPort = GridDataMySqlFile.ParseFileReadValue("port");
+
+            database = new MySQLManager(settingHostname, settingDatabase, settingUsername, settingPassword, settingPooling, settingPort);
+        }
+
+        /// <summary>
+        /// Searches the database for a specified user profile
+        /// </summary>
+        /// <param name="name">The account name of the user</param>
+        /// <returns>A user profile</returns>
+        public UserProfileData getUserByName(string name)
+        {
+            return getUserByName(name.Split(' ')[0], name.Split(' ')[1]);
+        }
+
+        /// <summary>
+        /// Searches the database for a specified user profile by name components
+        /// </summary>
+        /// <param name="user">The first part of the account name</param>
+        /// <param name="last">The second part of the account name</param>
+        /// <returns>A user profile</returns>
+        public UserProfileData getUserByName(string user, string last)
+        {
+            try
+            {
+                lock (database)
+                {
+                    Dictionary<string, string> param = new Dictionary<string, string>();
+                    param["?first"] = user;
+                    param["?second"] = last;
+
+                    IDbCommand result = database.Query("SELECT * FROM users WHERE username = ?first AND lastname = ?second", param);
+                    IDataReader reader = result.ExecuteReader();
+
+                    UserProfileData row = database.readUserRow(reader);
+                    
+                    reader.Close();
+                    result.Dispose();
+
+                    return row;
+                }
+            }
+            catch (Exception e)
+            {
+                database.Reconnect();
+                Console.WriteLine(e.ToString());
+                return null;
+            }
+        }
+
+        /// <summary>
+        /// Searches the database for a specified user profile by UUID
+        /// </summary>
+        /// <param name="uuid">The account ID</param>
+        /// <returns>The users profile</returns>
+        public UserProfileData getUserByUUID(LLUUID uuid)
+        {
+            try
+            {
+                lock (database)
+                {
+                    Dictionary<string, string> param = new Dictionary<string, string>();
+                    param["?uuid"] = uuid.ToStringHyphenated();
+
+                    IDbCommand result = database.Query("SELECT * FROM users WHERE UUID = ?uuid", param);
+                    IDataReader reader = result.ExecuteReader();
+
+                    UserProfileData row = database.readUserRow(reader);
+
+                    reader.Close();
+                    result.Dispose();
+
+                    return row;
+                }
+            }
+            catch (Exception e)
+            {
+                database.Reconnect();
+                Console.WriteLine(e.ToString());
+                return null;
+            }
+        }
+
+        /// <summary>
+        /// Returns a user session searching by name
+        /// </summary>
+        /// <param name="name">The account name</param>
+        /// <returns>The users session</returns>
+        public UserAgentData getAgentByName(string name)
+        {
+            return getAgentByName(name.Split(' ')[0], name.Split(' ')[1]);
+        }
+
+        /// <summary>
+        /// Returns a user session by account name
+        /// </summary>
+        /// <param name="user">First part of the users account name</param>
+        /// <param name="last">Second part of the users account name</param>
+        /// <returns>The users session</returns>
+        public UserAgentData getAgentByName(string user, string last)
+        {
+            UserProfileData profile = getUserByName(user, last);
+            return getAgentByUUID(profile.UUID);
+        }
+
+        /// <summary>
+        /// Returns an agent session by account UUID
+        /// </summary>
+        /// <param name="uuid">The accounts UUID</param>
+        /// <returns>The users session</returns>
+        public UserAgentData getAgentByUUID(LLUUID uuid)
+        {
+            try
+            {
+                lock (database)
+                {
+                    Dictionary<string, string> param = new Dictionary<string, string>();
+                    param["?uuid"] = uuid.ToStringHyphenated();
+
+                    IDbCommand result = database.Query("SELECT * FROM agents WHERE UUID = ?uuid", param);
+                    IDataReader reader = result.ExecuteReader();
+
+                    UserAgentData row = database.readAgentRow(reader);
+
+                    reader.Close();
+                    result.Dispose();
+
+                    return row;
+                }
+            }
+            catch (Exception e)
+            {
+                database.Reconnect();
+                Console.WriteLine(e.ToString());
+                return null;
+            }
+        }
+
+        /// <summary>
+        /// Creates a new users profile
+        /// </summary>
+        /// <param name="user">The user profile to create</param>
+        public void addNewUserProfile(UserProfileData user)
+        {
+        }
+
+        /// <summary>
+        /// Creates a new agent
+        /// </summary>
+        /// <param name="agent">The agent to create</param>
+        public void addNewUserAgent(UserAgentData agent)
+        {
+            // Do nothing.
+        }
+
+        /// <summary>
+        /// Performs a money transfer request between two accounts
+        /// </summary>
+        /// <param name="from">The senders account ID</param>
+        /// <param name="to">The recievers account ID</param>
+        /// <param name="amount">The amount to transfer</param>
+        /// <returns>Success?</returns>
+        public bool moneyTransferRequest(LLUUID from, LLUUID to, uint amount)
+        {
+            return false;
+        }
+
+        /// <summary>
+        /// Performs an inventory transfer request between two accounts
+        /// </summary>
+        /// <remarks>TODO: Move to inventory server</remarks>
+        /// <param name="from">The senders account ID</param>
+        /// <param name="to">The recievers account ID</param>
+        /// <param name="item">The item to transfer</param>
+        /// <returns>Success?</returns>
+        public bool inventoryTransferRequest(LLUUID from, LLUUID to, LLUUID item)
+        {
+            return false;
+        }
+
+        /// <summary>
+        /// Database provider name
+        /// </summary>
+        /// <returns>Provider name</returns>
+        public string getName()
+        {
+            return "MySQL Userdata Interface";
+        }
+
+        /// <summary>
+        /// Database provider version
+        /// </summary>
+        /// <returns>provider version</returns>
+        public string getVersion()
+        {
+            return "0.1";
+        }
+    }
+}

+ 33 - 33
OpenSim/Framework/Data.MySQL/Properties/AssemblyInfo.cs

@@ -1,33 +1,33 @@
-using System.Reflection;
-using System.Runtime.InteropServices;
-// General Information about an assembly is controlled through the following 
-// set of attributes. Change these attribute values to modify the information
-// associated with an assembly.
-[assembly: AssemblyTitle("OpenSim.Framework.Data.MySQL")]
-[assembly: AssemblyDescription("")]
-[assembly: AssemblyConfiguration("")]
-[assembly: AssemblyCompany("")]
-[assembly: AssemblyProduct("OpenSim.Framework.Data.MySQL")]
-[assembly: AssemblyCopyright("Copyright ©  2007")]
-[assembly: AssemblyTrademark("")]
-[assembly: AssemblyCulture("")]
-
-// Setting ComVisible to false makes the types in this assembly not visible 
-// to COM components.  If you need to access a type in this assembly from 
-// COM, set the ComVisible attribute to true on that type.
-[assembly: ComVisible(false)]
-
-// The following GUID is for the ID of the typelib if this project is exposed to COM
-[assembly: Guid("e49826b2-dcef-41be-a5bd-596733fa3304")]
-
-// Version information for an assembly consists of the following four values:
-//
-//      Major Version
-//      Minor Version 
-//      Build Number
-//      Revision
-//
-// You can specify all the values or you can default the Revision and Build Numbers 
-// by using the '*' as shown below:
-[assembly: AssemblyVersion("1.0.0.0")]
-[assembly: AssemblyFileVersion("1.0.0.0")]
+using System.Reflection;
+using System.Runtime.InteropServices;
+// General Information about an assembly is controlled through the following 
+// set of attributes. Change these attribute values to modify the information
+// associated with an assembly.
+[assembly: AssemblyTitle("OpenSim.Framework.Data.MySQL")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("")]
+[assembly: AssemblyProduct("OpenSim.Framework.Data.MySQL")]
+[assembly: AssemblyCopyright("Copyright ©  2007")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// Setting ComVisible to false makes the types in this assembly not visible 
+// to COM components.  If you need to access a type in this assembly from 
+// COM, set the ComVisible attribute to true on that type.
+[assembly: ComVisible(false)]
+
+// The following GUID is for the ID of the typelib if this project is exposed to COM
+[assembly: Guid("e49826b2-dcef-41be-a5bd-596733fa3304")]
+
+// Version information for an assembly consists of the following four values:
+//
+//      Major Version
+//      Minor Version 
+//      Build Number
+//      Revision
+//
+// You can specify all the values or you can default the Revision and Build Numbers 
+// by using the '*' as shown below:
+[assembly: AssemblyVersion("1.0.0.0")]
+[assembly: AssemblyFileVersion("1.0.0.0")]

+ 33 - 33
OpenSim/Framework/Data.SQLite/Properties/AssemblyInfo.cs

@@ -1,33 +1,33 @@
-using System.Reflection;
-using System.Runtime.InteropServices;
-// General Information about an assembly is controlled through the following 
-// set of attributes. Change these attribute values to modify the information
-// associated with an assembly.
-[assembly: AssemblyTitle("OpenSim.Framework.Data.SQLite")]
-[assembly: AssemblyDescription("")]
-[assembly: AssemblyConfiguration("")]
-[assembly: AssemblyCompany("")]
-[assembly: AssemblyProduct("OpenSim.Framework.Data.SQLite")]
-[assembly: AssemblyCopyright("Copyright ©  2007")]
-[assembly: AssemblyTrademark("")]
-[assembly: AssemblyCulture("")]
-
-// Setting ComVisible to false makes the types in this assembly not visible 
-// to COM components.  If you need to access a type in this assembly from 
-// COM, set the ComVisible attribute to true on that type.
-[assembly: ComVisible(false)]
-
-// The following GUID is for the ID of the typelib if this project is exposed to COM
-[assembly: Guid("6113d5ce-4547-49f4-9236-0dcc503457b1")]
-
-// Version information for an assembly consists of the following four values:
-//
-//      Major Version
-//      Minor Version 
-//      Build Number
-//      Revision
-//
-// You can specify all the values or you can default the Revision and Build Numbers 
-// by using the '*' as shown below:
-[assembly: AssemblyVersion("1.0.0.0")]
-[assembly: AssemblyFileVersion("1.0.0.0")]
+using System.Reflection;
+using System.Runtime.InteropServices;
+// General Information about an assembly is controlled through the following 
+// set of attributes. Change these attribute values to modify the information
+// associated with an assembly.
+[assembly: AssemblyTitle("OpenSim.Framework.Data.SQLite")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("")]
+[assembly: AssemblyProduct("OpenSim.Framework.Data.SQLite")]
+[assembly: AssemblyCopyright("Copyright ©  2007")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// Setting ComVisible to false makes the types in this assembly not visible 
+// to COM components.  If you need to access a type in this assembly from 
+// COM, set the ComVisible attribute to true on that type.
+[assembly: ComVisible(false)]
+
+// The following GUID is for the ID of the typelib if this project is exposed to COM
+[assembly: Guid("6113d5ce-4547-49f4-9236-0dcc503457b1")]
+
+// Version information for an assembly consists of the following four values:
+//
+//      Major Version
+//      Minor Version 
+//      Build Number
+//      Revision
+//
+// You can specify all the values or you can default the Revision and Build Numbers 
+// by using the '*' as shown below:
+[assembly: AssemblyVersion("1.0.0.0")]
+[assembly: AssemblyFileVersion("1.0.0.0")]

+ 197 - 197
OpenSim/Framework/Data.SQLite/SQLiteGridData.cs

@@ -1,197 +1,197 @@
-/*
-* Copyright (c) Contributors, http://www.openmetaverse.org/
-* See CONTRIBUTORS.TXT for a full list of copyright holders.
-*
-* Redistribution and use in source and binary forms, with or without
-* modification, are permitted provided that the following conditions are met:
-*     * Redistributions of source code must retain the above copyright
-*       notice, this list of conditions and the following disclaimer.
-*     * Redistributions in binary form must reproduce the above copyright
-*       notice, this list of conditions and the following disclaimer in the
-*       documentation and/or other materials provided with the distribution.
-*     * Neither the name of the OpenSim Project nor the
-*       names of its contributors may be used to endorse or promote products
-*       derived from this software without specific prior written permission.
-*
-* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS AND ANY
-* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
-* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-* 
-*/
-using System;
-using System.Collections.Generic;
-using System.Data;
-using System.Security.Cryptography;
-using System.Text;
-using libsecondlife;
-
-namespace OpenSim.Framework.Data.SQLite
-{
-    /// <summary>
-    /// A Grid Interface to the SQLite database
-    /// </summary>
-    public class SQLiteGridData : IGridData
-    {
-        /// <summary>
-        /// A database manager
-        /// </summary>
-        private SQLiteManager database;
-
-        /// <summary>
-        /// Initialises the Grid Interface
-        /// </summary>
-        public void Initialise()
-        {
-            database = new SQLiteManager("localhost", "db", "user", "password", "false");
-        }
-
-        /// <summary>
-        /// Shuts down the grid interface
-        /// </summary>
-        public void Close()
-        {
-            database.Close();
-        }
-
-        /// <summary>
-        /// Returns the name of this grid interface
-        /// </summary>
-        /// <returns>A string containing the grid interface</returns>
-        public string getName()
-        {
-            return "SQLite OpenGridData";
-        }
-
-        /// <summary>
-        /// Returns the version of this grid interface
-        /// </summary>
-        /// <returns>A string containing the version</returns>
-        public string getVersion()
-        {
-            return "0.1";
-        }
-
-        /// <summary>
-        /// Returns a list of regions within the specified ranges
-        /// </summary>
-        /// <param name="a">minimum X coordinate</param>
-        /// <param name="b">minimum Y coordinate</param>
-        /// <param name="c">maximum X coordinate</param>
-        /// <param name="d">maximum Y coordinate</param>
-        /// <returns>An array of region profiles</returns>
-        public SimProfileData[] GetProfilesInRange(uint a, uint b, uint c, uint d)
-        {
-            return null;
-        }
-
-        /// <summary>
-        /// Returns a sim profile from it's location
-        /// </summary>
-        /// <param name="handle">Region location handle</param>
-        /// <returns>Sim profile</returns>
-        public SimProfileData GetProfileByHandle(ulong handle)
-        {
-            Dictionary<string, string> param = new Dictionary<string, string>();
-            param["handle"] = handle.ToString();
-
-            IDbCommand result = database.Query("SELECT * FROM regions WHERE handle = @handle", param);
-            IDataReader reader = result.ExecuteReader();
-
-            SimProfileData row = database.getRow(reader);
-            reader.Close();
-            result.Dispose();
-
-            return row;
-        }
-
-        /// <summary>
-        /// Returns a sim profile from it's UUID
-        /// </summary>
-        /// <param name="uuid">The region UUID</param>
-        /// <returns>The sim profile</returns>
-        public SimProfileData GetProfileByLLUUID(LLUUID uuid)
-        {
-            Dictionary<string, string> param = new Dictionary<string, string>();
-            param["uuid"] = uuid.ToStringHyphenated();
-
-            IDbCommand result = database.Query("SELECT * FROM regions WHERE uuid = @uuid", param);
-            IDataReader reader = result.ExecuteReader();
-
-            SimProfileData row = database.getRow(reader);
-            reader.Close();
-            result.Dispose();
-
-            return row;
-        }
-
-        /// <summary>
-        /// Adds a new specified region to the database
-        /// </summary>
-        /// <param name="profile">The profile to add</param>
-        /// <returns>A dataresponse enum indicating success</returns>
-        public DataResponse AddProfile(SimProfileData profile)
-        {
-            if (database.insertRow(profile))
-            {
-                return DataResponse.RESPONSE_OK;
-            }
-            else
-            {
-                return DataResponse.RESPONSE_ERROR;
-            }
-        }
-
-        /// <summary>
-        /// DEPRECIATED. Attempts to authenticate a region by comparing a shared secret.
-        /// </summary>
-        /// <param name="uuid">The UUID of the challenger</param>
-        /// <param name="handle">The attempted regionHandle of the challenger</param>
-        /// <param name="authkey">The secret</param>
-        /// <returns>Whether the secret and regionhandle match the database entry for UUID</returns>
-        public bool AuthenticateSim(LLUUID uuid, ulong handle, string authkey)
-        {
-            bool throwHissyFit = false; // Should be true by 1.0
-
-            if (throwHissyFit)
-                throw new Exception("CRYPTOWEAK AUTHENTICATE: Refusing to authenticate due to replay potential.");
-
-            SimProfileData data = GetProfileByLLUUID(uuid);
-
-            return (handle == data.regionHandle && authkey == data.regionSecret);
-        }
-
-        /// <summary>
-        /// NOT YET FUNCTIONAL. Provides a cryptographic authentication of a region
-        /// </summary>
-        /// <remarks>This requires a security audit.</remarks>
-        /// <param name="uuid"></param>
-        /// <param name="handle"></param>
-        /// <param name="authhash"></param>
-        /// <param name="challenge"></param>
-        /// <returns></returns>
-        public bool AuthenticateSim(LLUUID uuid, ulong handle, string authhash, string challenge)
-        {
-            SHA512Managed HashProvider = new SHA512Managed();
-            ASCIIEncoding TextProvider = new ASCIIEncoding();
-
-            byte[] stream = TextProvider.GetBytes(uuid.ToStringHyphenated() + ":" + handle.ToString() + ":" + challenge);
-            byte[] hash = HashProvider.ComputeHash(stream);
-
-            return false;
-        }
-
-        public ReservationData GetReservationAtPoint(uint x, uint y)
-        {
-            return null;
-        }
-    }
-
-
-}
+/*
+* Copyright (c) Contributors, http://www.openmetaverse.org/
+* See CONTRIBUTORS.TXT for a full list of copyright holders.
+*
+* Redistribution and use in source and binary forms, with or without
+* modification, are permitted provided that the following conditions are met:
+*     * Redistributions of source code must retain the above copyright
+*       notice, this list of conditions and the following disclaimer.
+*     * Redistributions in binary form must reproduce the above copyright
+*       notice, this list of conditions and the following disclaimer in the
+*       documentation and/or other materials provided with the distribution.
+*     * Neither the name of the OpenSim Project nor the
+*       names of its contributors may be used to endorse or promote products
+*       derived from this software without specific prior written permission.
+*
+* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS AND ANY
+* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
+* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+* 
+*/
+using System;
+using System.Collections.Generic;
+using System.Data;
+using System.Security.Cryptography;
+using System.Text;
+using libsecondlife;
+
+namespace OpenSim.Framework.Data.SQLite
+{
+    /// <summary>
+    /// A Grid Interface to the SQLite database
+    /// </summary>
+    public class SQLiteGridData : IGridData
+    {
+        /// <summary>
+        /// A database manager
+        /// </summary>
+        private SQLiteManager database;
+
+        /// <summary>
+        /// Initialises the Grid Interface
+        /// </summary>
+        public void Initialise()
+        {
+            database = new SQLiteManager("localhost", "db", "user", "password", "false");
+        }
+
+        /// <summary>
+        /// Shuts down the grid interface
+        /// </summary>
+        public void Close()
+        {
+            database.Close();
+        }
+
+        /// <summary>
+        /// Returns the name of this grid interface
+        /// </summary>
+        /// <returns>A string containing the grid interface</returns>
+        public string getName()
+        {
+            return "SQLite OpenGridData";
+        }
+
+        /// <summary>
+        /// Returns the version of this grid interface
+        /// </summary>
+        /// <returns>A string containing the version</returns>
+        public string getVersion()
+        {
+            return "0.1";
+        }
+
+        /// <summary>
+        /// Returns a list of regions within the specified ranges
+        /// </summary>
+        /// <param name="a">minimum X coordinate</param>
+        /// <param name="b">minimum Y coordinate</param>
+        /// <param name="c">maximum X coordinate</param>
+        /// <param name="d">maximum Y coordinate</param>
+        /// <returns>An array of region profiles</returns>
+        public SimProfileData[] GetProfilesInRange(uint a, uint b, uint c, uint d)
+        {
+            return null;
+        }
+
+        /// <summary>
+        /// Returns a sim profile from it's location
+        /// </summary>
+        /// <param name="handle">Region location handle</param>
+        /// <returns>Sim profile</returns>
+        public SimProfileData GetProfileByHandle(ulong handle)
+        {
+            Dictionary<string, string> param = new Dictionary<string, string>();
+            param["handle"] = handle.ToString();
+
+            IDbCommand result = database.Query("SELECT * FROM regions WHERE handle = @handle", param);
+            IDataReader reader = result.ExecuteReader();
+
+            SimProfileData row = database.getRow(reader);
+            reader.Close();
+            result.Dispose();
+
+            return row;
+        }
+
+        /// <summary>
+        /// Returns a sim profile from it's UUID
+        /// </summary>
+        /// <param name="uuid">The region UUID</param>
+        /// <returns>The sim profile</returns>
+        public SimProfileData GetProfileByLLUUID(LLUUID uuid)
+        {
+            Dictionary<string, string> param = new Dictionary<string, string>();
+            param["uuid"] = uuid.ToStringHyphenated();
+
+            IDbCommand result = database.Query("SELECT * FROM regions WHERE uuid = @uuid", param);
+            IDataReader reader = result.ExecuteReader();
+
+            SimProfileData row = database.getRow(reader);
+            reader.Close();
+            result.Dispose();
+
+            return row;
+        }
+
+        /// <summary>
+        /// Adds a new specified region to the database
+        /// </summary>
+        /// <param name="profile">The profile to add</param>
+        /// <returns>A dataresponse enum indicating success</returns>
+        public DataResponse AddProfile(SimProfileData profile)
+        {
+            if (database.insertRow(profile))
+            {
+                return DataResponse.RESPONSE_OK;
+            }
+            else
+            {
+                return DataResponse.RESPONSE_ERROR;
+            }
+        }
+
+        /// <summary>
+        /// DEPRECIATED. Attempts to authenticate a region by comparing a shared secret.
+        /// </summary>
+        /// <param name="uuid">The UUID of the challenger</param>
+        /// <param name="handle">The attempted regionHandle of the challenger</param>
+        /// <param name="authkey">The secret</param>
+        /// <returns>Whether the secret and regionhandle match the database entry for UUID</returns>
+        public bool AuthenticateSim(LLUUID uuid, ulong handle, string authkey)
+        {
+            bool throwHissyFit = false; // Should be true by 1.0
+
+            if (throwHissyFit)
+                throw new Exception("CRYPTOWEAK AUTHENTICATE: Refusing to authenticate due to replay potential.");
+
+            SimProfileData data = GetProfileByLLUUID(uuid);
+
+            return (handle == data.regionHandle && authkey == data.regionSecret);
+        }
+
+        /// <summary>
+        /// NOT YET FUNCTIONAL. Provides a cryptographic authentication of a region
+        /// </summary>
+        /// <remarks>This requires a security audit.</remarks>
+        /// <param name="uuid"></param>
+        /// <param name="handle"></param>
+        /// <param name="authhash"></param>
+        /// <param name="challenge"></param>
+        /// <returns></returns>
+        public bool AuthenticateSim(LLUUID uuid, ulong handle, string authhash, string challenge)
+        {
+            SHA512Managed HashProvider = new SHA512Managed();
+            ASCIIEncoding TextProvider = new ASCIIEncoding();
+
+            byte[] stream = TextProvider.GetBytes(uuid.ToStringHyphenated() + ":" + handle.ToString() + ":" + challenge);
+            byte[] hash = HashProvider.ComputeHash(stream);
+
+            return false;
+        }
+
+        public ReservationData GetReservationAtPoint(uint x, uint y)
+        {
+            return null;
+        }
+    }
+
+
+}

+ 206 - 206
OpenSim/Framework/Data.SQLite/SQLiteManager.cs

@@ -1,206 +1,206 @@
-/*
-* Copyright (c) Contributors, http://www.openmetaverse.org/
-* See CONTRIBUTORS.TXT for a full list of copyright holders.
-*
-* Redistribution and use in source and binary forms, with or without
-* modification, are permitted provided that the following conditions are met:
-*     * Redistributions of source code must retain the above copyright
-*       notice, this list of conditions and the following disclaimer.
-*     * Redistributions in binary form must reproduce the above copyright
-*       notice, this list of conditions and the following disclaimer in the
-*       documentation and/or other materials provided with the distribution.
-*     * Neither the name of the OpenSim Project nor the
-*       names of its contributors may be used to endorse or promote products
-*       derived from this software without specific prior written permission.
-*
-* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS AND ANY
-* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
-* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-* 
-*/
-using System;
-using System.Collections.Generic;
-using System.Data;
-using System.Data.SQLite;
-using libsecondlife;
-
-namespace OpenSim.Framework.Data.SQLite
-{
-    class SQLiteManager
-    {
-        IDbConnection dbcon;
-
-        /// <summary>
-        /// Initialises and creates a new SQLite connection and maintains it.
-        /// </summary>
-        /// <param name="hostname">The SQLite server being connected to</param>
-        /// <param name="database">The name of the SQLite database being used</param>
-        /// <param name="username">The username logging into the database</param>
-        /// <param name="password">The password for the user logging in</param>
-        /// <param name="cpooling">Whether to use connection pooling or not, can be one of the following: 'yes', 'true', 'no' or 'false', if unsure use 'false'.</param>
-        public SQLiteManager(string hostname, string database, string username, string password, string cpooling)
-        {
-            try
-            {
-                string connectionString = "URI=file:GridServerSqlite.db;";
-                dbcon = new SQLiteConnection(connectionString);
-
-                dbcon.Open();
-            }
-            catch (Exception e)
-            {
-                throw new Exception("Error initialising SQLite Database: " + e.ToString());
-            }
-        }
-
-        /// <summary>
-        /// Shuts down the database connection
-        /// </summary>
-        public void Close()
-        {
-            dbcon.Close();
-            dbcon = null;
-        }
-
-        /// <summary>
-        /// Runs a query with protection against SQL Injection by using parameterised input.
-        /// </summary>
-        /// <param name="sql">The SQL string - replace any variables such as WHERE x = "y" with WHERE x = @y</param>
-        /// <param name="parameters">The parameters - index so that @y is indexed as 'y'</param>
-        /// <returns>A SQLite DB Command</returns>
-        public IDbCommand Query(string sql, Dictionary<string, string> parameters)
-        {
-            SQLiteCommand dbcommand = (SQLiteCommand)dbcon.CreateCommand();
-            dbcommand.CommandText = sql;
-            foreach (KeyValuePair<string, string> param in parameters)
-            {
-                SQLiteParameter paramx = new SQLiteParameter(param.Key,param.Value);
-                dbcommand.Parameters.Add(paramx);
-            }
-
-            return (IDbCommand)dbcommand;
-        }
-
-        /// <summary>
-        /// Reads a region row from a database reader
-        /// </summary>
-        /// <param name="reader">An active database reader</param>
-        /// <returns>A region profile</returns>
-        public SimProfileData getRow(IDataReader reader)
-        {
-            SimProfileData retval = new SimProfileData();
-
-            if (reader.Read())
-            {
-                // Region Main
-                retval.regionHandle = (ulong)reader["regionHandle"];
-                retval.regionName = (string)reader["regionName"];
-                retval.UUID = new LLUUID((string)reader["uuid"]);
-
-                // Secrets
-                retval.regionRecvKey = (string)reader["regionRecvKey"];
-                retval.regionSecret = (string)reader["regionSecret"];
-                retval.regionSendKey = (string)reader["regionSendKey"];
-
-                // Region Server
-                retval.regionDataURI = (string)reader["regionDataURI"];
-                retval.regionOnline = false; // Needs to be pinged before this can be set.
-                retval.serverIP = (string)reader["serverIP"];
-                retval.serverPort = (uint)reader["serverPort"];
-                retval.serverURI = (string)reader["serverURI"];
-
-                // Location
-                retval.regionLocX = (uint)((int)reader["locX"]);
-                retval.regionLocY = (uint)((int)reader["locY"]);
-                retval.regionLocZ = (uint)((int)reader["locZ"]);
-
-                // Neighbours - 0 = No Override
-                retval.regionEastOverrideHandle = (ulong)reader["eastOverrideHandle"];
-                retval.regionWestOverrideHandle = (ulong)reader["westOverrideHandle"];
-                retval.regionSouthOverrideHandle = (ulong)reader["southOverrideHandle"];
-                retval.regionNorthOverrideHandle = (ulong)reader["northOverrideHandle"];
-
-                // Assets
-                retval.regionAssetURI = (string)reader["regionAssetURI"];
-                retval.regionAssetRecvKey = (string)reader["regionAssetRecvKey"];
-                retval.regionAssetSendKey = (string)reader["regionAssetSendKey"];
-
-                // Userserver
-                retval.regionUserURI = (string)reader["regionUserURI"];
-                retval.regionUserRecvKey = (string)reader["regionUserRecvKey"];
-                retval.regionUserSendKey = (string)reader["regionUserSendKey"];
-            }
-            else
-            {
-                throw new Exception("No rows to return");
-            }
-            return retval;
-        }
-
-        /// <summary>
-        /// Inserts a new region into the database
-        /// </summary>
-        /// <param name="profile">The region to insert</param>
-        /// <returns>Success?</returns>
-        public bool insertRow(SimProfileData profile)
-        {
-            string sql = "REPLACE INTO regions VALUES (regionHandle, regionName, uuid, regionRecvKey, regionSecret, regionSendKey, regionDataURI, ";
-            sql += "serverIP, serverPort, serverURI, locX, locY, locZ, eastOverrideHandle, westOverrideHandle, southOverrideHandle, northOverrideHandle, regionAssetURI, regionAssetRecvKey, ";
-            sql += "regionAssetSendKey, regionUserURI, regionUserRecvKey, regionUserSendKey) VALUES ";
-
-            sql += "(@regionHandle, @regionName, @uuid, @regionRecvKey, @regionSecret, @regionSendKey, @regionDataURI, ";
-            sql += "@serverIP, @serverPort, @serverURI, @locX, @locY, @locZ, @eastOverrideHandle, @westOverrideHandle, @southOverrideHandle, @northOverrideHandle, @regionAssetURI, @regionAssetRecvKey, ";
-            sql += "@regionAssetSendKey, @regionUserURI, @regionUserRecvKey, @regionUserSendKey);";
-
-            Dictionary<string, string> parameters = new Dictionary<string, string>();
-
-            parameters["regionHandle"] = profile.regionHandle.ToString();
-            parameters["regionName"] = profile.regionName;
-            parameters["uuid"] = profile.UUID.ToString();
-            parameters["regionRecvKey"] = profile.regionRecvKey;
-            parameters["regionSendKey"] = profile.regionSendKey;
-            parameters["regionDataURI"] = profile.regionDataURI;
-            parameters["serverIP"] = profile.serverIP;
-            parameters["serverPort"] = profile.serverPort.ToString();
-            parameters["serverURI"] = profile.serverURI;
-            parameters["locX"] = profile.regionLocX.ToString();
-            parameters["locY"] = profile.regionLocY.ToString();
-            parameters["locZ"] = profile.regionLocZ.ToString();
-            parameters["eastOverrideHandle"] = profile.regionEastOverrideHandle.ToString();
-            parameters["westOverrideHandle"] = profile.regionWestOverrideHandle.ToString();
-            parameters["northOverrideHandle"] = profile.regionNorthOverrideHandle.ToString();
-            parameters["southOverrideHandle"] = profile.regionSouthOverrideHandle.ToString();
-            parameters["regionAssetURI"] = profile.regionAssetURI;
-            parameters["regionAssetRecvKey"] = profile.regionAssetRecvKey;
-            parameters["regionAssetSendKey"] = profile.regionAssetSendKey;
-            parameters["regionUserURI"] = profile.regionUserURI;
-            parameters["regionUserRecvKey"] = profile.regionUserRecvKey;
-            parameters["regionUserSendKey"] = profile.regionUserSendKey;
-
-            bool returnval = false;
-
-            try
-            {
-                IDbCommand result = Query(sql, parameters);
-
-                if (result.ExecuteNonQuery() == 1)
-                    returnval = true;
-
-                result.Dispose();
-            }
-            catch (Exception)
-            {
-                return false;
-            }
-
-            return returnval;
-        }
-    }
-}
+/*
+* Copyright (c) Contributors, http://www.openmetaverse.org/
+* See CONTRIBUTORS.TXT for a full list of copyright holders.
+*
+* Redistribution and use in source and binary forms, with or without
+* modification, are permitted provided that the following conditions are met:
+*     * Redistributions of source code must retain the above copyright
+*       notice, this list of conditions and the following disclaimer.
+*     * Redistributions in binary form must reproduce the above copyright
+*       notice, this list of conditions and the following disclaimer in the
+*       documentation and/or other materials provided with the distribution.
+*     * Neither the name of the OpenSim Project nor the
+*       names of its contributors may be used to endorse or promote products
+*       derived from this software without specific prior written permission.
+*
+* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS AND ANY
+* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
+* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+* 
+*/
+using System;
+using System.Collections.Generic;
+using System.Data;
+using System.Data.SQLite;
+using libsecondlife;
+
+namespace OpenSim.Framework.Data.SQLite
+{
+    class SQLiteManager
+    {
+        IDbConnection dbcon;
+
+        /// <summary>
+        /// Initialises and creates a new SQLite connection and maintains it.
+        /// </summary>
+        /// <param name="hostname">The SQLite server being connected to</param>
+        /// <param name="database">The name of the SQLite database being used</param>
+        /// <param name="username">The username logging into the database</param>
+        /// <param name="password">The password for the user logging in</param>
+        /// <param name="cpooling">Whether to use connection pooling or not, can be one of the following: 'yes', 'true', 'no' or 'false', if unsure use 'false'.</param>
+        public SQLiteManager(string hostname, string database, string username, string password, string cpooling)
+        {
+            try
+            {
+                string connectionString = "URI=file:GridServerSqlite.db;";
+                dbcon = new SQLiteConnection(connectionString);
+
+                dbcon.Open();
+            }
+            catch (Exception e)
+            {
+                throw new Exception("Error initialising SQLite Database: " + e.ToString());
+            }
+        }
+
+        /// <summary>
+        /// Shuts down the database connection
+        /// </summary>
+        public void Close()
+        {
+            dbcon.Close();
+            dbcon = null;
+        }
+
+        /// <summary>
+        /// Runs a query with protection against SQL Injection by using parameterised input.
+        /// </summary>
+        /// <param name="sql">The SQL string - replace any variables such as WHERE x = "y" with WHERE x = @y</param>
+        /// <param name="parameters">The parameters - index so that @y is indexed as 'y'</param>
+        /// <returns>A SQLite DB Command</returns>
+        public IDbCommand Query(string sql, Dictionary<string, string> parameters)
+        {
+            SQLiteCommand dbcommand = (SQLiteCommand)dbcon.CreateCommand();
+            dbcommand.CommandText = sql;
+            foreach (KeyValuePair<string, string> param in parameters)
+            {
+                SQLiteParameter paramx = new SQLiteParameter(param.Key,param.Value);
+                dbcommand.Parameters.Add(paramx);
+            }
+
+            return (IDbCommand)dbcommand;
+        }
+
+        /// <summary>
+        /// Reads a region row from a database reader
+        /// </summary>
+        /// <param name="reader">An active database reader</param>
+        /// <returns>A region profile</returns>
+        public SimProfileData getRow(IDataReader reader)
+        {
+            SimProfileData retval = new SimProfileData();
+
+            if (reader.Read())
+            {
+                // Region Main
+                retval.regionHandle = (ulong)reader["regionHandle"];
+                retval.regionName = (string)reader["regionName"];
+                retval.UUID = new LLUUID((string)reader["uuid"]);
+
+                // Secrets
+                retval.regionRecvKey = (string)reader["regionRecvKey"];
+                retval.regionSecret = (string)reader["regionSecret"];
+                retval.regionSendKey = (string)reader["regionSendKey"];
+
+                // Region Server
+                retval.regionDataURI = (string)reader["regionDataURI"];
+                retval.regionOnline = false; // Needs to be pinged before this can be set.
+                retval.serverIP = (string)reader["serverIP"];
+                retval.serverPort = (uint)reader["serverPort"];
+                retval.serverURI = (string)reader["serverURI"];
+
+                // Location
+                retval.regionLocX = (uint)((int)reader["locX"]);
+                retval.regionLocY = (uint)((int)reader["locY"]);
+                retval.regionLocZ = (uint)((int)reader["locZ"]);
+
+                // Neighbours - 0 = No Override
+                retval.regionEastOverrideHandle = (ulong)reader["eastOverrideHandle"];
+                retval.regionWestOverrideHandle = (ulong)reader["westOverrideHandle"];
+                retval.regionSouthOverrideHandle = (ulong)reader["southOverrideHandle"];
+                retval.regionNorthOverrideHandle = (ulong)reader["northOverrideHandle"];
+
+                // Assets
+                retval.regionAssetURI = (string)reader["regionAssetURI"];
+                retval.regionAssetRecvKey = (string)reader["regionAssetRecvKey"];
+                retval.regionAssetSendKey = (string)reader["regionAssetSendKey"];
+
+                // Userserver
+                retval.regionUserURI = (string)reader["regionUserURI"];
+                retval.regionUserRecvKey = (string)reader["regionUserRecvKey"];
+                retval.regionUserSendKey = (string)reader["regionUserSendKey"];
+            }
+            else
+            {
+                throw new Exception("No rows to return");
+            }
+            return retval;
+        }
+
+        /// <summary>
+        /// Inserts a new region into the database
+        /// </summary>
+        /// <param name="profile">The region to insert</param>
+        /// <returns>Success?</returns>
+        public bool insertRow(SimProfileData profile)
+        {
+            string sql = "REPLACE INTO regions VALUES (regionHandle, regionName, uuid, regionRecvKey, regionSecret, regionSendKey, regionDataURI, ";
+            sql += "serverIP, serverPort, serverURI, locX, locY, locZ, eastOverrideHandle, westOverrideHandle, southOverrideHandle, northOverrideHandle, regionAssetURI, regionAssetRecvKey, ";
+            sql += "regionAssetSendKey, regionUserURI, regionUserRecvKey, regionUserSendKey) VALUES ";
+
+            sql += "(@regionHandle, @regionName, @uuid, @regionRecvKey, @regionSecret, @regionSendKey, @regionDataURI, ";
+            sql += "@serverIP, @serverPort, @serverURI, @locX, @locY, @locZ, @eastOverrideHandle, @westOverrideHandle, @southOverrideHandle, @northOverrideHandle, @regionAssetURI, @regionAssetRecvKey, ";
+            sql += "@regionAssetSendKey, @regionUserURI, @regionUserRecvKey, @regionUserSendKey);";
+
+            Dictionary<string, string> parameters = new Dictionary<string, string>();
+
+            parameters["regionHandle"] = profile.regionHandle.ToString();
+            parameters["regionName"] = profile.regionName;
+            parameters["uuid"] = profile.UUID.ToString();
+            parameters["regionRecvKey"] = profile.regionRecvKey;
+            parameters["regionSendKey"] = profile.regionSendKey;
+            parameters["regionDataURI"] = profile.regionDataURI;
+            parameters["serverIP"] = profile.serverIP;
+            parameters["serverPort"] = profile.serverPort.ToString();
+            parameters["serverURI"] = profile.serverURI;
+            parameters["locX"] = profile.regionLocX.ToString();
+            parameters["locY"] = profile.regionLocY.ToString();
+            parameters["locZ"] = profile.regionLocZ.ToString();
+            parameters["eastOverrideHandle"] = profile.regionEastOverrideHandle.ToString();
+            parameters["westOverrideHandle"] = profile.regionWestOverrideHandle.ToString();
+            parameters["northOverrideHandle"] = profile.regionNorthOverrideHandle.ToString();
+            parameters["southOverrideHandle"] = profile.regionSouthOverrideHandle.ToString();
+            parameters["regionAssetURI"] = profile.regionAssetURI;
+            parameters["regionAssetRecvKey"] = profile.regionAssetRecvKey;
+            parameters["regionAssetSendKey"] = profile.regionAssetSendKey;
+            parameters["regionUserURI"] = profile.regionUserURI;
+            parameters["regionUserRecvKey"] = profile.regionUserRecvKey;
+            parameters["regionUserSendKey"] = profile.regionUserSendKey;
+
+            bool returnval = false;
+
+            try
+            {
+                IDbCommand result = Query(sql, parameters);
+
+                if (result.ExecuteNonQuery() == 1)
+                    returnval = true;
+
+                result.Dispose();
+            }
+            catch (Exception)
+            {
+                return false;
+            }
+
+            return returnval;
+        }
+    }
+}

+ 111 - 111
OpenSim/Framework/Data/GridData.cs

@@ -1,111 +1,111 @@
-/*
-* Copyright (c) Contributors, http://www.openmetaverse.org/
-* See CONTRIBUTORS.TXT for a full list of copyright holders.
-*
-* Redistribution and use in source and binary forms, with or without
-* modification, are permitted provided that the following conditions are met:
-*     * Redistributions of source code must retain the above copyright
-*       notice, this list of conditions and the following disclaimer.
-*     * Redistributions in binary form must reproduce the above copyright
-*       notice, this list of conditions and the following disclaimer in the
-*       documentation and/or other materials provided with the distribution.
-*     * Neither the name of the OpenSim Project nor the
-*       names of its contributors may be used to endorse or promote products
-*       derived from this software without specific prior written permission.
-*
-* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS AND ANY
-* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
-* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-* 
-*/
-using libsecondlife;
-
-namespace OpenSim.Framework.Data
-{
-    public enum DataResponse
-    {
-        RESPONSE_OK,
-        RESPONSE_AUTHREQUIRED,
-        RESPONSE_INVALIDCREDENTIALS,
-        RESPONSE_ERROR
-    }
-
-    /// <summary>
-    /// A standard grid interface
-    /// </summary>
-    public interface IGridData
-    {
-        /// <summary>
-        /// Returns a sim profile from a regionHandle
-        /// </summary>
-        /// <param name="regionHandle">A 64bit Region Handle</param>
-        /// <returns>A simprofile</returns>
-        SimProfileData GetProfileByHandle(ulong regionHandle);
-
-        /// <summary>
-        /// Returns a sim profile from a UUID
-        /// </summary>
-        /// <param name="UUID">A 128bit UUID</param>
-        /// <returns>A sim profile</returns>
-        SimProfileData GetProfileByLLUUID(LLUUID UUID);
-
-        /// <summary>
-        /// Returns all profiles within the specified range
-        /// </summary>
-        /// <param name="Xmin">Minimum sim coordinate (X)</param>
-        /// <param name="Ymin">Minimum sim coordinate (Y)</param>
-        /// <param name="Xmax">Maximum sim coordinate (X)</param>
-        /// <param name="Ymin">Maximum sim coordinate (Y)</param>
-        /// <returns>An array containing all the sim profiles in the specified range</returns>
-        SimProfileData[] GetProfilesInRange(uint Xmin, uint Ymin, uint Xmax, uint Ymax);
-
-        /// <summary>
-        /// Authenticates a sim by use of it's recv key. 
-        /// WARNING: Insecure
-        /// </summary>
-        /// <param name="UUID">The UUID sent by the sim</param>
-        /// <param name="regionHandle">The regionhandle sent by the sim</param>
-        /// <param name="simrecvkey">The recieving key sent by the sim</param>
-        /// <returns>Whether the sim has been authenticated</returns>
-        bool AuthenticateSim(LLUUID UUID, ulong regionHandle, string simrecvkey);
-
-        /// <summary>
-        /// Initialises the interface
-        /// </summary>
-        void Initialise();
-
-        /// <summary>
-        /// Closes the interface
-        /// </summary>
-        void Close();
-
-        /// <summary>
-        /// The plugin being loaded
-        /// </summary>
-        /// <returns>A string containing the plugin name</returns>
-        string getName();
-
-        /// <summary>
-        /// The plugins version
-        /// </summary>
-        /// <returns>A string containing the plugin version</returns>
-        string getVersion();
-
-        /// <summary>
-        /// Adds a new profile to the database
-        /// </summary>
-        /// <param name="profile">The profile to add</param>
-        /// <returns>RESPONSE_OK if successful, error if not.</returns>
-        DataResponse AddProfile(SimProfileData profile);
-
-        ReservationData GetReservationAtPoint(uint x, uint y);
-
-    }
-}
+/*
+* Copyright (c) Contributors, http://www.openmetaverse.org/
+* See CONTRIBUTORS.TXT for a full list of copyright holders.
+*
+* Redistribution and use in source and binary forms, with or without
+* modification, are permitted provided that the following conditions are met:
+*     * Redistributions of source code must retain the above copyright
+*       notice, this list of conditions and the following disclaimer.
+*     * Redistributions in binary form must reproduce the above copyright
+*       notice, this list of conditions and the following disclaimer in the
+*       documentation and/or other materials provided with the distribution.
+*     * Neither the name of the OpenSim Project nor the
+*       names of its contributors may be used to endorse or promote products
+*       derived from this software without specific prior written permission.
+*
+* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS AND ANY
+* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
+* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+* 
+*/
+using libsecondlife;
+
+namespace OpenSim.Framework.Data
+{
+    public enum DataResponse
+    {
+        RESPONSE_OK,
+        RESPONSE_AUTHREQUIRED,
+        RESPONSE_INVALIDCREDENTIALS,
+        RESPONSE_ERROR
+    }
+
+    /// <summary>
+    /// A standard grid interface
+    /// </summary>
+    public interface IGridData
+    {
+        /// <summary>
+        /// Returns a sim profile from a regionHandle
+        /// </summary>
+        /// <param name="regionHandle">A 64bit Region Handle</param>
+        /// <returns>A simprofile</returns>
+        SimProfileData GetProfileByHandle(ulong regionHandle);
+
+        /// <summary>
+        /// Returns a sim profile from a UUID
+        /// </summary>
+        /// <param name="UUID">A 128bit UUID</param>
+        /// <returns>A sim profile</returns>
+        SimProfileData GetProfileByLLUUID(LLUUID UUID);
+
+        /// <summary>
+        /// Returns all profiles within the specified range
+        /// </summary>
+        /// <param name="Xmin">Minimum sim coordinate (X)</param>
+        /// <param name="Ymin">Minimum sim coordinate (Y)</param>
+        /// <param name="Xmax">Maximum sim coordinate (X)</param>
+        /// <param name="Ymin">Maximum sim coordinate (Y)</param>
+        /// <returns>An array containing all the sim profiles in the specified range</returns>
+        SimProfileData[] GetProfilesInRange(uint Xmin, uint Ymin, uint Xmax, uint Ymax);
+
+        /// <summary>
+        /// Authenticates a sim by use of it's recv key. 
+        /// WARNING: Insecure
+        /// </summary>
+        /// <param name="UUID">The UUID sent by the sim</param>
+        /// <param name="regionHandle">The regionhandle sent by the sim</param>
+        /// <param name="simrecvkey">The recieving key sent by the sim</param>
+        /// <returns>Whether the sim has been authenticated</returns>
+        bool AuthenticateSim(LLUUID UUID, ulong regionHandle, string simrecvkey);
+
+        /// <summary>
+        /// Initialises the interface
+        /// </summary>
+        void Initialise();
+
+        /// <summary>
+        /// Closes the interface
+        /// </summary>
+        void Close();
+
+        /// <summary>
+        /// The plugin being loaded
+        /// </summary>
+        /// <returns>A string containing the plugin name</returns>
+        string getName();
+
+        /// <summary>
+        /// The plugins version
+        /// </summary>
+        /// <returns>A string containing the plugin version</returns>
+        string getVersion();
+
+        /// <summary>
+        /// Adds a new profile to the database
+        /// </summary>
+        /// <param name="profile">The profile to add</param>
+        /// <returns>RESPONSE_OK if successful, error if not.</returns>
+        DataResponse AddProfile(SimProfileData profile);
+
+        ReservationData GetReservationAtPoint(uint x, uint y);
+
+    }
+}

+ 90 - 90
OpenSim/Framework/Data/ILogData.cs

@@ -1,90 +1,90 @@
-/*
-* Copyright (c) Contributors, http://www.openmetaverse.org/
-* See CONTRIBUTORS.TXT for a full list of copyright holders.
-*
-* Redistribution and use in source and binary forms, with or without
-* modification, are permitted provided that the following conditions are met:
-*     * Redistributions of source code must retain the above copyright
-*       notice, this list of conditions and the following disclaimer.
-*     * Redistributions in binary form must reproduce the above copyright
-*       notice, this list of conditions and the following disclaimer in the
-*       documentation and/or other materials provided with the distribution.
-*     * Neither the name of the OpenSim Project nor the
-*       names of its contributors may be used to endorse or promote products
-*       derived from this software without specific prior written permission.
-*
-* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS AND ANY
-* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
-* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-* 
-*/
-namespace OpenSim.Framework.Data
-{
-    /// <summary>
-    /// The severity of an individual log message
-    /// </summary>
-    public enum LogSeverity : int
-    {
-        /// <summary>
-        /// Critical: systems failure
-        /// </summary>
-        CRITICAL = 1,
-        /// <summary>
-        /// Major: warning prior to systems failure
-        /// </summary>
-        MAJOR = 2,
-        /// <summary>
-        /// Medium: an individual non-critical task failed
-        /// </summary>
-        MEDIUM = 3,
-        /// <summary>
-        /// Low: Informational warning
-        /// </summary>
-        LOW = 4,
-        /// <summary>
-        /// Info: Information
-        /// </summary>
-        INFO = 5,
-        /// <summary>
-        /// Verbose: Debug Information
-        /// </summary>
-        VERBOSE = 6
-    }
-
-    /// <summary>
-    /// An interface to a LogData storage system
-    /// </summary>
-    public interface ILogData
-    {
-        void saveLog(string serverDaemon, string target, string methodCall, string arguments, int priority,string logMessage);
-        /// <summary>
-        /// Initialises the interface
-        /// </summary>
-        void Initialise();
-
-        /// <summary>
-        /// Closes the interface
-        /// </summary>
-        void Close();
-
-        /// <summary>
-        /// The plugin being loaded
-        /// </summary>
-        /// <returns>A string containing the plugin name</returns>
-        string getName();
-
-        /// <summary>
-        /// The plugins version
-        /// </summary>
-        /// <returns>A string containing the plugin version</returns>
-        string getVersion();
-    }
-
-}
+/*
+* Copyright (c) Contributors, http://www.openmetaverse.org/
+* See CONTRIBUTORS.TXT for a full list of copyright holders.
+*
+* Redistribution and use in source and binary forms, with or without
+* modification, are permitted provided that the following conditions are met:
+*     * Redistributions of source code must retain the above copyright
+*       notice, this list of conditions and the following disclaimer.
+*     * Redistributions in binary form must reproduce the above copyright
+*       notice, this list of conditions and the following disclaimer in the
+*       documentation and/or other materials provided with the distribution.
+*     * Neither the name of the OpenSim Project nor the
+*       names of its contributors may be used to endorse or promote products
+*       derived from this software without specific prior written permission.
+*
+* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS AND ANY
+* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
+* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+* 
+*/
+namespace OpenSim.Framework.Data
+{
+    /// <summary>
+    /// The severity of an individual log message
+    /// </summary>
+    public enum LogSeverity : int
+    {
+        /// <summary>
+        /// Critical: systems failure
+        /// </summary>
+        CRITICAL = 1,
+        /// <summary>
+        /// Major: warning prior to systems failure
+        /// </summary>
+        MAJOR = 2,
+        /// <summary>
+        /// Medium: an individual non-critical task failed
+        /// </summary>
+        MEDIUM = 3,
+        /// <summary>
+        /// Low: Informational warning
+        /// </summary>
+        LOW = 4,
+        /// <summary>
+        /// Info: Information
+        /// </summary>
+        INFO = 5,
+        /// <summary>
+        /// Verbose: Debug Information
+        /// </summary>
+        VERBOSE = 6
+    }
+
+    /// <summary>
+    /// An interface to a LogData storage system
+    /// </summary>
+    public interface ILogData
+    {
+        void saveLog(string serverDaemon, string target, string methodCall, string arguments, int priority,string logMessage);
+        /// <summary>
+        /// Initialises the interface
+        /// </summary>
+        void Initialise();
+
+        /// <summary>
+        /// Closes the interface
+        /// </summary>
+        void Close();
+
+        /// <summary>
+        /// The plugin being loaded
+        /// </summary>
+        /// <returns>A string containing the plugin name</returns>
+        string getName();
+
+        /// <summary>
+        /// The plugins version
+        /// </summary>
+        /// <returns>A string containing the plugin version</returns>
+        string getVersion();
+    }
+
+}

+ 96 - 96
OpenSim/Framework/Data/IniConfig.cs

@@ -1,96 +1,96 @@
-/*
-* Copyright (c) Contributors, http://www.openmetaverse.org/
-* See CONTRIBUTORS.TXT for a full list of copyright holders.
-*
-* Redistribution and use in source and binary forms, with or without
-* modification, are permitted provided that the following conditions are met:
-*     * Redistributions of source code must retain the above copyright
-*       notice, this list of conditions and the following disclaimer.
-*     * Redistributions in binary form must reproduce the above copyright
-*       notice, this list of conditions and the following disclaimer in the
-*       documentation and/or other materials provided with the distribution.
-*     * Neither the name of the OpenSim Project nor the
-*       names of its contributors may be used to endorse or promote products
-*       derived from this software without specific prior written permission.
-*
-* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS AND ANY
-* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
-* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-* 
-*/
-using System.IO;
-using System.Text.RegularExpressions;
-/* 
- Taken from public code listing at by Alex Pinsker
- http://alexpinsker.blogspot.com/2005/12/reading-ini-file-from-c_113432097333021549.html
- */
-
-namespace OpenSim.Framework.Data
-{
-    /// <summary>
-    /// Parse settings from ini-like files
-    /// </summary>
-    public class IniFile
-    {
-        static IniFile()
-        {
-            _iniKeyValuePatternRegex = new Regex(
-                @"((\s)*(?<Key>([^\=^\s^\n]+))[\s^\n]*
-                # key part (surrounding whitespace stripped)
-                \=
-                (\s)*(?<Value>([^\n^\s]+(\n){0,1})))
-                # value part (surrounding whitespace stripped)
-                ",
-                RegexOptions.IgnorePatternWhitespace |
-                RegexOptions.Compiled |
-                RegexOptions.CultureInvariant);
-        }
-        static private Regex _iniKeyValuePatternRegex;
-
-        public IniFile(string iniFileName)
-        {
-            _iniFileName = iniFileName;
-        }
-
-        public string ParseFileReadValue(string key)
-        {
-            using (StreamReader reader =
-                  new StreamReader(_iniFileName))
-            {
-                do
-                {
-                    string line = reader.ReadLine();
-                    Match match =
-                        _iniKeyValuePatternRegex.Match(line);
-                    if (match.Success)
-                    {
-                        string currentKey =
-                                match.Groups["Key"].Value as string;
-                        if (currentKey != null &&
-                       currentKey.Trim().CompareTo(key) == 0)
-                        {
-                            string value =
-                              match.Groups["Value"].Value as string;
-                            return value;
-                        }
-                    }
-
-                }
-                while (reader.Peek() != -1);
-            }
-            return null;
-        }
-
-        public string IniFileName
-        {
-            get { return _iniFileName; }
-        }    private string _iniFileName;
-    }
-}
+/*
+* Copyright (c) Contributors, http://www.openmetaverse.org/
+* See CONTRIBUTORS.TXT for a full list of copyright holders.
+*
+* Redistribution and use in source and binary forms, with or without
+* modification, are permitted provided that the following conditions are met:
+*     * Redistributions of source code must retain the above copyright
+*       notice, this list of conditions and the following disclaimer.
+*     * Redistributions in binary form must reproduce the above copyright
+*       notice, this list of conditions and the following disclaimer in the
+*       documentation and/or other materials provided with the distribution.
+*     * Neither the name of the OpenSim Project nor the
+*       names of its contributors may be used to endorse or promote products
+*       derived from this software without specific prior written permission.
+*
+* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS AND ANY
+* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
+* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+* 
+*/
+using System.IO;
+using System.Text.RegularExpressions;
+/* 
+ Taken from public code listing at by Alex Pinsker
+ http://alexpinsker.blogspot.com/2005/12/reading-ini-file-from-c_113432097333021549.html
+ */
+
+namespace OpenSim.Framework.Data
+{
+    /// <summary>
+    /// Parse settings from ini-like files
+    /// </summary>
+    public class IniFile
+    {
+        static IniFile()
+        {
+            _iniKeyValuePatternRegex = new Regex(
+                @"((\s)*(?<Key>([^\=^\s^\n]+))[\s^\n]*
+                # key part (surrounding whitespace stripped)
+                \=
+                (\s)*(?<Value>([^\n^\s]+(\n){0,1})))
+                # value part (surrounding whitespace stripped)
+                ",
+                RegexOptions.IgnorePatternWhitespace |
+                RegexOptions.Compiled |
+                RegexOptions.CultureInvariant);
+        }
+        static private Regex _iniKeyValuePatternRegex;
+
+        public IniFile(string iniFileName)
+        {
+            _iniFileName = iniFileName;
+        }
+
+        public string ParseFileReadValue(string key)
+        {
+            using (StreamReader reader =
+                  new StreamReader(_iniFileName))
+            {
+                do
+                {
+                    string line = reader.ReadLine();
+                    Match match =
+                        _iniKeyValuePatternRegex.Match(line);
+                    if (match.Success)
+                    {
+                        string currentKey =
+                                match.Groups["Key"].Value as string;
+                        if (currentKey != null &&
+                       currentKey.Trim().CompareTo(key) == 0)
+                        {
+                            string value =
+                              match.Groups["Value"].Value as string;
+                            return value;
+                        }
+                    }
+
+                }
+                while (reader.Peek() != -1);
+            }
+            return null;
+        }
+
+        public string IniFileName
+        {
+            get { return _iniFileName; }
+        }    private string _iniFileName;
+    }
+}

+ 197 - 197
OpenSim/Framework/Data/InventoryData.cs

@@ -1,197 +1,197 @@
-/*
-* Copyright (c) Contributors, http://www.openmetaverse.org/
-* See CONTRIBUTORS.TXT for a full list of copyright holders.
-*
-* Redistribution and use in source and binary forms, with or without
-* modification, are permitted provided that the following conditions are met:
-*     * Redistributions of source code must retain the above copyright
-*       notice, this list of conditions and the following disclaimer.
-*     * Redistributions in binary form must reproduce the above copyright
-*       notice, this list of conditions and the following disclaimer in the
-*       documentation and/or other materials provided with the distribution.
-*     * Neither the name of the OpenSim Project nor the
-*       names of its contributors may be used to endorse or promote products
-*       derived from this software without specific prior written permission.
-*
-* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS AND ANY
-* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
-* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-* 
-*/
-using System.Collections.Generic;
-using libsecondlife;
-
-namespace OpenSim.Framework.Data
-{
-    /// <summary>
-    /// Inventory Item - contains all the properties associated with an individual inventory piece.
-    /// </summary>
-    public class InventoryItemBase
-    {
-        /// <summary>
-        /// A UUID containing the ID for the inventory item itself
-        /// </summary>
-        public LLUUID inventoryID;
-        /// <summary>
-        /// The UUID of the associated asset on the asset server
-        /// </summary>
-        public LLUUID assetID;
-        /// <summary>
-        /// This is an enumerated value determining the type of asset (eg Notecard, Sound, Object, etc)
-        /// </summary>
-        public int type;
-        /// <summary>
-        /// The folder this item is contained in 
-        /// </summary>
-        public LLUUID parentFolderID;
-        /// <summary>
-        /// The owner of this inventory item
-        /// </summary>
-        public LLUUID avatarID;
-        /// <summary>
-        /// The creator of this item
-        /// </summary>
-        public LLUUID creatorsID;
-        /// <summary>
-        /// The name of the inventory item (must be less than 64 characters)
-        /// </summary>
-        public string inventoryName;
-        /// <summary>
-        /// The description of the inventory item (must be less than 64 characters)
-        /// </summary>
-        public string inventoryDescription;
-        /// <summary>
-        /// A mask containing the permissions for the next owner (cannot be enforced)
-        /// </summary>
-        public uint inventoryNextPermissions;
-        /// <summary>
-        /// A mask containing permissions for the current owner (cannot be enforced)
-        /// </summary>
-        public uint inventoryCurrentPermissions;
-    }
-
-    /// <summary>
-    /// A Class for folders which contain users inventory
-    /// </summary>
-    public class InventoryFolderBase
-    {
-        /// <summary>
-        /// The name of the folder (64 characters or less)
-        /// </summary>
-        public string name;
-        /// <summary>
-        /// The agent who's inventory this is contained by
-        /// </summary>
-        public LLUUID agentID;
-        /// <summary>
-        /// The folder this folder is contained in 
-        /// </summary>
-        public LLUUID parentID;
-        /// <summary>
-        /// The UUID for this folder
-        /// </summary>
-        public LLUUID folderID;
-        /// <summary>
-        /// Tyep of Items normally stored in this folder
-        /// </summary>
-        public ushort type;
-        /// <summary>
-        /// 
-        /// </summary>
-        public ushort version;
-    }
-
-    /// <summary>
-    /// An interface for accessing inventory data from a storage server
-    /// </summary>
-    public interface IInventoryData
-    {
-        /// <summary>
-        /// Initialises the interface
-        /// </summary>
-        void Initialise();
-
-        /// <summary>
-        /// Closes the interface
-        /// </summary>
-        void Close();
-
-        /// <summary>
-        /// The plugin being loaded
-        /// </summary>
-        /// <returns>A string containing the plugin name</returns>
-        string getName();
-
-        /// <summary>
-        /// The plugins version
-        /// </summary>
-        /// <returns>A string containing the plugin version</returns>
-        string getVersion();
-
-        /// <summary>
-        /// Returns a list of inventory items contained within the specified folder
-        /// </summary>
-        /// <param name="folderID">The UUID of the target folder</param>
-        /// <returns>A List of InventoryItemBase items</returns>
-        List<InventoryItemBase> getInventoryInFolder(LLUUID folderID);
-
-        /// <summary>
-        /// Returns a list of folders in the users inventory root.
-        /// </summary>
-        /// <param name="user">The UUID of the user who is having inventory being returned</param>
-        /// <returns>A list of folders</returns>
-        List<InventoryFolderBase> getUserRootFolders(LLUUID user);
-
-        /// <summary>
-        /// Returns a list of inventory folders contained in the folder 'parentID'
-        /// </summary>
-        /// <param name="parentID">The folder to get subfolders for</param>
-        /// <returns>A list of inventory folders</returns>
-        List<InventoryFolderBase> getInventoryFolders(LLUUID parentID);
-
-        /// <summary>
-        /// Returns an inventory item by its UUID
-        /// </summary>
-        /// <param name="item">The UUID of the item to be returned</param>
-        /// <returns>A class containing item information</returns>
-        InventoryItemBase getInventoryItem(LLUUID item);
-
-        /// <summary>
-        /// Returns a specified inventory folder by its UUID
-        /// </summary>
-        /// <param name="folder">The UUID of the folder to be returned</param>
-        /// <returns>A class containing folder information</returns>
-        InventoryFolderBase getInventoryFolder(LLUUID folder);
-
-        /// <summary>
-        /// Creates a new inventory item based on item
-        /// </summary>
-        /// <param name="item">The item to be created</param>
-        void addInventoryItem(InventoryItemBase item);
-
-        /// <summary>
-        /// Updates an inventory item with item (updates based on ID)
-        /// </summary>
-        /// <param name="item">The updated item</param>
-        void updateInventoryItem(InventoryItemBase item);
-
-        /// <summary>
-        /// Adds a new folder specified by folder
-        /// </summary>
-        /// <param name="folder">The inventory folder</param>
-        void addInventoryFolder(InventoryFolderBase folder);
-
-        /// <summary>
-        /// Updates a folder based on its ID with folder
-        /// </summary>
-        /// <param name="folder">The inventory folder</param>
-        void updateInventoryFolder(InventoryFolderBase folder);
-    }
-}
+/*
+* Copyright (c) Contributors, http://www.openmetaverse.org/
+* See CONTRIBUTORS.TXT for a full list of copyright holders.
+*
+* Redistribution and use in source and binary forms, with or without
+* modification, are permitted provided that the following conditions are met:
+*     * Redistributions of source code must retain the above copyright
+*       notice, this list of conditions and the following disclaimer.
+*     * Redistributions in binary form must reproduce the above copyright
+*       notice, this list of conditions and the following disclaimer in the
+*       documentation and/or other materials provided with the distribution.
+*     * Neither the name of the OpenSim Project nor the
+*       names of its contributors may be used to endorse or promote products
+*       derived from this software without specific prior written permission.
+*
+* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS AND ANY
+* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
+* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+* 
+*/
+using System.Collections.Generic;
+using libsecondlife;
+
+namespace OpenSim.Framework.Data
+{
+    /// <summary>
+    /// Inventory Item - contains all the properties associated with an individual inventory piece.
+    /// </summary>
+    public class InventoryItemBase
+    {
+        /// <summary>
+        /// A UUID containing the ID for the inventory item itself
+        /// </summary>
+        public LLUUID inventoryID;
+        /// <summary>
+        /// The UUID of the associated asset on the asset server
+        /// </summary>
+        public LLUUID assetID;
+        /// <summary>
+        /// This is an enumerated value determining the type of asset (eg Notecard, Sound, Object, etc)
+        /// </summary>
+        public int type;
+        /// <summary>
+        /// The folder this item is contained in 
+        /// </summary>
+        public LLUUID parentFolderID;
+        /// <summary>
+        /// The owner of this inventory item
+        /// </summary>
+        public LLUUID avatarID;
+        /// <summary>
+        /// The creator of this item
+        /// </summary>
+        public LLUUID creatorsID;
+        /// <summary>
+        /// The name of the inventory item (must be less than 64 characters)
+        /// </summary>
+        public string inventoryName;
+        /// <summary>
+        /// The description of the inventory item (must be less than 64 characters)
+        /// </summary>
+        public string inventoryDescription;
+        /// <summary>
+        /// A mask containing the permissions for the next owner (cannot be enforced)
+        /// </summary>
+        public uint inventoryNextPermissions;
+        /// <summary>
+        /// A mask containing permissions for the current owner (cannot be enforced)
+        /// </summary>
+        public uint inventoryCurrentPermissions;
+    }
+
+    /// <summary>
+    /// A Class for folders which contain users inventory
+    /// </summary>
+    public class InventoryFolderBase
+    {
+        /// <summary>
+        /// The name of the folder (64 characters or less)
+        /// </summary>
+        public string name;
+        /// <summary>
+        /// The agent who's inventory this is contained by
+        /// </summary>
+        public LLUUID agentID;
+        /// <summary>
+        /// The folder this folder is contained in 
+        /// </summary>
+        public LLUUID parentID;
+        /// <summary>
+        /// The UUID for this folder
+        /// </summary>
+        public LLUUID folderID;
+        /// <summary>
+        /// Tyep of Items normally stored in this folder
+        /// </summary>
+        public ushort type;
+        /// <summary>
+        /// 
+        /// </summary>
+        public ushort version;
+    }
+
+    /// <summary>
+    /// An interface for accessing inventory data from a storage server
+    /// </summary>
+    public interface IInventoryData
+    {
+        /// <summary>
+        /// Initialises the interface
+        /// </summary>
+        void Initialise();
+
+        /// <summary>
+        /// Closes the interface
+        /// </summary>
+        void Close();
+
+        /// <summary>
+        /// The plugin being loaded
+        /// </summary>
+        /// <returns>A string containing the plugin name</returns>
+        string getName();
+
+        /// <summary>
+        /// The plugins version
+        /// </summary>
+        /// <returns>A string containing the plugin version</returns>
+        string getVersion();
+
+        /// <summary>
+        /// Returns a list of inventory items contained within the specified folder
+        /// </summary>
+        /// <param name="folderID">The UUID of the target folder</param>
+        /// <returns>A List of InventoryItemBase items</returns>
+        List<InventoryItemBase> getInventoryInFolder(LLUUID folderID);
+
+        /// <summary>
+        /// Returns a list of folders in the users inventory root.
+        /// </summary>
+        /// <param name="user">The UUID of the user who is having inventory being returned</param>
+        /// <returns>A list of folders</returns>
+        List<InventoryFolderBase> getUserRootFolders(LLUUID user);
+
+        /// <summary>
+        /// Returns a list of inventory folders contained in the folder 'parentID'
+        /// </summary>
+        /// <param name="parentID">The folder to get subfolders for</param>
+        /// <returns>A list of inventory folders</returns>
+        List<InventoryFolderBase> getInventoryFolders(LLUUID parentID);
+
+        /// <summary>
+        /// Returns an inventory item by its UUID
+        /// </summary>
+        /// <param name="item">The UUID of the item to be returned</param>
+        /// <returns>A class containing item information</returns>
+        InventoryItemBase getInventoryItem(LLUUID item);
+
+        /// <summary>
+        /// Returns a specified inventory folder by its UUID
+        /// </summary>
+        /// <param name="folder">The UUID of the folder to be returned</param>
+        /// <returns>A class containing folder information</returns>
+        InventoryFolderBase getInventoryFolder(LLUUID folder);
+
+        /// <summary>
+        /// Creates a new inventory item based on item
+        /// </summary>
+        /// <param name="item">The item to be created</param>
+        void addInventoryItem(InventoryItemBase item);
+
+        /// <summary>
+        /// Updates an inventory item with item (updates based on ID)
+        /// </summary>
+        /// <param name="item">The updated item</param>
+        void updateInventoryItem(InventoryItemBase item);
+
+        /// <summary>
+        /// Adds a new folder specified by folder
+        /// </summary>
+        /// <param name="folder">The inventory folder</param>
+        void addInventoryFolder(InventoryFolderBase folder);
+
+        /// <summary>
+        /// Updates a folder based on its ID with folder
+        /// </summary>
+        /// <param name="folder">The inventory folder</param>
+        void updateInventoryFolder(InventoryFolderBase folder);
+    }
+}

+ 33 - 33
OpenSim/Framework/Data/Properties/AssemblyInfo.cs

@@ -1,33 +1,33 @@
-using System.Reflection;
-using System.Runtime.InteropServices;
-// General Information about an assembly is controlled through the following 
-// set of attributes. Change these attribute values to modify the information
-// associated with an assembly.
-[assembly: AssemblyTitle("OpenSim.Framework.Data")]
-[assembly: AssemblyDescription("")]
-[assembly: AssemblyConfiguration("")]
-[assembly: AssemblyCompany("")]
-[assembly: AssemblyProduct("OpenSim.Framework.Data")]
-[assembly: AssemblyCopyright("Copyright ©  2007")]
-[assembly: AssemblyTrademark("")]
-[assembly: AssemblyCulture("")]
-
-// Setting ComVisible to false makes the types in this assembly not visible 
-// to COM components.  If you need to access a type in this assembly from 
-// COM, set the ComVisible attribute to true on that type.
-[assembly: ComVisible(false)]
-
-// The following GUID is for the ID of the typelib if this project is exposed to COM
-[assembly: Guid("3a711c34-b0c0-4264-b0fe-f366eabf9d7b")]
-
-// Version information for an assembly consists of the following four values:
-//
-//      Major Version
-//      Minor Version 
-//      Build Number
-//      Revision
-//
-// You can specify all the values or you can default the Revision and Build Numbers 
-// by using the '*' as shown below:
-[assembly: AssemblyVersion("1.0.0.0")]
-[assembly: AssemblyFileVersion("1.0.0.0")]
+using System.Reflection;
+using System.Runtime.InteropServices;
+// General Information about an assembly is controlled through the following 
+// set of attributes. Change these attribute values to modify the information
+// associated with an assembly.
+[assembly: AssemblyTitle("OpenSim.Framework.Data")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("")]
+[assembly: AssemblyProduct("OpenSim.Framework.Data")]
+[assembly: AssemblyCopyright("Copyright ©  2007")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// Setting ComVisible to false makes the types in this assembly not visible 
+// to COM components.  If you need to access a type in this assembly from 
+// COM, set the ComVisible attribute to true on that type.
+[assembly: ComVisible(false)]
+
+// The following GUID is for the ID of the typelib if this project is exposed to COM
+[assembly: Guid("3a711c34-b0c0-4264-b0fe-f366eabf9d7b")]
+
+// Version information for an assembly consists of the following four values:
+//
+//      Major Version
+//      Minor Version 
+//      Build Number
+//      Revision
+//
+// You can specify all the values or you can default the Revision and Build Numbers 
+// by using the '*' as shown below:
+[assembly: AssemblyVersion("1.0.0.0")]
+[assembly: AssemblyFileVersion("1.0.0.0")]

+ 47 - 47
OpenSim/Framework/Data/ReservationData.cs

@@ -1,47 +1,47 @@
-/*
-* Copyright (c) Contributors, http://www.openmetaverse.org/
-* See CONTRIBUTORS.TXT for a full list of copyright holders.
-*
-* Redistribution and use in source and binary forms, with or without
-* modification, are permitted provided that the following conditions are met:
-*     * Redistributions of source code must retain the above copyright
-*       notice, this list of conditions and the following disclaimer.
-*     * Redistributions in binary form must reproduce the above copyright
-*       notice, this list of conditions and the following disclaimer in the
-*       documentation and/or other materials provided with the distribution.
-*     * Neither the name of the OpenSim Project nor the
-*       names of its contributors may be used to endorse or promote products
-*       derived from this software without specific prior written permission.
-*
-* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS AND ANY
-* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
-* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-* 
-*/
-using libsecondlife;
-
-namespace OpenSim.Framework.Data
-{
-    public class ReservationData
-    {
-        public LLUUID userUUID = new LLUUID();
-        public int reservationMinX = 0;
-        public int reservationMinY = 0;
-        public int reservationMaxX = 65536;
-        public int reservationMaxY = 65536;
-        
-        public string reservationName = "";
-        public string reservationCompany = "";
-        public bool status = true;
-
-        public string gridSendKey = "";
-        public string gridRecvKey = "";
-    }
-}
+/*
+* Copyright (c) Contributors, http://www.openmetaverse.org/
+* See CONTRIBUTORS.TXT for a full list of copyright holders.
+*
+* Redistribution and use in source and binary forms, with or without
+* modification, are permitted provided that the following conditions are met:
+*     * Redistributions of source code must retain the above copyright
+*       notice, this list of conditions and the following disclaimer.
+*     * Redistributions in binary form must reproduce the above copyright
+*       notice, this list of conditions and the following disclaimer in the
+*       documentation and/or other materials provided with the distribution.
+*     * Neither the name of the OpenSim Project nor the
+*       names of its contributors may be used to endorse or promote products
+*       derived from this software without specific prior written permission.
+*
+* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS AND ANY
+* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
+* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+* 
+*/
+using libsecondlife;
+
+namespace OpenSim.Framework.Data
+{
+    public class ReservationData
+    {
+        public LLUUID userUUID = new LLUUID();
+        public int reservationMinX = 0;
+        public int reservationMinY = 0;
+        public int reservationMaxX = 65536;
+        public int reservationMaxY = 65536;
+        
+        public string reservationName = "";
+        public string reservationCompany = "";
+        public bool status = true;
+
+        public string gridSendKey = "";
+        public string gridRecvKey = "";
+    }
+}

+ 192 - 192
OpenSim/Framework/Data/SimProfileData.cs

@@ -1,192 +1,192 @@
-/*
-* Copyright (c) Contributors, http://www.openmetaverse.org/
-* See CONTRIBUTORS.TXT for a full list of copyright holders.
-*
-* Redistribution and use in source and binary forms, with or without
-* modification, are permitted provided that the following conditions are met:
-*     * Redistributions of source code must retain the above copyright
-*       notice, this list of conditions and the following disclaimer.
-*     * Redistributions in binary form must reproduce the above copyright
-*       notice, this list of conditions and the following disclaimer in the
-*       documentation and/or other materials provided with the distribution.
-*     * Neither the name of the OpenSim Project nor the
-*       names of its contributors may be used to endorse or promote products
-*       derived from this software without specific prior written permission.
-*
-* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS AND ANY
-* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
-* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-* 
-*/
-using libsecondlife;
-using Nwc.XmlRpc;
-
-using System;
-using System.Collections;
-
-namespace OpenSim.Framework.Data
-{
-    /// <summary>
-    /// A class which contains information known to the grid server about a region
-    /// </summary>
-    public class SimProfileData
-    {
-        /// <summary>
-        /// The name of the region
-        /// </summary>
-        public string regionName = "";
-
-        /// <summary>
-        /// A 64-bit number combining map position into a (mostly) unique ID
-        /// </summary>
-        public ulong regionHandle;
-
-        /// <summary>
-        /// OGS/OpenSim Specific ID for a region
-        /// </summary>
-        public LLUUID UUID;
-
-        /// <summary>
-        /// Coordinates of the region
-        /// </summary>
-        public uint regionLocX;
-        public uint regionLocY;
-        public uint regionLocZ; // Reserved (round-robin, layers, etc)
-
-        /// <summary>
-        /// Authentication secrets
-        /// </summary>
-        /// <remarks>Not very secure, needs improvement.</remarks>
-        public string regionSendKey = "";
-        public string regionRecvKey = "";
-        public string regionSecret = "";
-
-        /// <summary>
-        /// Whether the region is online
-        /// </summary>
-        public bool regionOnline;
-
-        /// <summary>
-        /// Information about the server that the region is currently hosted on
-        /// </summary>
-        public string serverIP = "";
-        public uint serverPort;
-        public string serverURI = "";
-
-        public uint httpPort;
-        public uint remotingPort;
-        public string httpServerURI = "";
-
-        /// <summary>
-        /// Set of optional overrides. Can be used to create non-eulicidean spaces.
-        /// </summary>
-        public ulong regionNorthOverrideHandle;
-        public ulong regionSouthOverrideHandle;
-        public ulong regionEastOverrideHandle;
-        public ulong regionWestOverrideHandle;
-
-        /// <summary>
-        /// Optional: URI Location of the region database
-        /// </summary>
-        /// <remarks>Used for floating sim pools where the region data is not nessecarily coupled to a specific server</remarks>
-        public string regionDataURI = "";
-
-        /// <summary>
-        /// Region Asset Details
-        /// </summary>
-        public string regionAssetURI = "";
-        public string regionAssetSendKey = "";
-        public string regionAssetRecvKey = "";
-
-        /// <summary>
-        /// Region Userserver Details
-        /// </summary>
-        public string regionUserURI = "";
-        public string regionUserSendKey = "";
-        public string regionUserRecvKey = "";
-
-        /// <summary>
-        /// Region Map Texture Asset
-        /// </summary>
-        public LLUUID regionMapTextureID = new LLUUID("00000000-0000-0000-9999-000000000006");
-
-        /// <summary>
-        /// Get Sim profile data from grid server when in grid mode
-        /// </summary>
-        /// <param name="region_uuid"></param>
-        /// <param name="gridserver_url"></param>
-        /// <param name="?"></param>
-        /// <returns></returns>
-        public SimProfileData RequestSimProfileData(LLUUID region_uuid, string gridserver_url, string gridserver_sendkey, string gridserver_recvkey)
-        {
-            Hashtable requestData = new Hashtable();
-            requestData["region_uuid"] = region_uuid.UUID.ToString();
-            requestData["authkey"] = gridserver_sendkey;
-            ArrayList SendParams = new ArrayList();
-            SendParams.Add(requestData);
-            XmlRpcRequest GridReq = new XmlRpcRequest("simulator_data_request", SendParams);
-            XmlRpcResponse GridResp = GridReq.Send(gridserver_url, 3000);
-
-            Hashtable responseData = (Hashtable)GridResp.Value;
-
-            if (responseData.ContainsKey("error"))
-            {
-                return null;
-            }
-
-            SimProfileData simData = new SimProfileData();
-            simData.regionLocX = Convert.ToUInt32((string)responseData["region_locx"]);
-            simData.regionLocY = Convert.ToUInt32((string)responseData["region_locy"]);
-            simData.regionHandle = Helpers.UIntsToLong((simData.regionLocX * 256), (simData.regionLocY * 256));
-            simData.serverIP = (string)responseData["sim_ip"];
-            simData.serverPort = Convert.ToUInt32((string)responseData["sim_port"]);
-            simData.httpPort = Convert.ToUInt32((string)responseData["http_port"]);
-            simData.remotingPort = Convert.ToUInt32((string)responseData["remoting_port"]);
-            simData.serverURI = "http://" + simData.serverIP + ":" + simData.serverPort.ToString() + "/";
-            simData.httpServerURI = "http://" + simData.serverIP + ":" + simData.httpPort.ToString() + "/";
-            simData.UUID = new LLUUID((string)responseData["region_UUID"]);
-            simData.regionName = (string)responseData["region_name"];
-
-            return simData;            
-        }
-        public SimProfileData RequestSimProfileData(ulong region_handle, string gridserver_url, string gridserver_sendkey, string gridserver_recvkey)
-        {
-            Hashtable requestData = new Hashtable();
-            requestData["region_handle"] = region_handle.ToString();
-            requestData["authkey"] = gridserver_sendkey;
-            ArrayList SendParams = new ArrayList();
-            SendParams.Add(requestData);
-            XmlRpcRequest GridReq = new XmlRpcRequest("simulator_data_request", SendParams);
-            XmlRpcResponse GridResp = GridReq.Send(gridserver_url, 3000);
-
-            Hashtable responseData = (Hashtable)GridResp.Value;
-
-            if (responseData.ContainsKey("error"))
-            {
-                return null;
-            }
-
-            SimProfileData simData = new SimProfileData();
-            simData.regionLocX = Convert.ToUInt32((string)responseData["region_locx"]);
-            simData.regionLocY = Convert.ToUInt32((string)responseData["region_locy"]);
-            simData.regionHandle = Helpers.UIntsToLong((simData.regionLocX * 256), (simData.regionLocY * 256));
-            simData.serverIP = (string)responseData["sim_ip"];
-            simData.serverPort = Convert.ToUInt32((string)responseData["sim_port"]);
-            simData.httpPort = Convert.ToUInt32((string)responseData["http_port"]);
-            simData.remotingPort = Convert.ToUInt32((string)responseData["remoting_port"]);
-            simData.httpServerURI = "http://" + simData.serverIP + ":" + simData.httpPort.ToString() + "/";
-            simData.serverURI = "http://" + simData.serverIP + ":" + simData.serverPort.ToString() + "/";
-            simData.UUID = new LLUUID((string)responseData["region_UUID"]);
-            simData.regionName = (string)responseData["region_name"];
-
-            return simData; 
-        }
-    }
-}
+/*
+* Copyright (c) Contributors, http://www.openmetaverse.org/
+* See CONTRIBUTORS.TXT for a full list of copyright holders.
+*
+* Redistribution and use in source and binary forms, with or without
+* modification, are permitted provided that the following conditions are met:
+*     * Redistributions of source code must retain the above copyright
+*       notice, this list of conditions and the following disclaimer.
+*     * Redistributions in binary form must reproduce the above copyright
+*       notice, this list of conditions and the following disclaimer in the
+*       documentation and/or other materials provided with the distribution.
+*     * Neither the name of the OpenSim Project nor the
+*       names of its contributors may be used to endorse or promote products
+*       derived from this software without specific prior written permission.
+*
+* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS AND ANY
+* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
+* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+* 
+*/
+using libsecondlife;
+using Nwc.XmlRpc;
+
+using System;
+using System.Collections;
+
+namespace OpenSim.Framework.Data
+{
+    /// <summary>
+    /// A class which contains information known to the grid server about a region
+    /// </summary>
+    public class SimProfileData
+    {
+        /// <summary>
+        /// The name of the region
+        /// </summary>
+        public string regionName = "";
+
+        /// <summary>
+        /// A 64-bit number combining map position into a (mostly) unique ID
+        /// </summary>
+        public ulong regionHandle;
+
+        /// <summary>
+        /// OGS/OpenSim Specific ID for a region
+        /// </summary>
+        public LLUUID UUID;
+
+        /// <summary>
+        /// Coordinates of the region
+        /// </summary>
+        public uint regionLocX;
+        public uint regionLocY;
+        public uint regionLocZ; // Reserved (round-robin, layers, etc)
+
+        /// <summary>
+        /// Authentication secrets
+        /// </summary>
+        /// <remarks>Not very secure, needs improvement.</remarks>
+        public string regionSendKey = "";
+        public string regionRecvKey = "";
+        public string regionSecret = "";
+
+        /// <summary>
+        /// Whether the region is online
+        /// </summary>
+        public bool regionOnline;
+
+        /// <summary>
+        /// Information about the server that the region is currently hosted on
+        /// </summary>
+        public string serverIP = "";
+        public uint serverPort;
+        public string serverURI = "";
+
+        public uint httpPort;
+        public uint remotingPort;
+        public string httpServerURI = "";
+
+        /// <summary>
+        /// Set of optional overrides. Can be used to create non-eulicidean spaces.
+        /// </summary>
+        public ulong regionNorthOverrideHandle;
+        public ulong regionSouthOverrideHandle;
+        public ulong regionEastOverrideHandle;
+        public ulong regionWestOverrideHandle;
+
+        /// <summary>
+        /// Optional: URI Location of the region database
+        /// </summary>
+        /// <remarks>Used for floating sim pools where the region data is not nessecarily coupled to a specific server</remarks>
+        public string regionDataURI = "";
+
+        /// <summary>
+        /// Region Asset Details
+        /// </summary>
+        public string regionAssetURI = "";
+        public string regionAssetSendKey = "";
+        public string regionAssetRecvKey = "";
+
+        /// <summary>
+        /// Region Userserver Details
+        /// </summary>
+        public string regionUserURI = "";
+        public string regionUserSendKey = "";
+        public string regionUserRecvKey = "";
+
+        /// <summary>
+        /// Region Map Texture Asset
+        /// </summary>
+        public LLUUID regionMapTextureID = new LLUUID("00000000-0000-0000-9999-000000000006");
+
+        /// <summary>
+        /// Get Sim profile data from grid server when in grid mode
+        /// </summary>
+        /// <param name="region_uuid"></param>
+        /// <param name="gridserver_url"></param>
+        /// <param name="?"></param>
+        /// <returns></returns>
+        public SimProfileData RequestSimProfileData(LLUUID region_uuid, string gridserver_url, string gridserver_sendkey, string gridserver_recvkey)
+        {
+            Hashtable requestData = new Hashtable();
+            requestData["region_uuid"] = region_uuid.UUID.ToString();
+            requestData["authkey"] = gridserver_sendkey;
+            ArrayList SendParams = new ArrayList();
+            SendParams.Add(requestData);
+            XmlRpcRequest GridReq = new XmlRpcRequest("simulator_data_request", SendParams);
+            XmlRpcResponse GridResp = GridReq.Send(gridserver_url, 3000);
+
+            Hashtable responseData = (Hashtable)GridResp.Value;
+
+            if (responseData.ContainsKey("error"))
+            {
+                return null;
+            }
+
+            SimProfileData simData = new SimProfileData();
+            simData.regionLocX = Convert.ToUInt32((string)responseData["region_locx"]);
+            simData.regionLocY = Convert.ToUInt32((string)responseData["region_locy"]);
+            simData.regionHandle = Helpers.UIntsToLong((simData.regionLocX * 256), (simData.regionLocY * 256));
+            simData.serverIP = (string)responseData["sim_ip"];
+            simData.serverPort = Convert.ToUInt32((string)responseData["sim_port"]);
+            simData.httpPort = Convert.ToUInt32((string)responseData["http_port"]);
+            simData.remotingPort = Convert.ToUInt32((string)responseData["remoting_port"]);
+            simData.serverURI = "http://" + simData.serverIP + ":" + simData.serverPort.ToString() + "/";
+            simData.httpServerURI = "http://" + simData.serverIP + ":" + simData.httpPort.ToString() + "/";
+            simData.UUID = new LLUUID((string)responseData["region_UUID"]);
+            simData.regionName = (string)responseData["region_name"];
+
+            return simData;            
+        }
+        public SimProfileData RequestSimProfileData(ulong region_handle, string gridserver_url, string gridserver_sendkey, string gridserver_recvkey)
+        {
+            Hashtable requestData = new Hashtable();
+            requestData["region_handle"] = region_handle.ToString();
+            requestData["authkey"] = gridserver_sendkey;
+            ArrayList SendParams = new ArrayList();
+            SendParams.Add(requestData);
+            XmlRpcRequest GridReq = new XmlRpcRequest("simulator_data_request", SendParams);
+            XmlRpcResponse GridResp = GridReq.Send(gridserver_url, 3000);
+
+            Hashtable responseData = (Hashtable)GridResp.Value;
+
+            if (responseData.ContainsKey("error"))
+            {
+                return null;
+            }
+
+            SimProfileData simData = new SimProfileData();
+            simData.regionLocX = Convert.ToUInt32((string)responseData["region_locx"]);
+            simData.regionLocY = Convert.ToUInt32((string)responseData["region_locy"]);
+            simData.regionHandle = Helpers.UIntsToLong((simData.regionLocX * 256), (simData.regionLocY * 256));
+            simData.serverIP = (string)responseData["sim_ip"];
+            simData.serverPort = Convert.ToUInt32((string)responseData["sim_port"]);
+            simData.httpPort = Convert.ToUInt32((string)responseData["http_port"]);
+            simData.remotingPort = Convert.ToUInt32((string)responseData["remoting_port"]);
+            simData.httpServerURI = "http://" + simData.serverIP + ":" + simData.httpPort.ToString() + "/";
+            simData.serverURI = "http://" + simData.serverIP + ":" + simData.serverPort.ToString() + "/";
+            simData.UUID = new LLUUID((string)responseData["region_UUID"]);
+            simData.regionName = (string)responseData["region_name"];
+
+            return simData; 
+        }
+    }
+}

+ 128 - 128
OpenSim/Framework/Data/UserData.cs

@@ -1,128 +1,128 @@
-/*
-* Copyright (c) Contributors, http://www.openmetaverse.org/
-* See CONTRIBUTORS.TXT for a full list of copyright holders.
-*
-* Redistribution and use in source and binary forms, with or without
-* modification, are permitted provided that the following conditions are met:
-*     * Redistributions of source code must retain the above copyright
-*       notice, this list of conditions and the following disclaimer.
-*     * Redistributions in binary form must reproduce the above copyright
-*       notice, this list of conditions and the following disclaimer in the
-*       documentation and/or other materials provided with the distribution.
-*     * Neither the name of the OpenSim Project nor the
-*       names of its contributors may be used to endorse or promote products
-*       derived from this software without specific prior written permission.
-*
-* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS AND ANY
-* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
-* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-* 
-*/
-using libsecondlife;
-
-namespace OpenSim.Framework.Data
-{
-    /// <summary>
-    /// An interface for connecting to user storage servers.
-    /// </summary>
-    public interface IUserData
-    {
-        /// <summary>
-        /// Returns a user profile from a database via their UUID
-        /// </summary>
-        /// <param name="user">The accounts UUID</param>
-        /// <returns>The user data profile</returns>
-        UserProfileData getUserByUUID(LLUUID user);
-
-        /// <summary>
-        /// Returns a users profile by searching their username
-        /// </summary>
-        /// <param name="name">The users username</param>
-        /// <returns>The user data profile</returns>
-        UserProfileData getUserByName(string name);
-
-        /// <summary>
-        /// Returns a users profile by searching their username parts
-        /// </summary>
-        /// <param name="fname">Account firstname</param>
-        /// <param name="lname">Account lastname</param>
-        /// <returns>The user data profile</returns>
-        UserProfileData getUserByName(string fname, string lname);
-
-        /// <summary>
-        /// Returns the current agent for a user searching by it's UUID
-        /// </summary>
-        /// <param name="user">The users UUID</param>
-        /// <returns>The current agent session</returns>
-        UserAgentData getAgentByUUID(LLUUID user);
-
-        /// <summary>
-        /// Returns the current session agent for a user searching by username
-        /// </summary>
-        /// <param name="name">The users account name</param>
-        /// <returns>The current agent session</returns>
-        UserAgentData getAgentByName(string name);
-
-        /// <summary>
-        /// Returns the current session agent for a user searching by username parts
-        /// </summary>
-        /// <param name="fname">The users first account name</param>
-        /// <param name="lname">The users account surname</param>
-        /// <returns>The current agent session</returns>
-        UserAgentData getAgentByName(string fname, string lname);
-
-        /// <summary>
-        /// Adds a new User profile to the database 
-        /// </summary>
-        /// <param name="user">UserProfile to add</param>
-        void addNewUserProfile(UserProfileData user);
-
-        /// <summary>
-        /// Adds a new agent to the database
-        /// </summary>
-        /// <param name="agent">The agent to add</param>
-        void addNewUserAgent(UserAgentData agent);
-
-        /// <summary>
-        /// Attempts to move currency units between accounts (NOT RELIABLE / TRUSTWORTHY. DONT TRY RUN YOUR OWN CURRENCY EXCHANGE WITH REAL VALUES)
-        /// </summary>
-        /// <param name="from">The account to transfer from</param>
-        /// <param name="to">The account to transfer to</param>
-        /// <param name="amount">The amount to transfer</param>
-        /// <returns>Successful?</returns>
-        bool moneyTransferRequest(LLUUID from, LLUUID to, uint amount);
-
-        /// <summary>
-        /// Attempts to move inventory between accounts, if inventory is copyable it will be copied into the target account.
-        /// </summary>
-        /// <param name="from">User to transfer from</param>
-        /// <param name="to">User to transfer to</param>
-        /// <param name="inventory">Specified inventory item</param>
-        /// <returns>Successful?</returns>
-        bool inventoryTransferRequest(LLUUID from, LLUUID to, LLUUID inventory);
-
-        /// <summary>
-        /// Returns the plugin version
-        /// </summary>
-        /// <returns>Plugin version in MAJOR.MINOR.REVISION.BUILD format</returns>
-        string getVersion();
-
-        /// <summary>
-        /// Returns the plugin name
-        /// </summary>
-        /// <returns>Plugin name, eg MySQL User Provider</returns>
-        string getName();
-
-        /// <summary>
-        /// Initialises the plugin (artificial constructor)
-        /// </summary>
-        void Initialise();
-    }
-}
+/*
+* Copyright (c) Contributors, http://www.openmetaverse.org/
+* See CONTRIBUTORS.TXT for a full list of copyright holders.
+*
+* Redistribution and use in source and binary forms, with or without
+* modification, are permitted provided that the following conditions are met:
+*     * Redistributions of source code must retain the above copyright
+*       notice, this list of conditions and the following disclaimer.
+*     * Redistributions in binary form must reproduce the above copyright
+*       notice, this list of conditions and the following disclaimer in the
+*       documentation and/or other materials provided with the distribution.
+*     * Neither the name of the OpenSim Project nor the
+*       names of its contributors may be used to endorse or promote products
+*       derived from this software without specific prior written permission.
+*
+* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS AND ANY
+* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
+* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+* 
+*/
+using libsecondlife;
+
+namespace OpenSim.Framework.Data
+{
+    /// <summary>
+    /// An interface for connecting to user storage servers.
+    /// </summary>
+    public interface IUserData
+    {
+        /// <summary>
+        /// Returns a user profile from a database via their UUID
+        /// </summary>
+        /// <param name="user">The accounts UUID</param>
+        /// <returns>The user data profile</returns>
+        UserProfileData getUserByUUID(LLUUID user);
+
+        /// <summary>
+        /// Returns a users profile by searching their username
+        /// </summary>
+        /// <param name="name">The users username</param>
+        /// <returns>The user data profile</returns>
+        UserProfileData getUserByName(string name);
+
+        /// <summary>
+        /// Returns a users profile by searching their username parts
+        /// </summary>
+        /// <param name="fname">Account firstname</param>
+        /// <param name="lname">Account lastname</param>
+        /// <returns>The user data profile</returns>
+        UserProfileData getUserByName(string fname, string lname);
+
+        /// <summary>
+        /// Returns the current agent for a user searching by it's UUID
+        /// </summary>
+        /// <param name="user">The users UUID</param>
+        /// <returns>The current agent session</returns>
+        UserAgentData getAgentByUUID(LLUUID user);
+
+        /// <summary>
+        /// Returns the current session agent for a user searching by username
+        /// </summary>
+        /// <param name="name">The users account name</param>
+        /// <returns>The current agent session</returns>
+        UserAgentData getAgentByName(string name);
+
+        /// <summary>
+        /// Returns the current session agent for a user searching by username parts
+        /// </summary>
+        /// <param name="fname">The users first account name</param>
+        /// <param name="lname">The users account surname</param>
+        /// <returns>The current agent session</returns>
+        UserAgentData getAgentByName(string fname, string lname);
+
+        /// <summary>
+        /// Adds a new User profile to the database 
+        /// </summary>
+        /// <param name="user">UserProfile to add</param>
+        void addNewUserProfile(UserProfileData user);
+
+        /// <summary>
+        /// Adds a new agent to the database
+        /// </summary>
+        /// <param name="agent">The agent to add</param>
+        void addNewUserAgent(UserAgentData agent);
+
+        /// <summary>
+        /// Attempts to move currency units between accounts (NOT RELIABLE / TRUSTWORTHY. DONT TRY RUN YOUR OWN CURRENCY EXCHANGE WITH REAL VALUES)
+        /// </summary>
+        /// <param name="from">The account to transfer from</param>
+        /// <param name="to">The account to transfer to</param>
+        /// <param name="amount">The amount to transfer</param>
+        /// <returns>Successful?</returns>
+        bool moneyTransferRequest(LLUUID from, LLUUID to, uint amount);
+
+        /// <summary>
+        /// Attempts to move inventory between accounts, if inventory is copyable it will be copied into the target account.
+        /// </summary>
+        /// <param name="from">User to transfer from</param>
+        /// <param name="to">User to transfer to</param>
+        /// <param name="inventory">Specified inventory item</param>
+        /// <returns>Successful?</returns>
+        bool inventoryTransferRequest(LLUUID from, LLUUID to, LLUUID inventory);
+
+        /// <summary>
+        /// Returns the plugin version
+        /// </summary>
+        /// <returns>Plugin version in MAJOR.MINOR.REVISION.BUILD format</returns>
+        string getVersion();
+
+        /// <summary>
+        /// Returns the plugin name
+        /// </summary>
+        /// <returns>Plugin name, eg MySQL User Provider</returns>
+        string getName();
+
+        /// <summary>
+        /// Initialises the plugin (artificial constructor)
+        /// </summary>
+        void Initialise();
+    }
+}

+ 180 - 180
OpenSim/Framework/Data/UserProfileData.cs

@@ -1,180 +1,180 @@
-/*
-* Copyright (c) Contributors, http://www.openmetaverse.org/
-* See CONTRIBUTORS.TXT for a full list of copyright holders.
-*
-* Redistribution and use in source and binary forms, with or without
-* modification, are permitted provided that the following conditions are met:
-*     * Redistributions of source code must retain the above copyright
-*       notice, this list of conditions and the following disclaimer.
-*     * Redistributions in binary form must reproduce the above copyright
-*       notice, this list of conditions and the following disclaimer in the
-*       documentation and/or other materials provided with the distribution.
-*     * Neither the name of the OpenSim Project nor the
-*       names of its contributors may be used to endorse or promote products
-*       derived from this software without specific prior written permission.
-*
-* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS AND ANY
-* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
-* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-* 
-*/
-using System;
-using libsecondlife;
-
-namespace OpenSim.Framework.Data
-{
-    /// <summary>
-    /// Information about a particular user known to the userserver
-    /// </summary>
-    public class UserProfileData
-    {
-        /// <summary>
-        /// The ID value for this user
-        /// </summary>
-        public LLUUID UUID;
-
-        /// <summary>
-        /// The first component of a users account name
-        /// </summary>
-        public string username;
-        /// <summary>
-        /// The second component of a users account name
-        /// </summary>
-        public string surname;
-
-        /// <summary>
-        /// A salted hash containing the users password, in the format md5(md5(password) + ":" + salt)
-        /// </summary>
-        /// <remarks>This is double MD5'd because the client sends an unsalted MD5 to the loginserver</remarks>
-        public string passwordHash;
-        /// <summary>
-        /// The salt used for the users hash, should be 32 bytes or longer
-        /// </summary>
-        public string passwordSalt;
-
-        /// <summary>
-        /// The regionhandle of the users preffered home region. If multiple sims occupy the same spot, the grid may decide which region the user logs into
-        /// </summary>
-        public ulong homeRegion;
-        /// <summary>
-        /// The coordinates inside the region of the home location
-        /// </summary>
-        public LLVector3 homeLocation;
-        /// <summary>
-        /// Where the user will be looking when they rez.
-        /// </summary>
-        public LLVector3 homeLookAt;
-
-        /// <summary>
-        /// A UNIX Timestamp (seconds since epoch) for the users creation
-        /// </summary>
-        public int created;
-        /// <summary>
-        /// A UNIX Timestamp for the users last login date / time
-        /// </summary>
-        public int lastLogin;
-
-        /// <summary>
-        /// A URI to the users inventory server, used for foreigners and large grids
-        /// </summary>
-        public string userInventoryURI;
-        /// <summary>
-        /// A URI to the users asset server, used for foreigners and large grids.
-        /// </summary>
-        public string userAssetURI;
-
-        /// <summary>
-        /// A uint mask containing the "I can do" fields of the users profile
-        /// </summary>
-        public uint profileCanDoMask;
-        /// <summary>
-        /// A uint mask containing the "I want to do" part of the users profile
-        /// </summary>
-        public uint profileWantDoMask; // Profile window "I want to" mask
-
-        /// <summary>
-        /// The about text listed in a users profile.
-        /// </summary>
-        public string profileAboutText;
-        /// <summary>
-        /// The first life about text listed in a users profile
-        /// </summary>
-        public string profileFirstText;
-
-        /// <summary>
-        /// The profile image for an avatar stored on the asset server
-        /// </summary>
-        public LLUUID profileImage;
-        /// <summary>
-        /// The profile image for the users first life tab
-        /// </summary>
-        public LLUUID profileFirstImage;
-        /// <summary>
-        /// The users last registered agent (filled in on the user server)
-        /// </summary>
-        public UserAgentData currentAgent;
-    }
-
-    /// <summary>
-    /// Information about a users session
-    /// </summary>
-    public class UserAgentData
-    {
-        /// <summary>
-        /// The UUID of the users avatar (not the agent!)
-        /// </summary>
-        public LLUUID UUID;
-        /// <summary>
-        /// The IP address of the user
-        /// </summary>
-        public string agentIP = String.Empty;
-        /// <summary>
-        /// The port of the user
-        /// </summary>
-        public uint agentPort;
-        /// <summary>
-        /// Is the user online?
-        /// </summary>
-        public bool agentOnline;
-        /// <summary>
-        /// The session ID for the user (also the agent ID)
-        /// </summary>
-        public LLUUID sessionID;
-        /// <summary>
-        /// The "secure" session ID for the user
-        /// </summary>
-        /// <remarks>Not very secure. Dont rely on it for anything more than Linden Lab does.</remarks>
-        public LLUUID secureSessionID;
-        /// <summary>
-        /// The region the user logged into initially
-        /// </summary>
-        public LLUUID regionID;
-        /// <summary>
-        /// A unix timestamp from when the user logged in
-        /// </summary>
-        public int loginTime;
-        /// <summary>
-        /// When this agent expired and logged out, 0 if still online
-        /// </summary>
-        public int logoutTime;
-        /// <summary>
-        /// Current region the user is logged into
-        /// </summary>
-        public LLUUID currentRegion;
-        /// <summary>
-        /// Region handle of the current region the user is in
-        /// </summary>
-        public ulong currentHandle;
-        /// <summary>
-        /// The position of the user within the region
-        /// </summary>
-        public LLVector3 currentPos;
-    }
-}
+/*
+* Copyright (c) Contributors, http://www.openmetaverse.org/
+* See CONTRIBUTORS.TXT for a full list of copyright holders.
+*
+* Redistribution and use in source and binary forms, with or without
+* modification, are permitted provided that the following conditions are met:
+*     * Redistributions of source code must retain the above copyright
+*       notice, this list of conditions and the following disclaimer.
+*     * Redistributions in binary form must reproduce the above copyright
+*       notice, this list of conditions and the following disclaimer in the
+*       documentation and/or other materials provided with the distribution.
+*     * Neither the name of the OpenSim Project nor the
+*       names of its contributors may be used to endorse or promote products
+*       derived from this software without specific prior written permission.
+*
+* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS AND ANY
+* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
+* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+* 
+*/
+using System;
+using libsecondlife;
+
+namespace OpenSim.Framework.Data
+{
+    /// <summary>
+    /// Information about a particular user known to the userserver
+    /// </summary>
+    public class UserProfileData
+    {
+        /// <summary>
+        /// The ID value for this user
+        /// </summary>
+        public LLUUID UUID;
+
+        /// <summary>
+        /// The first component of a users account name
+        /// </summary>
+        public string username;
+        /// <summary>
+        /// The second component of a users account name
+        /// </summary>
+        public string surname;
+
+        /// <summary>
+        /// A salted hash containing the users password, in the format md5(md5(password) + ":" + salt)
+        /// </summary>
+        /// <remarks>This is double MD5'd because the client sends an unsalted MD5 to the loginserver</remarks>
+        public string passwordHash;
+        /// <summary>
+        /// The salt used for the users hash, should be 32 bytes or longer
+        /// </summary>
+        public string passwordSalt;
+
+        /// <summary>
+        /// The regionhandle of the users preffered home region. If multiple sims occupy the same spot, the grid may decide which region the user logs into
+        /// </summary>
+        public ulong homeRegion;
+        /// <summary>
+        /// The coordinates inside the region of the home location
+        /// </summary>
+        public LLVector3 homeLocation;
+        /// <summary>
+        /// Where the user will be looking when they rez.
+        /// </summary>
+        public LLVector3 homeLookAt;
+
+        /// <summary>
+        /// A UNIX Timestamp (seconds since epoch) for the users creation
+        /// </summary>
+        public int created;
+        /// <summary>
+        /// A UNIX Timestamp for the users last login date / time
+        /// </summary>
+        public int lastLogin;
+
+        /// <summary>
+        /// A URI to the users inventory server, used for foreigners and large grids
+        /// </summary>
+        public string userInventoryURI;
+        /// <summary>
+        /// A URI to the users asset server, used for foreigners and large grids.
+        /// </summary>
+        public string userAssetURI;
+
+        /// <summary>
+        /// A uint mask containing the "I can do" fields of the users profile
+        /// </summary>
+        public uint profileCanDoMask;
+        /// <summary>
+        /// A uint mask containing the "I want to do" part of the users profile
+        /// </summary>
+        public uint profileWantDoMask; // Profile window "I want to" mask
+
+        /// <summary>
+        /// The about text listed in a users profile.
+        /// </summary>
+        public string profileAboutText;
+        /// <summary>
+        /// The first life about text listed in a users profile
+        /// </summary>
+        public string profileFirstText;
+
+        /// <summary>
+        /// The profile image for an avatar stored on the asset server
+        /// </summary>
+        public LLUUID profileImage;
+        /// <summary>
+        /// The profile image for the users first life tab
+        /// </summary>
+        public LLUUID profileFirstImage;
+        /// <summary>
+        /// The users last registered agent (filled in on the user server)
+        /// </summary>
+        public UserAgentData currentAgent;
+    }
+
+    /// <summary>
+    /// Information about a users session
+    /// </summary>
+    public class UserAgentData
+    {
+        /// <summary>
+        /// The UUID of the users avatar (not the agent!)
+        /// </summary>
+        public LLUUID UUID;
+        /// <summary>
+        /// The IP address of the user
+        /// </summary>
+        public string agentIP = String.Empty;
+        /// <summary>
+        /// The port of the user
+        /// </summary>
+        public uint agentPort;
+        /// <summary>
+        /// Is the user online?
+        /// </summary>
+        public bool agentOnline;
+        /// <summary>
+        /// The session ID for the user (also the agent ID)
+        /// </summary>
+        public LLUUID sessionID;
+        /// <summary>
+        /// The "secure" session ID for the user
+        /// </summary>
+        /// <remarks>Not very secure. Dont rely on it for anything more than Linden Lab does.</remarks>
+        public LLUUID secureSessionID;
+        /// <summary>
+        /// The region the user logged into initially
+        /// </summary>
+        public LLUUID regionID;
+        /// <summary>
+        /// A unix timestamp from when the user logged in
+        /// </summary>
+        public int loginTime;
+        /// <summary>
+        /// When this agent expired and logged out, 0 if still online
+        /// </summary>
+        public int logoutTime;
+        /// <summary>
+        /// Current region the user is logged into
+        /// </summary>
+        public LLUUID currentRegion;
+        /// <summary>
+        /// Region handle of the current region the user is in
+        /// </summary>
+        public ulong currentHandle;
+        /// <summary>
+        /// The position of the user within the region
+        /// </summary>
+        public LLVector3 currentPos;
+    }
+}

+ 265 - 265
OpenSim/Framework/General/AgentInventory.cs

@@ -1,265 +1,265 @@
-/*
-* Copyright (c) Contributors, http://www.openmetaverse.org/
-* See CONTRIBUTORS.TXT for a full list of copyright holders.
-*
-* Redistribution and use in source and binary forms, with or without
-* modification, are permitted provided that the following conditions are met:
-*     * Redistributions of source code must retain the above copyright
-*       notice, this list of conditions and the following disclaimer.
-*     * Redistributions in binary form must reproduce the above copyright
-*       notice, this list of conditions and the following disclaimer in the
-*       documentation and/or other materials provided with the distribution.
-*     * Neither the name of the OpenSim Project nor the
-*       names of its contributors may be used to endorse or promote products
-*       derived from this software without specific prior written permission.
-*
-* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS AND ANY
-* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
-* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-* 
-*/
-using System.Collections.Generic;
-using libsecondlife;
-using libsecondlife.Packets;
-using OpenSim.Framework.Types;
-using OpenSim.Framework.Utilities;
-
-namespace OpenSim.Framework.Inventory
-{
-    public class AgentInventory
-    {
-        //Holds the local copy of Inventory info for a agent
-        public Dictionary<LLUUID, InventoryFolder> InventoryFolders;
-        public Dictionary<LLUUID, InventoryItem> InventoryItems;
-        public InventoryFolder InventoryRoot;
-        public int LastCached;  //maybe used by opensim app, time this was last stored/compared to user server
-        public LLUUID AgentID;
-        public AvatarWearable[] Wearables;
-
-        public AgentInventory()
-        {
-            InventoryFolders = new Dictionary<LLUUID, InventoryFolder>();
-            InventoryItems = new Dictionary<LLUUID, InventoryItem>();
-            this.Initialise();
-        }
-
-        public virtual void Initialise()
-        {
-            Wearables = new AvatarWearable[13]; //should be 12 of these
-            for (int i = 0; i < 13; i++)
-            {
-                Wearables[i] = new AvatarWearable();
-            }
-      
-        }
-
-        public bool CreateNewFolder(LLUUID folderID, ushort type)
-        {
-            InventoryFolder Folder = new InventoryFolder();
-            Folder.FolderID = folderID;
-            Folder.OwnerID = this.AgentID;
-            Folder.DefaultType = type;
-            this.InventoryFolders.Add(Folder.FolderID, Folder);
-            return (true);
-        }
-
-        public void CreateRootFolder(LLUUID newAgentID, bool createTextures)
-        {
-            this.AgentID = newAgentID;
-            InventoryRoot = new InventoryFolder();
-            InventoryRoot.FolderID = LLUUID.Random();
-            InventoryRoot.ParentID = new LLUUID();
-            InventoryRoot.Version = 1;
-            InventoryRoot.DefaultType = 8;
-            InventoryRoot.OwnerID = this.AgentID;
-            InventoryRoot.FolderName = "My Inventory";
-            InventoryFolders.Add(InventoryRoot.FolderID, InventoryRoot);
-            InventoryRoot.OwnerID = this.AgentID;
-            if (createTextures)
-            {
-                this.CreateNewFolder(LLUUID.Random(), 0, "Textures", InventoryRoot.FolderID);
-            }
-        }
-
-        public bool CreateNewFolder(LLUUID folderID, ushort type, string folderName)
-        {
-            InventoryFolder Folder = new InventoryFolder();
-            Folder.FolderID = folderID;
-            Folder.OwnerID = this.AgentID;
-            Folder.DefaultType = type;
-            Folder.FolderName = folderName;
-            this.InventoryFolders.Add(Folder.FolderID, Folder);
-
-            return (true);
-        }
-
-        public bool CreateNewFolder(LLUUID folderID, ushort type, string folderName, LLUUID parent)
-        {
-            if (!this.InventoryFolders.ContainsKey(folderID))
-            {
-                System.Console.WriteLine("creating new folder called " + folderName + " in agents inventory");
-                InventoryFolder Folder = new InventoryFolder();
-                Folder.FolderID = folderID;
-                Folder.OwnerID = this.AgentID;
-                Folder.DefaultType = type;
-                Folder.FolderName = folderName;
-                Folder.ParentID = parent;
-                this.InventoryFolders.Add(Folder.FolderID, Folder);
-            }
-
-            return (true);
-        }
-
-        public bool HasFolder(LLUUID folderID)
-        {
-            if (this.InventoryFolders.ContainsKey(folderID))
-            {
-                return true;
-            }
-            return false;
-        }
-
-        public LLUUID GetFolderID(string folderName)
-        {
-            foreach (InventoryFolder inv in this.InventoryFolders.Values)
-            {
-                if (inv.FolderName == folderName)
-                {
-                    return inv.FolderID;
-                }
-            }
-
-            return LLUUID.Zero;
-        }
-
-        public bool UpdateItemAsset(LLUUID itemID, AssetBase asset)
-        {
-            if(this.InventoryItems.ContainsKey(itemID))
-            {
-                InventoryItem Item = this.InventoryItems[itemID];
-                Item.AssetID = asset.FullID;
-                System.Console.WriteLine("updated inventory item " + itemID.ToStringHyphenated() + " so it now is set to asset " + asset.FullID.ToStringHyphenated());
-                //TODO need to update the rest of the info
-            }
-            return true;
-        }
-
-        public bool UpdateItemDetails(LLUUID itemID, UpdateInventoryItemPacket.InventoryDataBlock packet)
-        {
-            System.Console.WriteLine("updating inventory item details");
-            if (this.InventoryItems.ContainsKey(itemID))
-            {
-                System.Console.WriteLine("changing name to "+ Util.FieldToString(packet.Name));
-                InventoryItem Item = this.InventoryItems[itemID];
-                Item.Name = Util.FieldToString(packet.Name);
-                System.Console.WriteLine("updated inventory item " + itemID.ToStringHyphenated());
-                //TODO need to update the rest of the info
-            }
-            return true;
-        }
-
-        public LLUUID AddToInventory(LLUUID folderID, AssetBase asset)
-        {
-            if (this.InventoryFolders.ContainsKey(folderID))
-            {
-                LLUUID NewItemID = LLUUID.Random();
-
-                InventoryItem Item = new InventoryItem();
-                Item.FolderID = folderID;
-                Item.OwnerID = AgentID;
-                Item.AssetID = asset.FullID;
-                Item.ItemID = NewItemID;
-                Item.Type = asset.Type;
-                Item.Name = asset.Name;
-                Item.Description = asset.Description;
-                Item.InvType = asset.InvType;
-                this.InventoryItems.Add(Item.ItemID, Item);
-                InventoryFolder Folder = InventoryFolders[Item.FolderID];
-                Folder.Items.Add(Item);
-                return (Item.ItemID);
-            }
-            else
-            {
-                return (null);
-            }
-        }
-
-        public bool DeleteFromInventory(LLUUID itemID)
-        {
-            bool res = false;
-            if (this.InventoryItems.ContainsKey(itemID))
-            {
-                InventoryItem item = this.InventoryItems[itemID];
-                this.InventoryItems.Remove(itemID);
-                foreach (InventoryFolder fold in InventoryFolders.Values)
-                {
-                    if (fold.Items.Contains(item))
-                    {
-                        fold.Items.Remove(item);
-                        break;
-                    }
-                }
-                res = true;
-                
-            }
-            return res;
-        }
-    }
-
-    public class InventoryFolder
-    {
-        public List<InventoryItem> Items;
-        //public List<InventoryFolder> Subfolders;
-        public LLUUID FolderID;
-        public LLUUID OwnerID;
-        public LLUUID ParentID = LLUUID.Zero;
-        public string FolderName;
-        public ushort DefaultType;
-        public ushort Version;
-
-        public InventoryFolder()
-        {
-            Items = new List<InventoryItem>();
-            //Subfolders = new List<InventoryFolder>();
-        }
-
-    }
-
-    public class InventoryItem
-    {
-        public LLUUID FolderID;
-        public LLUUID OwnerID;
-        public LLUUID ItemID;
-        public LLUUID AssetID;
-        public LLUUID CreatorID;
-        public sbyte InvType;
-        public sbyte Type;
-        public string Name ="";
-        public string Description;
-
-        public InventoryItem()
-        {
-            this.CreatorID = LLUUID.Zero;
-        }
-
-        public string ExportString()
-        {
-            string typ = "notecard";
-            string result = "";
-            result += "\tinv_object\t0\n\t{\n";
-            result += "\t\tobj_id\t%s\n";
-            result +=  "\t\tparent_id\t"+ ItemID.ToString() +"\n";
-            result += "\t\ttype\t"+ typ +"\n";
-            result += "\t\tname\t" + Name+"|\n";
-            result += "\t}\n";
-            return result;
-        }
-    }
-}
+/*
+* Copyright (c) Contributors, http://www.openmetaverse.org/
+* See CONTRIBUTORS.TXT for a full list of copyright holders.
+*
+* Redistribution and use in source and binary forms, with or without
+* modification, are permitted provided that the following conditions are met:
+*     * Redistributions of source code must retain the above copyright
+*       notice, this list of conditions and the following disclaimer.
+*     * Redistributions in binary form must reproduce the above copyright
+*       notice, this list of conditions and the following disclaimer in the
+*       documentation and/or other materials provided with the distribution.
+*     * Neither the name of the OpenSim Project nor the
+*       names of its contributors may be used to endorse or promote products
+*       derived from this software without specific prior written permission.
+*
+* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS AND ANY
+* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
+* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+* 
+*/
+using System.Collections.Generic;
+using libsecondlife;
+using libsecondlife.Packets;
+using OpenSim.Framework.Types;
+using OpenSim.Framework.Utilities;
+
+namespace OpenSim.Framework.Inventory
+{
+    public class AgentInventory
+    {
+        //Holds the local copy of Inventory info for a agent
+        public Dictionary<LLUUID, InventoryFolder> InventoryFolders;
+        public Dictionary<LLUUID, InventoryItem> InventoryItems;
+        public InventoryFolder InventoryRoot;
+        public int LastCached;  //maybe used by opensim app, time this was last stored/compared to user server
+        public LLUUID AgentID;
+        public AvatarWearable[] Wearables;
+
+        public AgentInventory()
+        {
+            InventoryFolders = new Dictionary<LLUUID, InventoryFolder>();
+            InventoryItems = new Dictionary<LLUUID, InventoryItem>();
+            this.Initialise();
+        }
+
+        public virtual void Initialise()
+        {
+            Wearables = new AvatarWearable[13]; //should be 12 of these
+            for (int i = 0; i < 13; i++)
+            {
+                Wearables[i] = new AvatarWearable();
+            }
+      
+        }
+
+        public bool CreateNewFolder(LLUUID folderID, ushort type)
+        {
+            InventoryFolder Folder = new InventoryFolder();
+            Folder.FolderID = folderID;
+            Folder.OwnerID = this.AgentID;
+            Folder.DefaultType = type;
+            this.InventoryFolders.Add(Folder.FolderID, Folder);
+            return (true);
+        }
+
+        public void CreateRootFolder(LLUUID newAgentID, bool createTextures)
+        {
+            this.AgentID = newAgentID;
+            InventoryRoot = new InventoryFolder();
+            InventoryRoot.FolderID = LLUUID.Random();
+            InventoryRoot.ParentID = new LLUUID();
+            InventoryRoot.Version = 1;
+            InventoryRoot.DefaultType = 8;
+            InventoryRoot.OwnerID = this.AgentID;
+            InventoryRoot.FolderName = "My Inventory";
+            InventoryFolders.Add(InventoryRoot.FolderID, InventoryRoot);
+            InventoryRoot.OwnerID = this.AgentID;
+            if (createTextures)
+            {
+                this.CreateNewFolder(LLUUID.Random(), 0, "Textures", InventoryRoot.FolderID);
+            }
+        }
+
+        public bool CreateNewFolder(LLUUID folderID, ushort type, string folderName)
+        {
+            InventoryFolder Folder = new InventoryFolder();
+            Folder.FolderID = folderID;
+            Folder.OwnerID = this.AgentID;
+            Folder.DefaultType = type;
+            Folder.FolderName = folderName;
+            this.InventoryFolders.Add(Folder.FolderID, Folder);
+
+            return (true);
+        }
+
+        public bool CreateNewFolder(LLUUID folderID, ushort type, string folderName, LLUUID parent)
+        {
+            if (!this.InventoryFolders.ContainsKey(folderID))
+            {
+                System.Console.WriteLine("creating new folder called " + folderName + " in agents inventory");
+                InventoryFolder Folder = new InventoryFolder();
+                Folder.FolderID = folderID;
+                Folder.OwnerID = this.AgentID;
+                Folder.DefaultType = type;
+                Folder.FolderName = folderName;
+                Folder.ParentID = parent;
+                this.InventoryFolders.Add(Folder.FolderID, Folder);
+            }
+
+            return (true);
+        }
+
+        public bool HasFolder(LLUUID folderID)
+        {
+            if (this.InventoryFolders.ContainsKey(folderID))
+            {
+                return true;
+            }
+            return false;
+        }
+
+        public LLUUID GetFolderID(string folderName)
+        {
+            foreach (InventoryFolder inv in this.InventoryFolders.Values)
+            {
+                if (inv.FolderName == folderName)
+                {
+                    return inv.FolderID;
+                }
+            }
+
+            return LLUUID.Zero;
+        }
+
+        public bool UpdateItemAsset(LLUUID itemID, AssetBase asset)
+        {
+            if(this.InventoryItems.ContainsKey(itemID))
+            {
+                InventoryItem Item = this.InventoryItems[itemID];
+                Item.AssetID = asset.FullID;
+                System.Console.WriteLine("updated inventory item " + itemID.ToStringHyphenated() + " so it now is set to asset " + asset.FullID.ToStringHyphenated());
+                //TODO need to update the rest of the info
+            }
+            return true;
+        }
+
+        public bool UpdateItemDetails(LLUUID itemID, UpdateInventoryItemPacket.InventoryDataBlock packet)
+        {
+            System.Console.WriteLine("updating inventory item details");
+            if (this.InventoryItems.ContainsKey(itemID))
+            {
+                System.Console.WriteLine("changing name to "+ Util.FieldToString(packet.Name));
+                InventoryItem Item = this.InventoryItems[itemID];
+                Item.Name = Util.FieldToString(packet.Name);
+                System.Console.WriteLine("updated inventory item " + itemID.ToStringHyphenated());
+                //TODO need to update the rest of the info
+            }
+            return true;
+        }
+
+        public LLUUID AddToInventory(LLUUID folderID, AssetBase asset)
+        {
+            if (this.InventoryFolders.ContainsKey(folderID))
+            {
+                LLUUID NewItemID = LLUUID.Random();
+
+                InventoryItem Item = new InventoryItem();
+                Item.FolderID = folderID;
+                Item.OwnerID = AgentID;
+                Item.AssetID = asset.FullID;
+                Item.ItemID = NewItemID;
+                Item.Type = asset.Type;
+                Item.Name = asset.Name;
+                Item.Description = asset.Description;
+                Item.InvType = asset.InvType;
+                this.InventoryItems.Add(Item.ItemID, Item);
+                InventoryFolder Folder = InventoryFolders[Item.FolderID];
+                Folder.Items.Add(Item);
+                return (Item.ItemID);
+            }
+            else
+            {
+                return (null);
+            }
+        }
+
+        public bool DeleteFromInventory(LLUUID itemID)
+        {
+            bool res = false;
+            if (this.InventoryItems.ContainsKey(itemID))
+            {
+                InventoryItem item = this.InventoryItems[itemID];
+                this.InventoryItems.Remove(itemID);
+                foreach (InventoryFolder fold in InventoryFolders.Values)
+                {
+                    if (fold.Items.Contains(item))
+                    {
+                        fold.Items.Remove(item);
+                        break;
+                    }
+                }
+                res = true;
+                
+            }
+            return res;
+        }
+    }
+
+    public class InventoryFolder
+    {
+        public List<InventoryItem> Items;
+        //public List<InventoryFolder> Subfolders;
+        public LLUUID FolderID;
+        public LLUUID OwnerID;
+        public LLUUID ParentID = LLUUID.Zero;
+        public string FolderName;
+        public ushort DefaultType;
+        public ushort Version;
+
+        public InventoryFolder()
+        {
+            Items = new List<InventoryItem>();
+            //Subfolders = new List<InventoryFolder>();
+        }
+
+    }
+
+    public class InventoryItem
+    {
+        public LLUUID FolderID;
+        public LLUUID OwnerID;
+        public LLUUID ItemID;
+        public LLUUID AssetID;
+        public LLUUID CreatorID;
+        public sbyte InvType;
+        public sbyte Type;
+        public string Name ="";
+        public string Description;
+
+        public InventoryItem()
+        {
+            this.CreatorID = LLUUID.Zero;
+        }
+
+        public string ExportString()
+        {
+            string typ = "notecard";
+            string result = "";
+            result += "\tinv_object\t0\n\t{\n";
+            result += "\t\tobj_id\t%s\n";
+            result +=  "\t\tparent_id\t"+ ItemID.ToString() +"\n";
+            result += "\t\ttype\t"+ typ +"\n";
+            result += "\t\tname\t" + Name+"|\n";
+            result += "\t}\n";
+            return result;
+        }
+    }
+}

+ 129 - 129
OpenSim/Framework/General/AuthenticateSessionBase.cs

@@ -1,130 +1,130 @@
-/*
-* Copyright (c) Contributors, http://www.openmetaverse.org/
-* See CONTRIBUTORS.TXT for a full list of copyright holders.
-*
-* Redistribution and use in source and binary forms, with or without
-* modification, are permitted provided that the following conditions are met:
-*     * Redistributions of source code must retain the above copyright
-*       notice, this list of conditions and the following disclaimer.
-*     * Redistributions in binary form must reproduce the above copyright
-*       notice, this list of conditions and the following disclaimer in the
-*       documentation and/or other materials provided with the distribution.
-*     * Neither the name of the OpenSim Project nor the
-*       names of its contributors may be used to endorse or promote products
-*       derived from this software without specific prior written permission.
-*
-* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS AND ANY
-* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
-* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-* 
-*/
-using System.Collections.Generic;
-using libsecondlife;
-using OpenSim.Framework.Interfaces;
-using OpenSim.Framework.Types;
-
-namespace OpenSim.Framework
-{
-    public class AuthenticateSessionsBase
-    {
-        public Dictionary<uint, AgentCircuitData> AgentCircuits = new Dictionary<uint, AgentCircuitData>();
-
-        public AuthenticateSessionsBase()
-        {
-
-        }
-
-        public virtual AuthenticateResponse AuthenticateSession(LLUUID sessionID, LLUUID agentID, uint circuitcode)
-        {
-            AgentCircuitData validcircuit = null;
-            if (this.AgentCircuits.ContainsKey(circuitcode))
-            {
-                validcircuit = this.AgentCircuits[circuitcode];
-            }
-            AuthenticateResponse user = new AuthenticateResponse();
-            if (validcircuit == null)
-            {
-                //don't have this circuit code in our list
-                user.Authorised = false;
-                return (user);
-            }
-
-            if ((sessionID == validcircuit.SessionID) && (agentID == validcircuit.AgentID))
-            {
-                user.Authorised = true;
-                user.LoginInfo = new Login();
-                user.LoginInfo.Agent = agentID;
-                user.LoginInfo.Session = sessionID;
-                user.LoginInfo.SecureSession = validcircuit.SecureSessionID;
-                user.LoginInfo.First = validcircuit.firstname;
-                user.LoginInfo.Last = validcircuit.lastname;
-                user.LoginInfo.InventoryFolder = validcircuit.InventoryFolder;
-                user.LoginInfo.BaseFolder = validcircuit.BaseFolder;
-            }
-            else
-            {
-                // Invalid
-                user.Authorised = false;
-            }
-
-            return (user);
-        }
-
-        public virtual void AddNewCircuit(uint circuitCode, AgentCircuitData agentData)
-        {
-            if (this.AgentCircuits.ContainsKey(circuitCode))
-            {
-                this.AgentCircuits[circuitCode] = agentData;
-            }
-            else
-            {
-                this.AgentCircuits.Add(circuitCode, agentData);
-            }
-        }
-
-        public LLVector3 GetPosition(uint circuitCode)
-        {
-            LLVector3 vec = new LLVector3();
-            if (this.AgentCircuits.ContainsKey(circuitCode))
-            {
-                vec = this.AgentCircuits[circuitCode].startpos;
-            }
-            return vec;
-        }
-
-        public void UpdateAgentData(AgentCircuitData agentData)
-        {
-            if (this.AgentCircuits.ContainsKey((uint)agentData.circuitcode))
-            {
-                this.AgentCircuits[(uint)agentData.circuitcode].firstname = agentData.firstname;
-                this.AgentCircuits[(uint)agentData.circuitcode].lastname = agentData.lastname;
-                this.AgentCircuits[(uint)agentData.circuitcode].startpos = agentData.startpos;
-               // Console.WriteLine("update user start pos is " + agentData.startpos.X + " , " + agentData.startpos.Y + " , " + agentData.startpos.Z);
-            }
-        }
-
-        public void UpdateAgentChildStatus(uint circuitcode, bool childstatus)
-        {
-            if (this.AgentCircuits.ContainsKey(circuitcode))
-            {
-                this.AgentCircuits[circuitcode].child = childstatus;
-            }
-        }
-
-        public bool GetAgentChildStatus(uint circuitcode)
-        {
-            if (this.AgentCircuits.ContainsKey(circuitcode))
-            {
-                return this.AgentCircuits[circuitcode].child;
-            }
-            return false;
-        }
-    }
+/*
+* Copyright (c) Contributors, http://www.openmetaverse.org/
+* See CONTRIBUTORS.TXT for a full list of copyright holders.
+*
+* Redistribution and use in source and binary forms, with or without
+* modification, are permitted provided that the following conditions are met:
+*     * Redistributions of source code must retain the above copyright
+*       notice, this list of conditions and the following disclaimer.
+*     * Redistributions in binary form must reproduce the above copyright
+*       notice, this list of conditions and the following disclaimer in the
+*       documentation and/or other materials provided with the distribution.
+*     * Neither the name of the OpenSim Project nor the
+*       names of its contributors may be used to endorse or promote products
+*       derived from this software without specific prior written permission.
+*
+* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS AND ANY
+* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
+* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+* 
+*/
+using System.Collections.Generic;
+using libsecondlife;
+using OpenSim.Framework.Interfaces;
+using OpenSim.Framework.Types;
+
+namespace OpenSim.Framework
+{
+    public class AuthenticateSessionsBase
+    {
+        public Dictionary<uint, AgentCircuitData> AgentCircuits = new Dictionary<uint, AgentCircuitData>();
+
+        public AuthenticateSessionsBase()
+        {
+
+        }
+
+        public virtual AuthenticateResponse AuthenticateSession(LLUUID sessionID, LLUUID agentID, uint circuitcode)
+        {
+            AgentCircuitData validcircuit = null;
+            if (this.AgentCircuits.ContainsKey(circuitcode))
+            {
+                validcircuit = this.AgentCircuits[circuitcode];
+            }
+            AuthenticateResponse user = new AuthenticateResponse();
+            if (validcircuit == null)
+            {
+                //don't have this circuit code in our list
+                user.Authorised = false;
+                return (user);
+            }
+
+            if ((sessionID == validcircuit.SessionID) && (agentID == validcircuit.AgentID))
+            {
+                user.Authorised = true;
+                user.LoginInfo = new Login();
+                user.LoginInfo.Agent = agentID;
+                user.LoginInfo.Session = sessionID;
+                user.LoginInfo.SecureSession = validcircuit.SecureSessionID;
+                user.LoginInfo.First = validcircuit.firstname;
+                user.LoginInfo.Last = validcircuit.lastname;
+                user.LoginInfo.InventoryFolder = validcircuit.InventoryFolder;
+                user.LoginInfo.BaseFolder = validcircuit.BaseFolder;
+            }
+            else
+            {
+                // Invalid
+                user.Authorised = false;
+            }
+
+            return (user);
+        }
+
+        public virtual void AddNewCircuit(uint circuitCode, AgentCircuitData agentData)
+        {
+            if (this.AgentCircuits.ContainsKey(circuitCode))
+            {
+                this.AgentCircuits[circuitCode] = agentData;
+            }
+            else
+            {
+                this.AgentCircuits.Add(circuitCode, agentData);
+            }
+        }
+
+        public LLVector3 GetPosition(uint circuitCode)
+        {
+            LLVector3 vec = new LLVector3();
+            if (this.AgentCircuits.ContainsKey(circuitCode))
+            {
+                vec = this.AgentCircuits[circuitCode].startpos;
+            }
+            return vec;
+        }
+
+        public void UpdateAgentData(AgentCircuitData agentData)
+        {
+            if (this.AgentCircuits.ContainsKey((uint)agentData.circuitcode))
+            {
+                this.AgentCircuits[(uint)agentData.circuitcode].firstname = agentData.firstname;
+                this.AgentCircuits[(uint)agentData.circuitcode].lastname = agentData.lastname;
+                this.AgentCircuits[(uint)agentData.circuitcode].startpos = agentData.startpos;
+               // Console.WriteLine("update user start pos is " + agentData.startpos.X + " , " + agentData.startpos.Y + " , " + agentData.startpos.Z);
+            }
+        }
+
+        public void UpdateAgentChildStatus(uint circuitcode, bool childstatus)
+        {
+            if (this.AgentCircuits.ContainsKey(circuitcode))
+            {
+                this.AgentCircuits[circuitcode].child = childstatus;
+            }
+        }
+
+        public bool GetAgentChildStatus(uint circuitcode)
+        {
+            if (this.AgentCircuits.ContainsKey(circuitcode))
+            {
+                return this.AgentCircuits[circuitcode].child;
+            }
+            return false;
+        }
+    }
 }

+ 58 - 58
OpenSim/Framework/General/BlockingQueue.cs

@@ -1,58 +1,58 @@
-/*
-* Copyright (c) Contributors, http://www.openmetaverse.org/
-* See CONTRIBUTORS.TXT for a full list of copyright holders.
-*
-* Redistribution and use in source and binary forms, with or without
-* modification, are permitted provided that the following conditions are met:
-*     * Redistributions of source code must retain the above copyright
-*       notice, this list of conditions and the following disclaimer.
-*     * Redistributions in binary form must reproduce the above copyright
-*       notice, this list of conditions and the following disclaimer in the
-*       documentation and/or other materials provided with the distribution.
-*     * Neither the name of the OpenSim Project nor the
-*       names of its contributors may be used to endorse or promote products
-*       derived from this software without specific prior written permission.
-*
-* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS AND ANY
-* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
-* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-* 
-*/
-using System.Collections.Generic;
-using System.Threading;
-
-namespace OpenSim.Framework.Utilities
-{
-    public class BlockingQueue<T>
-    {
-        private Queue<T> _queue = new Queue<T>();
-        private object _queueSync = new object();
-
-        public void Enqueue(T value)
-        {
-            lock (_queueSync)
-            {
-                _queue.Enqueue(value);
-                Monitor.Pulse(_queueSync);
-            }
-        }
-
-        public T Dequeue()
-        {
-            lock (_queueSync)
-            {
-                if (_queue.Count < 1)
-                    Monitor.Wait(_queueSync);
-
-                return _queue.Dequeue();
-            }
-        }
-    }
-}
+/*
+* Copyright (c) Contributors, http://www.openmetaverse.org/
+* See CONTRIBUTORS.TXT for a full list of copyright holders.
+*
+* Redistribution and use in source and binary forms, with or without
+* modification, are permitted provided that the following conditions are met:
+*     * Redistributions of source code must retain the above copyright
+*       notice, this list of conditions and the following disclaimer.
+*     * Redistributions in binary form must reproduce the above copyright
+*       notice, this list of conditions and the following disclaimer in the
+*       documentation and/or other materials provided with the distribution.
+*     * Neither the name of the OpenSim Project nor the
+*       names of its contributors may be used to endorse or promote products
+*       derived from this software without specific prior written permission.
+*
+* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS AND ANY
+* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
+* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+* 
+*/
+using System.Collections.Generic;
+using System.Threading;
+
+namespace OpenSim.Framework.Utilities
+{
+    public class BlockingQueue<T>
+    {
+        private Queue<T> _queue = new Queue<T>();
+        private object _queueSync = new object();
+
+        public void Enqueue(T value)
+        {
+            lock (_queueSync)
+            {
+                _queue.Enqueue(value);
+                Monitor.Pulse(_queueSync);
+            }
+        }
+
+        public T Dequeue()
+        {
+            lock (_queueSync)
+            {
+                if (_queue.Count < 1)
+                    Monitor.Wait(_queueSync);
+
+                return _queue.Dequeue();
+            }
+        }
+    }
+}

+ 36 - 36
OpenSim/Framework/General/ClientManager.cs

@@ -1,36 +1,36 @@
-using System;
-using System.Collections.Generic;
-using System.Text;
-using OpenSim.Framework.Interfaces;
-
-namespace OpenSim.Framework
-{
-    public delegate void ForEachClientDelegate( IClientAPI client );
-    public class ClientManager
-    {
-        private Dictionary<uint, IClientAPI> m_clients;
-                
-        public void ForEachClient(ForEachClientDelegate whatToDo)
-        {
-            foreach (IClientAPI client in m_clients.Values)
-            {
-                whatToDo(client);
-            }
-        }
-        
-        public ClientManager()
-        {
-            m_clients = new Dictionary<uint, IClientAPI>();
-        }
-
-	public void Remove(uint id)
-	{
-            m_clients.Remove(id);
-	}
-
-        public void Add(uint id, IClientAPI client )
-        {
-            m_clients.Add( id, client );
-        }
-    }
-}
+using System;
+using System.Collections.Generic;
+using System.Text;
+using OpenSim.Framework.Interfaces;
+
+namespace OpenSim.Framework
+{
+    public delegate void ForEachClientDelegate( IClientAPI client );
+    public class ClientManager
+    {
+        private Dictionary<uint, IClientAPI> m_clients;
+                
+        public void ForEachClient(ForEachClientDelegate whatToDo)
+        {
+            foreach (IClientAPI client in m_clients.Values)
+            {
+                whatToDo(client);
+            }
+        }
+        
+        public ClientManager()
+        {
+            m_clients = new Dictionary<uint, IClientAPI>();
+        }
+
+	public void Remove(uint id)
+	{
+            m_clients.Remove(id);
+	}
+
+        public void Add(uint id, IClientAPI client )
+        {
+            m_clients.Add( id, client );
+        }
+    }
+}

+ 46 - 46
OpenSim/Framework/General/IRegionCommsListener.cs

@@ -1,46 +1,46 @@
-/*
-* Copyright (c) Contributors, http://www.openmetaverse.org/
-* See CONTRIBUTORS.TXT for a full list of copyright holders.
-*
-* Redistribution and use in source and binary forms, with or without
-* modification, are permitted provided that the following conditions are met:
-*     * Redistributions of source code must retain the above copyright
-*       notice, this list of conditions and the following disclaimer.
-*     * Redistributions in binary form must reproduce the above copyright
-*       notice, this list of conditions and the following disclaimer in the
-*       documentation and/or other materials provided with the distribution.
-*     * Neither the name of the OpenSim Project nor the
-*       names of its contributors may be used to endorse or promote products
-*       derived from this software without specific prior written permission.
-*
-* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS AND ANY
-* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
-* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-* 
-*/
-using System.Collections.Generic;
-using libsecondlife;
-using OpenSim.Framework.Interfaces;
-using OpenSim.Framework.Types;
-
-namespace OpenSim.Framework
-{
-    public delegate void ExpectUserDelegate(ulong regionHandle, AgentCircuitData agent);
-    public delegate void UpdateNeighbours(List<RegionInfo> neighbours);
-    public delegate void AgentCrossing(ulong regionHandle, LLUUID agentID, LLVector3 position);
-
-    public interface IRegionCommsListener
-    {
-        event ExpectUserDelegate OnExpectUser;
-        event GenericCall2 OnExpectChildAgent;
-        event AgentCrossing OnAvatarCrossingIntoRegion;
-        event UpdateNeighbours OnNeighboursUpdate;
-    }
-}
+/*
+* Copyright (c) Contributors, http://www.openmetaverse.org/
+* See CONTRIBUTORS.TXT for a full list of copyright holders.
+*
+* Redistribution and use in source and binary forms, with or without
+* modification, are permitted provided that the following conditions are met:
+*     * Redistributions of source code must retain the above copyright
+*       notice, this list of conditions and the following disclaimer.
+*     * Redistributions in binary form must reproduce the above copyright
+*       notice, this list of conditions and the following disclaimer in the
+*       documentation and/or other materials provided with the distribution.
+*     * Neither the name of the OpenSim Project nor the
+*       names of its contributors may be used to endorse or promote products
+*       derived from this software without specific prior written permission.
+*
+* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS AND ANY
+* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
+* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+* 
+*/
+using System.Collections.Generic;
+using libsecondlife;
+using OpenSim.Framework.Interfaces;
+using OpenSim.Framework.Types;
+
+namespace OpenSim.Framework
+{
+    public delegate void ExpectUserDelegate(ulong regionHandle, AgentCircuitData agent);
+    public delegate void UpdateNeighbours(List<RegionInfo> neighbours);
+    public delegate void AgentCrossing(ulong regionHandle, LLUUID agentID, LLVector3 position);
+
+    public interface IRegionCommsListener
+    {
+        event ExpectUserDelegate OnExpectUser;
+        event GenericCall2 OnExpectChildAgent;
+        event AgentCrossing OnAvatarCrossingIntoRegion;
+        event UpdateNeighbours OnNeighboursUpdate;
+    }
+}

+ 43 - 43
OpenSim/Framework/General/Interfaces/AuthenticateResponse.cs

@@ -1,43 +1,43 @@
-/*
-* Copyright (c) Contributors, http://www.openmetaverse.org/
-* See CONTRIBUTORS.TXT for a full list of copyright holders.
-*
-* Redistribution and use in source and binary forms, with or without
-* modification, are permitted provided that the following conditions are met:
-*     * Redistributions of source code must retain the above copyright
-*       notice, this list of conditions and the following disclaimer.
-*     * Redistributions in binary form must reproduce the above copyright
-*       notice, this list of conditions and the following disclaimer in the
-*       documentation and/or other materials provided with the distribution.
-*     * Neither the name of the OpenSim Project nor the
-*       names of its contributors may be used to endorse or promote products
-*       derived from this software without specific prior written permission.
-*
-* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS AND ANY
-* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
-* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-* 
-*/
-using OpenSim.Framework.Types;
-
-namespace OpenSim.Framework.Interfaces
-{
-    public class AuthenticateResponse
-    {
-        public bool Authorised;
-        public Login LoginInfo;
-
-        public AuthenticateResponse()
-        {
-
-        }
-
-    }
-}
+/*
+* Copyright (c) Contributors, http://www.openmetaverse.org/
+* See CONTRIBUTORS.TXT for a full list of copyright holders.
+*
+* Redistribution and use in source and binary forms, with or without
+* modification, are permitted provided that the following conditions are met:
+*     * Redistributions of source code must retain the above copyright
+*       notice, this list of conditions and the following disclaimer.
+*     * Redistributions in binary form must reproduce the above copyright
+*       notice, this list of conditions and the following disclaimer in the
+*       documentation and/or other materials provided with the distribution.
+*     * Neither the name of the OpenSim Project nor the
+*       names of its contributors may be used to endorse or promote products
+*       derived from this software without specific prior written permission.
+*
+* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS AND ANY
+* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
+* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+* 
+*/
+using OpenSim.Framework.Types;
+
+namespace OpenSim.Framework.Interfaces
+{
+    public class AuthenticateResponse
+    {
+        public bool Authorised;
+        public Login LoginInfo;
+
+        public AuthenticateResponse()
+        {
+
+        }
+
+    }
+}

+ 38 - 38
OpenSim/Framework/General/Interfaces/Config/IGenericConfig.cs

@@ -1,38 +1,38 @@
-/*
-* Copyright (c) Contributors, http://www.openmetaverse.org/
-* See CONTRIBUTORS.TXT for a full list of copyright holders.
-*
-* Redistribution and use in source and binary forms, with or without
-* modification, are permitted provided that the following conditions are met:
-*     * Redistributions of source code must retain the above copyright
-*       notice, this list of conditions and the following disclaimer.
-*     * Redistributions in binary form must reproduce the above copyright
-*       notice, this list of conditions and the following disclaimer in the
-*       documentation and/or other materials provided with the distribution.
-*     * Neither the name of the OpenSim Project nor the
-*       names of its contributors may be used to endorse or promote products
-*       derived from this software without specific prior written permission.
-*
-* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS AND ANY
-* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
-* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-* 
-*/
-namespace OpenSim.Framework.Interfaces
-{
-    public interface IGenericConfig
-    {
-        void LoadData();
-        string GetAttribute(string attributeName);
-        bool SetAttribute(string attributeName, string attributeValue);
-        void Commit();
-        void Close();
-    }
-}
+/*
+* Copyright (c) Contributors, http://www.openmetaverse.org/
+* See CONTRIBUTORS.TXT for a full list of copyright holders.
+*
+* Redistribution and use in source and binary forms, with or without
+* modification, are permitted provided that the following conditions are met:
+*     * Redistributions of source code must retain the above copyright
+*       notice, this list of conditions and the following disclaimer.
+*     * Redistributions in binary form must reproduce the above copyright
+*       notice, this list of conditions and the following disclaimer in the
+*       documentation and/or other materials provided with the distribution.
+*     * Neither the name of the OpenSim Project nor the
+*       names of its contributors may be used to endorse or promote products
+*       derived from this software without specific prior written permission.
+*
+* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS AND ANY
+* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
+* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+* 
+*/
+namespace OpenSim.Framework.Interfaces
+{
+    public interface IGenericConfig
+    {
+        void LoadData();
+        string GetAttribute(string attributeName);
+        bool SetAttribute(string attributeName, string attributeValue);
+        void Commit();
+        void Close();
+    }
+}

+ 59 - 59
OpenSim/Framework/General/Interfaces/Config/IGridConfig.cs

@@ -1,59 +1,59 @@
-/*
-* Copyright (c) Contributors, http://www.openmetaverse.org/
-* See CONTRIBUTORS.TXT for a full list of copyright holders.
-*
-* Redistribution and use in source and binary forms, with or without
-* modification, are permitted provided that the following conditions are met:
-*     * Redistributions of source code must retain the above copyright
-*       notice, this list of conditions and the following disclaimer.
-*     * Redistributions in binary form must reproduce the above copyright
-*       notice, this list of conditions and the following disclaimer in the
-*       documentation and/or other materials provided with the distribution.
-*     * Neither the name of the OpenSim Project nor the
-*       names of its contributors may be used to endorse or promote products
-*       derived from this software without specific prior written permission.
-*
-* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS AND ANY
-* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
-* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-* 
-*/
-
-//using OpenSim.world;
-
-namespace OpenSim.Framework.Interfaces
-{
-    /// <summary>
-    /// </summary>
-
-
-    public abstract class GridConfig
-    {
-	public string GridOwner;
-        public string DefaultStartupMsg;
-        public string DefaultAssetServer;
-        public string AssetSendKey;
-        public string AssetRecvKey;
-        public string DefaultUserServer;
-        public string UserSendKey;
-        public string UserRecvKey;
-        public string SimSendKey;
-        public string SimRecvKey;
-
-
-        public abstract void InitConfig();
-
-    }
-
-    public interface IGridConfig
-    {
-        GridConfig GetConfigObject();
-    }
-}
+/*
+* Copyright (c) Contributors, http://www.openmetaverse.org/
+* See CONTRIBUTORS.TXT for a full list of copyright holders.
+*
+* Redistribution and use in source and binary forms, with or without
+* modification, are permitted provided that the following conditions are met:
+*     * Redistributions of source code must retain the above copyright
+*       notice, this list of conditions and the following disclaimer.
+*     * Redistributions in binary form must reproduce the above copyright
+*       notice, this list of conditions and the following disclaimer in the
+*       documentation and/or other materials provided with the distribution.
+*     * Neither the name of the OpenSim Project nor the
+*       names of its contributors may be used to endorse or promote products
+*       derived from this software without specific prior written permission.
+*
+* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS AND ANY
+* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
+* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+* 
+*/
+
+//using OpenSim.world;
+
+namespace OpenSim.Framework.Interfaces
+{
+    /// <summary>
+    /// </summary>
+
+
+    public abstract class GridConfig
+    {
+	public string GridOwner;
+        public string DefaultStartupMsg;
+        public string DefaultAssetServer;
+        public string AssetSendKey;
+        public string AssetRecvKey;
+        public string DefaultUserServer;
+        public string UserSendKey;
+        public string UserRecvKey;
+        public string SimSendKey;
+        public string SimRecvKey;
+
+
+        public abstract void InitConfig();
+
+    }
+
+    public interface IGridConfig
+    {
+        GridConfig GetConfigObject();
+    }
+}

+ 53 - 53
OpenSim/Framework/General/Interfaces/Config/IUserConfig.cs

@@ -1,53 +1,53 @@
-/*
-* Copyright (c) Contributors, http://www.openmetaverse.org/
-* See CONTRIBUTORS.TXT for a full list of copyright holders.
-*
-* Redistribution and use in source and binary forms, with or without
-* modification, are permitted provided that the following conditions are met:
-*     * Redistributions of source code must retain the above copyright
-*       notice, this list of conditions and the following disclaimer.
-*     * Redistributions in binary form must reproduce the above copyright
-*       notice, this list of conditions and the following disclaimer in the
-*       documentation and/or other materials provided with the distribution.
-*     * Neither the name of the OpenSim Project nor the
-*       names of its contributors may be used to endorse or promote products
-*       derived from this software without specific prior written permission.
-*
-* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS AND ANY
-* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
-* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-* 
-*/
-
-//using OpenSim.world;
-
-namespace OpenSim.Framework.Interfaces
-{
-    /// <summary>
-    /// </summary>
-
-
-    public abstract class UserConfig
-    {
-        public string DefaultStartupMsg;
-        public string GridServerURL;
-        public string GridSendKey;
-        public string GridRecvKey;
-
-
-        public abstract void InitConfig();
-
-    }
-
-    public interface IUserConfig
-    {
-        UserConfig GetConfigObject();
-    }
-}
+/*
+* Copyright (c) Contributors, http://www.openmetaverse.org/
+* See CONTRIBUTORS.TXT for a full list of copyright holders.
+*
+* Redistribution and use in source and binary forms, with or without
+* modification, are permitted provided that the following conditions are met:
+*     * Redistributions of source code must retain the above copyright
+*       notice, this list of conditions and the following disclaimer.
+*     * Redistributions in binary form must reproduce the above copyright
+*       notice, this list of conditions and the following disclaimer in the
+*       documentation and/or other materials provided with the distribution.
+*     * Neither the name of the OpenSim Project nor the
+*       names of its contributors may be used to endorse or promote products
+*       derived from this software without specific prior written permission.
+*
+* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS AND ANY
+* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
+* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+* 
+*/
+
+//using OpenSim.world;
+
+namespace OpenSim.Framework.Interfaces
+{
+    /// <summary>
+    /// </summary>
+
+
+    public abstract class UserConfig
+    {
+        public string DefaultStartupMsg;
+        public string GridServerURL;
+        public string GridSendKey;
+        public string GridRecvKey;
+
+
+        public abstract void InitConfig();
+
+    }
+
+    public interface IUserConfig
+    {
+        UserConfig GetConfigObject();
+    }
+}

+ 64 - 64
OpenSim/Framework/General/Interfaces/IAssetServer.cs

@@ -1,64 +1,64 @@
-/*
-* Copyright (c) Contributors, http://www.openmetaverse.org/
-* See CONTRIBUTORS.TXT for a full list of copyright holders.
-*
-* Redistribution and use in source and binary forms, with or without
-* modification, are permitted provided that the following conditions are met:
-*     * Redistributions of source code must retain the above copyright
-*       notice, this list of conditions and the following disclaimer.
-*     * Redistributions in binary form must reproduce the above copyright
-*       notice, this list of conditions and the following disclaimer in the
-*       documentation and/or other materials provided with the distribution.
-*     * Neither the name of the OpenSim Project nor the
-*       names of its contributors may be used to endorse or promote products
-*       derived from this software without specific prior written permission.
-*
-* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS AND ANY
-* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
-* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-* 
-*/
-using libsecondlife;
-using OpenSim.Framework.Types;
-
-namespace OpenSim.Framework.Interfaces
-{
-    /// <summary>
-    /// Description of IAssetServer.
-    /// </summary>
-
-    public interface IAssetServer
-    {
-        void SetReceiver(IAssetReceiver receiver);
-        void RequestAsset(LLUUID assetID, bool isTexture);
-        void UpdateAsset(AssetBase asset);
-        void UploadNewAsset(AssetBase asset);
-        void SetServerInfo(string ServerUrl, string ServerKey);
-        void Close();
-    }
-
-    // could change to delegate?
-    public interface IAssetReceiver
-    {
-        void AssetReceived(AssetBase asset, bool IsTexture);
-        void AssetNotFound(AssetBase asset);
-    }
-
-    public interface IAssetPlugin
-    {
-        IAssetServer GetAssetServer();
-    }
-
-    public struct ARequest
-    {
-        public LLUUID AssetID;
-        public bool IsTexture;
-    }
-}
+/*
+* Copyright (c) Contributors, http://www.openmetaverse.org/
+* See CONTRIBUTORS.TXT for a full list of copyright holders.
+*
+* Redistribution and use in source and binary forms, with or without
+* modification, are permitted provided that the following conditions are met:
+*     * Redistributions of source code must retain the above copyright
+*       notice, this list of conditions and the following disclaimer.
+*     * Redistributions in binary form must reproduce the above copyright
+*       notice, this list of conditions and the following disclaimer in the
+*       documentation and/or other materials provided with the distribution.
+*     * Neither the name of the OpenSim Project nor the
+*       names of its contributors may be used to endorse or promote products
+*       derived from this software without specific prior written permission.
+*
+* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS AND ANY
+* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
+* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+* 
+*/
+using libsecondlife;
+using OpenSim.Framework.Types;
+
+namespace OpenSim.Framework.Interfaces
+{
+    /// <summary>
+    /// Description of IAssetServer.
+    /// </summary>
+
+    public interface IAssetServer
+    {
+        void SetReceiver(IAssetReceiver receiver);
+        void RequestAsset(LLUUID assetID, bool isTexture);
+        void UpdateAsset(AssetBase asset);
+        void UploadNewAsset(AssetBase asset);
+        void SetServerInfo(string ServerUrl, string ServerKey);
+        void Close();
+    }
+
+    // could change to delegate?
+    public interface IAssetReceiver
+    {
+        void AssetReceived(AssetBase asset, bool IsTexture);
+        void AssetNotFound(AssetBase asset);
+    }
+
+    public interface IAssetPlugin
+    {
+        IAssetServer GetAssetServer();
+    }
+
+    public struct ARequest
+    {
+        public LLUUID AssetID;
+        public bool IsTexture;
+    }
+}

+ 195 - 195
OpenSim/Framework/General/Interfaces/IClientAPI.cs

@@ -1,195 +1,195 @@
-/*
-* Copyright (c) Contributors, http://www.openmetaverse.org/
-* See CONTRIBUTORS.TXT for a full list of copyright holders.
-*
-* Redistribution and use in source and binary forms, with or without
-* modification, are permitted provided that the following conditions are met:
-*     * Redistributions of source code must retain the above copyright
-*       notice, this list of conditions and the following disclaimer.
-*     * Redistributions in binary form must reproduce the above copyright
-*       notice, this list of conditions and the following disclaimer in the
-*       documentation and/or other materials provided with the distribution.
-*     * Neither the name of the OpenSim Project nor the
-*       names of its contributors may be used to endorse or promote products
-*       derived from this software without specific prior written permission.
-*
-* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS AND ANY
-* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
-* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-* 
-*/
-using System.Collections.Generic;
-using System.Net;
-using libsecondlife;
-using libsecondlife.Packets;
-using OpenSim.Framework.Types;
-using OpenSim.Framework.Data;
-
-namespace OpenSim.Framework.Interfaces
-{
-    public delegate void ChatFromViewer(byte[] message, byte type, LLVector3 fromPos, string fromName, LLUUID fromAgentID);
-    public delegate void ImprovedInstantMessage(LLUUID fromAgentID, LLUUID toAgentID, uint timestamp, string fromAgentName, string message); // Cut down from full list
-    public delegate void RezObject(AssetBase primAsset, LLVector3 pos);
-    public delegate void ModifyTerrain(float height, float seconds, byte size, byte action, float north, float west);
-    public delegate void SetAppearance(byte[] texture, AgentSetAppearancePacket.VisualParamBlock[] visualParam);
-    public delegate void StartAnim(LLUUID animID, int seq);
-    public delegate void LinkObjects(uint parent, List<uint> children);
-    public delegate void RequestMapBlocks(IClientAPI remoteClient, int minX, int minY, int maxX, int maxY);
-    public delegate void TeleportLocationRequest(IClientAPI remoteClient, ulong regionHandle, LLVector3 position, LLVector3 lookAt, uint flags);
-
-    public delegate void GenericCall(IClientAPI remoteClient);
-    public delegate void GenericCall2();
-    public delegate void GenericCall3(Packet packet); // really don't want to be passing packets in these events, so this is very temporary.
-    public delegate void GenericCall4(Packet packet, IClientAPI remoteClient);
-    public delegate void GenericCall5(IClientAPI remoteClient, bool status);
-    public delegate void GenericCall6(LLUUID uid);
-    public delegate void GenericCall7(uint localID, string message);
-
-    public delegate void UpdateShape(uint localID, ObjectShapePacket.ObjectDataBlock shapeBlock);
-    public delegate void ObjectSelect(uint localID, IClientAPI remoteClient);
-    public delegate void ObjectDeselect(uint localID, IClientAPI remoteClient);
-    public delegate void UpdatePrimFlags(uint localID, Packet packet, IClientAPI remoteClient);
-    public delegate void UpdatePrimTexture(uint localID, byte[] texture, IClientAPI remoteClient);
-    public delegate void UpdateVector(uint localID, LLVector3 pos, IClientAPI remoteClient);
-    public delegate void UpdatePrimRotation(uint localID, LLQuaternion rot, IClientAPI remoteClient);
-    public delegate void UpdatePrimSingleRotation(uint localID, LLQuaternion rot, IClientAPI remoteClient);
-    public delegate void UpdatePrimGroupRotation(uint localID,LLVector3 pos, LLQuaternion rot, IClientAPI remoteClient);
-    public delegate void ObjectDuplicate(uint localID, LLVector3 offset, uint dupeFlags);
-    public delegate void StatusChange(bool status);
-    public delegate void NewAvatar(IClientAPI remoteClient, LLUUID agentID, bool status);
-    public delegate void UpdateAgent(IClientAPI remoteClient, uint flags, LLQuaternion bodyRotation);
-    public delegate void MoveObject(LLUUID objectID, LLVector3 offset, LLVector3 grapPos, IClientAPI remoteClient);
-
-    public delegate void ParcelPropertiesRequest(int start_x, int start_y, int end_x, int end_y, int sequence_id, bool snap_selection, IClientAPI remote_client);
-    public delegate void ParcelDivideRequest(int west, int south, int east, int north, IClientAPI remote_client);
-    public delegate void ParcelJoinRequest(int west, int south, int east, int north, IClientAPI remote_client);
-    public delegate void ParcelPropertiesUpdateRequest(ParcelPropertiesUpdatePacket packet, IClientAPI remote_client);
-    public delegate void ParcelSelectObjects(int parcel_local_id, int request_type, IClientAPI remote_client);
-    public delegate void ParcelObjectOwnerRequest(int local_id, IClientAPI remote_client);
-    public delegate void EstateOwnerMessageRequest(EstateOwnerMessagePacket packet, IClientAPI remote_client);
-
-    public delegate void UUIDNameRequest(LLUUID id, IClientAPI remote_client);
-
-    public delegate void AddNewPrim(LLUUID ownerID, LLVector3 pos, PrimitiveBaseShape shape);
-
-    
-
-    public interface IClientAPI
-    {
-        event ImprovedInstantMessage OnInstantMessage;
-        event ChatFromViewer OnChatFromViewer;
-        event RezObject OnRezObject;
-        event ModifyTerrain OnModifyTerrain;
-        event SetAppearance OnSetAppearance;
-        event StartAnim OnStartAnim;
-        event LinkObjects OnLinkObjects;
-        event RequestMapBlocks OnRequestMapBlocks;
-        event TeleportLocationRequest OnTeleportLocationRequest;
-
-        event GenericCall4 OnDeRezObject;
-        event GenericCall OnRegionHandShakeReply;
-        event GenericCall OnRequestWearables;
-        event GenericCall2 OnCompleteMovementToRegion;
-        event UpdateAgent OnAgentUpdate;
-        event GenericCall OnRequestAvatarsData;
-        event AddNewPrim OnAddPrim;
-        event ObjectDuplicate OnObjectDuplicate;
-        event UpdateVector OnGrapObject;
-        event ObjectSelect OnDeGrapObject;
-        event MoveObject OnGrapUpdate;
-
-        event UpdateShape OnUpdatePrimShape;
-        event ObjectSelect OnObjectSelect;
-        event ObjectDeselect OnObjectDeselect;
-        event GenericCall7 OnObjectDescription;
-        event GenericCall7 OnObjectName;
-        event UpdatePrimFlags OnUpdatePrimFlags;
-        event UpdatePrimTexture OnUpdatePrimTexture;
-        event UpdateVector OnUpdatePrimGroupPosition;
-        event UpdateVector OnUpdatePrimSinglePosition;
-        event UpdatePrimRotation OnUpdatePrimGroupRotation;
-        event UpdatePrimSingleRotation OnUpdatePrimSingleRotation;
-        event UpdatePrimGroupRotation OnUpdatePrimGroupMouseRotation;
-        event UpdateVector OnUpdatePrimScale;
-        event StatusChange OnChildAgentStatus;
-        event GenericCall2 OnStopMovement;
-        event NewAvatar OnNewAvatar;
-        event GenericCall6 OnRemoveAvatar;
-
-        event UUIDNameRequest OnNameFromUUIDRequest;
-
-        event ParcelPropertiesRequest OnParcelPropertiesRequest;
-        event ParcelDivideRequest OnParcelDivideRequest;
-        event ParcelJoinRequest OnParcelJoinRequest;
-        event ParcelPropertiesUpdateRequest OnParcelPropertiesUpdateRequest;
-        event ParcelSelectObjects OnParcelSelectObjects;
-        event ParcelObjectOwnerRequest OnParcelObjectOwnerRequest;
-        event EstateOwnerMessageRequest OnEstateOwnerMessage;
-
-        LLVector3 StartPos
-        {
-            get;
-            set;
-        }
-
-        LLUUID AgentId
-        {
-            get;
-        }
-
-        string FirstName
-        {
-            get;
-        }
-
-        string LastName
-        {
-            get;
-        }
-
-        void OutPacket(Packet newPack);
-        void SendWearables(AvatarWearable[] wearables);
-        void SendStartPingCheck(byte seq);
-        void SendKillObject(ulong regionHandle, uint avatarLocalID);
-        void SendAnimation(LLUUID animID, int seq, LLUUID sourceAgentId);
-        void SendRegionHandshake(RegionInfo regionInfo);
-        void SendChatMessage(string message, byte type, LLVector3 fromPos, string fromName, LLUUID fromAgentID);
-        void SendChatMessage(byte[] message, byte type, LLVector3 fromPos, string fromName, LLUUID fromAgentID);
-        void SendInstantMessage(string message, LLUUID target, string fromName);
-        void SendLayerData(float[] map);
-        void SendLayerData(int px, int py, float[] map);
-        void MoveAgentIntoRegion(RegionInfo regInfo, LLVector3 pos, LLVector3 look);
-        void InformClientOfNeighbour(ulong neighbourHandle, IPEndPoint neighbourExternalEndPoint );
-        AgentCircuitData RequestClientInfo();
-        void CrossRegion(ulong newRegionHandle, LLVector3 pos, LLVector3 lookAt, IPEndPoint newRegionExternalEndPoint );
-        void SendMapBlock(List<MapBlockData> mapBlocks);
-        void SendLocalTeleport(LLVector3 position, LLVector3 lookAt, uint flags);
-        void SendRegionTeleport(ulong regionHandle, byte simAccess, IPEndPoint regionExternalEndPoint, uint locationID, uint flags);
-        void SendTeleportCancel();
-        void SendTeleportLocationStart();
-        void SendMoneyBalance(LLUUID transaction, bool success, byte[] description, int balance);
-
-        void SendAvatarData(ulong regionHandle, string firstName, string lastName, LLUUID avatarID, uint avatarLocalID, LLVector3 Pos, byte[] textureEntry);
-        void SendAvatarTerseUpdate(ulong regionHandle, ushort timeDilation, uint localID, LLVector3 position, LLVector3 velocity);
-
-        void AttachObject(uint localID, LLQuaternion rotation, byte attachPoint);
-        void SendPrimitiveToClient(ulong regionHandle, ushort timeDilation, uint localID, PrimData primData, LLVector3 pos, LLQuaternion rotation, LLUUID textureID , uint flags);
-        void SendPrimitiveToClient(ulong regionHandle, ushort timeDilation, uint localID, PrimData primData, LLVector3 pos, LLUUID textureID, uint flags);
-        void SendPrimitiveToClient(ulong regionHandle, ushort timeDilation, uint localID, PrimitiveBaseShape primShape, LLVector3 pos, LLQuaternion rotation, uint flags, LLUUID objectID, LLUUID ownerID, string text, uint parentID);
-        void SendPrimitiveToClient(ulong regionHandle, ushort timeDilation, uint localID, PrimitiveBaseShape primShape, LLVector3 pos, uint flags, LLUUID objectID, LLUUID ownerID, string text, uint parentID);
-        void SendPrimTerseUpdate(ulong regionHandle, ushort timeDilation, uint localID, LLVector3 position, LLQuaternion rotation);
-    
-        void SendInventoryFolderDetails(LLUUID ownerID, LLUUID folderID, List<InventoryItemBase> items);
-        void SendInventoryItemDetails(LLUUID ownerID, LLUUID folderID, InventoryItemBase item);
-        void SendNameReply(LLUUID profileId, string firstname, string lastname);
-
-        
-    }
-}
+/*
+* Copyright (c) Contributors, http://www.openmetaverse.org/
+* See CONTRIBUTORS.TXT for a full list of copyright holders.
+*
+* Redistribution and use in source and binary forms, with or without
+* modification, are permitted provided that the following conditions are met:
+*     * Redistributions of source code must retain the above copyright
+*       notice, this list of conditions and the following disclaimer.
+*     * Redistributions in binary form must reproduce the above copyright
+*       notice, this list of conditions and the following disclaimer in the
+*       documentation and/or other materials provided with the distribution.
+*     * Neither the name of the OpenSim Project nor the
+*       names of its contributors may be used to endorse or promote products
+*       derived from this software without specific prior written permission.
+*
+* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS AND ANY
+* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
+* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+* 
+*/
+using System.Collections.Generic;
+using System.Net;
+using libsecondlife;
+using libsecondlife.Packets;
+using OpenSim.Framework.Types;
+using OpenSim.Framework.Data;
+
+namespace OpenSim.Framework.Interfaces
+{
+    public delegate void ChatFromViewer(byte[] message, byte type, LLVector3 fromPos, string fromName, LLUUID fromAgentID);
+    public delegate void ImprovedInstantMessage(LLUUID fromAgentID, LLUUID toAgentID, uint timestamp, string fromAgentName, string message); // Cut down from full list
+    public delegate void RezObject(AssetBase primAsset, LLVector3 pos);
+    public delegate void ModifyTerrain(float height, float seconds, byte size, byte action, float north, float west);
+    public delegate void SetAppearance(byte[] texture, AgentSetAppearancePacket.VisualParamBlock[] visualParam);
+    public delegate void StartAnim(LLUUID animID, int seq);
+    public delegate void LinkObjects(uint parent, List<uint> children);
+    public delegate void RequestMapBlocks(IClientAPI remoteClient, int minX, int minY, int maxX, int maxY);
+    public delegate void TeleportLocationRequest(IClientAPI remoteClient, ulong regionHandle, LLVector3 position, LLVector3 lookAt, uint flags);
+
+    public delegate void GenericCall(IClientAPI remoteClient);
+    public delegate void GenericCall2();
+    public delegate void GenericCall3(Packet packet); // really don't want to be passing packets in these events, so this is very temporary.
+    public delegate void GenericCall4(Packet packet, IClientAPI remoteClient);
+    public delegate void GenericCall5(IClientAPI remoteClient, bool status);
+    public delegate void GenericCall6(LLUUID uid);
+    public delegate void GenericCall7(uint localID, string message);
+
+    public delegate void UpdateShape(uint localID, ObjectShapePacket.ObjectDataBlock shapeBlock);
+    public delegate void ObjectSelect(uint localID, IClientAPI remoteClient);
+    public delegate void ObjectDeselect(uint localID, IClientAPI remoteClient);
+    public delegate void UpdatePrimFlags(uint localID, Packet packet, IClientAPI remoteClient);
+    public delegate void UpdatePrimTexture(uint localID, byte[] texture, IClientAPI remoteClient);
+    public delegate void UpdateVector(uint localID, LLVector3 pos, IClientAPI remoteClient);
+    public delegate void UpdatePrimRotation(uint localID, LLQuaternion rot, IClientAPI remoteClient);
+    public delegate void UpdatePrimSingleRotation(uint localID, LLQuaternion rot, IClientAPI remoteClient);
+    public delegate void UpdatePrimGroupRotation(uint localID,LLVector3 pos, LLQuaternion rot, IClientAPI remoteClient);
+    public delegate void ObjectDuplicate(uint localID, LLVector3 offset, uint dupeFlags);
+    public delegate void StatusChange(bool status);
+    public delegate void NewAvatar(IClientAPI remoteClient, LLUUID agentID, bool status);
+    public delegate void UpdateAgent(IClientAPI remoteClient, uint flags, LLQuaternion bodyRotation);
+    public delegate void MoveObject(LLUUID objectID, LLVector3 offset, LLVector3 grapPos, IClientAPI remoteClient);
+
+    public delegate void ParcelPropertiesRequest(int start_x, int start_y, int end_x, int end_y, int sequence_id, bool snap_selection, IClientAPI remote_client);
+    public delegate void ParcelDivideRequest(int west, int south, int east, int north, IClientAPI remote_client);
+    public delegate void ParcelJoinRequest(int west, int south, int east, int north, IClientAPI remote_client);
+    public delegate void ParcelPropertiesUpdateRequest(ParcelPropertiesUpdatePacket packet, IClientAPI remote_client);
+    public delegate void ParcelSelectObjects(int parcel_local_id, int request_type, IClientAPI remote_client);
+    public delegate void ParcelObjectOwnerRequest(int local_id, IClientAPI remote_client);
+    public delegate void EstateOwnerMessageRequest(EstateOwnerMessagePacket packet, IClientAPI remote_client);
+
+    public delegate void UUIDNameRequest(LLUUID id, IClientAPI remote_client);
+
+    public delegate void AddNewPrim(LLUUID ownerID, LLVector3 pos, PrimitiveBaseShape shape);
+
+    
+
+    public interface IClientAPI
+    {
+        event ImprovedInstantMessage OnInstantMessage;
+        event ChatFromViewer OnChatFromViewer;
+        event RezObject OnRezObject;
+        event ModifyTerrain OnModifyTerrain;
+        event SetAppearance OnSetAppearance;
+        event StartAnim OnStartAnim;
+        event LinkObjects OnLinkObjects;
+        event RequestMapBlocks OnRequestMapBlocks;
+        event TeleportLocationRequest OnTeleportLocationRequest;
+
+        event GenericCall4 OnDeRezObject;
+        event GenericCall OnRegionHandShakeReply;
+        event GenericCall OnRequestWearables;
+        event GenericCall2 OnCompleteMovementToRegion;
+        event UpdateAgent OnAgentUpdate;
+        event GenericCall OnRequestAvatarsData;
+        event AddNewPrim OnAddPrim;
+        event ObjectDuplicate OnObjectDuplicate;
+        event UpdateVector OnGrapObject;
+        event ObjectSelect OnDeGrapObject;
+        event MoveObject OnGrapUpdate;
+
+        event UpdateShape OnUpdatePrimShape;
+        event ObjectSelect OnObjectSelect;
+        event ObjectDeselect OnObjectDeselect;
+        event GenericCall7 OnObjectDescription;
+        event GenericCall7 OnObjectName;
+        event UpdatePrimFlags OnUpdatePrimFlags;
+        event UpdatePrimTexture OnUpdatePrimTexture;
+        event UpdateVector OnUpdatePrimGroupPosition;
+        event UpdateVector OnUpdatePrimSinglePosition;
+        event UpdatePrimRotation OnUpdatePrimGroupRotation;
+        event UpdatePrimSingleRotation OnUpdatePrimSingleRotation;
+        event UpdatePrimGroupRotation OnUpdatePrimGroupMouseRotation;
+        event UpdateVector OnUpdatePrimScale;
+        event StatusChange OnChildAgentStatus;
+        event GenericCall2 OnStopMovement;
+        event NewAvatar OnNewAvatar;
+        event GenericCall6 OnRemoveAvatar;
+
+        event UUIDNameRequest OnNameFromUUIDRequest;
+
+        event ParcelPropertiesRequest OnParcelPropertiesRequest;
+        event ParcelDivideRequest OnParcelDivideRequest;
+        event ParcelJoinRequest OnParcelJoinRequest;
+        event ParcelPropertiesUpdateRequest OnParcelPropertiesUpdateRequest;
+        event ParcelSelectObjects OnParcelSelectObjects;
+        event ParcelObjectOwnerRequest OnParcelObjectOwnerRequest;
+        event EstateOwnerMessageRequest OnEstateOwnerMessage;
+
+        LLVector3 StartPos
+        {
+            get;
+            set;
+        }
+
+        LLUUID AgentId
+        {
+            get;
+        }
+
+        string FirstName
+        {
+            get;
+        }
+
+        string LastName
+        {
+            get;
+        }
+
+        void OutPacket(Packet newPack);
+        void SendWearables(AvatarWearable[] wearables);
+        void SendStartPingCheck(byte seq);
+        void SendKillObject(ulong regionHandle, uint avatarLocalID);
+        void SendAnimation(LLUUID animID, int seq, LLUUID sourceAgentId);
+        void SendRegionHandshake(RegionInfo regionInfo);
+        void SendChatMessage(string message, byte type, LLVector3 fromPos, string fromName, LLUUID fromAgentID);
+        void SendChatMessage(byte[] message, byte type, LLVector3 fromPos, string fromName, LLUUID fromAgentID);
+        void SendInstantMessage(string message, LLUUID target, string fromName);
+        void SendLayerData(float[] map);
+        void SendLayerData(int px, int py, float[] map);
+        void MoveAgentIntoRegion(RegionInfo regInfo, LLVector3 pos, LLVector3 look);
+        void InformClientOfNeighbour(ulong neighbourHandle, IPEndPoint neighbourExternalEndPoint );
+        AgentCircuitData RequestClientInfo();
+        void CrossRegion(ulong newRegionHandle, LLVector3 pos, LLVector3 lookAt, IPEndPoint newRegionExternalEndPoint );
+        void SendMapBlock(List<MapBlockData> mapBlocks);
+        void SendLocalTeleport(LLVector3 position, LLVector3 lookAt, uint flags);
+        void SendRegionTeleport(ulong regionHandle, byte simAccess, IPEndPoint regionExternalEndPoint, uint locationID, uint flags);
+        void SendTeleportCancel();
+        void SendTeleportLocationStart();
+        void SendMoneyBalance(LLUUID transaction, bool success, byte[] description, int balance);
+
+        void SendAvatarData(ulong regionHandle, string firstName, string lastName, LLUUID avatarID, uint avatarLocalID, LLVector3 Pos, byte[] textureEntry);
+        void SendAvatarTerseUpdate(ulong regionHandle, ushort timeDilation, uint localID, LLVector3 position, LLVector3 velocity);
+
+        void AttachObject(uint localID, LLQuaternion rotation, byte attachPoint);
+        void SendPrimitiveToClient(ulong regionHandle, ushort timeDilation, uint localID, PrimData primData, LLVector3 pos, LLQuaternion rotation, LLUUID textureID , uint flags);
+        void SendPrimitiveToClient(ulong regionHandle, ushort timeDilation, uint localID, PrimData primData, LLVector3 pos, LLUUID textureID, uint flags);
+        void SendPrimitiveToClient(ulong regionHandle, ushort timeDilation, uint localID, PrimitiveBaseShape primShape, LLVector3 pos, LLQuaternion rotation, uint flags, LLUUID objectID, LLUUID ownerID, string text, uint parentID);
+        void SendPrimitiveToClient(ulong regionHandle, ushort timeDilation, uint localID, PrimitiveBaseShape primShape, LLVector3 pos, uint flags, LLUUID objectID, LLUUID ownerID, string text, uint parentID);
+        void SendPrimTerseUpdate(ulong regionHandle, ushort timeDilation, uint localID, LLVector3 position, LLQuaternion rotation);
+    
+        void SendInventoryFolderDetails(LLUUID ownerID, LLUUID folderID, List<InventoryItemBase> items);
+        void SendInventoryItemDetails(LLUUID ownerID, LLUUID folderID, InventoryItemBase item);
+        void SendNameReply(LLUUID profileId, string firstname, string lastname);
+
+        
+    }
+}

+ 71 - 71
OpenSim/Framework/General/Interfaces/ILocalStorage.cs

@@ -1,71 +1,71 @@
-/*
-* Copyright (c) Contributors, http://www.openmetaverse.org/
-* See CONTRIBUTORS.TXT for a full list of copyright holders.
-*
-* Redistribution and use in source and binary forms, with or without
-* modification, are permitted provided that the following conditions are met:
-*     * Redistributions of source code must retain the above copyright
-*       notice, this list of conditions and the following disclaimer.
-*     * Redistributions in binary form must reproduce the above copyright
-*       notice, this list of conditions and the following disclaimer in the
-*       documentation and/or other materials provided with the distribution.
-*     * Neither the name of the OpenSim Project nor the
-*       names of its contributors may be used to endorse or promote products
-*       derived from this software without specific prior written permission.
-*
-* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS AND ANY
-* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
-* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-* 
-*/
-
-using libsecondlife;
-using OpenSim.Framework.Types;
-
-namespace OpenSim.Framework.Interfaces
-{
-    /// <summary>
-    /// ILocalStorage. Really hacked together right now needs cleaning up
-    /// </summary>
-    [System.Obsolete("Redundant, use IRegionDataStore instead")]
-    public interface ILocalStorage
-    {
-        void Initialise(string datastore);
-
-        void StorePrim(PrimData prim);
-        void RemovePrim(LLUUID primID);
-        void LoadPrimitives(ILocalStorageReceiver receiver);
-
-        [System.Obsolete("Use DataStorage instead")]
-        float[] LoadWorld();
-        [System.Obsolete("Use DataStorage instead")]
-        void SaveMap(float[] heightmap);
-
-        void SaveParcels(ParcelData[] parcels);
-        void SaveParcel(ParcelData parcel);
-        void RemoveParcel(ParcelData parcel);
-        void RemoveAllParcels();
-        void LoadParcels(ILocalStorageParcelReceiver recv);
-
-        void ShutDown();
-    }
-
-    public interface ILocalStorageReceiver
-    {
-        void PrimFromStorage(PrimData prim);
-    }
-
-    public interface ILocalStorageParcelReceiver
-    {
-        void ParcelFromStorage(ParcelData data);
-        void NoParcelDataFromStorage();
-    }
-}
-
+/*
+* Copyright (c) Contributors, http://www.openmetaverse.org/
+* See CONTRIBUTORS.TXT for a full list of copyright holders.
+*
+* Redistribution and use in source and binary forms, with or without
+* modification, are permitted provided that the following conditions are met:
+*     * Redistributions of source code must retain the above copyright
+*       notice, this list of conditions and the following disclaimer.
+*     * Redistributions in binary form must reproduce the above copyright
+*       notice, this list of conditions and the following disclaimer in the
+*       documentation and/or other materials provided with the distribution.
+*     * Neither the name of the OpenSim Project nor the
+*       names of its contributors may be used to endorse or promote products
+*       derived from this software without specific prior written permission.
+*
+* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS AND ANY
+* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
+* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+* 
+*/
+
+using libsecondlife;
+using OpenSim.Framework.Types;
+
+namespace OpenSim.Framework.Interfaces
+{
+    /// <summary>
+    /// ILocalStorage. Really hacked together right now needs cleaning up
+    /// </summary>
+    [System.Obsolete("Redundant, use IRegionDataStore instead")]
+    public interface ILocalStorage
+    {
+        void Initialise(string datastore);
+
+        void StorePrim(PrimData prim);
+        void RemovePrim(LLUUID primID);
+        void LoadPrimitives(ILocalStorageReceiver receiver);
+
+        [System.Obsolete("Use DataStorage instead")]
+        float[] LoadWorld();
+        [System.Obsolete("Use DataStorage instead")]
+        void SaveMap(float[] heightmap);
+
+        void SaveParcels(ParcelData[] parcels);
+        void SaveParcel(ParcelData parcel);
+        void RemoveParcel(ParcelData parcel);
+        void RemoveAllParcels();
+        void LoadParcels(ILocalStorageParcelReceiver recv);
+
+        void ShutDown();
+    }
+
+    public interface ILocalStorageReceiver
+    {
+        void PrimFromStorage(PrimData prim);
+    }
+
+    public interface ILocalStorageParcelReceiver
+    {
+        void ParcelFromStorage(ParcelData data);
+        void NoParcelDataFromStorage();
+    }
+}
+

+ 39 - 39
OpenSim/Framework/General/Interfaces/IUserServer.cs

@@ -1,39 +1,39 @@
-/*
-* Copyright (c) Contributors, http://www.openmetaverse.org/
-* See CONTRIBUTORS.TXT for a full list of copyright holders.
-*
-* Redistribution and use in source and binary forms, with or without
-* modification, are permitted provided that the following conditions are met:
-*     * Redistributions of source code must retain the above copyright
-*       notice, this list of conditions and the following disclaimer.
-*     * Redistributions in binary form must reproduce the above copyright
-*       notice, this list of conditions and the following disclaimer in the
-*       documentation and/or other materials provided with the distribution.
-*     * Neither the name of the OpenSim Project nor the
-*       names of its contributors may be used to endorse or promote products
-*       derived from this software without specific prior written permission.
-*
-* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS AND ANY
-* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
-* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-* 
-*/
-using libsecondlife;
-using OpenSim.Framework.Inventory;
-
-namespace OpenSim.Framework.Interfaces
-{
-    public interface IUserServer
-    {
-        AgentInventory RequestAgentsInventory(LLUUID agentID);
-        void SetServerInfo(string ServerUrl, string SendKey, string RecvKey);
-        bool UpdateAgentsInventory(LLUUID agentID, AgentInventory inventory);
-    }
-}
+/*
+* Copyright (c) Contributors, http://www.openmetaverse.org/
+* See CONTRIBUTORS.TXT for a full list of copyright holders.
+*
+* Redistribution and use in source and binary forms, with or without
+* modification, are permitted provided that the following conditions are met:
+*     * Redistributions of source code must retain the above copyright
+*       notice, this list of conditions and the following disclaimer.
+*     * Redistributions in binary form must reproduce the above copyright
+*       notice, this list of conditions and the following disclaimer in the
+*       documentation and/or other materials provided with the distribution.
+*     * Neither the name of the OpenSim Project nor the
+*       names of its contributors may be used to endorse or promote products
+*       derived from this software without specific prior written permission.
+*
+* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS AND ANY
+* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
+* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+* 
+*/
+using libsecondlife;
+using OpenSim.Framework.Inventory;
+
+namespace OpenSim.Framework.Interfaces
+{
+    public interface IUserServer
+    {
+        AgentInventory RequestAgentsInventory(LLUUID agentID);
+        void SetServerInfo(string ServerUrl, string SendKey, string RecvKey);
+        bool UpdateAgentsInventory(LLUUID agentID, AgentInventory inventory);
+    }
+}

+ 42 - 42
OpenSim/Framework/General/Interfaces/IWorld.cs

@@ -1,42 +1,42 @@
-/*
-* Copyright (c) Contributors, http://www.openmetaverse.org/
-* See CONTRIBUTORS.TXT for a full list of copyright holders.
-*
-* Redistribution and use in source and binary forms, with or without
-* modification, are permitted provided that the following conditions are met:
-*     * Redistributions of source code must retain the above copyright
-*       notice, this list of conditions and the following disclaimer.
-*     * Redistributions in binary form must reproduce the above copyright
-*       notice, this list of conditions and the following disclaimer in the
-*       documentation and/or other materials provided with the distribution.
-*     * Neither the name of the OpenSim Project nor the
-*       names of its contributors may be used to endorse or promote products
-*       derived from this software without specific prior written permission.
-*
-* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS AND ANY
-* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
-* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-* 
-*/
-using libsecondlife;
-using OpenSim.Framework.Types;
-
-namespace OpenSim.Framework.Interfaces
-{
-    public interface IWorld
-    {
-        void AddNewClient(IClientAPI client, bool child);
-        void RemoveClient(LLUUID agentID);
-        
-        RegionInfo RegionInfo { get; }
-        object SyncRoot { get; }
-        uint NextLocalId { get; }
-    }
-}
+/*
+* Copyright (c) Contributors, http://www.openmetaverse.org/
+* See CONTRIBUTORS.TXT for a full list of copyright holders.
+*
+* Redistribution and use in source and binary forms, with or without
+* modification, are permitted provided that the following conditions are met:
+*     * Redistributions of source code must retain the above copyright
+*       notice, this list of conditions and the following disclaimer.
+*     * Redistributions in binary form must reproduce the above copyright
+*       notice, this list of conditions and the following disclaimer in the
+*       documentation and/or other materials provided with the distribution.
+*     * Neither the name of the OpenSim Project nor the
+*       names of its contributors may be used to endorse or promote products
+*       derived from this software without specific prior written permission.
+*
+* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS AND ANY
+* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
+* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+* 
+*/
+using libsecondlife;
+using OpenSim.Framework.Types;
+
+namespace OpenSim.Framework.Interfaces
+{
+    public interface IWorld
+    {
+        void AddNewClient(IClientAPI client, bool child);
+        void RemoveClient(LLUUID agentID);
+        
+        RegionInfo RegionInfo { get; }
+        object SyncRoot { get; }
+        uint NextLocalId { get; }
+    }
+}

+ 127 - 127
OpenSim/Framework/General/NpcClientBase.cs

@@ -1,127 +1,127 @@
-using System.Collections.Generic;
-using System.Net;
-using OpenSim.Framework.Interfaces;
-using OpenSim.Framework.Types;
-using OpenSim.Framework.Data;
-using libsecondlife;
-using libsecondlife.Packets;
-
-
-namespace OpenSim.Framework
-{
-   public  class NpcClientBase :IClientAPI
-   {
-       public event ImprovedInstantMessage OnInstantMessage;
-       public event ChatFromViewer OnChatFromViewer;
-       public event RezObject OnRezObject;
-       public event ModifyTerrain OnModifyTerrain;
-       public event SetAppearance OnSetAppearance;
-       public event StartAnim OnStartAnim;
-       public event LinkObjects OnLinkObjects;
-       public event RequestMapBlocks OnRequestMapBlocks;
-       public event TeleportLocationRequest OnTeleportLocationRequest;
-
-       public event GenericCall4 OnDeRezObject;
-       public event GenericCall OnRegionHandShakeReply;
-       public event GenericCall OnRequestWearables;
-       public event GenericCall2 OnCompleteMovementToRegion;
-       public event UpdateAgent OnAgentUpdate;
-       public event GenericCall OnRequestAvatarsData;
-       public event AddNewPrim OnAddPrim;
-       public event ObjectDuplicate OnObjectDuplicate;
-       public event UpdateVector OnGrapObject;
-       public event ObjectSelect OnDeGrapObject;
-       public event MoveObject OnGrapUpdate;
-
-       public event UpdateShape OnUpdatePrimShape;
-       public event ObjectSelect OnObjectSelect;
-       public event GenericCall7 OnObjectDescription;
-       public event GenericCall7 OnObjectName;
-       public event UpdatePrimFlags OnUpdatePrimFlags;
-       public event UpdatePrimTexture OnUpdatePrimTexture;
-       public event UpdateVector OnUpdatePrimGroupPosition;
-       public event UpdateVector OnUpdatePrimSinglePosition;
-       public event UpdatePrimRotation OnUpdatePrimGroupRotation;
-       public event UpdatePrimSingleRotation OnUpdatePrimSingleRotation;
-       public event UpdatePrimGroupRotation OnUpdatePrimGroupMouseRotation;
-       public event UpdateVector OnUpdatePrimScale;
-       public event StatusChange OnChildAgentStatus;
-       public event GenericCall2 OnStopMovement;
-       public event NewAvatar OnNewAvatar;
-       public event GenericCall6 OnRemoveAvatar;
-
-       public event UUIDNameRequest OnNameFromUUIDRequest;
-
-       public event ParcelPropertiesRequest OnParcelPropertiesRequest;
-       public event ParcelDivideRequest OnParcelDivideRequest;
-       public event ParcelJoinRequest OnParcelJoinRequest;
-       public event ParcelPropertiesUpdateRequest OnParcelPropertiesUpdateRequest;
-       public event ParcelSelectObjects OnParcelSelectObjects;
-       public event ParcelObjectOwnerRequest OnParcelObjectOwnerRequest;
-       public event ObjectDeselect OnObjectDeselect;
-
-
-       public event EstateOwnerMessageRequest OnEstateOwnerMessage;
-
-       public virtual LLVector3 StartPos
-       {
-           get { return new LLVector3(); }
-           set {  }
-       }
-
-       public virtual LLUUID AgentId
-       {
-           get { return LLUUID.Random(); }
-       }
-
-       public virtual string FirstName
-       {
-           get { return ""; }
-       }
-
-       public virtual string LastName
-       {
-           get { return ""; }
-       }
-
-       public NpcClientBase()
-       {
-       }
-
-       public virtual void OutPacket(Packet newPack){}
-       public virtual void SendWearables(AvatarWearable[] wearables){}
-       public virtual void SendStartPingCheck(byte seq){}
-       public virtual void SendKillObject(ulong regionHandle, uint avatarLocalID){}
-       public virtual void SendAnimation(LLUUID animID, int seq, LLUUID sourceAgentId){}
-       public virtual void SendRegionHandshake(RegionInfo regionInfo){}
-       public virtual void SendChatMessage(string message, byte type, LLVector3 fromPos, string fromName, LLUUID fromAgentID){}
-       public virtual void SendChatMessage(byte[] message, byte type, LLVector3 fromPos, string fromName, LLUUID fromAgentID){}
-       public virtual void SendInstantMessage(string message, LLUUID target, string fromName){}
-       public virtual void SendLayerData(float[] map){}
-       public virtual void SendLayerData(int px, int py, float[] map){}
-       public virtual void MoveAgentIntoRegion(RegionInfo regInfo, LLVector3 pos, LLVector3 look){}
-       public virtual void InformClientOfNeighbour(ulong neighbourHandle, IPEndPoint neighbourExternalEndPoint){}
-       public virtual AgentCircuitData RequestClientInfo() { return new AgentCircuitData(); }
-       public virtual void CrossRegion(ulong newRegionHandle, LLVector3 pos, LLVector3 lookAt, IPEndPoint newRegionExternalEndPoint){}
-       public virtual void SendMapBlock(List<MapBlockData> mapBlocks){}
-       public virtual void SendLocalTeleport(LLVector3 position, LLVector3 lookAt, uint flags){}
-       public virtual void SendRegionTeleport(ulong regionHandle, byte simAccess, IPEndPoint regionExternalEndPoint, uint locationID, uint flags){}
-       public virtual void SendTeleportCancel(){}
-       public virtual void SendTeleportLocationStart(){}
-       public virtual void SendMoneyBalance(LLUUID transaction, bool success, byte[] description, int balance){}
-
-       public virtual void SendAvatarData(ulong regionHandle, string firstName, string lastName, LLUUID avatarID, uint avatarLocalID, LLVector3 Pos, byte[] textureEntry){}
-       public virtual void SendAvatarTerseUpdate(ulong regionHandle, ushort timeDilation, uint localID, LLVector3 position, LLVector3 velocity){}
-
-       public virtual void AttachObject(uint localID, LLQuaternion rotation, byte attachPoint){}
-       public virtual void SendPrimitiveToClient(ulong regionHandle, ushort timeDilation, uint localID, PrimData primData, LLVector3 pos, LLQuaternion rotation, LLUUID textureID, uint flags){}
-       public virtual void SendPrimitiveToClient(ulong regionHandle, ushort timeDilation, uint localID, PrimData primData, LLVector3 pos, LLUUID textureID, uint flags){}
-       public virtual void SendPrimitiveToClient(ulong regionHandle, ushort timeDilation, uint localID, PrimitiveBaseShape primShape, LLVector3 pos, LLQuaternion rotation, uint flags, LLUUID objectID, LLUUID ownerID, string text, uint parentID){}
-       public virtual void SendPrimitiveToClient(ulong regionHandle, ushort timeDilation, uint localID, PrimitiveBaseShape primShape, LLVector3 pos, uint flags, LLUUID objectID, LLUUID ownerID, string text, uint parentID){}
-       public virtual void SendPrimTerseUpdate(ulong regionHandle, ushort timeDilation, uint localID, LLVector3 position, LLQuaternion rotation){}
-
-       public virtual void SendInventoryFolderDetails(LLUUID ownerID, LLUUID folderID, List<InventoryItemBase> items){}
-       public virtual void SendInventoryItemDetails(LLUUID ownerID, LLUUID folderID, InventoryItemBase item){}
-       public virtual void SendNameReply(LLUUID profileId, string firstname, string lastname){}
-    }
-}
+using System.Collections.Generic;
+using System.Net;
+using OpenSim.Framework.Interfaces;
+using OpenSim.Framework.Types;
+using OpenSim.Framework.Data;
+using libsecondlife;
+using libsecondlife.Packets;
+
+
+namespace OpenSim.Framework
+{
+   public  class NpcClientBase :IClientAPI
+   {
+       public event ImprovedInstantMessage OnInstantMessage;
+       public event ChatFromViewer OnChatFromViewer;
+       public event RezObject OnRezObject;
+       public event ModifyTerrain OnModifyTerrain;
+       public event SetAppearance OnSetAppearance;
+       public event StartAnim OnStartAnim;
+       public event LinkObjects OnLinkObjects;
+       public event RequestMapBlocks OnRequestMapBlocks;
+       public event TeleportLocationRequest OnTeleportLocationRequest;
+
+       public event GenericCall4 OnDeRezObject;
+       public event GenericCall OnRegionHandShakeReply;
+       public event GenericCall OnRequestWearables;
+       public event GenericCall2 OnCompleteMovementToRegion;
+       public event UpdateAgent OnAgentUpdate;
+       public event GenericCall OnRequestAvatarsData;
+       public event AddNewPrim OnAddPrim;
+       public event ObjectDuplicate OnObjectDuplicate;
+       public event UpdateVector OnGrapObject;
+       public event ObjectSelect OnDeGrapObject;
+       public event MoveObject OnGrapUpdate;
+
+       public event UpdateShape OnUpdatePrimShape;
+       public event ObjectSelect OnObjectSelect;
+       public event GenericCall7 OnObjectDescription;
+       public event GenericCall7 OnObjectName;
+       public event UpdatePrimFlags OnUpdatePrimFlags;
+       public event UpdatePrimTexture OnUpdatePrimTexture;
+       public event UpdateVector OnUpdatePrimGroupPosition;
+       public event UpdateVector OnUpdatePrimSinglePosition;
+       public event UpdatePrimRotation OnUpdatePrimGroupRotation;
+       public event UpdatePrimSingleRotation OnUpdatePrimSingleRotation;
+       public event UpdatePrimGroupRotation OnUpdatePrimGroupMouseRotation;
+       public event UpdateVector OnUpdatePrimScale;
+       public event StatusChange OnChildAgentStatus;
+       public event GenericCall2 OnStopMovement;
+       public event NewAvatar OnNewAvatar;
+       public event GenericCall6 OnRemoveAvatar;
+
+       public event UUIDNameRequest OnNameFromUUIDRequest;
+
+       public event ParcelPropertiesRequest OnParcelPropertiesRequest;
+       public event ParcelDivideRequest OnParcelDivideRequest;
+       public event ParcelJoinRequest OnParcelJoinRequest;
+       public event ParcelPropertiesUpdateRequest OnParcelPropertiesUpdateRequest;
+       public event ParcelSelectObjects OnParcelSelectObjects;
+       public event ParcelObjectOwnerRequest OnParcelObjectOwnerRequest;
+       public event ObjectDeselect OnObjectDeselect;
+
+
+       public event EstateOwnerMessageRequest OnEstateOwnerMessage;
+
+       public virtual LLVector3 StartPos
+       {
+           get { return new LLVector3(); }
+           set {  }
+       }
+
+       public virtual LLUUID AgentId
+       {
+           get { return LLUUID.Random(); }
+       }
+
+       public virtual string FirstName
+       {
+           get { return ""; }
+       }
+
+       public virtual string LastName
+       {
+           get { return ""; }
+       }
+
+       public NpcClientBase()
+       {
+       }
+
+       public virtual void OutPacket(Packet newPack){}
+       public virtual void SendWearables(AvatarWearable[] wearables){}
+       public virtual void SendStartPingCheck(byte seq){}
+       public virtual void SendKillObject(ulong regionHandle, uint avatarLocalID){}
+       public virtual void SendAnimation(LLUUID animID, int seq, LLUUID sourceAgentId){}
+       public virtual void SendRegionHandshake(RegionInfo regionInfo){}
+       public virtual void SendChatMessage(string message, byte type, LLVector3 fromPos, string fromName, LLUUID fromAgentID){}
+       public virtual void SendChatMessage(byte[] message, byte type, LLVector3 fromPos, string fromName, LLUUID fromAgentID){}
+       public virtual void SendInstantMessage(string message, LLUUID target, string fromName){}
+       public virtual void SendLayerData(float[] map){}
+       public virtual void SendLayerData(int px, int py, float[] map){}
+       public virtual void MoveAgentIntoRegion(RegionInfo regInfo, LLVector3 pos, LLVector3 look){}
+       public virtual void InformClientOfNeighbour(ulong neighbourHandle, IPEndPoint neighbourExternalEndPoint){}
+       public virtual AgentCircuitData RequestClientInfo() { return new AgentCircuitData(); }
+       public virtual void CrossRegion(ulong newRegionHandle, LLVector3 pos, LLVector3 lookAt, IPEndPoint newRegionExternalEndPoint){}
+       public virtual void SendMapBlock(List<MapBlockData> mapBlocks){}
+       public virtual void SendLocalTeleport(LLVector3 position, LLVector3 lookAt, uint flags){}
+       public virtual void SendRegionTeleport(ulong regionHandle, byte simAccess, IPEndPoint regionExternalEndPoint, uint locationID, uint flags){}
+       public virtual void SendTeleportCancel(){}
+       public virtual void SendTeleportLocationStart(){}
+       public virtual void SendMoneyBalance(LLUUID transaction, bool success, byte[] description, int balance){}
+
+       public virtual void SendAvatarData(ulong regionHandle, string firstName, string lastName, LLUUID avatarID, uint avatarLocalID, LLVector3 Pos, byte[] textureEntry){}
+       public virtual void SendAvatarTerseUpdate(ulong regionHandle, ushort timeDilation, uint localID, LLVector3 position, LLVector3 velocity){}
+
+       public virtual void AttachObject(uint localID, LLQuaternion rotation, byte attachPoint){}
+       public virtual void SendPrimitiveToClient(ulong regionHandle, ushort timeDilation, uint localID, PrimData primData, LLVector3 pos, LLQuaternion rotation, LLUUID textureID, uint flags){}
+       public virtual void SendPrimitiveToClient(ulong regionHandle, ushort timeDilation, uint localID, PrimData primData, LLVector3 pos, LLUUID textureID, uint flags){}
+       public virtual void SendPrimitiveToClient(ulong regionHandle, ushort timeDilation, uint localID, PrimitiveBaseShape primShape, LLVector3 pos, LLQuaternion rotation, uint flags, LLUUID objectID, LLUUID ownerID, string text, uint parentID){}
+       public virtual void SendPrimitiveToClient(ulong regionHandle, ushort timeDilation, uint localID, PrimitiveBaseShape primShape, LLVector3 pos, uint flags, LLUUID objectID, LLUUID ownerID, string text, uint parentID){}
+       public virtual void SendPrimTerseUpdate(ulong regionHandle, ushort timeDilation, uint localID, LLVector3 position, LLQuaternion rotation){}
+
+       public virtual void SendInventoryFolderDetails(LLUUID ownerID, LLUUID folderID, List<InventoryItemBase> items){}
+       public virtual void SendInventoryItemDetails(LLUUID ownerID, LLUUID folderID, InventoryItemBase item){}
+       public virtual void SendNameReply(LLUUID profileId, string firstname, string lastname){}
+    }
+}

+ 31 - 31
OpenSim/Framework/General/Properties/AssemblyInfo.cs

@@ -1,31 +1,31 @@
-using System.Reflection;
-using System.Runtime.InteropServices;
-// General Information about an assembly is controlled through the following 
-// set of attributes. Change these attribute values to modify the information
-// associated with an assembly.
-[assembly: AssemblyTitle("OpenSim.FrameWork")]
-[assembly: AssemblyDescription("")]
-[assembly: AssemblyConfiguration("")]
-[assembly: AssemblyCompany("")]
-[assembly: AssemblyProduct("OpenSim.FrameWork")]
-[assembly: AssemblyCopyright("Copyright ©  2007")]
-[assembly: AssemblyTrademark("")]
-[assembly: AssemblyCulture("")]
-
-// Setting ComVisible to false makes the types in this assembly not visible 
-// to COM components.  If you need to access a type in this assembly from 
-// COM, set the ComVisible attribute to true on that type.
-[assembly: ComVisible(false)]
-
-// The following GUID is for the ID of the typelib if this project is exposed to COM
-[assembly: Guid("a08e20c7-f191-4137-b1f0-9291408fa521")]
-
-// Version information for an assembly consists of the following four values:
-//
-//      Major Version
-//      Minor Version 
-//      Build Number
-//      Revision
-//
-[assembly: AssemblyVersion("1.0.0.0")]
-[assembly: AssemblyFileVersion("1.0.0.0")]
+using System.Reflection;
+using System.Runtime.InteropServices;
+// General Information about an assembly is controlled through the following 
+// set of attributes. Change these attribute values to modify the information
+// associated with an assembly.
+[assembly: AssemblyTitle("OpenSim.FrameWork")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("")]
+[assembly: AssemblyProduct("OpenSim.FrameWork")]
+[assembly: AssemblyCopyright("Copyright ©  2007")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// Setting ComVisible to false makes the types in this assembly not visible 
+// to COM components.  If you need to access a type in this assembly from 
+// COM, set the ComVisible attribute to true on that type.
+[assembly: ComVisible(false)]
+
+// The following GUID is for the ID of the typelib if this project is exposed to COM
+[assembly: Guid("a08e20c7-f191-4137-b1f0-9291408fa521")]
+
+// Version information for an assembly consists of the following four values:
+//
+//      Major Version
+//      Minor Version 
+//      Build Number
+//      Revision
+//
+[assembly: AssemblyVersion("1.0.0.0")]
+[assembly: AssemblyFileVersion("1.0.0.0")]

+ 103 - 103
OpenSim/Framework/General/RegionCommsListener.cs

@@ -1,103 +1,103 @@
-/*
-* Copyright (c) Contributors, http://www.openmetaverse.org/
-* See CONTRIBUTORS.TXT for a full list of copyright holders.
-*
-* Redistribution and use in source and binary forms, with or without
-* modification, are permitted provided that the following conditions are met:
-*     * Redistributions of source code must retain the above copyright
-*       notice, this list of conditions and the following disclaimer.
-*     * Redistributions in binary form must reproduce the above copyright
-*       notice, this list of conditions and the following disclaimer in the
-*       documentation and/or other materials provided with the distribution.
-*     * Neither the name of the OpenSim Project nor the
-*       names of its contributors may be used to endorse or promote products
-*       derived from this software without specific prior written permission.
-*
-* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS AND ANY
-* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
-* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-* 
-*/
-using libsecondlife;
-using OpenSim.Framework.Interfaces;
-using OpenSim.Framework.Types;
-
-using System.Collections.Generic;
-
-namespace OpenSim.Framework
-{
-    public class RegionCommsListener :IRegionCommsListener
-    {
-        public event ExpectUserDelegate OnExpectUser;
-        public event GenericCall2 OnExpectChildAgent;
-        public event AgentCrossing OnAvatarCrossingIntoRegion;
-        public event UpdateNeighbours OnNeighboursUpdate;
-
-        /// <summary>
-        /// 
-        /// </summary>
-        /// <param name="agent"></param>
-        /// <returns></returns>
-        public virtual bool TriggerExpectUser(ulong regionHandle, AgentCircuitData  agent)
-        {
-            if(OnExpectUser != null)
-            {
-                
-                OnExpectUser(regionHandle, agent);
-                return true;
-            }
-
-            return false;
-        }
-
-        public virtual bool TriggerExpectAvatarCrossing(ulong regionHandle, LLUUID agentID, LLVector3 position)
-        {
-            if (OnAvatarCrossingIntoRegion != null)
-            {
-                OnAvatarCrossingIntoRegion(regionHandle, agentID, position);
-                return true;
-            }
-            return false;
-        }
-
-        /// <summary>
-        /// 
-        /// </summary>
-        /// <remarks>TODO: Doesnt take any args??</remarks>
-        /// <returns></returns>
-        public virtual bool TriggerExpectChildAgent()
-        {
-            if (OnExpectChildAgent != null)
-            {
-                OnExpectChildAgent();
-                return true;
-            }
-
-            return false;
-        }
-
-        /// <summary>
-        /// 
-        /// </summary>
-        /// <remarks>Added to avoid a unused compiler warning on OnNeighboursUpdate, TODO: Check me</remarks>
-        /// <param name="neighbours"></param>
-        /// <returns></returns>
-        public virtual bool TriggerOnNeighboursUpdate(List<RegionInfo> neighbours)
-        {
-            if (OnNeighboursUpdate != null)
-            {
-                OnNeighboursUpdate(neighbours);
-                return true;
-            }
-
-            return false;
-        }
-    }
-}
+/*
+* Copyright (c) Contributors, http://www.openmetaverse.org/
+* See CONTRIBUTORS.TXT for a full list of copyright holders.
+*
+* Redistribution and use in source and binary forms, with or without
+* modification, are permitted provided that the following conditions are met:
+*     * Redistributions of source code must retain the above copyright
+*       notice, this list of conditions and the following disclaimer.
+*     * Redistributions in binary form must reproduce the above copyright
+*       notice, this list of conditions and the following disclaimer in the
+*       documentation and/or other materials provided with the distribution.
+*     * Neither the name of the OpenSim Project nor the
+*       names of its contributors may be used to endorse or promote products
+*       derived from this software without specific prior written permission.
+*
+* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS AND ANY
+* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
+* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+* 
+*/
+using libsecondlife;
+using OpenSim.Framework.Interfaces;
+using OpenSim.Framework.Types;
+
+using System.Collections.Generic;
+
+namespace OpenSim.Framework
+{
+    public class RegionCommsListener :IRegionCommsListener
+    {
+        public event ExpectUserDelegate OnExpectUser;
+        public event GenericCall2 OnExpectChildAgent;
+        public event AgentCrossing OnAvatarCrossingIntoRegion;
+        public event UpdateNeighbours OnNeighboursUpdate;
+
+        /// <summary>
+        /// 
+        /// </summary>
+        /// <param name="agent"></param>
+        /// <returns></returns>
+        public virtual bool TriggerExpectUser(ulong regionHandle, AgentCircuitData  agent)
+        {
+            if(OnExpectUser != null)
+            {
+                
+                OnExpectUser(regionHandle, agent);
+                return true;
+            }
+
+            return false;
+        }
+
+        public virtual bool TriggerExpectAvatarCrossing(ulong regionHandle, LLUUID agentID, LLVector3 position)
+        {
+            if (OnAvatarCrossingIntoRegion != null)
+            {
+                OnAvatarCrossingIntoRegion(regionHandle, agentID, position);
+                return true;
+            }
+            return false;
+        }
+
+        /// <summary>
+        /// 
+        /// </summary>
+        /// <remarks>TODO: Doesnt take any args??</remarks>
+        /// <returns></returns>
+        public virtual bool TriggerExpectChildAgent()
+        {
+            if (OnExpectChildAgent != null)
+            {
+                OnExpectChildAgent();
+                return true;
+            }
+
+            return false;
+        }
+
+        /// <summary>
+        /// 
+        /// </summary>
+        /// <remarks>Added to avoid a unused compiler warning on OnNeighboursUpdate, TODO: Check me</remarks>
+        /// <param name="neighbours"></param>
+        /// <returns></returns>
+        public virtual bool TriggerOnNeighboursUpdate(List<RegionInfo> neighbours)
+        {
+            if (OnNeighboursUpdate != null)
+            {
+                OnNeighboursUpdate(neighbours);
+                return true;
+            }
+
+            return false;
+        }
+    }
+}

+ 135 - 135
OpenSim/Framework/General/Remoting.cs

@@ -1,135 +1,135 @@
-/*
-* Copyright (c) Contributors, http://www.openmetaverse.org/
-* See CONTRIBUTORS.TXT for a full list of copyright holders.
-*
-* Redistribution and use in source and binary forms, with or without
-* modification, are permitted provided that the following conditions are met:
-*     * Redistributions of source code must retain the above copyright
-*       notice, this list of conditions and the following disclaimer.
-*     * Redistributions in binary form must reproduce the above copyright
-*       notice, this list of conditions and the following disclaimer in the
-*       documentation and/or other materials provided with the distribution.
-*     * Neither the name of the OpenSim Project nor the
-*       names of its contributors may be used to endorse or promote products
-*       derived from this software without specific prior written permission.
-*
-* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS AND ANY
-* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
-* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-* 
-*/
-using System;
-using System.Security.Cryptography;
-using System.Text;
-
-namespace OpenSim.Framework
-{
-    /// <summary>
-    /// NEEDS AUDIT.
-    /// </summary>
-    /// <remarks>
-    /// Suggested implementation
-    /// <para>Store two digests for each foreign host. A local copy of the local hash using the local challenge (when issued), and a local copy of the remote hash using the remote challenge.</para>
-    /// <para>When sending data to the foreign host - run 'Sign' on the data and affix the returned byte[] to the message.</para>
-    /// <para>When recieving data from the foreign host - run 'Authenticate' against the data and the attached byte[].</para>
-    /// <para>Both hosts should be performing these operations for this to be effective.</para>
-    /// </remarks>
-    class RemoteDigest
-    {
-        private byte[] currentHash;
-        private byte[] secret;
-
-        private SHA512Managed SHA512;
-
-        /// <summary>
-        /// Initialises a new RemoteDigest authentication mechanism
-        /// </summary>
-        /// <remarks>Needs an audit by a cryptographic professional - was not "roll your own"'d by choice but rather a serious lack of decent authentication mechanisms in .NET remoting</remarks>
-        /// <param name="sharedSecret">The shared secret between systems (for inter-sim, this is provided in encrypted form during connection, for grid this is input manually in setup)</param>
-        /// <param name="salt">Binary salt - some common value - to be decided what</param>
-        /// <param name="challenge">The challenge key provided by the third party</param>
-        public RemoteDigest(string sharedSecret, byte[] salt, string challenge)
-        {
-            SHA512 = new SHA512Managed();
-            Rfc2898DeriveBytes RFC2898 = new Rfc2898DeriveBytes(sharedSecret,salt);
-            secret = RFC2898.GetBytes(512);
-            ASCIIEncoding ASCII = new ASCIIEncoding();
-
-            currentHash = SHA512.ComputeHash(AppendArrays(secret, ASCII.GetBytes(challenge)));
-        }
-
-        /// <summary>
-        /// Authenticates a piece of incoming data against the local digest. Upon successful authentication, digest string is incremented.
-        /// </summary>
-        /// <param name="data">The incoming data</param>
-        /// <param name="digest">The remote digest</param>
-        /// <returns></returns>
-        public bool Authenticate(byte[] data, byte[] digest)
-        {
-            byte[] newHash = SHA512.ComputeHash(AppendArrays(AppendArrays(currentHash, secret), data));
-            if (digest == newHash)
-            {
-                currentHash = newHash;
-                return true;
-            }
-            else
-            {
-                throw new Exception("Hash comparison failed. Key resync required.");
-            }
-        }
-
-        /// <summary>
-        /// Signs a new bit of data with the current hash. Returns a byte array which should be affixed to the message.
-        /// Signing a piece of data will automatically increment the hash - if you sign data and do not send it, the 
-        /// hashes will get out of sync and throw an exception when validation is attempted.
-        /// </summary>
-        /// <param name="data">The outgoing data</param>
-        /// <returns>The local digest</returns>
-        public byte[] Sign(byte[] data)
-        {
-            currentHash = SHA512.ComputeHash(AppendArrays(AppendArrays(currentHash, secret), data));
-            return currentHash;
-        }
-
-        /// <summary>
-        /// Generates a new challenge string to be issued to a foreign host. Challenges are 1024-bit (effective strength of less than 512-bits) messages generated using the Crytographic Random Number Generator.
-        /// </summary>
-        /// <returns>A 128-character hexadecimal string containing the challenge.</returns>
-        public static string GenerateChallenge()
-        {
-            RNGCryptoServiceProvider RNG = new RNGCryptoServiceProvider();
-            byte[] bytes = new byte[64];
-            RNG.GetBytes(bytes);
-
-            StringBuilder sb = new StringBuilder(bytes.Length * 2);
-            foreach (byte b in bytes)
-            {
-                sb.AppendFormat("{0:x2}", b);
-            }
-            return sb.ToString();
-        }
-
-        /// <summary>
-        /// Helper function, merges two byte arrays
-        /// </summary>
-        /// <remarks>Sourced from MSDN Forum</remarks>
-        /// <param name="a">A</param>
-        /// <param name="b">B</param>
-        /// <returns>C</returns>
-        private byte[] AppendArrays(byte[] a, byte[] b)
-        {
-            byte[] c = new byte[a.Length + b.Length];
-            Buffer.BlockCopy(a, 0, c, 0, a.Length);
-            Buffer.BlockCopy(b, 0, c, a.Length, b.Length);
-            return c;
-        }
-
-    }
-}
+/*
+* Copyright (c) Contributors, http://www.openmetaverse.org/
+* See CONTRIBUTORS.TXT for a full list of copyright holders.
+*
+* Redistribution and use in source and binary forms, with or without
+* modification, are permitted provided that the following conditions are met:
+*     * Redistributions of source code must retain the above copyright
+*       notice, this list of conditions and the following disclaimer.
+*     * Redistributions in binary form must reproduce the above copyright
+*       notice, this list of conditions and the following disclaimer in the
+*       documentation and/or other materials provided with the distribution.
+*     * Neither the name of the OpenSim Project nor the
+*       names of its contributors may be used to endorse or promote products
+*       derived from this software without specific prior written permission.
+*
+* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS AND ANY
+* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
+* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+* 
+*/
+using System;
+using System.Security.Cryptography;
+using System.Text;
+
+namespace OpenSim.Framework
+{
+    /// <summary>
+    /// NEEDS AUDIT.
+    /// </summary>
+    /// <remarks>
+    /// Suggested implementation
+    /// <para>Store two digests for each foreign host. A local copy of the local hash using the local challenge (when issued), and a local copy of the remote hash using the remote challenge.</para>
+    /// <para>When sending data to the foreign host - run 'Sign' on the data and affix the returned byte[] to the message.</para>
+    /// <para>When recieving data from the foreign host - run 'Authenticate' against the data and the attached byte[].</para>
+    /// <para>Both hosts should be performing these operations for this to be effective.</para>
+    /// </remarks>
+    class RemoteDigest
+    {
+        private byte[] currentHash;
+        private byte[] secret;
+
+        private SHA512Managed SHA512;
+
+        /// <summary>
+        /// Initialises a new RemoteDigest authentication mechanism
+        /// </summary>
+        /// <remarks>Needs an audit by a cryptographic professional - was not "roll your own"'d by choice but rather a serious lack of decent authentication mechanisms in .NET remoting</remarks>
+        /// <param name="sharedSecret">The shared secret between systems (for inter-sim, this is provided in encrypted form during connection, for grid this is input manually in setup)</param>
+        /// <param name="salt">Binary salt - some common value - to be decided what</param>
+        /// <param name="challenge">The challenge key provided by the third party</param>
+        public RemoteDigest(string sharedSecret, byte[] salt, string challenge)
+        {
+            SHA512 = new SHA512Managed();
+            Rfc2898DeriveBytes RFC2898 = new Rfc2898DeriveBytes(sharedSecret,salt);
+            secret = RFC2898.GetBytes(512);
+            ASCIIEncoding ASCII = new ASCIIEncoding();
+
+            currentHash = SHA512.ComputeHash(AppendArrays(secret, ASCII.GetBytes(challenge)));
+        }
+
+        /// <summary>
+        /// Authenticates a piece of incoming data against the local digest. Upon successful authentication, digest string is incremented.
+        /// </summary>
+        /// <param name="data">The incoming data</param>
+        /// <param name="digest">The remote digest</param>
+        /// <returns></returns>
+        public bool Authenticate(byte[] data, byte[] digest)
+        {
+            byte[] newHash = SHA512.ComputeHash(AppendArrays(AppendArrays(currentHash, secret), data));
+            if (digest == newHash)
+            {
+                currentHash = newHash;
+                return true;
+            }
+            else
+            {
+                throw new Exception("Hash comparison failed. Key resync required.");
+            }
+        }
+
+        /// <summary>
+        /// Signs a new bit of data with the current hash. Returns a byte array which should be affixed to the message.
+        /// Signing a piece of data will automatically increment the hash - if you sign data and do not send it, the 
+        /// hashes will get out of sync and throw an exception when validation is attempted.
+        /// </summary>
+        /// <param name="data">The outgoing data</param>
+        /// <returns>The local digest</returns>
+        public byte[] Sign(byte[] data)
+        {
+            currentHash = SHA512.ComputeHash(AppendArrays(AppendArrays(currentHash, secret), data));
+            return currentHash;
+        }
+
+        /// <summary>
+        /// Generates a new challenge string to be issued to a foreign host. Challenges are 1024-bit (effective strength of less than 512-bits) messages generated using the Crytographic Random Number Generator.
+        /// </summary>
+        /// <returns>A 128-character hexadecimal string containing the challenge.</returns>
+        public static string GenerateChallenge()
+        {
+            RNGCryptoServiceProvider RNG = new RNGCryptoServiceProvider();
+            byte[] bytes = new byte[64];
+            RNG.GetBytes(bytes);
+
+            StringBuilder sb = new StringBuilder(bytes.Length * 2);
+            foreach (byte b in bytes)
+            {
+                sb.AppendFormat("{0:x2}", b);
+            }
+            return sb.ToString();
+        }
+
+        /// <summary>
+        /// Helper function, merges two byte arrays
+        /// </summary>
+        /// <remarks>Sourced from MSDN Forum</remarks>
+        /// <param name="a">A</param>
+        /// <param name="b">B</param>
+        /// <returns>C</returns>
+        private byte[] AppendArrays(byte[] a, byte[] b)
+        {
+            byte[] c = new byte[a.Length + b.Length];
+            Buffer.BlockCopy(a, 0, c, 0, a.Length);
+            Buffer.BlockCopy(b, 0, c, a.Length, b.Length);
+            return c;
+        }
+
+    }
+}

+ 49 - 49
OpenSim/Framework/General/Types/AgentCiruitData.cs

@@ -1,49 +1,49 @@
-/*
-* Copyright (c) Contributors, http://www.openmetaverse.org/
-* See CONTRIBUTORS.TXT for a full list of copyright holders.
-*
-* Redistribution and use in source and binary forms, with or without
-* modification, are permitted provided that the following conditions are met:
-*     * Redistributions of source code must retain the above copyright
-*       notice, this list of conditions and the following disclaimer.
-*     * Redistributions in binary form must reproduce the above copyright
-*       notice, this list of conditions and the following disclaimer in the
-*       documentation and/or other materials provided with the distribution.
-*     * Neither the name of the OpenSim Project nor the
-*       names of its contributors may be used to endorse or promote products
-*       derived from this software without specific prior written permission.
-*
-* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS AND ANY
-* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
-* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-* 
-*/
-using libsecondlife;
-using System;
-
-namespace OpenSim.Framework.Types
-{
-    [Serializable]
-    public class AgentCircuitData
-    {
-        public AgentCircuitData() { }
-        public LLUUID AgentID;
-        public LLUUID SessionID;
-        public LLUUID SecureSessionID;
-        public LLVector3 startpos;
-        public string firstname;
-        public string lastname;
-        public uint circuitcode;
-        public bool child;
-        public LLUUID InventoryFolder;
-        public LLUUID BaseFolder;
-        public string CapsPath = ""; 
-    }
-}
+/*
+* Copyright (c) Contributors, http://www.openmetaverse.org/
+* See CONTRIBUTORS.TXT for a full list of copyright holders.
+*
+* Redistribution and use in source and binary forms, with or without
+* modification, are permitted provided that the following conditions are met:
+*     * Redistributions of source code must retain the above copyright
+*       notice, this list of conditions and the following disclaimer.
+*     * Redistributions in binary form must reproduce the above copyright
+*       notice, this list of conditions and the following disclaimer in the
+*       documentation and/or other materials provided with the distribution.
+*     * Neither the name of the OpenSim Project nor the
+*       names of its contributors may be used to endorse or promote products
+*       derived from this software without specific prior written permission.
+*
+* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS AND ANY
+* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
+* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+* 
+*/
+using libsecondlife;
+using System;
+
+namespace OpenSim.Framework.Types
+{
+    [Serializable]
+    public class AgentCircuitData
+    {
+        public AgentCircuitData() { }
+        public LLUUID AgentID;
+        public LLUUID SessionID;
+        public LLUUID SecureSessionID;
+        public LLVector3 startpos;
+        public string firstname;
+        public string lastname;
+        public uint circuitcode;
+        public bool child;
+        public LLUUID InventoryFolder;
+        public LLUUID BaseFolder;
+        public string CapsPath = ""; 
+    }
+}

+ 57 - 57
OpenSim/Framework/General/Types/AgentWearable.cs

@@ -1,57 +1,57 @@
-/*
-* Copyright (c) Contributors, http://www.openmetaverse.org/
-* See CONTRIBUTORS.TXT for a full list of copyright holders.
-*
-* Redistribution and use in source and binary forms, with or without
-* modification, are permitted provided that the following conditions are met:
-*     * Redistributions of source code must retain the above copyright
-*       notice, this list of conditions and the following disclaimer.
-*     * Redistributions in binary form must reproduce the above copyright
-*       notice, this list of conditions and the following disclaimer in the
-*       documentation and/or other materials provided with the distribution.
-*     * Neither the name of the OpenSim Project nor the
-*       names of its contributors may be used to endorse or promote products
-*       derived from this software without specific prior written permission.
-*
-* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS AND ANY
-* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
-* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-* 
-*/
-using libsecondlife;
-
-namespace OpenSim.Framework.Types
-{
-    public class AvatarWearable
-    {
-        public LLUUID AssetID = new LLUUID("00000000-0000-0000-0000-000000000000");
-        public LLUUID ItemID = new LLUUID("00000000-0000-0000-0000-000000000000");
-
-        public AvatarWearable()
-        {
-
-        }
-
-        public static AvatarWearable[] DefaultWearables
-        {
-            get
-            {
-                AvatarWearable[] defaultWearables =  new AvatarWearable[13]; //should be 13 of these
-                for (int i = 0; i < 13; i++)
-                {
-                    defaultWearables[i] = new AvatarWearable();
-                }
-                defaultWearables[0].AssetID = new LLUUID("66c41e39-38f9-f75a-024e-585989bfab73");
-                defaultWearables[0].ItemID = LLUUID.Random();
-                return defaultWearables;
-            }
-        }
-    }
-}
+/*
+* Copyright (c) Contributors, http://www.openmetaverse.org/
+* See CONTRIBUTORS.TXT for a full list of copyright holders.
+*
+* Redistribution and use in source and binary forms, with or without
+* modification, are permitted provided that the following conditions are met:
+*     * Redistributions of source code must retain the above copyright
+*       notice, this list of conditions and the following disclaimer.
+*     * Redistributions in binary form must reproduce the above copyright
+*       notice, this list of conditions and the following disclaimer in the
+*       documentation and/or other materials provided with the distribution.
+*     * Neither the name of the OpenSim Project nor the
+*       names of its contributors may be used to endorse or promote products
+*       derived from this software without specific prior written permission.
+*
+* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS AND ANY
+* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
+* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+* 
+*/
+using libsecondlife;
+
+namespace OpenSim.Framework.Types
+{
+    public class AvatarWearable
+    {
+        public LLUUID AssetID = new LLUUID("00000000-0000-0000-0000-000000000000");
+        public LLUUID ItemID = new LLUUID("00000000-0000-0000-0000-000000000000");
+
+        public AvatarWearable()
+        {
+
+        }
+
+        public static AvatarWearable[] DefaultWearables
+        {
+            get
+            {
+                AvatarWearable[] defaultWearables =  new AvatarWearable[13]; //should be 13 of these
+                for (int i = 0; i < 13; i++)
+                {
+                    defaultWearables[i] = new AvatarWearable();
+                }
+                defaultWearables[0].AssetID = new LLUUID("66c41e39-38f9-f75a-024e-585989bfab73");
+                defaultWearables[0].ItemID = LLUUID.Random();
+                return defaultWearables;
+            }
+        }
+    }
+}

+ 46 - 46
OpenSim/Framework/General/Types/AssetBase.cs

@@ -1,46 +1,46 @@
-/*
-* Copyright (c) Contributors, http://www.openmetaverse.org/
-* See CONTRIBUTORS.TXT for a full list of copyright holders.
-*
-* Redistribution and use in source and binary forms, with or without
-* modification, are permitted provided that the following conditions are met:
-*     * Redistributions of source code must retain the above copyright
-*       notice, this list of conditions and the following disclaimer.
-*     * Redistributions in binary form must reproduce the above copyright
-*       notice, this list of conditions and the following disclaimer in the
-*       documentation and/or other materials provided with the distribution.
-*     * Neither the name of the OpenSim Project nor the
-*       names of its contributors may be used to endorse or promote products
-*       derived from this software without specific prior written permission.
-*
-* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS AND ANY
-* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
-* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-* 
-*/
-using libsecondlife;
-
-namespace OpenSim.Framework.Types
-{
-    public class AssetBase
-    {
-        public byte[] Data;
-        public LLUUID FullID;
-        public sbyte Type;
-        public sbyte InvType;
-        public string Name;
-        public string Description;
-
-        public AssetBase()
-        {
-
-        }
-    }
-}
+/*
+* Copyright (c) Contributors, http://www.openmetaverse.org/
+* See CONTRIBUTORS.TXT for a full list of copyright holders.
+*
+* Redistribution and use in source and binary forms, with or without
+* modification, are permitted provided that the following conditions are met:
+*     * Redistributions of source code must retain the above copyright
+*       notice, this list of conditions and the following disclaimer.
+*     * Redistributions in binary form must reproduce the above copyright
+*       notice, this list of conditions and the following disclaimer in the
+*       documentation and/or other materials provided with the distribution.
+*     * Neither the name of the OpenSim Project nor the
+*       names of its contributors may be used to endorse or promote products
+*       derived from this software without specific prior written permission.
+*
+* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS AND ANY
+* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
+* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+* 
+*/
+using libsecondlife;
+
+namespace OpenSim.Framework.Types
+{
+    public class AssetBase
+    {
+        public byte[] Data;
+        public LLUUID FullID;
+        public sbyte Type;
+        public sbyte InvType;
+        public string Name;
+        public string Description;
+
+        public AssetBase()
+        {
+
+        }
+    }
+}

+ 59 - 59
OpenSim/Framework/General/Types/AssetLandmark.cs

@@ -1,59 +1,59 @@
-/*
-* Copyright (c) Contributors, http://www.openmetaverse.org/
-* See CONTRIBUTORS.TXT for a full list of copyright holders.
-*
-* Redistribution and use in source and binary forms, with or without
-* modification, are permitted provided that the following conditions are met:
-*     * Redistributions of source code must retain the above copyright
-*       notice, this list of conditions and the following disclaimer.
-*     * Redistributions in binary form must reproduce the above copyright
-*       notice, this list of conditions and the following disclaimer in the
-*       documentation and/or other materials provided with the distribution.
-*     * Neither the name of the OpenSim Project nor the
-*       names of its contributors may be used to endorse or promote products
-*       derived from this software without specific prior written permission.
-*
-* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS AND ANY
-* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
-* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-* 
-*/
-using System.Text;
-using libsecondlife;
-
-namespace OpenSim.Framework.Types
-{
-    public class AssetLandmark : AssetBase
-    {
-        public int Version;
-        public LLVector3 Position;
-        public LLUUID RegionID;
-
-        public AssetLandmark(AssetBase a)
-        {
-            this.Data = a.Data;
-            this.FullID = a.FullID;
-            this.Type = a.Type;
-            this.InvType = a.InvType;
-            this.Name = a.Name;
-            this.Description = a.Description;
-            InternData();
-        }
-
-        private void InternData()
-        {
-            string temp = Encoding.UTF8.GetString(Data).Trim(); 
-            string[] parts = temp.Split('\n');
-            int.TryParse(parts[0].Substring(17, 1), out Version);
-            LLUUID.TryParse(parts[1].Substring(10, 36), out RegionID);
-            LLVector3.TryParse(parts[2].Substring(11, parts[2].Length - 11), out Position);
-        }
-    }
-}
+/*
+* Copyright (c) Contributors, http://www.openmetaverse.org/
+* See CONTRIBUTORS.TXT for a full list of copyright holders.
+*
+* Redistribution and use in source and binary forms, with or without
+* modification, are permitted provided that the following conditions are met:
+*     * Redistributions of source code must retain the above copyright
+*       notice, this list of conditions and the following disclaimer.
+*     * Redistributions in binary form must reproduce the above copyright
+*       notice, this list of conditions and the following disclaimer in the
+*       documentation and/or other materials provided with the distribution.
+*     * Neither the name of the OpenSim Project nor the
+*       names of its contributors may be used to endorse or promote products
+*       derived from this software without specific prior written permission.
+*
+* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS AND ANY
+* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
+* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+* 
+*/
+using System.Text;
+using libsecondlife;
+
+namespace OpenSim.Framework.Types
+{
+    public class AssetLandmark : AssetBase
+    {
+        public int Version;
+        public LLVector3 Position;
+        public LLUUID RegionID;
+
+        public AssetLandmark(AssetBase a)
+        {
+            this.Data = a.Data;
+            this.FullID = a.FullID;
+            this.Type = a.Type;
+            this.InvType = a.InvType;
+            this.Name = a.Name;
+            this.Description = a.Description;
+            InternData();
+        }
+
+        private void InternData()
+        {
+            string temp = Encoding.UTF8.GetString(Data).Trim(); 
+            string[] parts = temp.Split('\n');
+            int.TryParse(parts[0].Substring(17, 1), out Version);
+            LLUUID.TryParse(parts[1].Substring(10, 36), out RegionID);
+            LLVector3.TryParse(parts[2].Substring(11, parts[2].Length - 11), out Position);
+        }
+    }
+}

+ 47 - 47
OpenSim/Framework/General/Types/AssetStorage.cs

@@ -1,47 +1,47 @@
-/*
-* Copyright (c) Contributors, http://www.openmetaverse.org/
-* See CONTRIBUTORS.TXT for a full list of copyright holders.
-*
-* Redistribution and use in source and binary forms, with or without
-* modification, are permitted provided that the following conditions are met:
-*     * Redistributions of source code must retain the above copyright
-*       notice, this list of conditions and the following disclaimer.
-*     * Redistributions in binary form must reproduce the above copyright
-*       notice, this list of conditions and the following disclaimer in the
-*       documentation and/or other materials provided with the distribution.
-*     * Neither the name of the OpenSim Project nor the
-*       names of its contributors may be used to endorse or promote products
-*       derived from this software without specific prior written permission.
-*
-* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS AND ANY
-* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
-* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-* 
-*/
-using libsecondlife;
-
-namespace OpenSim.Framework.Types
-{
-	public class AssetStorage
-	{
-
-		public AssetStorage() {
-		}
-
-		public AssetStorage(LLUUID assetUUID) {
-			UUID=assetUUID;
-		}
-
-		public byte[] Data;
-		public sbyte Type;
-		public string Name;
-		public LLUUID UUID;
-	}
-}
+/*
+* Copyright (c) Contributors, http://www.openmetaverse.org/
+* See CONTRIBUTORS.TXT for a full list of copyright holders.
+*
+* Redistribution and use in source and binary forms, with or without
+* modification, are permitted provided that the following conditions are met:
+*     * Redistributions of source code must retain the above copyright
+*       notice, this list of conditions and the following disclaimer.
+*     * Redistributions in binary form must reproduce the above copyright
+*       notice, this list of conditions and the following disclaimer in the
+*       documentation and/or other materials provided with the distribution.
+*     * Neither the name of the OpenSim Project nor the
+*       names of its contributors may be used to endorse or promote products
+*       derived from this software without specific prior written permission.
+*
+* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS AND ANY
+* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
+* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+* 
+*/
+using libsecondlife;
+
+namespace OpenSim.Framework.Types
+{
+	public class AssetStorage
+	{
+
+		public AssetStorage() {
+		}
+
+		public AssetStorage(LLUUID assetUUID) {
+			UUID=assetUUID;
+		}
+
+		public byte[] Data;
+		public sbyte Type;
+		public string Name;
+		public LLUUID UUID;
+	}
+}

+ 93 - 93
OpenSim/Framework/General/Types/EstateSettings.cs

@@ -1,93 +1,93 @@
-/*
-* Copyright (c) Contributors, http://www.openmetaverse.org/
-* See CONTRIBUTORS.TXT for a full list of copyright holders.
-*
-* Redistribution and use in source and binary forms, with or without
-* modification, are permitted provided that the following conditions are met:
-*     * Redistributions of source code must retain the above copyright
-*       notice, this list of conditions and the following disclaimer.
-*     * Redistributions in binary form must reproduce the above copyright
-*       notice, this list of conditions and the following disclaimer in the
-*       documentation and/or other materials provided with the distribution.
-*     * Neither the name of the OpenSim Project nor the
-*       names of its contributors may be used to endorse or promote products
-*       derived from this software without specific prior written permission.
-*
-* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS AND ANY
-* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
-* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-* 
-*/
-
-using libsecondlife;
-
-namespace OpenSim.Framework.Types
-{
-    public class EstateSettings
-    {
-        //Settings to this island
-        public float billableFactor = (float)0.0;
-        public uint estateID = 0;
-        public uint parentEstateID = 0;
-
-        public byte maxAgents = 40;
-        public float objectBonusFactor = (float)1.0;
-
-        public int redirectGridX = 0; //??
-        public int redirectGridY = 0; //??
-        public Simulator.RegionFlags regionFlags = Simulator.RegionFlags.None; //Booleam values of various region settings
-        public Simulator.SimAccess simAccess = Simulator.SimAccess.Mature; //Is sim PG, Mature, etc? Mature by default.
-        public float sunHour = 0;
-
-        public float terrainRaiseLimit = 0;
-        public float terrainLowerLimit = 0;
-
-        public bool useFixedSun = false;
-        public int pricePerMeter = 1;
-
-        public ushort regionWaterHeight = 20;
-        public bool regionAllowTerraform = true;
-
-        // Region Information
-        // Low resolution 'base' textures. No longer used.
-        public LLUUID terrainBase0 = new LLUUID("b8d3965a-ad78-bf43-699b-bff8eca6c975"); // Default
-        public LLUUID terrainBase1 = new LLUUID("abb783e6-3e93-26c0-248a-247666855da3"); // Default
-        public LLUUID terrainBase2 = new LLUUID("179cdabd-398a-9b6b-1391-4dc333ba321f"); // Default
-        public LLUUID terrainBase3 = new LLUUID("beb169c7-11ea-fff2-efe5-0f24dc881df2"); // Default
-
-        // Higher resolution terrain textures
-        public LLUUID terrainDetail0 = new LLUUID("00000000-0000-0000-0000-000000000000");
-        public LLUUID terrainDetail1 = new LLUUID("00000000-0000-0000-0000-000000000000");
-        public LLUUID terrainDetail2 = new LLUUID("00000000-0000-0000-0000-000000000000");
-        public LLUUID terrainDetail3 = new LLUUID("00000000-0000-0000-0000-000000000000");
-
-        // First quad - each point is bilinearly interpolated at each meter of terrain
-        public float terrainStartHeight0 = 10.0f;      
-        public float terrainStartHeight1 = 10.0f;      
-        public float terrainStartHeight2 = 10.0f;       
-        public float terrainStartHeight3 = 10.0f;       
-
-        // Second quad - also bilinearly interpolated.
-        // Terrain texturing is done that:
-        // 0..3 (0 = base0, 3 = base3) = (terrain[x,y] - start[x,y]) / range[x,y]
-        public float terrainHeightRange0 = 60.0f; //00
-        public float terrainHeightRange1 = 60.0f; //01
-        public float terrainHeightRange2 = 60.0f; //10
-        public float terrainHeightRange3 = 60.0f; //11
-
-        // Terrain Default (Must be in F32 Format!)
-        public string terrainFile = "default.r32";
-        public double terrainMultiplier = 60.0;
-        public float waterHeight = (float)20.0;
-
-        public LLUUID terrainImageID = LLUUID.Zero; // the assetID that is the current Map image for this region
-
-    }
-}
+/*
+* Copyright (c) Contributors, http://www.openmetaverse.org/
+* See CONTRIBUTORS.TXT for a full list of copyright holders.
+*
+* Redistribution and use in source and binary forms, with or without
+* modification, are permitted provided that the following conditions are met:
+*     * Redistributions of source code must retain the above copyright
+*       notice, this list of conditions and the following disclaimer.
+*     * Redistributions in binary form must reproduce the above copyright
+*       notice, this list of conditions and the following disclaimer in the
+*       documentation and/or other materials provided with the distribution.
+*     * Neither the name of the OpenSim Project nor the
+*       names of its contributors may be used to endorse or promote products
+*       derived from this software without specific prior written permission.
+*
+* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS AND ANY
+* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
+* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+* 
+*/
+
+using libsecondlife;
+
+namespace OpenSim.Framework.Types
+{
+    public class EstateSettings
+    {
+        //Settings to this island
+        public float billableFactor = (float)0.0;
+        public uint estateID = 0;
+        public uint parentEstateID = 0;
+
+        public byte maxAgents = 40;
+        public float objectBonusFactor = (float)1.0;
+
+        public int redirectGridX = 0; //??
+        public int redirectGridY = 0; //??
+        public Simulator.RegionFlags regionFlags = Simulator.RegionFlags.None; //Booleam values of various region settings
+        public Simulator.SimAccess simAccess = Simulator.SimAccess.Mature; //Is sim PG, Mature, etc? Mature by default.
+        public float sunHour = 0;
+
+        public float terrainRaiseLimit = 0;
+        public float terrainLowerLimit = 0;
+
+        public bool useFixedSun = false;
+        public int pricePerMeter = 1;
+
+        public ushort regionWaterHeight = 20;
+        public bool regionAllowTerraform = true;
+
+        // Region Information
+        // Low resolution 'base' textures. No longer used.
+        public LLUUID terrainBase0 = new LLUUID("b8d3965a-ad78-bf43-699b-bff8eca6c975"); // Default
+        public LLUUID terrainBase1 = new LLUUID("abb783e6-3e93-26c0-248a-247666855da3"); // Default
+        public LLUUID terrainBase2 = new LLUUID("179cdabd-398a-9b6b-1391-4dc333ba321f"); // Default
+        public LLUUID terrainBase3 = new LLUUID("beb169c7-11ea-fff2-efe5-0f24dc881df2"); // Default
+
+        // Higher resolution terrain textures
+        public LLUUID terrainDetail0 = new LLUUID("00000000-0000-0000-0000-000000000000");
+        public LLUUID terrainDetail1 = new LLUUID("00000000-0000-0000-0000-000000000000");
+        public LLUUID terrainDetail2 = new LLUUID("00000000-0000-0000-0000-000000000000");
+        public LLUUID terrainDetail3 = new LLUUID("00000000-0000-0000-0000-000000000000");
+
+        // First quad - each point is bilinearly interpolated at each meter of terrain
+        public float terrainStartHeight0 = 10.0f;      
+        public float terrainStartHeight1 = 10.0f;      
+        public float terrainStartHeight2 = 10.0f;       
+        public float terrainStartHeight3 = 10.0f;       
+
+        // Second quad - also bilinearly interpolated.
+        // Terrain texturing is done that:
+        // 0..3 (0 = base0, 3 = base3) = (terrain[x,y] - start[x,y]) / range[x,y]
+        public float terrainHeightRange0 = 60.0f; //00
+        public float terrainHeightRange1 = 60.0f; //01
+        public float terrainHeightRange2 = 60.0f; //10
+        public float terrainHeightRange3 = 60.0f; //11
+
+        // Terrain Default (Must be in F32 Format!)
+        public string terrainFile = "default.r32";
+        public double terrainMultiplier = 60.0;
+        public float waterHeight = (float)20.0;
+
+        public LLUUID terrainImageID = LLUUID.Zero; // the assetID that is the current Map image for this region
+
+    }
+}

+ 49 - 49
OpenSim/Framework/General/Types/Login.cs

@@ -1,49 +1,49 @@
-/*
-* Copyright (c) Contributors, http://www.openmetaverse.org/
-* See CONTRIBUTORS.TXT for a full list of copyright holders.
-*
-* Redistribution and use in source and binary forms, with or without
-* modification, are permitted provided that the following conditions are met:
-*     * Redistributions of source code must retain the above copyright
-*       notice, this list of conditions and the following disclaimer.
-*     * Redistributions in binary form must reproduce the above copyright
-*       notice, this list of conditions and the following disclaimer in the
-*       documentation and/or other materials provided with the distribution.
-*     * Neither the name of the OpenSim Project nor the
-*       names of its contributors may be used to endorse or promote products
-*       derived from this software without specific prior written permission.
-*
-* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS AND ANY
-* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
-* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-* 
-*/
-using libsecondlife;
-
-namespace OpenSim.Framework.Types
-{
-    public class Login
-    {
-        public string First = "Test";
-        public string Last = "User";
-        public LLUUID Agent;
-        public LLUUID Session;
-        public LLUUID SecureSession = LLUUID.Zero;
-        public LLUUID InventoryFolder;
-        public LLUUID BaseFolder;
-        public uint CircuitCode;
-        public string CapsPath ="";
-
-        public Login()
-        {
-
-        }
-    }
-}
+/*
+* Copyright (c) Contributors, http://www.openmetaverse.org/
+* See CONTRIBUTORS.TXT for a full list of copyright holders.
+*
+* Redistribution and use in source and binary forms, with or without
+* modification, are permitted provided that the following conditions are met:
+*     * Redistributions of source code must retain the above copyright
+*       notice, this list of conditions and the following disclaimer.
+*     * Redistributions in binary form must reproduce the above copyright
+*       notice, this list of conditions and the following disclaimer in the
+*       documentation and/or other materials provided with the distribution.
+*     * Neither the name of the OpenSim Project nor the
+*       names of its contributors may be used to endorse or promote products
+*       derived from this software without specific prior written permission.
+*
+* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS AND ANY
+* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
+* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+* 
+*/
+using libsecondlife;
+
+namespace OpenSim.Framework.Types
+{
+    public class Login
+    {
+        public string First = "Test";
+        public string Last = "User";
+        public LLUUID Agent;
+        public LLUUID Session;
+        public LLUUID SecureSession = LLUUID.Zero;
+        public LLUUID InventoryFolder;
+        public LLUUID BaseFolder;
+        public uint CircuitCode;
+        public string CapsPath ="";
+
+        public Login()
+        {
+
+        }
+    }
+}

+ 23 - 23
OpenSim/Framework/General/Types/MapBlockData.cs

@@ -1,23 +1,23 @@
-using System;
-using libsecondlife;
-
-namespace OpenSim.Framework.Types
-{
-    public class MapBlockData
-    {
-        public uint Flags;
-        public ushort X;
-        public ushort Y;
-        public byte Agents;
-        public byte Access;
-        public byte WaterHeight;
-        public LLUUID MapImageId;
-        public String Name;
-        public uint RegionFlags;
-
-        public MapBlockData()
-        {
-
-        }
-    }
-}
+using System;
+using libsecondlife;
+
+namespace OpenSim.Framework.Types
+{
+    public class MapBlockData
+    {
+        public uint Flags;
+        public ushort X;
+        public ushort Y;
+        public byte Agents;
+        public byte Access;
+        public byte WaterHeight;
+        public LLUUID MapImageId;
+        public String Name;
+        public uint RegionFlags;
+
+        public MapBlockData()
+        {
+
+        }
+    }
+}

+ 42 - 42
OpenSim/Framework/General/Types/NeighbourInfo.cs

@@ -1,42 +1,42 @@
-/*
-* Copyright (c) Contributors, http://www.openmetaverse.org/
-* See CONTRIBUTORS.TXT for a full list of copyright holders.
-*
-* Redistribution and use in source and binary forms, with or without
-* modification, are permitted provided that the following conditions are met:
-*     * Redistributions of source code must retain the above copyright
-*       notice, this list of conditions and the following disclaimer.
-*     * Redistributions in binary form must reproduce the above copyright
-*       notice, this list of conditions and the following disclaimer in the
-*       documentation and/or other materials provided with the distribution.
-*     * Neither the name of the OpenSim Project nor the
-*       names of its contributors may be used to endorse or promote products
-*       derived from this software without specific prior written permission.
-*
-* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS AND ANY
-* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
-* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-* 
-*/
-namespace OpenSim.Framework.Types
-{
-    public class NeighbourInfo
-    {
-        public NeighbourInfo()
-        {
-        }
-
-        public ulong regionhandle;
-        public uint RegionLocX;
-        public uint RegionLocY;
-        public string sim_ip;
-        public uint sim_port;
-    }
-}
+/*
+* Copyright (c) Contributors, http://www.openmetaverse.org/
+* See CONTRIBUTORS.TXT for a full list of copyright holders.
+*
+* Redistribution and use in source and binary forms, with or without
+* modification, are permitted provided that the following conditions are met:
+*     * Redistributions of source code must retain the above copyright
+*       notice, this list of conditions and the following disclaimer.
+*     * Redistributions in binary form must reproduce the above copyright
+*       notice, this list of conditions and the following disclaimer in the
+*       documentation and/or other materials provided with the distribution.
+*     * Neither the name of the OpenSim Project nor the
+*       names of its contributors may be used to endorse or promote products
+*       derived from this software without specific prior written permission.
+*
+* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS AND ANY
+* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
+* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+* 
+*/
+namespace OpenSim.Framework.Types
+{
+    public class NeighbourInfo
+    {
+        public NeighbourInfo()
+        {
+        }
+
+        public ulong regionhandle;
+        public uint RegionLocX;
+        public uint RegionLocY;
+        public string sim_ip;
+        public uint sim_port;
+    }
+}

+ 219 - 219
OpenSim/Framework/General/Types/NetworkServersInfo.cs

@@ -1,219 +1,219 @@
-/*
-* Copyright (c) Contributors, http://www.openmetaverse.org/
-* See CONTRIBUTORS.TXT for a full list of copyright holders.
-*
-* Redistribution and use in source and binary forms, with or without
-* modification, are permitted provided that the following conditions are met:
-*     * Redistributions of source code must retain the above copyright
-*       notice, this list of conditions and the following disclaimer.
-*     * Redistributions in binary form must reproduce the above copyright
-*       notice, this list of conditions and the following disclaimer in the
-*       documentation and/or other materials provided with the distribution.
-*     * Neither the name of the OpenSim Project nor the
-*       names of its contributors may be used to endorse or promote products
-*       derived from this software without specific prior written permission.
-*
-* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS AND ANY
-* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
-* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-* 
-*/
-using System;
-using OpenSim.Framework.Console;
-using OpenSim.Framework.Interfaces;
-
-namespace OpenSim.Framework.Types
-{
-    public class NetworkServersInfo
-    {
-        public string AssetURL = "http://127.0.0.1:8003/";
-        public string AssetSendKey = "";
-
-        public string GridURL = "";
-        public string GridSendKey = "";
-        public string GridRecvKey = "";
-        public string UserURL = "";
-        public string UserSendKey = "";
-        public string UserRecvKey = "";
-        public bool isSandbox;
-
-        public uint DefaultHomeLocX = 1000;
-        public uint DefaultHomeLocY = 1000;
-
-        public int HttpListenerPort = 9000;
-        public int RemotingListenerPort = 8895;
-
-        public void InitConfig(bool sandboxMode, IGenericConfig configData)
-        {
-            this.isSandbox = sandboxMode;
-
-            try
-            {
-                string attri = "";
-
-                attri = "";
-                attri = configData.GetAttribute("HttpListenerPort");
-                if (attri == "")
-                {
-                    string location = MainLog.Instance.CmdPrompt("Http Listener Port", "9000");
-                    configData.SetAttribute("HttpListenerPort", location);
-                    this.HttpListenerPort = Convert.ToInt32(location);
-                }
-                else
-                {
-                    this.HttpListenerPort = Convert.ToInt32(attri);
-                }
-
-                attri = "";
-                attri = configData.GetAttribute("RemotingListenerPort");
-                if (attri == "")
-                {
-                    string location = MainLog.Instance.CmdPrompt("Remoting Listener Port", "8895");
-                    configData.SetAttribute("RemotingListenerPort", location);
-                    this.RemotingListenerPort = Convert.ToInt32(location);
-                }
-                else
-                {
-                    this.RemotingListenerPort = Convert.ToInt32(attri);
-                }
-
-                if (sandboxMode)
-                {
-                    // default home location X
-                    attri = "";
-                    attri = configData.GetAttribute("DefaultLocationX");
-                    if (attri == "")
-                    {
-                        string location = MainLog.Instance.CmdPrompt("Default Home Location X", "1000");
-                        configData.SetAttribute("DefaultLocationX", location);
-                        this.DefaultHomeLocX = (uint)Convert.ToUInt32(location);
-                    }
-                    else
-                    {
-                        this.DefaultHomeLocX = (uint)Convert.ToUInt32(attri);
-                    }
-
-                    // default home location Y
-                    attri = "";
-                    attri = configData.GetAttribute("DefaultLocationY");
-                    if (attri == "")
-                    {
-                        string location = MainLog.Instance.CmdPrompt("Default Home Location Y", "1000");
-                        configData.SetAttribute("DefaultLocationY", location);
-                        this.DefaultHomeLocY = (uint)Convert.ToUInt32(location);
-                    }
-                    else
-                    {
-                        this.DefaultHomeLocY = (uint)Convert.ToUInt32(attri);
-                    }
-                }
-                if (!isSandbox)
-                {
-                    //Grid Server 
-                    attri = "";
-                    attri = configData.GetAttribute("GridServerURL");
-                    if (attri == "")
-                    {
-                        this.GridURL = MainLog.Instance.CmdPrompt("Grid server URL", "http://127.0.0.1:8001/");
-                        configData.SetAttribute("GridServerURL", this.GridURL);
-                    }
-                    else
-                    {
-                        this.GridURL = attri;
-                    }
-
-                    //Grid Send Key
-                    attri = "";
-                    attri = configData.GetAttribute("GridSendKey");
-                    if (attri == "")
-                    {
-                        this.GridSendKey = MainLog.Instance.CmdPrompt("Key to send to grid server", "null");
-                        configData.SetAttribute("GridSendKey", this.GridSendKey);
-                    }
-                    else
-                    {
-                        this.GridSendKey = attri;
-                    }
-
-                    //Grid Receive Key
-                    attri = "";
-                    attri = configData.GetAttribute("GridRecvKey");
-                    if (attri == "")
-                    {
-                        this.GridRecvKey = MainLog.Instance.CmdPrompt("Key to expect from grid server", "null");
-                        configData.SetAttribute("GridRecvKey", this.GridRecvKey);
-                    }
-                    else
-                    {
-                        this.GridRecvKey = attri;
-                    }
-
-                    //Grid Server 
-                    attri = "";
-                    attri = configData.GetAttribute("UserServerURL");
-                    if (attri == "")
-                    {
-                        this.UserURL= MainLog.Instance.CmdPrompt("User server URL", "http://127.0.0.1:8002/");
-                        configData.SetAttribute("UserServerURL", this.UserURL);
-                    }
-                    else
-                    {
-                        this.UserURL = attri;
-                    }
-
-                    //Grid Send Key
-                    attri = "";
-                    attri = configData.GetAttribute("UserSendKey");
-                    if (attri == "")
-                    {
-                        this.UserSendKey = MainLog.Instance.CmdPrompt("Key to send to user server", "null");
-                        configData.SetAttribute("UserSendKey", this.UserSendKey);
-                    }
-                    else
-                    {
-                        this.UserSendKey = attri;
-                    }
-
-                    //Grid Receive Key
-                    attri = "";
-                    attri = configData.GetAttribute("UserRecvKey");
-                    if (attri == "")
-                    {
-                        this.UserRecvKey = MainLog.Instance.CmdPrompt("Key to expect from user server", "null");
-                        configData.SetAttribute("UserRecvKey", this.UserRecvKey);
-                    }
-                    else
-                    {
-                        this.UserRecvKey = attri;
-                    }
-
-                    attri = "";
-                    attri = configData.GetAttribute("AssetServerURL");
-                    if (attri == "")
-                    {
-                        this.AssetURL = MainLog.Instance.CmdPrompt("Asset server URL", "http://127.0.0.1:8003/");
-                        configData.SetAttribute("AssetServerURL", this.GridURL);
-                    }
-                    else
-                    {
-                        this.AssetURL = attri;
-                    }
-
-                }
-                configData.Commit();
-            }
-            catch (Exception e)
-            {
-                MainLog.Instance.Warn("Config.cs:InitConfig() - Exception occured");
-                MainLog.Instance.Warn(e.ToString());
-            }
-        }
-    }
-}
+/*
+* Copyright (c) Contributors, http://www.openmetaverse.org/
+* See CONTRIBUTORS.TXT for a full list of copyright holders.
+*
+* Redistribution and use in source and binary forms, with or without
+* modification, are permitted provided that the following conditions are met:
+*     * Redistributions of source code must retain the above copyright
+*       notice, this list of conditions and the following disclaimer.
+*     * Redistributions in binary form must reproduce the above copyright
+*       notice, this list of conditions and the following disclaimer in the
+*       documentation and/or other materials provided with the distribution.
+*     * Neither the name of the OpenSim Project nor the
+*       names of its contributors may be used to endorse or promote products
+*       derived from this software without specific prior written permission.
+*
+* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS AND ANY
+* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
+* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+* 
+*/
+using System;
+using OpenSim.Framework.Console;
+using OpenSim.Framework.Interfaces;
+
+namespace OpenSim.Framework.Types
+{
+    public class NetworkServersInfo
+    {
+        public string AssetURL = "http://127.0.0.1:8003/";
+        public string AssetSendKey = "";
+
+        public string GridURL = "";
+        public string GridSendKey = "";
+        public string GridRecvKey = "";
+        public string UserURL = "";
+        public string UserSendKey = "";
+        public string UserRecvKey = "";
+        public bool isSandbox;
+
+        public uint DefaultHomeLocX = 1000;
+        public uint DefaultHomeLocY = 1000;
+
+        public int HttpListenerPort = 9000;
+        public int RemotingListenerPort = 8895;
+
+        public void InitConfig(bool sandboxMode, IGenericConfig configData)
+        {
+            this.isSandbox = sandboxMode;
+
+            try
+            {
+                string attri = "";
+
+                attri = "";
+                attri = configData.GetAttribute("HttpListenerPort");
+                if (attri == "")
+                {
+                    string location = MainLog.Instance.CmdPrompt("Http Listener Port", "9000");
+                    configData.SetAttribute("HttpListenerPort", location);
+                    this.HttpListenerPort = Convert.ToInt32(location);
+                }
+                else
+                {
+                    this.HttpListenerPort = Convert.ToInt32(attri);
+                }
+
+                attri = "";
+                attri = configData.GetAttribute("RemotingListenerPort");
+                if (attri == "")
+                {
+                    string location = MainLog.Instance.CmdPrompt("Remoting Listener Port", "8895");
+                    configData.SetAttribute("RemotingListenerPort", location);
+                    this.RemotingListenerPort = Convert.ToInt32(location);
+                }
+                else
+                {
+                    this.RemotingListenerPort = Convert.ToInt32(attri);
+                }
+
+                if (sandboxMode)
+                {
+                    // default home location X
+                    attri = "";
+                    attri = configData.GetAttribute("DefaultLocationX");
+                    if (attri == "")
+                    {
+                        string location = MainLog.Instance.CmdPrompt("Default Home Location X", "1000");
+                        configData.SetAttribute("DefaultLocationX", location);
+                        this.DefaultHomeLocX = (uint)Convert.ToUInt32(location);
+                    }
+                    else
+                    {
+                        this.DefaultHomeLocX = (uint)Convert.ToUInt32(attri);
+                    }
+
+                    // default home location Y
+                    attri = "";
+                    attri = configData.GetAttribute("DefaultLocationY");
+                    if (attri == "")
+                    {
+                        string location = MainLog.Instance.CmdPrompt("Default Home Location Y", "1000");
+                        configData.SetAttribute("DefaultLocationY", location);
+                        this.DefaultHomeLocY = (uint)Convert.ToUInt32(location);
+                    }
+                    else
+                    {
+                        this.DefaultHomeLocY = (uint)Convert.ToUInt32(attri);
+                    }
+                }
+                if (!isSandbox)
+                {
+                    //Grid Server 
+                    attri = "";
+                    attri = configData.GetAttribute("GridServerURL");
+                    if (attri == "")
+                    {
+                        this.GridURL = MainLog.Instance.CmdPrompt("Grid server URL", "http://127.0.0.1:8001/");
+                        configData.SetAttribute("GridServerURL", this.GridURL);
+                    }
+                    else
+                    {
+                        this.GridURL = attri;
+                    }
+
+                    //Grid Send Key
+                    attri = "";
+                    attri = configData.GetAttribute("GridSendKey");
+                    if (attri == "")
+                    {
+                        this.GridSendKey = MainLog.Instance.CmdPrompt("Key to send to grid server", "null");
+                        configData.SetAttribute("GridSendKey", this.GridSendKey);
+                    }
+                    else
+                    {
+                        this.GridSendKey = attri;
+                    }
+
+                    //Grid Receive Key
+                    attri = "";
+                    attri = configData.GetAttribute("GridRecvKey");
+                    if (attri == "")
+                    {
+                        this.GridRecvKey = MainLog.Instance.CmdPrompt("Key to expect from grid server", "null");
+                        configData.SetAttribute("GridRecvKey", this.GridRecvKey);
+                    }
+                    else
+                    {
+                        this.GridRecvKey = attri;
+                    }
+
+                    //Grid Server 
+                    attri = "";
+                    attri = configData.GetAttribute("UserServerURL");
+                    if (attri == "")
+                    {
+                        this.UserURL= MainLog.Instance.CmdPrompt("User server URL", "http://127.0.0.1:8002/");
+                        configData.SetAttribute("UserServerURL", this.UserURL);
+                    }
+                    else
+                    {
+                        this.UserURL = attri;
+                    }
+
+                    //Grid Send Key
+                    attri = "";
+                    attri = configData.GetAttribute("UserSendKey");
+                    if (attri == "")
+                    {
+                        this.UserSendKey = MainLog.Instance.CmdPrompt("Key to send to user server", "null");
+                        configData.SetAttribute("UserSendKey", this.UserSendKey);
+                    }
+                    else
+                    {
+                        this.UserSendKey = attri;
+                    }
+
+                    //Grid Receive Key
+                    attri = "";
+                    attri = configData.GetAttribute("UserRecvKey");
+                    if (attri == "")
+                    {
+                        this.UserRecvKey = MainLog.Instance.CmdPrompt("Key to expect from user server", "null");
+                        configData.SetAttribute("UserRecvKey", this.UserRecvKey);
+                    }
+                    else
+                    {
+                        this.UserRecvKey = attri;
+                    }
+
+                    attri = "";
+                    attri = configData.GetAttribute("AssetServerURL");
+                    if (attri == "")
+                    {
+                        this.AssetURL = MainLog.Instance.CmdPrompt("Asset server URL", "http://127.0.0.1:8003/");
+                        configData.SetAttribute("AssetServerURL", this.GridURL);
+                    }
+                    else
+                    {
+                        this.AssetURL = attri;
+                    }
+
+                }
+                configData.Commit();
+            }
+            catch (Exception e)
+            {
+                MainLog.Instance.Warn("Config.cs:InitConfig() - Exception occured");
+                MainLog.Instance.Warn(e.ToString());
+            }
+        }
+    }
+}

+ 120 - 120
OpenSim/Framework/General/Types/ParcelData.cs

@@ -1,120 +1,120 @@
-/*
-* Copyright (c) Contributors, http://www.openmetaverse.org/
-* See CONTRIBUTORS.TXT for a full list of copyright holders.
-*
-* Redistribution and use in source and binary forms, with or without
-* modification, are permitted provided that the following conditions are met:
-*     * Redistributions of source code must retain the above copyright
-*       notice, this list of conditions and the following disclaimer.
-*     * Redistributions in binary form must reproduce the above copyright
-*       notice, this list of conditions and the following disclaimer in the
-*       documentation and/or other materials provided with the distribution.
-*     * Neither the name of the OpenSim Project nor the
-*       names of its contributors may be used to endorse or promote products
-*       derived from this software without specific prior written permission.
-*
-* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS AND ANY
-* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
-* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-* 
-*/
-using libsecondlife;
-
-namespace OpenSim.Framework.Types
-{
-    
-        public class ParcelData
-        {
-            public byte[] parcelBitmapByteArray = new byte[512];
-            public string parcelName = "Your Parcel";
-            public string parcelDesc = "";
-            public LLUUID ownerID = new LLUUID();
-            public bool isGroupOwned = false;
-            public LLVector3 AABBMin = new LLVector3();
-            public LLVector3 AABBMax = new LLVector3();
-            public int area = 0;
-            public uint auctionID = 0; //Unemplemented. If set to 0, not being auctioned
-            public LLUUID authBuyerID = new LLUUID(); //Unemplemented. Authorized Buyer's UUID
-            public Parcel.ParcelCategory category = new Parcel.ParcelCategory(); //Unemplemented. Parcel's chosen category
-            public int claimDate = 0; //Unemplemented
-            public int claimPrice = 0; //Unemplemented
-            public LLUUID groupID = new LLUUID(); //Unemplemented
-            public int groupPrims = 0;
-            public int otherPrims = 0;
-            public int ownerPrims = 0;
-            public int selectedPrims = 0;
-            public int simwidePrims = 0;
-            public int simwideArea = 0;
-            public int salePrice = 0; //Unemeplemented. Parcels price.
-            public Parcel.ParcelStatus parcelStatus = Parcel.ParcelStatus.Leased;
-            public uint parcelFlags = (uint)Parcel.ParcelFlags.AllowFly | (uint)Parcel.ParcelFlags.AllowLandmark | (uint)Parcel.ParcelFlags.AllowAllObjectEntry | (uint)Parcel.ParcelFlags.AllowDeedToGroup | (uint)Parcel.ParcelFlags.AllowTerraform | (uint)Parcel.ParcelFlags.CreateObjects | (uint)Parcel.ParcelFlags.AllowOtherScripts;
-            public byte landingType = 0;
-            public byte mediaAutoScale = 0;
-            public LLUUID mediaID = LLUUID.Zero;
-            public int localID = 0;
-            public LLUUID globalID = new LLUUID();
-
-            public string mediaURL = "";
-            public string musicURL = "";
-            public float passHours = 0;
-            public int passPrice = 0;
-            public LLUUID snapshotID = LLUUID.Zero;
-            public LLVector3 userLocation = new LLVector3();
-            public LLVector3 userLookAt = new LLVector3();
-
-            public ParcelData()
-            {
-                globalID = LLUUID.Random();
-            }
-
-            public ParcelData Copy()
-            {
-                ParcelData parcelData = new ParcelData();
-
-                parcelData.AABBMax = this.AABBMax;
-                parcelData.AABBMin = this.AABBMin;
-                parcelData.area = this.area;
-                parcelData.auctionID = this.auctionID;
-                parcelData.authBuyerID = this.authBuyerID;
-                parcelData.category = this.category;
-                parcelData.claimDate = this.claimDate;
-                parcelData.claimPrice = this.claimPrice;
-                parcelData.globalID = this.globalID;
-                parcelData.groupID = this.groupID;
-                parcelData.groupPrims = this.groupPrims;
-                parcelData.otherPrims = this.otherPrims;
-                parcelData.ownerPrims = this.ownerPrims;
-                parcelData.selectedPrims = this.selectedPrims;
-                parcelData.isGroupOwned = this.isGroupOwned;
-                parcelData.localID = this.localID;
-                parcelData.landingType = this.landingType;
-                parcelData.mediaAutoScale = this.mediaAutoScale;
-                parcelData.mediaID = this.mediaID;
-                parcelData.mediaURL = this.mediaURL;
-                parcelData.musicURL = this.musicURL;
-                parcelData.ownerID = this.ownerID;
-                parcelData.parcelBitmapByteArray = (byte[])this.parcelBitmapByteArray.Clone();
-                parcelData.parcelDesc = this.parcelDesc;
-                parcelData.parcelFlags = this.parcelFlags;
-                parcelData.parcelName = this.parcelName;
-                parcelData.parcelStatus = this.parcelStatus;
-                parcelData.passHours = this.passHours;
-                parcelData.passPrice = this.passPrice;
-                parcelData.salePrice = this.salePrice;
-                parcelData.snapshotID = this.snapshotID;
-                parcelData.userLocation = this.userLocation;
-                parcelData.userLookAt = this.userLookAt;
-
-                return parcelData;
-           
-            }
-        }
-    
-}
+/*
+* Copyright (c) Contributors, http://www.openmetaverse.org/
+* See CONTRIBUTORS.TXT for a full list of copyright holders.
+*
+* Redistribution and use in source and binary forms, with or without
+* modification, are permitted provided that the following conditions are met:
+*     * Redistributions of source code must retain the above copyright
+*       notice, this list of conditions and the following disclaimer.
+*     * Redistributions in binary form must reproduce the above copyright
+*       notice, this list of conditions and the following disclaimer in the
+*       documentation and/or other materials provided with the distribution.
+*     * Neither the name of the OpenSim Project nor the
+*       names of its contributors may be used to endorse or promote products
+*       derived from this software without specific prior written permission.
+*
+* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS AND ANY
+* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
+* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+* 
+*/
+using libsecondlife;
+
+namespace OpenSim.Framework.Types
+{
+    
+        public class ParcelData
+        {
+            public byte[] parcelBitmapByteArray = new byte[512];
+            public string parcelName = "Your Parcel";
+            public string parcelDesc = "";
+            public LLUUID ownerID = new LLUUID();
+            public bool isGroupOwned = false;
+            public LLVector3 AABBMin = new LLVector3();
+            public LLVector3 AABBMax = new LLVector3();
+            public int area = 0;
+            public uint auctionID = 0; //Unemplemented. If set to 0, not being auctioned
+            public LLUUID authBuyerID = new LLUUID(); //Unemplemented. Authorized Buyer's UUID
+            public Parcel.ParcelCategory category = new Parcel.ParcelCategory(); //Unemplemented. Parcel's chosen category
+            public int claimDate = 0; //Unemplemented
+            public int claimPrice = 0; //Unemplemented
+            public LLUUID groupID = new LLUUID(); //Unemplemented
+            public int groupPrims = 0;
+            public int otherPrims = 0;
+            public int ownerPrims = 0;
+            public int selectedPrims = 0;
+            public int simwidePrims = 0;
+            public int simwideArea = 0;
+            public int salePrice = 0; //Unemeplemented. Parcels price.
+            public Parcel.ParcelStatus parcelStatus = Parcel.ParcelStatus.Leased;
+            public uint parcelFlags = (uint)Parcel.ParcelFlags.AllowFly | (uint)Parcel.ParcelFlags.AllowLandmark | (uint)Parcel.ParcelFlags.AllowAllObjectEntry | (uint)Parcel.ParcelFlags.AllowDeedToGroup | (uint)Parcel.ParcelFlags.AllowTerraform | (uint)Parcel.ParcelFlags.CreateObjects | (uint)Parcel.ParcelFlags.AllowOtherScripts;
+            public byte landingType = 0;
+            public byte mediaAutoScale = 0;
+            public LLUUID mediaID = LLUUID.Zero;
+            public int localID = 0;
+            public LLUUID globalID = new LLUUID();
+
+            public string mediaURL = "";
+            public string musicURL = "";
+            public float passHours = 0;
+            public int passPrice = 0;
+            public LLUUID snapshotID = LLUUID.Zero;
+            public LLVector3 userLocation = new LLVector3();
+            public LLVector3 userLookAt = new LLVector3();
+
+            public ParcelData()
+            {
+                globalID = LLUUID.Random();
+            }
+
+            public ParcelData Copy()
+            {
+                ParcelData parcelData = new ParcelData();
+
+                parcelData.AABBMax = this.AABBMax;
+                parcelData.AABBMin = this.AABBMin;
+                parcelData.area = this.area;
+                parcelData.auctionID = this.auctionID;
+                parcelData.authBuyerID = this.authBuyerID;
+                parcelData.category = this.category;
+                parcelData.claimDate = this.claimDate;
+                parcelData.claimPrice = this.claimPrice;
+                parcelData.globalID = this.globalID;
+                parcelData.groupID = this.groupID;
+                parcelData.groupPrims = this.groupPrims;
+                parcelData.otherPrims = this.otherPrims;
+                parcelData.ownerPrims = this.ownerPrims;
+                parcelData.selectedPrims = this.selectedPrims;
+                parcelData.isGroupOwned = this.isGroupOwned;
+                parcelData.localID = this.localID;
+                parcelData.landingType = this.landingType;
+                parcelData.mediaAutoScale = this.mediaAutoScale;
+                parcelData.mediaID = this.mediaID;
+                parcelData.mediaURL = this.mediaURL;
+                parcelData.musicURL = this.musicURL;
+                parcelData.ownerID = this.ownerID;
+                parcelData.parcelBitmapByteArray = (byte[])this.parcelBitmapByteArray.Clone();
+                parcelData.parcelDesc = this.parcelDesc;
+                parcelData.parcelFlags = this.parcelFlags;
+                parcelData.parcelName = this.parcelName;
+                parcelData.parcelStatus = this.parcelStatus;
+                parcelData.passHours = this.passHours;
+                parcelData.passPrice = this.passPrice;
+                parcelData.salePrice = this.salePrice;
+                parcelData.snapshotID = this.snapshotID;
+                parcelData.userLocation = this.userLocation;
+                parcelData.userLookAt = this.userLookAt;
+
+                return parcelData;
+           
+            }
+        }
+    
+}

+ 228 - 228
OpenSim/Framework/General/Types/PrimData.cs

@@ -1,228 +1,228 @@
-/*
-* Copyright (c) Contributors, http://www.openmetaverse.org/
-* See CONTRIBUTORS.TXT for a full list of copyright holders.
-*
-* Redistribution and use in source and binary forms, with or without
-* modification, are permitted provided that the following conditions are met:
-*     * Redistributions of source code must retain the above copyright
-*       notice, this list of conditions and the following disclaimer.
-*     * Redistributions in binary form must reproduce the above copyright
-*       notice, this list of conditions and the following disclaimer in the
-*       documentation and/or other materials provided with the distribution.
-*     * Neither the name of the OpenSim Project nor the
-*       names of its contributors may be used to endorse or promote products
-*       derived from this software without specific prior written permission.
-*
-* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS AND ANY
-* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
-* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-* 
-*/
-using System;
-using libsecondlife;
-
-namespace OpenSim.Framework.Types
-{
-    public class PrimData
-    {
-        private const uint FULL_MASK_PERMISSIONS = 2147483647;
-
-        public LLUUID OwnerID;
-        public byte PCode;
-        public ushort PathBegin;
-        public ushort PathEnd;
-        public byte PathScaleX;
-        public byte PathScaleY;
-        public byte PathShearX;
-        public byte PathShearY;
-        public sbyte PathSkew;
-        public ushort ProfileBegin;
-        public ushort ProfileEnd;
-        public LLVector3 Scale;
-        public byte PathCurve;
-        public byte ProfileCurve;
-        public uint ParentID = 0;
-        public ushort ProfileHollow;
-        public sbyte PathRadiusOffset;
-        public byte PathRevolutions;
-        public sbyte PathTaperX;
-        public sbyte PathTaperY;
-        public sbyte PathTwist;
-        public sbyte PathTwistBegin;
-        public byte[] TextureEntry; // a LL textureEntry in byte[] format
-
-        public Int32 CreationDate;
-        public uint OwnerMask = FULL_MASK_PERMISSIONS;
-        public uint NextOwnerMask = FULL_MASK_PERMISSIONS;
-        public uint GroupMask = FULL_MASK_PERMISSIONS;
-        public uint EveryoneMask = FULL_MASK_PERMISSIONS;
-        public uint BaseMask = FULL_MASK_PERMISSIONS;
-
-        //following only used during prim storage
-        public LLVector3 Position;
-        public LLQuaternion Rotation = new LLQuaternion(0, 1, 0, 0);
-        public uint LocalID;
-        public LLUUID FullID;
-
-        public PrimData()
-        {
-
-        }
-
-        public PrimData(byte[] data)
-        {
-            int i = 0;
-
-            this.OwnerID = new LLUUID(data, i); i += 16;
-            this.PCode = data[i++];
-            this.PathBegin = (ushort)(data[i++] + (data[i++] << 8));
-            this.PathEnd = (ushort)(data[i++] + (data[i++] << 8));
-            this.PathScaleX = data[i++];
-            this.PathScaleY = data[i++];
-            this.PathShearX = data[i++];
-            this.PathShearY = data[i++];
-            this.PathSkew = (sbyte)data[i++];
-            this.ProfileBegin = (ushort)(data[i++] + (data[i++] << 8));
-            this.ProfileEnd = (ushort)(data[i++] + (data[i++] << 8));
-            this.Scale = new LLVector3(data, i); i += 12;
-            this.PathCurve = data[i++];
-            this.ProfileCurve = data[i++];
-            this.ParentID = (uint)(data[i++] + (data[i++] << 8) + (data[i++] << 16) + (data[i++] << 24));
-            this.ProfileHollow = (ushort)(data[i++] + (data[i++] << 8));
-            this.PathRadiusOffset = (sbyte)data[i++];
-            this.PathRevolutions = data[i++];
-            this.PathTaperX = (sbyte)data[i++];
-            this.PathTaperY = (sbyte)data[i++];
-            this.PathTwist = (sbyte)data[i++];
-            this.PathTwistBegin = (sbyte)data[i++];
-            ushort length = (ushort)(data[i++] + (data[i++] << 8));
-            this.TextureEntry = new byte[length];
-            Array.Copy(data, i, TextureEntry, 0, length); i += length;
-            this.CreationDate = (Int32)(data[i++] + (data[i++] << 8) + (data[i++] << 16) + (data[i++] << 24));
-            this.OwnerMask = (uint)(data[i++] + (data[i++] << 8) + (data[i++] << 16) + (data[i++] << 24));
-            this.NextOwnerMask = (uint)(data[i++] + (data[i++] << 8) + (data[i++] << 16) + (data[i++] << 24));
-            this.GroupMask = (uint)(data[i++] + (data[i++] << 8) + (data[i++] << 16) + (data[i++] << 24));
-            this.EveryoneMask = (uint)(data[i++] + (data[i++] << 8) + (data[i++] << 16) + (data[i++] << 24));
-            this.BaseMask = (uint)(data[i++] + (data[i++] << 8) + (data[i++] << 16) + (data[i++] << 24));
-            this.Position = new LLVector3(data, i); i += 12;
-            this.Rotation = new LLQuaternion(data, i, true); i += 12;
-            this.LocalID = (uint)(data[i++] + (data[i++] << 8) + (data[i++] << 16) + (data[i++] << 24));
-            this.FullID = new LLUUID(data, i); i += 16;
-
-        }
-
-        public byte[] ToBytes()
-        {
-            int i = 0;
-            byte[] bytes = new byte[126 + TextureEntry.Length];
-            Array.Copy(OwnerID.GetBytes(), 0, bytes, i, 16); i += 16;
-            bytes[i++] = this.PCode;
-            bytes[i++] = (byte)(this.PathBegin % 256);
-            bytes[i++] = (byte)((this.PathBegin >> 8) % 256);
-            bytes[i++] = (byte)(this.PathEnd % 256);
-            bytes[i++] = (byte)((this.PathEnd >> 8) % 256);
-            bytes[i++] = this.PathScaleX;
-            bytes[i++] = this.PathScaleY;
-            bytes[i++] = this.PathShearX;
-            bytes[i++] = this.PathShearY;
-            bytes[i++] = (byte)this.PathSkew;
-            bytes[i++] = (byte)(this.ProfileBegin % 256);
-            bytes[i++] = (byte)((this.ProfileBegin >> 8) % 256);
-            bytes[i++] = (byte)(this.ProfileEnd % 256);
-            bytes[i++] = (byte)((this.ProfileEnd >> 8) % 256);
-            Array.Copy(Scale.GetBytes(), 0, bytes, i, 12); i += 12;
-            bytes[i++] = this.PathCurve;
-            bytes[i++] = this.ProfileCurve;
-            bytes[i++] = (byte)(ParentID % 256);
-            bytes[i++] = (byte)((ParentID >> 8) % 256);
-            bytes[i++] = (byte)((ParentID >> 16) % 256);
-            bytes[i++] = (byte)((ParentID >> 24) % 256);
-            bytes[i++] = (byte)(this.ProfileHollow % 256);
-            bytes[i++] = (byte)((this.ProfileHollow >> 8) % 256);
-            bytes[i++] = ((byte)this.PathRadiusOffset);
-            bytes[i++] = this.PathRevolutions;
-            bytes[i++] = ((byte)this.PathTaperX);
-            bytes[i++] = ((byte)this.PathTaperY);
-            bytes[i++] = ((byte)this.PathTwist);
-            bytes[i++] = ((byte)this.PathTwistBegin);
-            bytes[i++] = (byte)(TextureEntry.Length % 256);
-            bytes[i++] = (byte)((TextureEntry.Length >> 8) % 256);
-            Array.Copy(TextureEntry, 0, bytes, i, TextureEntry.Length); i += TextureEntry.Length;
-            bytes[i++] = (byte)(this.CreationDate % 256);
-            bytes[i++] = (byte)((this.CreationDate >> 8) % 256);
-            bytes[i++] = (byte)((this.CreationDate >> 16) % 256);
-            bytes[i++] = (byte)((this.CreationDate >> 24) % 256);
-            bytes[i++] = (byte)(this.OwnerMask % 256);
-            bytes[i++] = (byte)((this.OwnerMask >> 8) % 256);
-            bytes[i++] = (byte)((this.OwnerMask >> 16) % 256);
-            bytes[i++] = (byte)((this.OwnerMask >> 24) % 256);
-            bytes[i++] = (byte)(this.NextOwnerMask % 256);
-            bytes[i++] = (byte)((this.NextOwnerMask >> 8) % 256);
-            bytes[i++] = (byte)((this.NextOwnerMask >> 16) % 256);
-            bytes[i++] = (byte)((this.NextOwnerMask >> 24) % 256);
-            bytes[i++] = (byte)(this.GroupMask % 256);
-            bytes[i++] = (byte)((this.GroupMask >> 8) % 256);
-            bytes[i++] = (byte)((this.GroupMask >> 16) % 256);
-            bytes[i++] = (byte)((this.GroupMask >> 24) % 256);
-            bytes[i++] = (byte)(this.EveryoneMask % 256);
-            bytes[i++] = (byte)((this.EveryoneMask >> 8) % 256);
-            bytes[i++] = (byte)((this.EveryoneMask >> 16) % 256);
-            bytes[i++] = (byte)((this.EveryoneMask >> 24) % 256);
-            bytes[i++] = (byte)(this.BaseMask % 256);
-            bytes[i++] = (byte)((this.BaseMask >> 8) % 256);
-            bytes[i++] = (byte)((this.BaseMask >> 16) % 256);
-            bytes[i++] = (byte)((this.BaseMask >> 24) % 256);
-            Array.Copy(this.Position.GetBytes(), 0, bytes, i, 12); i += 12;
-            if (this.Rotation == new LLQuaternion(0, 0, 0, 0))
-            {
-                this.Rotation = new LLQuaternion(0, 1, 0, 0);
-            }
-            Array.Copy(this.Rotation.GetBytes(), 0, bytes, i, 12); i += 12;
-            bytes[i++] = (byte)(this.LocalID % 256);
-            bytes[i++] = (byte)((this.LocalID >> 8) % 256);
-            bytes[i++] = (byte)((this.LocalID >> 16) % 256);
-            bytes[i++] = (byte)((this.LocalID >> 24) % 256);
-            Array.Copy(FullID.GetBytes(), 0, bytes, i, 16); i += 16;
-
-            return bytes;
-        }
-
-        public static PrimData DefaultCube()
-        {
-            PrimData primData = new PrimData();
-            primData.CreationDate = (Int32)(DateTime.UtcNow - new DateTime(1970, 1, 1)).TotalSeconds;
-            primData.FullID = LLUUID.Random();
-            primData.Scale = new LLVector3(0.5f, 0.5f, 0.5f);
-            primData.Rotation = new LLQuaternion(0, 0, 0, 1);
-            primData.PCode = 9;
-            primData.ParentID = 0;
-            primData.PathBegin = 0;
-            primData.PathEnd = 0;
-            primData.PathScaleX = 0;
-            primData.PathScaleY = 0;
-            primData.PathShearX = 0;
-            primData.PathShearY = 0;
-            primData.PathSkew = 0;
-            primData.ProfileBegin = 0;
-            primData.ProfileEnd = 0;
-            primData.PathCurve = 16;
-            primData.ProfileCurve = 1;
-            primData.ProfileHollow = 0;
-            primData.PathRadiusOffset = 0;
-            primData.PathRevolutions = 0;
-            primData.PathTaperX = 0;
-            primData.PathTaperY = 0;
-            primData.PathTwist = 0;
-            primData.PathTwistBegin = 0;
-
-            return primData;
-        }
-    }
-}
+/*
+* Copyright (c) Contributors, http://www.openmetaverse.org/
+* See CONTRIBUTORS.TXT for a full list of copyright holders.
+*
+* Redistribution and use in source and binary forms, with or without
+* modification, are permitted provided that the following conditions are met:
+*     * Redistributions of source code must retain the above copyright
+*       notice, this list of conditions and the following disclaimer.
+*     * Redistributions in binary form must reproduce the above copyright
+*       notice, this list of conditions and the following disclaimer in the
+*       documentation and/or other materials provided with the distribution.
+*     * Neither the name of the OpenSim Project nor the
+*       names of its contributors may be used to endorse or promote products
+*       derived from this software without specific prior written permission.
+*
+* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS AND ANY
+* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
+* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+* 
+*/
+using System;
+using libsecondlife;
+
+namespace OpenSim.Framework.Types
+{
+    public class PrimData
+    {
+        private const uint FULL_MASK_PERMISSIONS = 2147483647;
+
+        public LLUUID OwnerID;
+        public byte PCode;
+        public ushort PathBegin;
+        public ushort PathEnd;
+        public byte PathScaleX;
+        public byte PathScaleY;
+        public byte PathShearX;
+        public byte PathShearY;
+        public sbyte PathSkew;
+        public ushort ProfileBegin;
+        public ushort ProfileEnd;
+        public LLVector3 Scale;
+        public byte PathCurve;
+        public byte ProfileCurve;
+        public uint ParentID = 0;
+        public ushort ProfileHollow;
+        public sbyte PathRadiusOffset;
+        public byte PathRevolutions;
+        public sbyte PathTaperX;
+        public sbyte PathTaperY;
+        public sbyte PathTwist;
+        public sbyte PathTwistBegin;
+        public byte[] TextureEntry; // a LL textureEntry in byte[] format
+
+        public Int32 CreationDate;
+        public uint OwnerMask = FULL_MASK_PERMISSIONS;
+        public uint NextOwnerMask = FULL_MASK_PERMISSIONS;
+        public uint GroupMask = FULL_MASK_PERMISSIONS;
+        public uint EveryoneMask = FULL_MASK_PERMISSIONS;
+        public uint BaseMask = FULL_MASK_PERMISSIONS;
+
+        //following only used during prim storage
+        public LLVector3 Position;
+        public LLQuaternion Rotation = new LLQuaternion(0, 1, 0, 0);
+        public uint LocalID;
+        public LLUUID FullID;
+
+        public PrimData()
+        {
+
+        }
+
+        public PrimData(byte[] data)
+        {
+            int i = 0;
+
+            this.OwnerID = new LLUUID(data, i); i += 16;
+            this.PCode = data[i++];
+            this.PathBegin = (ushort)(data[i++] + (data[i++] << 8));
+            this.PathEnd = (ushort)(data[i++] + (data[i++] << 8));
+            this.PathScaleX = data[i++];
+            this.PathScaleY = data[i++];
+            this.PathShearX = data[i++];
+            this.PathShearY = data[i++];
+            this.PathSkew = (sbyte)data[i++];
+            this.ProfileBegin = (ushort)(data[i++] + (data[i++] << 8));
+            this.ProfileEnd = (ushort)(data[i++] + (data[i++] << 8));
+            this.Scale = new LLVector3(data, i); i += 12;
+            this.PathCurve = data[i++];
+            this.ProfileCurve = data[i++];
+            this.ParentID = (uint)(data[i++] + (data[i++] << 8) + (data[i++] << 16) + (data[i++] << 24));
+            this.ProfileHollow = (ushort)(data[i++] + (data[i++] << 8));
+            this.PathRadiusOffset = (sbyte)data[i++];
+            this.PathRevolutions = data[i++];
+            this.PathTaperX = (sbyte)data[i++];
+            this.PathTaperY = (sbyte)data[i++];
+            this.PathTwist = (sbyte)data[i++];
+            this.PathTwistBegin = (sbyte)data[i++];
+            ushort length = (ushort)(data[i++] + (data[i++] << 8));
+            this.TextureEntry = new byte[length];
+            Array.Copy(data, i, TextureEntry, 0, length); i += length;
+            this.CreationDate = (Int32)(data[i++] + (data[i++] << 8) + (data[i++] << 16) + (data[i++] << 24));
+            this.OwnerMask = (uint)(data[i++] + (data[i++] << 8) + (data[i++] << 16) + (data[i++] << 24));
+            this.NextOwnerMask = (uint)(data[i++] + (data[i++] << 8) + (data[i++] << 16) + (data[i++] << 24));
+            this.GroupMask = (uint)(data[i++] + (data[i++] << 8) + (data[i++] << 16) + (data[i++] << 24));
+            this.EveryoneMask = (uint)(data[i++] + (data[i++] << 8) + (data[i++] << 16) + (data[i++] << 24));
+            this.BaseMask = (uint)(data[i++] + (data[i++] << 8) + (data[i++] << 16) + (data[i++] << 24));
+            this.Position = new LLVector3(data, i); i += 12;
+            this.Rotation = new LLQuaternion(data, i, true); i += 12;
+            this.LocalID = (uint)(data[i++] + (data[i++] << 8) + (data[i++] << 16) + (data[i++] << 24));
+            this.FullID = new LLUUID(data, i); i += 16;
+
+        }
+
+        public byte[] ToBytes()
+        {
+            int i = 0;
+            byte[] bytes = new byte[126 + TextureEntry.Length];
+            Array.Copy(OwnerID.GetBytes(), 0, bytes, i, 16); i += 16;
+            bytes[i++] = this.PCode;
+            bytes[i++] = (byte)(this.PathBegin % 256);
+            bytes[i++] = (byte)((this.PathBegin >> 8) % 256);
+            bytes[i++] = (byte)(this.PathEnd % 256);
+            bytes[i++] = (byte)((this.PathEnd >> 8) % 256);
+            bytes[i++] = this.PathScaleX;
+            bytes[i++] = this.PathScaleY;
+            bytes[i++] = this.PathShearX;
+            bytes[i++] = this.PathShearY;
+            bytes[i++] = (byte)this.PathSkew;
+            bytes[i++] = (byte)(this.ProfileBegin % 256);
+            bytes[i++] = (byte)((this.ProfileBegin >> 8) % 256);
+            bytes[i++] = (byte)(this.ProfileEnd % 256);
+            bytes[i++] = (byte)((this.ProfileEnd >> 8) % 256);
+            Array.Copy(Scale.GetBytes(), 0, bytes, i, 12); i += 12;
+            bytes[i++] = this.PathCurve;
+            bytes[i++] = this.ProfileCurve;
+            bytes[i++] = (byte)(ParentID % 256);
+            bytes[i++] = (byte)((ParentID >> 8) % 256);
+            bytes[i++] = (byte)((ParentID >> 16) % 256);
+            bytes[i++] = (byte)((ParentID >> 24) % 256);
+            bytes[i++] = (byte)(this.ProfileHollow % 256);
+            bytes[i++] = (byte)((this.ProfileHollow >> 8) % 256);
+            bytes[i++] = ((byte)this.PathRadiusOffset);
+            bytes[i++] = this.PathRevolutions;
+            bytes[i++] = ((byte)this.PathTaperX);
+            bytes[i++] = ((byte)this.PathTaperY);
+            bytes[i++] = ((byte)this.PathTwist);
+            bytes[i++] = ((byte)this.PathTwistBegin);
+            bytes[i++] = (byte)(TextureEntry.Length % 256);
+            bytes[i++] = (byte)((TextureEntry.Length >> 8) % 256);
+            Array.Copy(TextureEntry, 0, bytes, i, TextureEntry.Length); i += TextureEntry.Length;
+            bytes[i++] = (byte)(this.CreationDate % 256);
+            bytes[i++] = (byte)((this.CreationDate >> 8) % 256);
+            bytes[i++] = (byte)((this.CreationDate >> 16) % 256);
+            bytes[i++] = (byte)((this.CreationDate >> 24) % 256);
+            bytes[i++] = (byte)(this.OwnerMask % 256);
+            bytes[i++] = (byte)((this.OwnerMask >> 8) % 256);
+            bytes[i++] = (byte)((this.OwnerMask >> 16) % 256);
+            bytes[i++] = (byte)((this.OwnerMask >> 24) % 256);
+            bytes[i++] = (byte)(this.NextOwnerMask % 256);
+            bytes[i++] = (byte)((this.NextOwnerMask >> 8) % 256);
+            bytes[i++] = (byte)((this.NextOwnerMask >> 16) % 256);
+            bytes[i++] = (byte)((this.NextOwnerMask >> 24) % 256);
+            bytes[i++] = (byte)(this.GroupMask % 256);
+            bytes[i++] = (byte)((this.GroupMask >> 8) % 256);
+            bytes[i++] = (byte)((this.GroupMask >> 16) % 256);
+            bytes[i++] = (byte)((this.GroupMask >> 24) % 256);
+            bytes[i++] = (byte)(this.EveryoneMask % 256);
+            bytes[i++] = (byte)((this.EveryoneMask >> 8) % 256);
+            bytes[i++] = (byte)((this.EveryoneMask >> 16) % 256);
+            bytes[i++] = (byte)((this.EveryoneMask >> 24) % 256);
+            bytes[i++] = (byte)(this.BaseMask % 256);
+            bytes[i++] = (byte)((this.BaseMask >> 8) % 256);
+            bytes[i++] = (byte)((this.BaseMask >> 16) % 256);
+            bytes[i++] = (byte)((this.BaseMask >> 24) % 256);
+            Array.Copy(this.Position.GetBytes(), 0, bytes, i, 12); i += 12;
+            if (this.Rotation == new LLQuaternion(0, 0, 0, 0))
+            {
+                this.Rotation = new LLQuaternion(0, 1, 0, 0);
+            }
+            Array.Copy(this.Rotation.GetBytes(), 0, bytes, i, 12); i += 12;
+            bytes[i++] = (byte)(this.LocalID % 256);
+            bytes[i++] = (byte)((this.LocalID >> 8) % 256);
+            bytes[i++] = (byte)((this.LocalID >> 16) % 256);
+            bytes[i++] = (byte)((this.LocalID >> 24) % 256);
+            Array.Copy(FullID.GetBytes(), 0, bytes, i, 16); i += 16;
+
+            return bytes;
+        }
+
+        public static PrimData DefaultCube()
+        {
+            PrimData primData = new PrimData();
+            primData.CreationDate = (Int32)(DateTime.UtcNow - new DateTime(1970, 1, 1)).TotalSeconds;
+            primData.FullID = LLUUID.Random();
+            primData.Scale = new LLVector3(0.5f, 0.5f, 0.5f);
+            primData.Rotation = new LLQuaternion(0, 0, 0, 1);
+            primData.PCode = 9;
+            primData.ParentID = 0;
+            primData.PathBegin = 0;
+            primData.PathEnd = 0;
+            primData.PathScaleX = 0;
+            primData.PathScaleY = 0;
+            primData.PathShearX = 0;
+            primData.PathShearY = 0;
+            primData.PathSkew = 0;
+            primData.ProfileBegin = 0;
+            primData.ProfileEnd = 0;
+            primData.PathCurve = 16;
+            primData.ProfileCurve = 1;
+            primData.ProfileHollow = 0;
+            primData.PathRadiusOffset = 0;
+            primData.PathRevolutions = 0;
+            primData.PathTaperX = 0;
+            primData.PathTaperY = 0;
+            primData.PathTwist = 0;
+            primData.PathTwistBegin = 0;
+
+            return primData;
+        }
+    }
+}

+ 109 - 109
OpenSim/Framework/General/Types/PrimitiveBaseShape.cs

@@ -1,109 +1,109 @@
-using libsecondlife;
-using libsecondlife.Packets;
-
-namespace OpenSim.Framework.Types
-{
-    public enum ShapeType
-    {
-        Box,
-        Sphere,
-        Ring,
-        Tube,
-        Torus,
-        Prism,
-        Scuplted,
-        Cylinder,
-        Foliage,
-        Unknown
-    }
-
-    public class PrimitiveBaseShape
-    {
-        private ShapeType type = ShapeType.Unknown;
-
-        public byte PCode;
-        public ushort PathBegin;
-        public ushort PathEnd;
-        public byte PathScaleX;
-        public byte PathScaleY;
-        public byte PathShearX;
-        public byte PathShearY;
-        public sbyte PathSkew;
-        public ushort ProfileBegin;
-        public ushort ProfileEnd;
-        public LLVector3 Scale;
-        public byte PathCurve;
-        public byte ProfileCurve;
-        public ushort ProfileHollow;
-        public sbyte PathRadiusOffset;
-        public byte PathRevolutions;
-        public sbyte PathTaperX;
-        public sbyte PathTaperY;
-        public sbyte PathTwist;
-        public sbyte PathTwistBegin;
-        public byte[] TextureEntry; // a LL textureEntry in byte[] format
-
-        public ShapeType PrimType
-        {
-            get
-            {
-                return this.type;
-            }
-        }
-
-        public LLVector3 PrimScale
-        {
-            get
-            {
-                return this.Scale;
-            }
-        }
-
-        public PrimitiveBaseShape()
-        {
-
-        }
-
-        //void returns need to change of course
-        public void GetMesh()
-        {
-
-        }
-
-        public PrimitiveBaseShape Copy()
-        {
-            return (PrimitiveBaseShape) this.MemberwiseClone();
-        }
-
-        public static PrimitiveBaseShape DefaultBox()
-        {
-            PrimitiveBaseShape primShape = new PrimitiveBaseShape();
-
-            primShape.type = ShapeType.Box;
-            primShape.Scale = new LLVector3(0.5f, 0.5f, 0.5f);
-            primShape.PCode = 9;
-            primShape.PathBegin = 0;
-            primShape.PathEnd = 0;
-            primShape.PathScaleX = 0;
-            primShape.PathScaleY = 0;
-            primShape.PathShearX = 0;
-            primShape.PathShearY = 0;
-            primShape.PathSkew = 0;
-            primShape.ProfileBegin = 0;
-            primShape.ProfileEnd = 0;
-            primShape.PathCurve = 16;
-            primShape.ProfileCurve = 1;
-            primShape.ProfileHollow = 0;
-            primShape.PathRadiusOffset = 0;
-            primShape.PathRevolutions = 0;
-            primShape.PathTaperX = 0;
-            primShape.PathTaperY = 0;
-            primShape.PathTwist = 0;
-            primShape.PathTwistBegin = 0;
-            LLObject.TextureEntry ntex = new LLObject.TextureEntry(new LLUUID("00000000-0000-0000-9999-000000000005"));
-            primShape.TextureEntry = ntex.ToBytes();
-
-            return primShape;
-        }
-    }
-}
+using libsecondlife;
+using libsecondlife.Packets;
+
+namespace OpenSim.Framework.Types
+{
+    public enum ShapeType
+    {
+        Box,
+        Sphere,
+        Ring,
+        Tube,
+        Torus,
+        Prism,
+        Scuplted,
+        Cylinder,
+        Foliage,
+        Unknown
+    }
+
+    public class PrimitiveBaseShape
+    {
+        private ShapeType type = ShapeType.Unknown;
+
+        public byte PCode;
+        public ushort PathBegin;
+        public ushort PathEnd;
+        public byte PathScaleX;
+        public byte PathScaleY;
+        public byte PathShearX;
+        public byte PathShearY;
+        public sbyte PathSkew;
+        public ushort ProfileBegin;
+        public ushort ProfileEnd;
+        public LLVector3 Scale;
+        public byte PathCurve;
+        public byte ProfileCurve;
+        public ushort ProfileHollow;
+        public sbyte PathRadiusOffset;
+        public byte PathRevolutions;
+        public sbyte PathTaperX;
+        public sbyte PathTaperY;
+        public sbyte PathTwist;
+        public sbyte PathTwistBegin;
+        public byte[] TextureEntry; // a LL textureEntry in byte[] format
+
+        public ShapeType PrimType
+        {
+            get
+            {
+                return this.type;
+            }
+        }
+
+        public LLVector3 PrimScale
+        {
+            get
+            {
+                return this.Scale;
+            }
+        }
+
+        public PrimitiveBaseShape()
+        {
+
+        }
+
+        //void returns need to change of course
+        public void GetMesh()
+        {
+
+        }
+
+        public PrimitiveBaseShape Copy()
+        {
+            return (PrimitiveBaseShape) this.MemberwiseClone();
+        }
+
+        public static PrimitiveBaseShape DefaultBox()
+        {
+            PrimitiveBaseShape primShape = new PrimitiveBaseShape();
+
+            primShape.type = ShapeType.Box;
+            primShape.Scale = new LLVector3(0.5f, 0.5f, 0.5f);
+            primShape.PCode = 9;
+            primShape.PathBegin = 0;
+            primShape.PathEnd = 0;
+            primShape.PathScaleX = 0;
+            primShape.PathScaleY = 0;
+            primShape.PathShearX = 0;
+            primShape.PathShearY = 0;
+            primShape.PathSkew = 0;
+            primShape.ProfileBegin = 0;
+            primShape.ProfileEnd = 0;
+            primShape.PathCurve = 16;
+            primShape.ProfileCurve = 1;
+            primShape.ProfileHollow = 0;
+            primShape.PathRadiusOffset = 0;
+            primShape.PathRevolutions = 0;
+            primShape.PathTaperX = 0;
+            primShape.PathTaperY = 0;
+            primShape.PathTwist = 0;
+            primShape.PathTwistBegin = 0;
+            LLObject.TextureEntry ntex = new LLObject.TextureEntry(new LLUUID("00000000-0000-0000-9999-000000000005"));
+            primShape.TextureEntry = ntex.ToBytes();
+
+            return primShape;
+        }
+    }
+}

+ 121 - 121
OpenSim/Framework/General/Types/RegionHandle.cs

@@ -1,121 +1,121 @@
-using System;
-using System.Net;
-
-namespace OpenSim.Framework.Types
-{
-    /// <summary>
-    /// A class for manipulating RegionHandle coordinates
-    /// </summary>
-    class RegionHandle
-    {
-        private UInt64 handle;
-
-        /// <summary>
-        /// Initialises a new grid-aware RegionHandle
-        /// </summary>
-        /// <param name="ip">IP Address of the Grid Server for this region</param>
-        /// <param name="x">Grid X Coordinate</param>
-        /// <param name="y">Grid Y Coordinate</param>
-        public RegionHandle(string ip, short x, short y)
-        {
-            IPAddress addr = IPAddress.Parse(ip);
-
-            if (addr.AddressFamily != System.Net.Sockets.AddressFamily.InterNetwork)
-                throw new Exception("Bad RegionHandle Parameter - must be an IPv4 address");
-
-            uint baseHandle = BitConverter.ToUInt32(addr.GetAddressBytes(), 0);
-
-            // Split the IP address in half
-            short a = (short)((baseHandle << 16) & 0xFFFF);
-            short b = (short)((baseHandle <<  0) & 0xFFFF);
-
-            // Raise the bounds a little
-            uint nx = (uint)x;
-            uint ny = (uint)y;
-
-            // Multiply grid coords to get region coords
-            nx *= 256;
-            ny *= 256;
-
-            // Stuff the IP address in too
-            nx = (uint)a << 16;
-            ny = (uint)b << 16;
-
-            handle = ((UInt64)nx << 32) | (uint)ny;
-        }
-
-        /// <summary>
-        /// Initialises a new RegionHandle that is not inter-grid aware
-        /// </summary>
-        /// <param name="x">Grid X Coordinate</param>
-        /// <param name="y">Grid Y Coordinate</param>
-        public RegionHandle(uint x, uint y)
-        {
-            handle = ((x * 256) << 32) | (y * 256);
-        }
-
-        /// <summary>
-        /// Initialises a new RegionHandle from an existing value
-        /// </summary>
-        /// <param name="Region">A U64 RegionHandle</param>
-        public RegionHandle(UInt64 Region)
-        {
-            handle = Region;
-        }
-
-        /// <summary>
-        /// Returns the Grid Masked RegionHandle - For use in Teleport packets and other packets where sending the grid IP address may be handy.
-        /// </summary>
-        /// <remarks>Do not use for SimulatorEnable packets. The client will choke.</remarks>
-        /// <returns>Region Handle including IP Address encoding</returns>
-        public UInt64 getTeleportHandle()
-        {
-            return handle;
-        }
-
-        /// <summary>
-        /// Returns a RegionHandle which may be used for SimulatorEnable packets. Removes the IP address encoding and returns the lower bounds.
-        /// </summary>
-        /// <returns>A U64 RegionHandle for use in SimulatorEnable packets.</returns>
-        public UInt64 getNeighbourHandle()
-        {
-            UInt64 mask = 0x0000FFFF0000FFFF;
-
-            return handle | mask;
-        }
-
-        /// <summary>
-        /// Returns the IP Address of the GridServer from a Grid-Encoded RegionHandle
-        /// </summary>
-        /// <returns>Grid Server IP Address</returns>
-        public IPAddress getGridIP()
-        {
-            uint a = (uint)((handle >> 16) & 0xFFFF);
-            uint b = (uint)((handle >> 48) & 0xFFFF);
-
-            return new IPAddress((long)(a << 16) | (long)b);
-        }
-
-        /// <summary>
-        /// Returns the X Coordinate from a Grid-Encoded RegionHandle
-        /// </summary>
-        /// <returns>X Coordinate</returns>
-        public uint getGridX()
-        {
-            uint x = (uint)((handle >> 32) & 0xFFFF);
-
-            return x;
-        }
-
-        /// <summary>
-        /// Returns the Y Coordinate from a Grid-Encoded RegionHandle
-        /// </summary>
-        /// <returns>Y Coordinate</returns>
-        public uint getGridY()
-        {
-            uint y = (uint)((handle >> 0) & 0xFFFF);
-
-            return y;
-        }
-    }
-}
+using System;
+using System.Net;
+
+namespace OpenSim.Framework.Types
+{
+    /// <summary>
+    /// A class for manipulating RegionHandle coordinates
+    /// </summary>
+    class RegionHandle
+    {
+        private UInt64 handle;
+
+        /// <summary>
+        /// Initialises a new grid-aware RegionHandle
+        /// </summary>
+        /// <param name="ip">IP Address of the Grid Server for this region</param>
+        /// <param name="x">Grid X Coordinate</param>
+        /// <param name="y">Grid Y Coordinate</param>
+        public RegionHandle(string ip, short x, short y)
+        {
+            IPAddress addr = IPAddress.Parse(ip);
+
+            if (addr.AddressFamily != System.Net.Sockets.AddressFamily.InterNetwork)
+                throw new Exception("Bad RegionHandle Parameter - must be an IPv4 address");
+
+            uint baseHandle = BitConverter.ToUInt32(addr.GetAddressBytes(), 0);
+
+            // Split the IP address in half
+            short a = (short)((baseHandle << 16) & 0xFFFF);
+            short b = (short)((baseHandle <<  0) & 0xFFFF);
+
+            // Raise the bounds a little
+            uint nx = (uint)x;
+            uint ny = (uint)y;
+
+            // Multiply grid coords to get region coords
+            nx *= 256;
+            ny *= 256;
+
+            // Stuff the IP address in too
+            nx = (uint)a << 16;
+            ny = (uint)b << 16;
+
+            handle = ((UInt64)nx << 32) | (uint)ny;
+        }
+
+        /// <summary>
+        /// Initialises a new RegionHandle that is not inter-grid aware
+        /// </summary>
+        /// <param name="x">Grid X Coordinate</param>
+        /// <param name="y">Grid Y Coordinate</param>
+        public RegionHandle(uint x, uint y)
+        {
+            handle = ((x * 256) << 32) | (y * 256);
+        }
+
+        /// <summary>
+        /// Initialises a new RegionHandle from an existing value
+        /// </summary>
+        /// <param name="Region">A U64 RegionHandle</param>
+        public RegionHandle(UInt64 Region)
+        {
+            handle = Region;
+        }
+
+        /// <summary>
+        /// Returns the Grid Masked RegionHandle - For use in Teleport packets and other packets where sending the grid IP address may be handy.
+        /// </summary>
+        /// <remarks>Do not use for SimulatorEnable packets. The client will choke.</remarks>
+        /// <returns>Region Handle including IP Address encoding</returns>
+        public UInt64 getTeleportHandle()
+        {
+            return handle;
+        }
+
+        /// <summary>
+        /// Returns a RegionHandle which may be used for SimulatorEnable packets. Removes the IP address encoding and returns the lower bounds.
+        /// </summary>
+        /// <returns>A U64 RegionHandle for use in SimulatorEnable packets.</returns>
+        public UInt64 getNeighbourHandle()
+        {
+            UInt64 mask = 0x0000FFFF0000FFFF;
+
+            return handle | mask;
+        }
+
+        /// <summary>
+        /// Returns the IP Address of the GridServer from a Grid-Encoded RegionHandle
+        /// </summary>
+        /// <returns>Grid Server IP Address</returns>
+        public IPAddress getGridIP()
+        {
+            uint a = (uint)((handle >> 16) & 0xFFFF);
+            uint b = (uint)((handle >> 48) & 0xFFFF);
+
+            return new IPAddress((long)(a << 16) | (long)b);
+        }
+
+        /// <summary>
+        /// Returns the X Coordinate from a Grid-Encoded RegionHandle
+        /// </summary>
+        /// <returns>X Coordinate</returns>
+        public uint getGridX()
+        {
+            uint x = (uint)((handle >> 32) & 0xFFFF);
+
+            return x;
+        }
+
+        /// <summary>
+        /// Returns the Y Coordinate from a Grid-Encoded RegionHandle
+        /// </summary>
+        /// <returns>Y Coordinate</returns>
+        public uint getGridY()
+        {
+            uint y = (uint)((handle >> 0) & 0xFFFF);
+
+            return y;
+        }
+    }
+}

+ 342 - 342
OpenSim/Framework/General/Types/RegionInfo.cs

@@ -1,342 +1,342 @@
-/*
-* Copyright (c) Contributors, http://www.openmetaverse.org/
-* See CONTRIBUTORS.TXT for a full list of copyright holders.
-*
-* Redistribution and use in source and binary forms, with or without
-* modification, are permitted provided that the following conditions are met:
-*     * Redistributions of source code must retain the above copyright
-*       notice, this list of conditions and the following disclaimer.
-*     * Redistributions in binary form must reproduce the above copyright
-*       notice, this list of conditions and the following disclaimer in the
-*       documentation and/or other materials provided with the distribution.
-*     * Neither the name of the OpenSim Project nor the
-*       names of its contributors may be used to endorse or promote products
-*       derived from this software without specific prior written permission.
-*
-* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS AND ANY
-* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
-* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-* 
-*/
-using System;
-using System.Globalization;
-using System.Net;
-using System.Net.Sockets;
-using libsecondlife;
-using OpenSim.Framework.Console;
-using OpenSim.Framework.Interfaces;
-using OpenSim.Framework.Utilities;
-
-namespace OpenSim.Framework.Types
-{
-    public class RegionInfo
-    {
-        public LLUUID SimUUID = new LLUUID();
-        public string RegionName = "";
-
-        private IPEndPoint m_internalEndPoint;
-        public IPEndPoint InternalEndPoint
-        {
-            get
-            {
-                return m_internalEndPoint;
-            }
-        }
-
-        public IPEndPoint ExternalEndPoint
-        {
-            get
-            {
-                // Old one defaults to IPv6
-                //return new IPEndPoint( Dns.GetHostAddresses( m_externalHostName )[0], m_internalEndPoint.Port );
-
-                // New method favors IPv4
-                IPAddress ia = null;
-                foreach (IPAddress Adr in Dns.GetHostAddresses(m_externalHostName))
-                {
-                    if (ia == null)
-                        ia = Adr;
-
-                    if (Adr.AddressFamily == AddressFamily.InterNetwork)
-                    {
-                        ia = Adr;
-                        break;
-                    }
-
-                }
-                
-                return new IPEndPoint(ia, m_internalEndPoint.Port);
-            }
-        }
-        
-        private string m_externalHostName;
-        public string ExternalHostName
-        {
-            get
-            {
-                return m_externalHostName;
-            }
-        }
-
-        private uint? m_regionLocX;
-        public uint RegionLocX
-        {
-            get
-            {
-                return m_regionLocX.Value;
-            }
-        }
-
-        private uint? m_regionLocY;
-        public uint RegionLocY
-        {
-            get
-            {
-                return m_regionLocY.Value;
-            }
-        }
-
-        private ulong? m_regionHandle;
-        public ulong RegionHandle
-        {
-            get
-            {
-                if (!m_regionHandle.HasValue)
-                {
-                    m_regionHandle = Util.UIntsToLong((RegionLocX * 256), (RegionLocY * 256));
-                }
-
-                return m_regionHandle.Value;
-            }
-        }
-
-        // Only used for remote regions , ie ones not in the current instance
-        private uint m_remotingPort;
-        public uint RemotingPort
-        {
-            get
-            {
-                return m_remotingPort;
-            }
-            set
-            {
-                m_remotingPort = value;
-            }
-        }
-        public string RemotingAddress;
-
-        public string DataStore = "";
-        public bool isSandbox = false;
-
-        public LLUUID MasterAvatarAssignedUUID = new LLUUID();
-        public string MasterAvatarFirstName = "";
-        public string MasterAvatarLastName = "";
-        public string MasterAvatarSandboxPassword = "";
-
-        public EstateSettings estateSettings;
-
-        public RegionInfo()
-        {
-            estateSettings = new EstateSettings();
-        }
-
-        public RegionInfo(uint regionLocX, uint regionLocY, IPEndPoint internalEndPoint, string externalUri)
-            : this()
-        {
-            m_regionLocX = regionLocX;
-            m_regionLocY = regionLocY;
-
-            m_internalEndPoint = internalEndPoint;
-            m_externalHostName = externalUri;
-        }
-
-        public void InitConfig(bool sandboxMode, IGenericConfig configData)
-        {
-            this.isSandbox = sandboxMode;
-            try
-            {
-                string attri = "";
-
-                // Sim UUID
-                string simId = configData.GetAttribute("SimUUID");
-                if (String.IsNullOrEmpty( simId ))
-                {
-                    this.SimUUID = LLUUID.Random();
-                }
-                else
-                {
-                    this.SimUUID = new LLUUID(simId);
-                }
-                configData.SetAttribute("SimUUID", this.SimUUID.ToString());
-
-                this.RegionName = GetString(configData, "SimName", "OpenSim test", "Region Name");
-
-                //m_regionLocX = (uint) GetInt(configData, "SimLocationX", 1000, "Grid Location X");
-                
-                attri = "";
-                attri = configData.GetAttribute("SimLocationX");
-                if (attri == "")
-                {
-                    string location = MainLog.Instance.CmdPrompt("Grid Location X", "1000");
-                    configData.SetAttribute("SimLocationX", location);
-                    m_regionLocX = (uint)Convert.ToUInt32(location);
-                }
-                else
-                {
-                    m_regionLocX = (uint)Convert.ToUInt32(attri);
-                }
-                // Sim/Grid location Y
-                attri = "";
-                attri = configData.GetAttribute("SimLocationY");
-                if (attri == "")
-                {
-                    string location = MainLog.Instance.CmdPrompt("Grid Location Y", "1000");
-                    configData.SetAttribute("SimLocationY", location);
-                    m_regionLocY = (uint)Convert.ToUInt32(location);
-                }
-                else
-                {
-                    m_regionLocY = (uint)Convert.ToUInt32(attri);
-                }
-
-                m_regionHandle = null;
-
-                this.DataStore = GetString(configData, "Datastore", "localworld.yap", "Filename for local storage");
-                
-                IPAddress internalAddress = GetIPAddress(configData, "InternalIPAddress", "0.0.0.0", "Internal IP Address for UDP client connections");
-                int internalPort = GetIPPort(configData, "InternalIPPort", "9000", "Internal IP Port for UDP client connections");
-                m_internalEndPoint = new IPEndPoint(internalAddress, internalPort);
-
-                m_externalHostName = GetString(configData, "ExternalHostName", "127.0.0.1", "External Host Name");
-
-                estateSettings.terrainFile =
-                    GetString(configData, "TerrainFile", "default.r32", "GENERAL SETTING: Default Terrain File");                
-                
-                attri = "";
-                attri = configData.GetAttribute("TerrainMultiplier");
-                if (attri == "")
-                {
-                    string re = MainLog.Instance.CmdPrompt("GENERAL SETTING: Terrain Height Multiplier", "60.0");
-                    this.estateSettings.terrainMultiplier = Convert.ToDouble(re, CultureInfo.InvariantCulture);
-                    configData.SetAttribute("TerrainMultiplier", this.estateSettings.terrainMultiplier.ToString());
-                }
-                else
-                {
-                    this.estateSettings.terrainMultiplier = Convert.ToDouble(attri);
-                }
-
-                attri = "";
-                attri = configData.GetAttribute("MasterAvatarFirstName");
-                if (attri == "")
-                {
-                    this.MasterAvatarFirstName = MainLog.Instance.CmdPrompt("First name of Master Avatar (Land and Region Owner)", "Test");
-
-                    configData.SetAttribute("MasterAvatarFirstName", this.MasterAvatarFirstName);
-                }
-                else
-                {
-                    this.MasterAvatarFirstName = attri;
-                }
-
-                attri = "";
-                attri = configData.GetAttribute("MasterAvatarLastName");
-                if (attri == "")
-                {
-                    this.MasterAvatarLastName = MainLog.Instance.CmdPrompt("Last name of Master Avatar (Land and Region Owner)", "User");
-
-                    configData.SetAttribute("MasterAvatarLastName", this.MasterAvatarLastName);
-                }
-                else
-                {
-                    this.MasterAvatarLastName = attri;
-                }
-
-                if (isSandbox) //Sandbox Mode Specific Settings
-                {
-                    attri = "";
-                    attri = configData.GetAttribute("MasterAvatarSandboxPassword");
-                    if (attri == "")
-                    {
-                        this.MasterAvatarSandboxPassword = MainLog.Instance.CmdPrompt("Password of Master Avatar (Needed for sandbox mode account creation only)", "test");
-
-                        //Should I store this?
-                        configData.SetAttribute("MasterAvatarSandboxPassword", this.MasterAvatarSandboxPassword);
-                    }
-                    else
-                    {
-                        this.MasterAvatarSandboxPassword = attri;
-                    }
-                }
-
-                configData.Commit();
-            }
-            catch (Exception e)
-            {
-                MainLog.Instance.Warn("Config.cs:InitConfig() - Exception occured");
-                MainLog.Instance.Warn(e.ToString());
-            }
-
-            MainLog.Instance.Verbose("Sim settings loaded:");
-            MainLog.Instance.Verbose("UUID: " + this.SimUUID.ToStringHyphenated());
-            MainLog.Instance.Verbose("Name: " + this.RegionName);
-            MainLog.Instance.Verbose("Region Location: [" + this.RegionLocX.ToString() + "," + this.RegionLocY + "]");
-            MainLog.Instance.Verbose("Region Handle: " + this.RegionHandle.ToString());
-            MainLog.Instance.Verbose("Listening on IP end point: " + m_internalEndPoint.ToString() );
-            MainLog.Instance.Verbose("Sandbox Mode? " + isSandbox.ToString());
-
-        }
-
-        private uint GetInt(IGenericConfig configData, string p, int p_3, string p_4)
-        {
-            throw new Exception("The method or operation is not implemented.");
-        }
-
-        private string GetString(IGenericConfig configData, string attrName, string defaultvalue, string prompt)
-        {
-            string s = configData.GetAttribute(attrName);
-
-            if (String.IsNullOrEmpty( s ))
-            {
-                s = MainLog.Instance.CmdPrompt(prompt, defaultvalue);
-                configData.SetAttribute(attrName, s );
-            }
-            return s;
-        }
-
-        private IPAddress GetIPAddress(IGenericConfig configData, string attrName, string defaultvalue, string prompt)
-        {
-            string addressStr = configData.GetAttribute(attrName);
-
-            IPAddress address;
-
-            if (!IPAddress.TryParse(addressStr, out address))
-            {
-                address =  MainLog.Instance.CmdPromptIPAddress(prompt, defaultvalue);
-                configData.SetAttribute(attrName, address.ToString());
-            }
-            return address;
-        }
-        
-        private int GetIPPort(IGenericConfig configData, string attrName, string defaultvalue, string prompt)
-        {
-            string portStr = configData.GetAttribute(attrName);
-
-            int port;
-
-            if (!int.TryParse(portStr, out port))
-            {
-                port = MainLog.Instance.CmdPromptIPPort(prompt, defaultvalue);
-                configData.SetAttribute(attrName, port.ToString());
-            }
-            
-            return port;
-        }
-    }
-}
+/*
+* Copyright (c) Contributors, http://www.openmetaverse.org/
+* See CONTRIBUTORS.TXT for a full list of copyright holders.
+*
+* Redistribution and use in source and binary forms, with or without
+* modification, are permitted provided that the following conditions are met:
+*     * Redistributions of source code must retain the above copyright
+*       notice, this list of conditions and the following disclaimer.
+*     * Redistributions in binary form must reproduce the above copyright
+*       notice, this list of conditions and the following disclaimer in the
+*       documentation and/or other materials provided with the distribution.
+*     * Neither the name of the OpenSim Project nor the
+*       names of its contributors may be used to endorse or promote products
+*       derived from this software without specific prior written permission.
+*
+* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS AND ANY
+* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
+* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+* 
+*/
+using System;
+using System.Globalization;
+using System.Net;
+using System.Net.Sockets;
+using libsecondlife;
+using OpenSim.Framework.Console;
+using OpenSim.Framework.Interfaces;
+using OpenSim.Framework.Utilities;
+
+namespace OpenSim.Framework.Types
+{
+    public class RegionInfo
+    {
+        public LLUUID SimUUID = new LLUUID();
+        public string RegionName = "";
+
+        private IPEndPoint m_internalEndPoint;
+        public IPEndPoint InternalEndPoint
+        {
+            get
+            {
+                return m_internalEndPoint;
+            }
+        }
+
+        public IPEndPoint ExternalEndPoint
+        {
+            get
+            {
+                // Old one defaults to IPv6
+                //return new IPEndPoint( Dns.GetHostAddresses( m_externalHostName )[0], m_internalEndPoint.Port );
+
+                // New method favors IPv4
+                IPAddress ia = null;
+                foreach (IPAddress Adr in Dns.GetHostAddresses(m_externalHostName))
+                {
+                    if (ia == null)
+                        ia = Adr;
+
+                    if (Adr.AddressFamily == AddressFamily.InterNetwork)
+                    {
+                        ia = Adr;
+                        break;
+                    }
+
+                }
+                
+                return new IPEndPoint(ia, m_internalEndPoint.Port);
+            }
+        }
+        
+        private string m_externalHostName;
+        public string ExternalHostName
+        {
+            get
+            {
+                return m_externalHostName;
+            }
+        }
+
+        private uint? m_regionLocX;
+        public uint RegionLocX
+        {
+            get
+            {
+                return m_regionLocX.Value;
+            }
+        }
+
+        private uint? m_regionLocY;
+        public uint RegionLocY
+        {
+            get
+            {
+                return m_regionLocY.Value;
+            }
+        }
+
+        private ulong? m_regionHandle;
+        public ulong RegionHandle
+        {
+            get
+            {
+                if (!m_regionHandle.HasValue)
+                {
+                    m_regionHandle = Util.UIntsToLong((RegionLocX * 256), (RegionLocY * 256));
+                }
+
+                return m_regionHandle.Value;
+            }
+        }
+
+        // Only used for remote regions , ie ones not in the current instance
+        private uint m_remotingPort;
+        public uint RemotingPort
+        {
+            get
+            {
+                return m_remotingPort;
+            }
+            set
+            {
+                m_remotingPort = value;
+            }
+        }
+        public string RemotingAddress;
+
+        public string DataStore = "";
+        public bool isSandbox = false;
+
+        public LLUUID MasterAvatarAssignedUUID = new LLUUID();
+        public string MasterAvatarFirstName = "";
+        public string MasterAvatarLastName = "";
+        public string MasterAvatarSandboxPassword = "";
+
+        public EstateSettings estateSettings;
+
+        public RegionInfo()
+        {
+            estateSettings = new EstateSettings();
+        }
+
+        public RegionInfo(uint regionLocX, uint regionLocY, IPEndPoint internalEndPoint, string externalUri)
+            : this()
+        {
+            m_regionLocX = regionLocX;
+            m_regionLocY = regionLocY;
+
+            m_internalEndPoint = internalEndPoint;
+            m_externalHostName = externalUri;
+        }
+
+        public void InitConfig(bool sandboxMode, IGenericConfig configData)
+        {
+            this.isSandbox = sandboxMode;
+            try
+            {
+                string attri = "";
+
+                // Sim UUID
+                string simId = configData.GetAttribute("SimUUID");
+                if (String.IsNullOrEmpty( simId ))
+                {
+                    this.SimUUID = LLUUID.Random();
+                }
+                else
+                {
+                    this.SimUUID = new LLUUID(simId);
+                }
+                configData.SetAttribute("SimUUID", this.SimUUID.ToString());
+
+                this.RegionName = GetString(configData, "SimName", "OpenSim test", "Region Name");
+
+                //m_regionLocX = (uint) GetInt(configData, "SimLocationX", 1000, "Grid Location X");
+                
+                attri = "";
+                attri = configData.GetAttribute("SimLocationX");
+                if (attri == "")
+                {
+                    string location = MainLog.Instance.CmdPrompt("Grid Location X", "1000");
+                    configData.SetAttribute("SimLocationX", location);
+                    m_regionLocX = (uint)Convert.ToUInt32(location);
+                }
+                else
+                {
+                    m_regionLocX = (uint)Convert.ToUInt32(attri);
+                }
+                // Sim/Grid location Y
+                attri = "";
+                attri = configData.GetAttribute("SimLocationY");
+                if (attri == "")
+                {
+                    string location = MainLog.Instance.CmdPrompt("Grid Location Y", "1000");
+                    configData.SetAttribute("SimLocationY", location);
+                    m_regionLocY = (uint)Convert.ToUInt32(location);
+                }
+                else
+                {
+                    m_regionLocY = (uint)Convert.ToUInt32(attri);
+                }
+
+                m_regionHandle = null;
+
+                this.DataStore = GetString(configData, "Datastore", "localworld.yap", "Filename for local storage");
+                
+                IPAddress internalAddress = GetIPAddress(configData, "InternalIPAddress", "0.0.0.0", "Internal IP Address for UDP client connections");
+                int internalPort = GetIPPort(configData, "InternalIPPort", "9000", "Internal IP Port for UDP client connections");
+                m_internalEndPoint = new IPEndPoint(internalAddress, internalPort);
+
+                m_externalHostName = GetString(configData, "ExternalHostName", "127.0.0.1", "External Host Name");
+
+                estateSettings.terrainFile =
+                    GetString(configData, "TerrainFile", "default.r32", "GENERAL SETTING: Default Terrain File");                
+                
+                attri = "";
+                attri = configData.GetAttribute("TerrainMultiplier");
+                if (attri == "")
+                {
+                    string re = MainLog.Instance.CmdPrompt("GENERAL SETTING: Terrain Height Multiplier", "60.0");
+                    this.estateSettings.terrainMultiplier = Convert.ToDouble(re, CultureInfo.InvariantCulture);
+                    configData.SetAttribute("TerrainMultiplier", this.estateSettings.terrainMultiplier.ToString());
+                }
+                else
+                {
+                    this.estateSettings.terrainMultiplier = Convert.ToDouble(attri);
+                }
+
+                attri = "";
+                attri = configData.GetAttribute("MasterAvatarFirstName");
+                if (attri == "")
+                {
+                    this.MasterAvatarFirstName = MainLog.Instance.CmdPrompt("First name of Master Avatar (Land and Region Owner)", "Test");
+
+                    configData.SetAttribute("MasterAvatarFirstName", this.MasterAvatarFirstName);
+                }
+                else
+                {
+                    this.MasterAvatarFirstName = attri;
+                }
+
+                attri = "";
+                attri = configData.GetAttribute("MasterAvatarLastName");
+                if (attri == "")
+                {
+                    this.MasterAvatarLastName = MainLog.Instance.CmdPrompt("Last name of Master Avatar (Land and Region Owner)", "User");
+
+                    configData.SetAttribute("MasterAvatarLastName", this.MasterAvatarLastName);
+                }
+                else
+                {
+                    this.MasterAvatarLastName = attri;
+                }
+
+                if (isSandbox) //Sandbox Mode Specific Settings
+                {
+                    attri = "";
+                    attri = configData.GetAttribute("MasterAvatarSandboxPassword");
+                    if (attri == "")
+                    {
+                        this.MasterAvatarSandboxPassword = MainLog.Instance.CmdPrompt("Password of Master Avatar (Needed for sandbox mode account creation only)", "test");
+
+                        //Should I store this?
+                        configData.SetAttribute("MasterAvatarSandboxPassword", this.MasterAvatarSandboxPassword);
+                    }
+                    else
+                    {
+                        this.MasterAvatarSandboxPassword = attri;
+                    }
+                }
+
+                configData.Commit();
+            }
+            catch (Exception e)
+            {
+                MainLog.Instance.Warn("Config.cs:InitConfig() - Exception occured");
+                MainLog.Instance.Warn(e.ToString());
+            }
+
+            MainLog.Instance.Verbose("Sim settings loaded:");
+            MainLog.Instance.Verbose("UUID: " + this.SimUUID.ToStringHyphenated());
+            MainLog.Instance.Verbose("Name: " + this.RegionName);
+            MainLog.Instance.Verbose("Region Location: [" + this.RegionLocX.ToString() + "," + this.RegionLocY + "]");
+            MainLog.Instance.Verbose("Region Handle: " + this.RegionHandle.ToString());
+            MainLog.Instance.Verbose("Listening on IP end point: " + m_internalEndPoint.ToString() );
+            MainLog.Instance.Verbose("Sandbox Mode? " + isSandbox.ToString());
+
+        }
+
+        private uint GetInt(IGenericConfig configData, string p, int p_3, string p_4)
+        {
+            throw new Exception("The method or operation is not implemented.");
+        }
+
+        private string GetString(IGenericConfig configData, string attrName, string defaultvalue, string prompt)
+        {
+            string s = configData.GetAttribute(attrName);
+
+            if (String.IsNullOrEmpty( s ))
+            {
+                s = MainLog.Instance.CmdPrompt(prompt, defaultvalue);
+                configData.SetAttribute(attrName, s );
+            }
+            return s;
+        }
+
+        private IPAddress GetIPAddress(IGenericConfig configData, string attrName, string defaultvalue, string prompt)
+        {
+            string addressStr = configData.GetAttribute(attrName);
+
+            IPAddress address;
+
+            if (!IPAddress.TryParse(addressStr, out address))
+            {
+                address =  MainLog.Instance.CmdPromptIPAddress(prompt, defaultvalue);
+                configData.SetAttribute(attrName, address.ToString());
+            }
+            return address;
+        }
+        
+        private int GetIPPort(IGenericConfig configData, string attrName, string defaultvalue, string prompt)
+        {
+            string portStr = configData.GetAttribute(attrName);
+
+            int port;
+
+            if (!int.TryParse(portStr, out port))
+            {
+                port = MainLog.Instance.CmdPromptIPPort(prompt, defaultvalue);
+                configData.SetAttribute(attrName, port.ToString());
+            }
+            
+            return port;
+        }
+    }
+}

+ 127 - 127
OpenSim/Framework/General/Types/UUID.cs

@@ -1,127 +1,127 @@
-using System;
-using libsecondlife;
-
-namespace OpenSim.Framework.Types
-{
-    class UUID
-    {
-        public LLUUID llUUID;
-
-        public UUID(string uuid)
-        {
-            llUUID = new LLUUID(uuid);
-        }
-
-        public UUID(byte[] uuid)
-        {
-            llUUID = new LLUUID(uuid, 0);
-        }
-
-        public UUID(byte[] uuid, int offset)
-        {
-            llUUID = new LLUUID(uuid, offset);
-        }
-
-        public UUID()
-        {
-            llUUID = LLUUID.Zero;
-        }
-
-        public UUID(ulong uuid)
-        {
-            llUUID = new LLUUID(uuid);
-        }
-
-        public UUID(UInt32 first, UInt32 second, UInt32 third, UInt32 fourth)
-        {
-            byte[] uuid = new byte[16];
-
-            byte[] n = BitConverter.GetBytes(first);
-            n.CopyTo(uuid, 0);
-            n = BitConverter.GetBytes(second);
-            n.CopyTo(uuid, 4);
-            n = BitConverter.GetBytes(third);
-            n.CopyTo(uuid, 8);
-            n = BitConverter.GetBytes(fourth);
-            n.CopyTo(uuid, 12);
-
-            llUUID = new LLUUID(uuid,0);
-        }
-
-        public override string ToString()
-        {
-            return llUUID.ToString();
-        }
-
-        public string ToStringHyphenated()
-        {
-            return llUUID.ToStringHyphenated();
-        }
-
-        public byte[] GetBytes()
-        {
-            return llUUID.GetBytes();
-        }
-
-        public UInt32[] GetInts()
-        {
-            UInt32[] ints = new UInt32[4];
-            ints[0] = BitConverter.ToUInt32(llUUID.Data, 0);
-            ints[1] = BitConverter.ToUInt32(llUUID.Data, 4);
-            ints[2] = BitConverter.ToUInt32(llUUID.Data, 8);
-            ints[3] = BitConverter.ToUInt32(llUUID.Data, 12);
-
-            return ints;
-        }
-
-        public LLUUID GetLLUUID()
-        {
-            return llUUID;
-        }
-
-        public uint CRC()
-        {
-            return llUUID.CRC();
-        }
-
-        public override int GetHashCode()
-        {
-            return llUUID.GetHashCode();
-        }
-
-        public void Combine(UUID other)
-        {
-            llUUID.Combine(other.GetLLUUID());
-        }
-
-        public void Combine(LLUUID other)
-        {
-            llUUID.Combine(other);
-        }
-
-        public override bool Equals(Object other)
-        {
-            return llUUID.Equals(other);
-        }
-
-        public static bool operator ==(UUID a, UUID b)
-        {
-            return a.llUUID.Equals(b.GetLLUUID());
-        }
-
-        public static bool operator !=(UUID a, UUID b)
-        {
-            return !a.llUUID.Equals(b.GetLLUUID());
-        }
-
-        public static bool operator ==(UUID a, LLUUID b)
-        {
-            return a.Equals(b);
-        }
-
-        public static bool operator !=(UUID a, LLUUID b)
-        {
-            return !a.Equals(b);
-        }
-    }
-}
+using System;
+using libsecondlife;
+
+namespace OpenSim.Framework.Types
+{
+    class UUID
+    {
+        public LLUUID llUUID;
+
+        public UUID(string uuid)
+        {
+            llUUID = new LLUUID(uuid);
+        }
+
+        public UUID(byte[] uuid)
+        {
+            llUUID = new LLUUID(uuid, 0);
+        }
+
+        public UUID(byte[] uuid, int offset)
+        {
+            llUUID = new LLUUID(uuid, offset);
+        }
+
+        public UUID()
+        {
+            llUUID = LLUUID.Zero;
+        }
+
+        public UUID(ulong uuid)
+        {
+            llUUID = new LLUUID(uuid);
+        }
+
+        public UUID(UInt32 first, UInt32 second, UInt32 third, UInt32 fourth)
+        {
+            byte[] uuid = new byte[16];
+
+            byte[] n = BitConverter.GetBytes(first);
+            n.CopyTo(uuid, 0);
+            n = BitConverter.GetBytes(second);
+            n.CopyTo(uuid, 4);
+            n = BitConverter.GetBytes(third);
+            n.CopyTo(uuid, 8);
+            n = BitConverter.GetBytes(fourth);
+            n.CopyTo(uuid, 12);
+
+            llUUID = new LLUUID(uuid,0);
+        }
+
+        public override string ToString()
+        {
+            return llUUID.ToString();
+        }
+
+        public string ToStringHyphenated()
+        {
+            return llUUID.ToStringHyphenated();
+        }
+
+        public byte[] GetBytes()
+        {
+            return llUUID.GetBytes();
+        }
+
+        public UInt32[] GetInts()
+        {
+            UInt32[] ints = new UInt32[4];
+            ints[0] = BitConverter.ToUInt32(llUUID.Data, 0);
+            ints[1] = BitConverter.ToUInt32(llUUID.Data, 4);
+            ints[2] = BitConverter.ToUInt32(llUUID.Data, 8);
+            ints[3] = BitConverter.ToUInt32(llUUID.Data, 12);
+
+            return ints;
+        }
+
+        public LLUUID GetLLUUID()
+        {
+            return llUUID;
+        }
+
+        public uint CRC()
+        {
+            return llUUID.CRC();
+        }
+
+        public override int GetHashCode()
+        {
+            return llUUID.GetHashCode();
+        }
+
+        public void Combine(UUID other)
+        {
+            llUUID.Combine(other.GetLLUUID());
+        }
+
+        public void Combine(LLUUID other)
+        {
+            llUUID.Combine(other);
+        }
+
+        public override bool Equals(Object other)
+        {
+            return llUUID.Equals(other);
+        }
+
+        public static bool operator ==(UUID a, UUID b)
+        {
+            return a.llUUID.Equals(b.GetLLUUID());
+        }
+
+        public static bool operator !=(UUID a, UUID b)
+        {
+            return !a.llUUID.Equals(b.GetLLUUID());
+        }
+
+        public static bool operator ==(UUID a, LLUUID b)
+        {
+            return a.Equals(b);
+        }
+
+        public static bool operator !=(UUID a, LLUUID b)
+        {
+            return !a.Equals(b);
+        }
+    }
+}

+ 87 - 87
OpenSim/Framework/General/UserProfile.cs

@@ -1,87 +1,87 @@
-/*
-* Copyright (c) Contributors, http://www.openmetaverse.org/
-* See CONTRIBUTORS.TXT for a full list of copyright holders.
-*
-* Redistribution and use in source and binary forms, with or without
-* modification, are permitted provided that the following conditions are met:
-*     * Redistributions of source code must retain the above copyright
-*       notice, this list of conditions and the following disclaimer.
-*     * Redistributions in binary form must reproduce the above copyright
-*       notice, this list of conditions and the following disclaimer in the
-*       documentation and/or other materials provided with the distribution.
-*     * Neither the name of the OpenSim Project nor the
-*       names of its contributors may be used to endorse or promote products
-*       derived from this software without specific prior written permission.
-*
-* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS AND ANY
-* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
-* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-* 
-*/
-using System.Collections.Generic;
-using System.Security.Cryptography;
-using libsecondlife;
-using OpenSim.Framework.Inventory;
-
-namespace OpenSim.Framework.User
-{
-    public class UserProfile
-    {
-
-        public string firstname;
-        public string lastname;
-        public ulong homeregionhandle;
-        public LLVector3 homepos;
-        public LLVector3 homelookat;
-
-        public bool IsGridGod = false;
-        public bool IsLocal = true;	// will be used in future for visitors from foreign grids
-        public string AssetURL;
-        public string MD5passwd;
-
-        public LLUUID CurrentSessionID;
-        public LLUUID CurrentSecureSessionID;
-        public LLUUID UUID;
-        public Dictionary<LLUUID, uint> Circuits = new Dictionary<LLUUID, uint>();	// tracks circuit codes
-
-        public AgentInventory Inventory;
-
-        public UserProfile()
-        {
-            Circuits = new Dictionary<LLUUID, uint>();
-            Inventory = new AgentInventory();
-            homeregionhandle = Helpers.UIntsToLong((1000 * 256), (1000 * 256));
-            homepos = new LLVector3();
-	    homelookat = new LLVector3();
-        }
-
-        public void InitSessionData()
-        {
-            RNGCryptoServiceProvider rand = new RNGCryptoServiceProvider();
-
-            byte[] randDataS = new byte[16];
-            byte[] randDataSS = new byte[16];
-
-            rand.GetBytes(randDataS);
-            rand.GetBytes(randDataSS);
-
-            CurrentSecureSessionID = new LLUUID(randDataSS,0);
-            CurrentSessionID = new LLUUID(randDataS,0);
-            
-        }
-
-        public void AddSimCircuit(uint circuitCode, LLUUID regionUUID)
-        {
-            if (this.Circuits.ContainsKey(regionUUID) == false)
-                this.Circuits.Add(regionUUID, circuitCode);
-        }
-
-    }
-}
+/*
+* Copyright (c) Contributors, http://www.openmetaverse.org/
+* See CONTRIBUTORS.TXT for a full list of copyright holders.
+*
+* Redistribution and use in source and binary forms, with or without
+* modification, are permitted provided that the following conditions are met:
+*     * Redistributions of source code must retain the above copyright
+*       notice, this list of conditions and the following disclaimer.
+*     * Redistributions in binary form must reproduce the above copyright
+*       notice, this list of conditions and the following disclaimer in the
+*       documentation and/or other materials provided with the distribution.
+*     * Neither the name of the OpenSim Project nor the
+*       names of its contributors may be used to endorse or promote products
+*       derived from this software without specific prior written permission.
+*
+* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS AND ANY
+* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
+* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+* 
+*/
+using System.Collections.Generic;
+using System.Security.Cryptography;
+using libsecondlife;
+using OpenSim.Framework.Inventory;
+
+namespace OpenSim.Framework.User
+{
+    public class UserProfile
+    {
+
+        public string firstname;
+        public string lastname;
+        public ulong homeregionhandle;
+        public LLVector3 homepos;
+        public LLVector3 homelookat;
+
+        public bool IsGridGod = false;
+        public bool IsLocal = true;	// will be used in future for visitors from foreign grids
+        public string AssetURL;
+        public string MD5passwd;
+
+        public LLUUID CurrentSessionID;
+        public LLUUID CurrentSecureSessionID;
+        public LLUUID UUID;
+        public Dictionary<LLUUID, uint> Circuits = new Dictionary<LLUUID, uint>();	// tracks circuit codes
+
+        public AgentInventory Inventory;
+
+        public UserProfile()
+        {
+            Circuits = new Dictionary<LLUUID, uint>();
+            Inventory = new AgentInventory();
+            homeregionhandle = Helpers.UIntsToLong((1000 * 256), (1000 * 256));
+            homepos = new LLVector3();
+	    homelookat = new LLVector3();
+        }
+
+        public void InitSessionData()
+        {
+            RNGCryptoServiceProvider rand = new RNGCryptoServiceProvider();
+
+            byte[] randDataS = new byte[16];
+            byte[] randDataSS = new byte[16];
+
+            rand.GetBytes(randDataS);
+            rand.GetBytes(randDataSS);
+
+            CurrentSecureSessionID = new LLUUID(randDataSS,0);
+            CurrentSessionID = new LLUUID(randDataS,0);
+            
+        }
+
+        public void AddSimCircuit(uint circuitCode, LLUUID regionUUID)
+        {
+            if (this.Circuits.ContainsKey(regionUUID) == false)
+                this.Circuits.Add(regionUUID, circuitCode);
+        }
+
+    }
+}

+ 184 - 184
OpenSim/Framework/General/Util.cs

@@ -1,184 +1,184 @@
-/*
-* Copyright (c) Contributors, http://www.openmetaverse.org/
-* See CONTRIBUTORS.TXT for a full list of copyright holders.
-*
-* Redistribution and use in source and binary forms, with or without
-* modification, are permitted provided that the following conditions are met:
-*     * Redistributions of source code must retain the above copyright
-*       notice, this list of conditions and the following disclaimer.
-*     * Redistributions in binary form must reproduce the above copyright
-*       notice, this list of conditions and the following disclaimer in the
-*       documentation and/or other materials provided with the distribution.
-*     * Neither the name of the OpenSim Project nor the
-*       names of its contributors may be used to endorse or promote products
-*       derived from this software without specific prior written permission.
-*
-* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS AND ANY
-* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
-* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-* 
-*/
-using System;
-using System.Security.Cryptography;
-using System.Text;
-using libsecondlife;
-
-namespace OpenSim.Framework.Utilities
-{
-    public class Util
-    {
-        private static Random randomClass = new Random();
-        private static uint nextXferID = 5000;
-        private static object XferLock = new object();
-
-        public static ulong UIntsToLong(uint X, uint Y)
-        {
-            return Helpers.UIntsToLong(X, Y);
-        }
-
-        public static Random RandomClass
-        {
-            get
-            {
-                return randomClass;
-            }
-        }
-
-        public static uint GetNextXferID()
-        {
-            uint id = 0;
-            lock(XferLock)
-            {
-                id = nextXferID;
-                nextXferID++;
-            }
-            return id;
-        }
-
-        public static int UnixTimeSinceEpoch()
-        {
-            TimeSpan t = (DateTime.UtcNow - new DateTime(1970, 1, 1));
-            int timestamp = (int)t.TotalSeconds;
-            return timestamp;
-        }
-
-        public static string Md5Hash(string pass)
-        {
-            MD5 md5 = MD5CryptoServiceProvider.Create();
-            byte[] dataMd5 = md5.ComputeHash(Encoding.Default.GetBytes(pass));
-            StringBuilder sb = new StringBuilder();
-            for (int i = 0; i < dataMd5.Length; i++)
-                sb.AppendFormat("{0:x2}", dataMd5[i]);
-            return sb.ToString();
-        }
-
-        public static string GetRandomCapsPath()
-        {
-            LLUUID caps = LLUUID.Random();
-            string capsPath = caps.ToStringHyphenated();
-            capsPath = capsPath.Remove(capsPath.Length - 4, 4);
-            return capsPath;
-        }
-
-        //public static int fast_distance2d(int x, int y)
-        //{
-        //    x = System.Math.Abs(x);
-        //    y = System.Math.Abs(y);
-
-        //    int min = System.Math.Min(x, y);
-
-        //    return (x + y - (min >> 1) - (min >> 2) + (min >> 4));
-        //}
-
-        public static string FieldToString(byte[] bytes)
-        {
-            return FieldToString(bytes, String.Empty);
-        }
-
-        /// <summary>
-        /// Convert a variable length field (byte array) to a string, with a
-        /// field name prepended to each line of the output
-        /// </summary>
-        /// <remarks>If the byte array has unprintable characters in it, a 
-        /// hex dump will be put in the string instead</remarks>
-        /// <param name="bytes">The byte array to convert to a string</param>
-        /// <param name="fieldName">A field name to prepend to each line of output</param>
-        /// <returns>An ASCII string or a string containing a hex dump, minus 
-        /// the null terminator</returns>
-        public static string FieldToString(byte[] bytes, string fieldName)
-        {
-            // Check for a common case
-            if (bytes.Length == 0) return String.Empty;
-
-            StringBuilder output = new StringBuilder();
-            bool printable = true;
-
-            for (int i = 0; i < bytes.Length; ++i)
-            {
-                // Check if there are any unprintable characters in the array
-                if ((bytes[i] < 0x20 || bytes[i] > 0x7E) && bytes[i] != 0x09
-                    && bytes[i] != 0x0D && bytes[i] != 0x0A && bytes[i] != 0x00)
-                {
-                    printable = false;
-                    break;
-                }
-            }
-
-            if (printable)
-            {
-                if (fieldName.Length > 0)
-                {
-                    output.Append(fieldName);
-                    output.Append(": ");
-                }
-
-                if (bytes[bytes.Length - 1] == 0x00)
-                    output.Append(UTF8Encoding.UTF8.GetString(bytes, 0, bytes.Length - 1));
-                else
-                    output.Append(UTF8Encoding.UTF8.GetString(bytes));
-            }
-            else
-            {
-                for (int i = 0; i < bytes.Length; i += 16)
-                {
-                    if (i != 0)
-                        output.Append(Environment.NewLine);
-                    if (fieldName.Length > 0)
-                    {
-                        output.Append(fieldName);
-                        output.Append(": ");
-                    }
-
-                    for (int j = 0; j < 16; j++)
-                    {
-                        if ((i + j) < bytes.Length)
-                            output.Append(String.Format("{0:X2} ", bytes[i + j]));
-                        else
-                            output.Append("   ");
-                    }
-
-                    for (int j = 0; j < 16 && (i + j) < bytes.Length; j++)
-                    {
-                        if (bytes[i + j] >= 0x20 && bytes[i + j] < 0x7E)
-                            output.Append((char)bytes[i + j]);
-                        else
-                            output.Append(".");
-                    }
-                }
-            }
-
-            return output.ToString();
-        }
-        public Util()
-        {
-
-        }
-    }
-}
+/*
+* Copyright (c) Contributors, http://www.openmetaverse.org/
+* See CONTRIBUTORS.TXT for a full list of copyright holders.
+*
+* Redistribution and use in source and binary forms, with or without
+* modification, are permitted provided that the following conditions are met:
+*     * Redistributions of source code must retain the above copyright
+*       notice, this list of conditions and the following disclaimer.
+*     * Redistributions in binary form must reproduce the above copyright
+*       notice, this list of conditions and the following disclaimer in the
+*       documentation and/or other materials provided with the distribution.
+*     * Neither the name of the OpenSim Project nor the
+*       names of its contributors may be used to endorse or promote products
+*       derived from this software without specific prior written permission.
+*
+* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS AND ANY
+* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
+* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+* 
+*/
+using System;
+using System.Security.Cryptography;
+using System.Text;
+using libsecondlife;
+
+namespace OpenSim.Framework.Utilities
+{
+    public class Util
+    {
+        private static Random randomClass = new Random();
+        private static uint nextXferID = 5000;
+        private static object XferLock = new object();
+
+        public static ulong UIntsToLong(uint X, uint Y)
+        {
+            return Helpers.UIntsToLong(X, Y);
+        }
+
+        public static Random RandomClass
+        {
+            get
+            {
+                return randomClass;
+            }
+        }
+
+        public static uint GetNextXferID()
+        {
+            uint id = 0;
+            lock(XferLock)
+            {
+                id = nextXferID;
+                nextXferID++;
+            }
+            return id;
+        }
+
+        public static int UnixTimeSinceEpoch()
+        {
+            TimeSpan t = (DateTime.UtcNow - new DateTime(1970, 1, 1));
+            int timestamp = (int)t.TotalSeconds;
+            return timestamp;
+        }
+
+        public static string Md5Hash(string pass)
+        {
+            MD5 md5 = MD5CryptoServiceProvider.Create();
+            byte[] dataMd5 = md5.ComputeHash(Encoding.Default.GetBytes(pass));
+            StringBuilder sb = new StringBuilder();
+            for (int i = 0; i < dataMd5.Length; i++)
+                sb.AppendFormat("{0:x2}", dataMd5[i]);
+            return sb.ToString();
+        }
+
+        public static string GetRandomCapsPath()
+        {
+            LLUUID caps = LLUUID.Random();
+            string capsPath = caps.ToStringHyphenated();
+            capsPath = capsPath.Remove(capsPath.Length - 4, 4);
+            return capsPath;
+        }
+
+        //public static int fast_distance2d(int x, int y)
+        //{
+        //    x = System.Math.Abs(x);
+        //    y = System.Math.Abs(y);
+
+        //    int min = System.Math.Min(x, y);
+
+        //    return (x + y - (min >> 1) - (min >> 2) + (min >> 4));
+        //}
+
+        public static string FieldToString(byte[] bytes)
+        {
+            return FieldToString(bytes, String.Empty);
+        }
+
+        /// <summary>
+        /// Convert a variable length field (byte array) to a string, with a
+        /// field name prepended to each line of the output
+        /// </summary>
+        /// <remarks>If the byte array has unprintable characters in it, a 
+        /// hex dump will be put in the string instead</remarks>
+        /// <param name="bytes">The byte array to convert to a string</param>
+        /// <param name="fieldName">A field name to prepend to each line of output</param>
+        /// <returns>An ASCII string or a string containing a hex dump, minus 
+        /// the null terminator</returns>
+        public static string FieldToString(byte[] bytes, string fieldName)
+        {
+            // Check for a common case
+            if (bytes.Length == 0) return String.Empty;
+
+            StringBuilder output = new StringBuilder();
+            bool printable = true;
+
+            for (int i = 0; i < bytes.Length; ++i)
+            {
+                // Check if there are any unprintable characters in the array
+                if ((bytes[i] < 0x20 || bytes[i] > 0x7E) && bytes[i] != 0x09
+                    && bytes[i] != 0x0D && bytes[i] != 0x0A && bytes[i] != 0x00)
+                {
+                    printable = false;
+                    break;
+                }
+            }
+
+            if (printable)
+            {
+                if (fieldName.Length > 0)
+                {
+                    output.Append(fieldName);
+                    output.Append(": ");
+                }
+
+                if (bytes[bytes.Length - 1] == 0x00)
+                    output.Append(UTF8Encoding.UTF8.GetString(bytes, 0, bytes.Length - 1));
+                else
+                    output.Append(UTF8Encoding.UTF8.GetString(bytes));
+            }
+            else
+            {
+                for (int i = 0; i < bytes.Length; i += 16)
+                {
+                    if (i != 0)
+                        output.Append(Environment.NewLine);
+                    if (fieldName.Length > 0)
+                    {
+                        output.Append(fieldName);
+                        output.Append(": ");
+                    }
+
+                    for (int j = 0; j < 16; j++)
+                    {
+                        if ((i + j) < bytes.Length)
+                            output.Append(String.Format("{0:X2} ", bytes[i + j]));
+                        else
+                            output.Append("   ");
+                    }
+
+                    for (int j = 0; j < 16 && (i + j) < bytes.Length; j++)
+                    {
+                        if (bytes[i + j] >= 0x20 && bytes[i + j] < 0x7E)
+                            output.Append((char)bytes[i + j]);
+                        else
+                            output.Append(".");
+                    }
+                }
+            }
+
+            return output.ToString();
+        }
+        public Util()
+        {
+
+        }
+    }
+}

+ 33 - 33
OpenSim/Framework/GenericConfig/Xml/Properties/AssemblyInfo.cs

@@ -1,33 +1,33 @@
-using System.Reflection;
-using System.Runtime.InteropServices;
-// General Information about an assembly is controlled through the following 
-// set of attributes. Change these attribute values to modify the information
-// associated with an assembly.
-[assembly: AssemblyTitle("OpenSim.GenericConfig")]
-[assembly: AssemblyDescription("")]
-[assembly: AssemblyConfiguration("")]
-[assembly: AssemblyCompany("")]
-[assembly: AssemblyProduct("OpenSim.GenericConfig")]
-[assembly: AssemblyCopyright("Copyright ©  2007")]
-[assembly: AssemblyTrademark("")]
-[assembly: AssemblyCulture("")]
-
-// Setting ComVisible to false makes the types in this assembly not visible 
-// to COM components.  If you need to access a type in this assembly from 
-// COM, set the ComVisible attribute to true on that type.
-[assembly: ComVisible(false)]
-
-// The following GUID is for the ID of the typelib if this project is exposed to COM
-[assembly: Guid("285a3047-f165-46c8-8767-b51428738a09")]
-
-// Version information for an assembly consists of the following four values:
-//
-//      Major Version
-//      Minor Version 
-//      Build Number
-//      Revision
-//
-// You can specify all the values or you can default the Revision and Build Numbers 
-// by using the '*' as shown below:
-[assembly: AssemblyVersion("1.0.0.0")]
-[assembly: AssemblyFileVersion("1.0.0.0")]
+using System.Reflection;
+using System.Runtime.InteropServices;
+// General Information about an assembly is controlled through the following 
+// set of attributes. Change these attribute values to modify the information
+// associated with an assembly.
+[assembly: AssemblyTitle("OpenSim.GenericConfig")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("")]
+[assembly: AssemblyProduct("OpenSim.GenericConfig")]
+[assembly: AssemblyCopyright("Copyright ©  2007")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// Setting ComVisible to false makes the types in this assembly not visible 
+// to COM components.  If you need to access a type in this assembly from 
+// COM, set the ComVisible attribute to true on that type.
+[assembly: ComVisible(false)]
+
+// The following GUID is for the ID of the typelib if this project is exposed to COM
+[assembly: Guid("285a3047-f165-46c8-8767-b51428738a09")]
+
+// Version information for an assembly consists of the following four values:
+//
+//      Major Version
+//      Minor Version 
+//      Build Number
+//      Revision
+//
+// You can specify all the values or you can default the Revision and Build Numbers 
+// by using the '*' as shown below:
+[assembly: AssemblyVersion("1.0.0.0")]
+[assembly: AssemblyFileVersion("1.0.0.0")]

+ 122 - 122
OpenSim/Framework/GenericConfig/Xml/XmlConfig.cs

@@ -1,122 +1,122 @@
-/*
-* Copyright (c) Contributors, http://www.openmetaverse.org/
-* See CONTRIBUTORS.TXT for a full list of copyright holders.
-*
-* Redistribution and use in source and binary forms, with or without
-* modification, are permitted provided that the following conditions are met:
-*     * Redistributions of source code must retain the above copyright
-*       notice, this list of conditions and the following disclaimer.
-*     * Redistributions in binary form must reproduce the above copyright
-*       notice, this list of conditions and the following disclaimer in the
-*       documentation and/or other materials provided with the distribution.
-*     * Neither the name of the OpenSim Project nor the
-*       names of its contributors may be used to endorse or promote products
-*       derived from this software without specific prior written permission.
-*
-* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS AND ANY
-* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
-* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-* 
-*/
-using System;
-using System.IO;
-using System.Xml;
-using OpenSim.Framework.Interfaces;
-
-namespace OpenSim.GenericConfig
-{
-    public class XmlConfig : IGenericConfig
-    {
-        private XmlDocument doc;
-        private XmlNode rootNode;
-        private XmlNode configNode;
-        private string fileName;
-        private bool createdFile = false;
-
-        public XmlConfig(string filename)
-        {
-            fileName = filename;
-        }
-
-        public void LoadData()
-        {
-            doc = new XmlDocument();
-
-            if (File.Exists(fileName))
-            {
-                XmlTextReader reader = new XmlTextReader(fileName);
-                reader.WhitespaceHandling = WhitespaceHandling.None;
-                doc.Load(reader);
-                reader.Close();
-            }
-            else
-            {
-                createdFile = true;
-                rootNode = doc.CreateNode(XmlNodeType.Element, "Root", "");
-                doc.AppendChild(rootNode);
-                configNode = doc.CreateNode(XmlNodeType.Element, "Config", "");
-                rootNode.AppendChild(configNode);
-            }
-
-
-            rootNode = doc.FirstChild;
-            if (rootNode.Name != "Root")
-                throw new Exception("Error: Invalid .xml File. Missing <Root>");
-
-            configNode = rootNode.FirstChild;
-            if (configNode.Name != "Config")
-                throw new Exception("Error: Invalid .xml File. <Root> first child should be <Config>");
-
-            if (createdFile)
-            {
-                this.Commit();
-            }
-        }
-
-        public string GetAttribute(string attributeName)
-        {
-            string result = "";
-            if (configNode.Attributes[attributeName] != null)
-            {
-                result = ((XmlAttribute)configNode.Attributes.GetNamedItem(attributeName)).Value;
-            }
-            return result;
-        }
-
-        public bool SetAttribute(string attributeName, string attributeValue)
-        {
-            if (configNode.Attributes[attributeName] != null)
-            {
-                ((XmlAttribute)configNode.Attributes.GetNamedItem(attributeName)).Value = attributeValue;
-            }
-            else
-            {
-                XmlAttribute attri;
-                attri = doc.CreateAttribute(attributeName);
-                attri.Value = attributeValue;
-                configNode.Attributes.Append(attri);
-            }
-            return true;
-        }
-
-        public void Commit()
-        {
-            doc.Save(fileName);
-        }
-
-        public void Close()
-        {
-            configNode = null;
-            rootNode = null;
-            doc = null;
-        }
-
-    }
-}
+/*
+* Copyright (c) Contributors, http://www.openmetaverse.org/
+* See CONTRIBUTORS.TXT for a full list of copyright holders.
+*
+* Redistribution and use in source and binary forms, with or without
+* modification, are permitted provided that the following conditions are met:
+*     * Redistributions of source code must retain the above copyright
+*       notice, this list of conditions and the following disclaimer.
+*     * Redistributions in binary form must reproduce the above copyright
+*       notice, this list of conditions and the following disclaimer in the
+*       documentation and/or other materials provided with the distribution.
+*     * Neither the name of the OpenSim Project nor the
+*       names of its contributors may be used to endorse or promote products
+*       derived from this software without specific prior written permission.
+*
+* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS AND ANY
+* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
+* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+* 
+*/
+using System;
+using System.IO;
+using System.Xml;
+using OpenSim.Framework.Interfaces;
+
+namespace OpenSim.GenericConfig
+{
+    public class XmlConfig : IGenericConfig
+    {
+        private XmlDocument doc;
+        private XmlNode rootNode;
+        private XmlNode configNode;
+        private string fileName;
+        private bool createdFile = false;
+
+        public XmlConfig(string filename)
+        {
+            fileName = filename;
+        }
+
+        public void LoadData()
+        {
+            doc = new XmlDocument();
+
+            if (File.Exists(fileName))
+            {
+                XmlTextReader reader = new XmlTextReader(fileName);
+                reader.WhitespaceHandling = WhitespaceHandling.None;
+                doc.Load(reader);
+                reader.Close();
+            }
+            else
+            {
+                createdFile = true;
+                rootNode = doc.CreateNode(XmlNodeType.Element, "Root", "");
+                doc.AppendChild(rootNode);
+                configNode = doc.CreateNode(XmlNodeType.Element, "Config", "");
+                rootNode.AppendChild(configNode);
+            }
+
+
+            rootNode = doc.FirstChild;
+            if (rootNode.Name != "Root")
+                throw new Exception("Error: Invalid .xml File. Missing <Root>");
+
+            configNode = rootNode.FirstChild;
+            if (configNode.Name != "Config")
+                throw new Exception("Error: Invalid .xml File. <Root> first child should be <Config>");
+
+            if (createdFile)
+            {
+                this.Commit();
+            }
+        }
+
+        public string GetAttribute(string attributeName)
+        {
+            string result = "";
+            if (configNode.Attributes[attributeName] != null)
+            {
+                result = ((XmlAttribute)configNode.Attributes.GetNamedItem(attributeName)).Value;
+            }
+            return result;
+        }
+
+        public bool SetAttribute(string attributeName, string attributeValue)
+        {
+            if (configNode.Attributes[attributeName] != null)
+            {
+                ((XmlAttribute)configNode.Attributes.GetNamedItem(attributeName)).Value = attributeValue;
+            }
+            else
+            {
+                XmlAttribute attri;
+                attri = doc.CreateAttribute(attributeName);
+                attri.Value = attributeValue;
+                configNode.Attributes.Append(attri);
+            }
+            return true;
+        }
+
+        public void Commit()
+        {
+            doc.Save(fileName);
+        }
+
+        public void Close()
+        {
+            configNode = null;
+            rootNode = null;
+            doc = null;
+        }
+
+    }
+}

+ 224 - 224
OpenSim/Framework/Servers/BaseHttpServer.cs

@@ -1,224 +1,224 @@
-/*
-* Copyright (c) Contributors, http://www.openmetaverse.org/
-* See CONTRIBUTORS.TXT for a full list of copyright holders.
-*
-* Redistribution and use in source and binary forms, with or without
-* modification, are permitted provided that the following conditions are met:
-*     * Redistributions of source code must retain the above copyright
-*       notice, this list of conditions and the following disclaimer.
-*     * Redistributions in binary form must reproduce the above copyright
-*       notice, this list of conditions and the following disclaimer in the
-*       documentation and/or other materials provided with the distribution.
-*     * Neither the name of the OpenSim Project nor the
-*       names of its contributors may be used to endorse or promote products
-*       derived from this software without specific prior written permission.
-*
-* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS AND ANY
-* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
-* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-* 
-*/
-using System;
-using System.Collections;
-using System.Collections.Generic;
-using System.IO;
-using System.Net;
-using System.Text;
-using System.Text.RegularExpressions;
-using System.Threading;
-using Nwc.XmlRpc;
-using OpenSim.Framework.Console;
-
-namespace OpenSim.Framework.Servers
-{
-    public class BaseHttpServer
-    {
-        protected Thread m_workerThread;
-        protected HttpListener m_httpListener;
-        protected Dictionary<string, XmlRpcMethod> m_rpcHandlers = new Dictionary<string, XmlRpcMethod>();
-        protected Dictionary<string, IStreamHandler> m_streamHandlers = new Dictionary<string, IStreamHandler>();
-        protected int m_port;
-        protected bool m_firstcaps = true;
-
-        public BaseHttpServer(int port)
-        {
-            m_port = port;
-        }
-
-        public void AddStreamHandler( IStreamHandler handler)
-        {
-            string httpMethod = handler.HttpMethod;
-            string path = handler.Path;
-            
-            string handlerKey = GetHandlerKey(httpMethod, path);
-            m_streamHandlers.Add(handlerKey, handler);
-        }
-
-        private static string GetHandlerKey(string httpMethod, string path)
-        {
-            return httpMethod + ":" + path;
-        }
-
-        public bool AddXmlRPCHandler(string method, XmlRpcMethod handler)
-        {
-            if (!this.m_rpcHandlers.ContainsKey(method))
-            {
-                this.m_rpcHandlers.Add(method, handler);
-                return true;
-            }
-
-            //must already have a handler for that path so return false
-            return false;
-        }
-
-
-        public virtual void HandleRequest(Object stateinfo)
-        {
-            HttpListenerContext context = (HttpListenerContext)stateinfo;
-
-            HttpListenerRequest request = context.Request;
-            HttpListenerResponse response = context.Response;
-
-            response.KeepAlive = false;
-            response.SendChunked = false;
-
-            string path = request.RawUrl;
-            string handlerKey = GetHandlerKey( request.HttpMethod, path );
-
-            IStreamHandler streamHandler;
-
-            if (TryGetStreamHandler( handlerKey, out streamHandler))
-            {
-                byte[] buffer = streamHandler.Handle(path, request.InputStream);
-                request.InputStream.Close();
-
-                response.ContentType = streamHandler.ContentType;
-                response.ContentLength64 = buffer.LongLength;
-                response.OutputStream.Write(buffer, 0, buffer.Length);
-                response.OutputStream.Close();
-            }
-            else
-            {
-                HandleXmlRpcRequests(request, response);
-            }
-        }
-
-        private bool TryGetStreamHandler(string handlerKey, out IStreamHandler streamHandler)
-        {
-            string bestMatch = null;
-
-            foreach (string pattern in m_streamHandlers.Keys)
-            {
-                if (handlerKey.StartsWith(pattern))
-                {
-                    if (String.IsNullOrEmpty(bestMatch) || pattern.Length > bestMatch.Length)
-                    {
-                        bestMatch = pattern;
-                    }
-                }
-            }
-
-            if (String.IsNullOrEmpty(bestMatch))
-            {
-                streamHandler = null;
-                return false;
-            }
-            else
-            {
-                streamHandler = m_streamHandlers[bestMatch];
-                return true;
-            }
-        }
-
-        private void HandleXmlRpcRequests(HttpListenerRequest request, HttpListenerResponse response)
-        {
-            Stream requestStream = request.InputStream;
-
-            Encoding encoding = Encoding.UTF8;
-            StreamReader reader = new StreamReader(requestStream, encoding);
-
-            string requestBody = reader.ReadToEnd();
-            reader.Close();
-            requestStream.Close();
-
-            XmlRpcRequest xmlRprcRequest = (XmlRpcRequest)(new XmlRpcRequestDeserializer()).Deserialize(requestBody);
-
-            string methodName = xmlRprcRequest.MethodName;
-
-            XmlRpcResponse xmlRpcResponse;
-
-            XmlRpcMethod method;
-            if (this.m_rpcHandlers.TryGetValue(methodName, out method))
-            {
-                xmlRpcResponse = method(xmlRprcRequest);
-            }
-            else
-            {
-                xmlRpcResponse = new XmlRpcResponse();
-                Hashtable unknownMethodError = new Hashtable();
-                unknownMethodError["reason"] = "XmlRequest"; ;
-                unknownMethodError["message"] = "Unknown Rpc Request ["+methodName+"]";
-                unknownMethodError["login"] = "false";
-                xmlRpcResponse.Value = unknownMethodError;
-            }
-
-            response.AddHeader("Content-type", "text/xml");
-
-            string responseString = XmlRpcResponseSerializer.Singleton.Serialize(xmlRpcResponse);
-            
-            byte[] buffer = Encoding.UTF8.GetBytes(responseString);
-
-            response.SendChunked = false;
-            response.ContentLength64 = buffer.Length;
-            response.ContentEncoding = Encoding.UTF8;
-
-            response.OutputStream.Write(buffer, 0, buffer.Length);
-            response.OutputStream.Close();
-        }
-
-        public void Start()
-        {
-            MainLog.Instance.WriteLine(LogPriority.LOW, "BaseHttpServer.cs: Starting up HTTP Server");
-
-            m_workerThread = new Thread(new ThreadStart(StartHTTP));
-            m_workerThread.IsBackground = true;
-            m_workerThread.Start();
-        }
-
-        private void StartHTTP()
-        {
-            try
-            {
-                MainLog.Instance.WriteLine(LogPriority.LOW, "BaseHttpServer.cs: StartHTTP() - Spawned main thread OK");
-                m_httpListener = new HttpListener();
-
-                m_httpListener.Prefixes.Add("http://+:" + m_port + "/");
-                m_httpListener.Start();
-
-                HttpListenerContext context;
-                while (true)
-                {
-                    context = m_httpListener.GetContext();
-                    ThreadPool.QueueUserWorkItem(new WaitCallback(HandleRequest), context);
-                }
-            }
-            catch (Exception e)
-            {
-                MainLog.Instance.WriteLine(LogPriority.MEDIUM, e.Message);
-            }
-        }
-
-
-        public void RemoveStreamHandler(string httpMethod, string path)
-        {
-            m_streamHandlers.Remove(GetHandlerKey(httpMethod, path));
-        }
-    }
-}
+/*
+* Copyright (c) Contributors, http://www.openmetaverse.org/
+* See CONTRIBUTORS.TXT for a full list of copyright holders.
+*
+* Redistribution and use in source and binary forms, with or without
+* modification, are permitted provided that the following conditions are met:
+*     * Redistributions of source code must retain the above copyright
+*       notice, this list of conditions and the following disclaimer.
+*     * Redistributions in binary form must reproduce the above copyright
+*       notice, this list of conditions and the following disclaimer in the
+*       documentation and/or other materials provided with the distribution.
+*     * Neither the name of the OpenSim Project nor the
+*       names of its contributors may be used to endorse or promote products
+*       derived from this software without specific prior written permission.
+*
+* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS AND ANY
+* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
+* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+* 
+*/
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using System.IO;
+using System.Net;
+using System.Text;
+using System.Text.RegularExpressions;
+using System.Threading;
+using Nwc.XmlRpc;
+using OpenSim.Framework.Console;
+
+namespace OpenSim.Framework.Servers
+{
+    public class BaseHttpServer
+    {
+        protected Thread m_workerThread;
+        protected HttpListener m_httpListener;
+        protected Dictionary<string, XmlRpcMethod> m_rpcHandlers = new Dictionary<string, XmlRpcMethod>();
+        protected Dictionary<string, IStreamHandler> m_streamHandlers = new Dictionary<string, IStreamHandler>();
+        protected int m_port;
+        protected bool m_firstcaps = true;
+
+        public BaseHttpServer(int port)
+        {
+            m_port = port;
+        }
+
+        public void AddStreamHandler( IStreamHandler handler)
+        {
+            string httpMethod = handler.HttpMethod;
+            string path = handler.Path;
+            
+            string handlerKey = GetHandlerKey(httpMethod, path);
+            m_streamHandlers.Add(handlerKey, handler);
+        }
+
+        private static string GetHandlerKey(string httpMethod, string path)
+        {
+            return httpMethod + ":" + path;
+        }
+
+        public bool AddXmlRPCHandler(string method, XmlRpcMethod handler)
+        {
+            if (!this.m_rpcHandlers.ContainsKey(method))
+            {
+                this.m_rpcHandlers.Add(method, handler);
+                return true;
+            }
+
+            //must already have a handler for that path so return false
+            return false;
+        }
+
+
+        public virtual void HandleRequest(Object stateinfo)
+        {
+            HttpListenerContext context = (HttpListenerContext)stateinfo;
+
+            HttpListenerRequest request = context.Request;
+            HttpListenerResponse response = context.Response;
+
+            response.KeepAlive = false;
+            response.SendChunked = false;
+
+            string path = request.RawUrl;
+            string handlerKey = GetHandlerKey( request.HttpMethod, path );
+
+            IStreamHandler streamHandler;
+
+            if (TryGetStreamHandler( handlerKey, out streamHandler))
+            {
+                byte[] buffer = streamHandler.Handle(path, request.InputStream);
+                request.InputStream.Close();
+
+                response.ContentType = streamHandler.ContentType;
+                response.ContentLength64 = buffer.LongLength;
+                response.OutputStream.Write(buffer, 0, buffer.Length);
+                response.OutputStream.Close();
+            }
+            else
+            {
+                HandleXmlRpcRequests(request, response);
+            }
+        }
+
+        private bool TryGetStreamHandler(string handlerKey, out IStreamHandler streamHandler)
+        {
+            string bestMatch = null;
+
+            foreach (string pattern in m_streamHandlers.Keys)
+            {
+                if (handlerKey.StartsWith(pattern))
+                {
+                    if (String.IsNullOrEmpty(bestMatch) || pattern.Length > bestMatch.Length)
+                    {
+                        bestMatch = pattern;
+                    }
+                }
+            }
+
+            if (String.IsNullOrEmpty(bestMatch))
+            {
+                streamHandler = null;
+                return false;
+            }
+            else
+            {
+                streamHandler = m_streamHandlers[bestMatch];
+                return true;
+            }
+        }
+
+        private void HandleXmlRpcRequests(HttpListenerRequest request, HttpListenerResponse response)
+        {
+            Stream requestStream = request.InputStream;
+
+            Encoding encoding = Encoding.UTF8;
+            StreamReader reader = new StreamReader(requestStream, encoding);
+
+            string requestBody = reader.ReadToEnd();
+            reader.Close();
+            requestStream.Close();
+
+            XmlRpcRequest xmlRprcRequest = (XmlRpcRequest)(new XmlRpcRequestDeserializer()).Deserialize(requestBody);
+
+            string methodName = xmlRprcRequest.MethodName;
+
+            XmlRpcResponse xmlRpcResponse;
+
+            XmlRpcMethod method;
+            if (this.m_rpcHandlers.TryGetValue(methodName, out method))
+            {
+                xmlRpcResponse = method(xmlRprcRequest);
+            }
+            else
+            {
+                xmlRpcResponse = new XmlRpcResponse();
+                Hashtable unknownMethodError = new Hashtable();
+                unknownMethodError["reason"] = "XmlRequest"; ;
+                unknownMethodError["message"] = "Unknown Rpc Request ["+methodName+"]";
+                unknownMethodError["login"] = "false";
+                xmlRpcResponse.Value = unknownMethodError;
+            }
+
+            response.AddHeader("Content-type", "text/xml");
+
+            string responseString = XmlRpcResponseSerializer.Singleton.Serialize(xmlRpcResponse);
+            
+            byte[] buffer = Encoding.UTF8.GetBytes(responseString);
+
+            response.SendChunked = false;
+            response.ContentLength64 = buffer.Length;
+            response.ContentEncoding = Encoding.UTF8;
+
+            response.OutputStream.Write(buffer, 0, buffer.Length);
+            response.OutputStream.Close();
+        }
+
+        public void Start()
+        {
+            MainLog.Instance.WriteLine(LogPriority.LOW, "BaseHttpServer.cs: Starting up HTTP Server");
+
+            m_workerThread = new Thread(new ThreadStart(StartHTTP));
+            m_workerThread.IsBackground = true;
+            m_workerThread.Start();
+        }
+
+        private void StartHTTP()
+        {
+            try
+            {
+                MainLog.Instance.WriteLine(LogPriority.LOW, "BaseHttpServer.cs: StartHTTP() - Spawned main thread OK");
+                m_httpListener = new HttpListener();
+
+                m_httpListener.Prefixes.Add("http://+:" + m_port + "/");
+                m_httpListener.Start();
+
+                HttpListenerContext context;
+                while (true)
+                {
+                    context = m_httpListener.GetContext();
+                    ThreadPool.QueueUserWorkItem(new WaitCallback(HandleRequest), context);
+                }
+            }
+            catch (Exception e)
+            {
+                MainLog.Instance.WriteLine(LogPriority.MEDIUM, e.Message);
+            }
+        }
+
+
+        public void RemoveStreamHandler(string httpMethod, string path)
+        {
+            m_streamHandlers.Remove(GetHandlerKey(httpMethod, path));
+        }
+    }
+}

+ 40 - 40
OpenSim/Framework/Servers/BaseStreamHandler.cs

@@ -1,40 +1,40 @@
-using System;
-using System.Collections.Generic;
-using System.Text;
-using System.IO;
-
-namespace OpenSim.Framework.Servers
-{
-    public abstract class BaseStreamHandler : IStreamHandler
-    {
-        virtual public string ContentType
-        {
-            get { return "application/xml"; }
-        }
-
-        private string m_httpMethod;
-        virtual public string HttpMethod
-        {
-            get { return m_httpMethod; }
-        }
-
-        private string m_path;
-        virtual public string Path
-        {
-            get { return m_path; }
-        }
-	
-        protected string GetParam( string path )
-        {
-           return path.Substring( m_path.Length );
-        }
-        
-        public abstract byte[] Handle(string path, Stream request);
-
-        protected BaseStreamHandler(string httpMethod, string path)
-        {
-            m_httpMethod = httpMethod;
-            m_path = path;
-        }
-    }
-}
+using System;
+using System.Collections.Generic;
+using System.Text;
+using System.IO;
+
+namespace OpenSim.Framework.Servers
+{
+    public abstract class BaseStreamHandler : IStreamHandler
+    {
+        virtual public string ContentType
+        {
+            get { return "application/xml"; }
+        }
+
+        private string m_httpMethod;
+        virtual public string HttpMethod
+        {
+            get { return m_httpMethod; }
+        }
+
+        private string m_path;
+        virtual public string Path
+        {
+            get { return m_path; }
+        }
+	
+        protected string GetParam( string path )
+        {
+           return path.Substring( m_path.Length );
+        }
+        
+        public abstract byte[] Handle(string path, Stream request);
+
+        protected BaseStreamHandler(string httpMethod, string path)
+        {
+            m_httpMethod = httpMethod;
+            m_path = path;
+        }
+    }
+}

+ 49 - 49
OpenSim/Framework/Servers/BinaryStreamHandler.cs

@@ -1,49 +1,49 @@
-using System;
-using System.Collections.Generic;
-using System.Text;
-using System.IO;
-
-namespace OpenSim.Framework.Servers
-{
-    public delegate string BinaryMethod(byte[] data, string path, string param);
-
-    public class BinaryStreamHandler : BaseStreamHandler
-    {
-        BinaryMethod m_method;
-
-        override public byte[] Handle(string path, Stream request)
-        {
-            byte[] data = ReadFully(request);
-            string param = GetParam(path);
-            string responseString = m_method(data, path, param);
-            
-            return Encoding.UTF8.GetBytes(responseString);
-        }
-
-        public BinaryStreamHandler(string httpMethod, string path, BinaryMethod binaryMethod)
-            : base(httpMethod, path)
-        {
-            m_method = binaryMethod;
-        }
-
-        private byte[] ReadFully(Stream stream)
-        {
-            byte[] buffer = new byte[32768];
-            using (MemoryStream ms = new MemoryStream())
-            {
-                while (true)
-                {
-                    int read = stream.Read(buffer, 0, buffer.Length);
-
-                    if (read <= 0)
-                    {
-                        return ms.ToArray();
-                    }
-                    
-                    ms.Write(buffer, 0, read);
-                }
-            }           
-        }
-    }
-
-}
+using System;
+using System.Collections.Generic;
+using System.Text;
+using System.IO;
+
+namespace OpenSim.Framework.Servers
+{
+    public delegate string BinaryMethod(byte[] data, string path, string param);
+
+    public class BinaryStreamHandler : BaseStreamHandler
+    {
+        BinaryMethod m_method;
+
+        override public byte[] Handle(string path, Stream request)
+        {
+            byte[] data = ReadFully(request);
+            string param = GetParam(path);
+            string responseString = m_method(data, path, param);
+            
+            return Encoding.UTF8.GetBytes(responseString);
+        }
+
+        public BinaryStreamHandler(string httpMethod, string path, BinaryMethod binaryMethod)
+            : base(httpMethod, path)
+        {
+            m_method = binaryMethod;
+        }
+
+        private byte[] ReadFully(Stream stream)
+        {
+            byte[] buffer = new byte[32768];
+            using (MemoryStream ms = new MemoryStream())
+            {
+                while (true)
+                {
+                    int read = stream.Read(buffer, 0, buffer.Length);
+
+                    if (read <= 0)
+                    {
+                        return ms.ToArray();
+                    }
+                    
+                    ms.Write(buffer, 0, read);
+                }
+            }           
+        }
+    }
+
+}

+ 126 - 126
OpenSim/Framework/Servers/CheckSumServer.cs

@@ -1,127 +1,127 @@
-/*
-* Copyright (c) Contributors, http://www.openmetaverse.org/
-* See CONTRIBUTORS.TXT for a full list of copyright holders.
-*
-* Redistribution and use in source and binary forms, with or without
-* modification, are permitted provided that the following conditions are met:
-*     * Redistributions of source code must retain the above copyright
-*       notice, this list of conditions and the following disclaimer.
-*     * Redistributions in binary form must reproduce the above copyright
-*       notice, this list of conditions and the following disclaimer in the
-*       documentation and/or other materials provided with the distribution.
-*     * Neither the name of the OpenSim Project nor the
-*       names of its contributors may be used to endorse or promote products
-*       derived from this software without specific prior written permission.
-*
-* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS AND ANY
-* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
-* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-* 
-*/
-namespace OpenSim.Framework.Servers
-{/*
-   public class CheckSumServer : UDPServerBase
-    {
-        //protected ConsoleBase m_log;
-
-        public CheckSumServer(int port)
-            : base(port)
-        {
-        }
-
-        protected override void OnReceivedData(IAsyncResult result)
-        {
-            ipeSender = new IPEndPoint(IPAddress.Any, 0);
-            epSender = (EndPoint)ipeSender;
-            Packet packet = null;
-            int numBytes = Server.EndReceiveFrom(result, ref epSender);
-            int packetEnd = numBytes - 1;
-
-            packet = Packet.BuildPacket(RecvBuffer, ref packetEnd, ZeroBuffer);
-
-            if (packet.Type == PacketType.SecuredTemplateChecksumRequest)
-            {
-                SecuredTemplateChecksumRequestPacket checksum = (SecuredTemplateChecksumRequestPacket)packet;
-                TemplateChecksumReplyPacket checkreply = new TemplateChecksumReplyPacket();
-                checkreply.DataBlock.Checksum = 3220703154;//180572585;
-                checkreply.DataBlock.Flags = 0;
-                checkreply.DataBlock.MajorVersion = 1;
-                checkreply.DataBlock.MinorVersion = 15;
-                checkreply.DataBlock.PatchVersion = 0;
-                checkreply.DataBlock.ServerVersion = 0;
-                checkreply.TokenBlock.Token = checksum.TokenBlock.Token;
-                this.SendPacket(checkreply, epSender);
-
-                /*
-                //if we wanted to echo the the checksum/ version from the client (so that any client worked)
-                SecuredTemplateChecksumRequestPacket checkrequest = new SecuredTemplateChecksumRequestPacket();
-                checkrequest.TokenBlock.Token = checksum.TokenBlock.Token;
-                this.SendPacket(checkrequest, epSender);
-                
-            }
-            else if (packet.Type == PacketType.TemplateChecksumReply)
-            {
-                //echo back the client checksum reply (Hegemon's method)
-                TemplateChecksumReplyPacket checksum2 = (TemplateChecksumReplyPacket)packet;
-                TemplateChecksumReplyPacket checkreply2 = new TemplateChecksumReplyPacket();
-                checkreply2.DataBlock.Checksum = checksum2.DataBlock.Checksum;
-                checkreply2.DataBlock.Flags = checksum2.DataBlock.Flags;
-                checkreply2.DataBlock.MajorVersion = checksum2.DataBlock.MajorVersion;
-                checkreply2.DataBlock.MinorVersion = checksum2.DataBlock.MinorVersion;
-                checkreply2.DataBlock.PatchVersion = checksum2.DataBlock.PatchVersion;
-                checkreply2.DataBlock.ServerVersion = checksum2.DataBlock.ServerVersion;
-                checkreply2.TokenBlock.Token = checksum2.TokenBlock.Token;
-                this.SendPacket(checkreply2, epSender);
-            }
-            else
-            {
-            }
-
-            Server.BeginReceiveFrom(RecvBuffer, 0, RecvBuffer.Length, SocketFlags.None, ref epSender, ReceivedData, null);
-        }
-
-        private void SendPacket(Packet Pack, EndPoint endp)
-        {
-            if (!Pack.Header.Resent)
-            {
-                Pack.Header.Sequence = 1;
-            }
-
-            byte[] ZeroOutBuffer = new byte[4096];
-            byte[] sendbuffer;
-            sendbuffer = Pack.ToBytes();
-
-            try
-            {
-                if (Pack.Header.Zerocoded)
-                {
-                    int packetsize = Helpers.ZeroEncode(sendbuffer, sendbuffer.Length, ZeroOutBuffer);
-                    this.SendPackTo(ZeroOutBuffer, packetsize, SocketFlags.None, endp);
-                }
-                else
-                {
-                    this.SendPackTo(sendbuffer, sendbuffer.Length, SocketFlags.None, endp);
-                }
-            }
-            catch (Exception)
-            {
-                OpenSim.Framework.Console.MainLog.Instance.Warn("OpenSimClient.cs:ProcessOutPacket() - WARNING: Socket exception occurred on connection ");
-
-            }
-        }
-
-        private void SendPackTo(byte[] buffer, int size, SocketFlags flags, EndPoint endp)
-        {
-            this.Server.SendTo(buffer, size, flags, endp);
-        }
-  * }
- */
-    
+/*
+* Copyright (c) Contributors, http://www.openmetaverse.org/
+* See CONTRIBUTORS.TXT for a full list of copyright holders.
+*
+* Redistribution and use in source and binary forms, with or without
+* modification, are permitted provided that the following conditions are met:
+*     * Redistributions of source code must retain the above copyright
+*       notice, this list of conditions and the following disclaimer.
+*     * Redistributions in binary form must reproduce the above copyright
+*       notice, this list of conditions and the following disclaimer in the
+*       documentation and/or other materials provided with the distribution.
+*     * Neither the name of the OpenSim Project nor the
+*       names of its contributors may be used to endorse or promote products
+*       derived from this software without specific prior written permission.
+*
+* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS AND ANY
+* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
+* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+* 
+*/
+namespace OpenSim.Framework.Servers
+{/*
+   public class CheckSumServer : UDPServerBase
+    {
+        //protected ConsoleBase m_log;
+
+        public CheckSumServer(int port)
+            : base(port)
+        {
+        }
+
+        protected override void OnReceivedData(IAsyncResult result)
+        {
+            ipeSender = new IPEndPoint(IPAddress.Any, 0);
+            epSender = (EndPoint)ipeSender;
+            Packet packet = null;
+            int numBytes = Server.EndReceiveFrom(result, ref epSender);
+            int packetEnd = numBytes - 1;
+
+            packet = Packet.BuildPacket(RecvBuffer, ref packetEnd, ZeroBuffer);
+
+            if (packet.Type == PacketType.SecuredTemplateChecksumRequest)
+            {
+                SecuredTemplateChecksumRequestPacket checksum = (SecuredTemplateChecksumRequestPacket)packet;
+                TemplateChecksumReplyPacket checkreply = new TemplateChecksumReplyPacket();
+                checkreply.DataBlock.Checksum = 3220703154;//180572585;
+                checkreply.DataBlock.Flags = 0;
+                checkreply.DataBlock.MajorVersion = 1;
+                checkreply.DataBlock.MinorVersion = 15;
+                checkreply.DataBlock.PatchVersion = 0;
+                checkreply.DataBlock.ServerVersion = 0;
+                checkreply.TokenBlock.Token = checksum.TokenBlock.Token;
+                this.SendPacket(checkreply, epSender);
+
+                /*
+                //if we wanted to echo the the checksum/ version from the client (so that any client worked)
+                SecuredTemplateChecksumRequestPacket checkrequest = new SecuredTemplateChecksumRequestPacket();
+                checkrequest.TokenBlock.Token = checksum.TokenBlock.Token;
+                this.SendPacket(checkrequest, epSender);
+                
+            }
+            else if (packet.Type == PacketType.TemplateChecksumReply)
+            {
+                //echo back the client checksum reply (Hegemon's method)
+                TemplateChecksumReplyPacket checksum2 = (TemplateChecksumReplyPacket)packet;
+                TemplateChecksumReplyPacket checkreply2 = new TemplateChecksumReplyPacket();
+                checkreply2.DataBlock.Checksum = checksum2.DataBlock.Checksum;
+                checkreply2.DataBlock.Flags = checksum2.DataBlock.Flags;
+                checkreply2.DataBlock.MajorVersion = checksum2.DataBlock.MajorVersion;
+                checkreply2.DataBlock.MinorVersion = checksum2.DataBlock.MinorVersion;
+                checkreply2.DataBlock.PatchVersion = checksum2.DataBlock.PatchVersion;
+                checkreply2.DataBlock.ServerVersion = checksum2.DataBlock.ServerVersion;
+                checkreply2.TokenBlock.Token = checksum2.TokenBlock.Token;
+                this.SendPacket(checkreply2, epSender);
+            }
+            else
+            {
+            }
+
+            Server.BeginReceiveFrom(RecvBuffer, 0, RecvBuffer.Length, SocketFlags.None, ref epSender, ReceivedData, null);
+        }
+
+        private void SendPacket(Packet Pack, EndPoint endp)
+        {
+            if (!Pack.Header.Resent)
+            {
+                Pack.Header.Sequence = 1;
+            }
+
+            byte[] ZeroOutBuffer = new byte[4096];
+            byte[] sendbuffer;
+            sendbuffer = Pack.ToBytes();
+
+            try
+            {
+                if (Pack.Header.Zerocoded)
+                {
+                    int packetsize = Helpers.ZeroEncode(sendbuffer, sendbuffer.Length, ZeroOutBuffer);
+                    this.SendPackTo(ZeroOutBuffer, packetsize, SocketFlags.None, endp);
+                }
+                else
+                {
+                    this.SendPackTo(sendbuffer, sendbuffer.Length, SocketFlags.None, endp);
+                }
+            }
+            catch (Exception)
+            {
+                OpenSim.Framework.Console.MainLog.Instance.Warn("OpenSimClient.cs:ProcessOutPacket() - WARNING: Socket exception occurred on connection ");
+
+            }
+        }
+
+        private void SendPackTo(byte[] buffer, int size, SocketFlags flags, EndPoint endp)
+        {
+            this.Server.SendTo(buffer, size, flags, endp);
+        }
+  * }
+ */
+    
 }

+ 22 - 22
OpenSim/Framework/Servers/IStreamHandler.cs

@@ -1,22 +1,22 @@
-using System;
-using System.Collections.Generic;
-using System.Text;
-using System.IO;
-
-namespace OpenSim.Framework.Servers
-{
-    public interface IStreamHandler
-    {
-        // Handle request stream, return byte array
-        byte[] Handle(string path, Stream request );
-        
-        // Return response content type
-        string ContentType { get; }
-        
-        // Return required http method
-        string HttpMethod { get;}
-
-        // Return path
-        string Path { get; }
-    }
-}
+using System;
+using System.Collections.Generic;
+using System.Text;
+using System.IO;
+
+namespace OpenSim.Framework.Servers
+{
+    public interface IStreamHandler
+    {
+        // Handle request stream, return byte array
+        byte[] Handle(string path, Stream request );
+        
+        // Return response content type
+        string ContentType { get; }
+        
+        // Return required http method
+        string HttpMethod { get;}
+
+        // Return path
+        string Path { get; }
+    }
+}

+ 31 - 31
OpenSim/Framework/Servers/RestMethod.cs

@@ -1,31 +1,31 @@
-/*
-* Copyright (c) Contributors, http://www.openmetaverse.org/
-* See CONTRIBUTORS.TXT for a full list of copyright holders.
-*
-* Redistribution and use in source and binary forms, with or without
-* modification, are permitted provided that the following conditions are met:
-*     * Redistributions of source code must retain the above copyright
-*       notice, this list of conditions and the following disclaimer.
-*     * Redistributions in binary form must reproduce the above copyright
-*       notice, this list of conditions and the following disclaimer in the
-*       documentation and/or other materials provided with the distribution.
-*     * Neither the name of the OpenSim Project nor the
-*       names of its contributors may be used to endorse or promote products
-*       derived from this software without specific prior written permission.
-*
-* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS AND ANY
-* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
-* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-* 
-*/
-namespace OpenSim.Framework.Servers
-{
-    public delegate string RestMethod( string request, string path, string param );
-}
+/*
+* Copyright (c) Contributors, http://www.openmetaverse.org/
+* See CONTRIBUTORS.TXT for a full list of copyright holders.
+*
+* Redistribution and use in source and binary forms, with or without
+* modification, are permitted provided that the following conditions are met:
+*     * Redistributions of source code must retain the above copyright
+*       notice, this list of conditions and the following disclaimer.
+*     * Redistributions in binary form must reproduce the above copyright
+*       notice, this list of conditions and the following disclaimer in the
+*       documentation and/or other materials provided with the distribution.
+*     * Neither the name of the OpenSim Project nor the
+*       names of its contributors may be used to endorse or promote products
+*       derived from this software without specific prior written permission.
+*
+* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS AND ANY
+* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
+* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+* 
+*/
+namespace OpenSim.Framework.Servers
+{
+    public delegate string RestMethod( string request, string path, string param );
+}

+ 31 - 31
OpenSim/Framework/Servers/RestStreamHandler.cs

@@ -1,31 +1,31 @@
-using System;
-using System.Collections.Generic;
-using System.Text;
-using System.IO;
-
-namespace OpenSim.Framework.Servers
-{
-    public class RestStreamHandler : BaseStreamHandler
-    {
-        RestMethod m_restMethod;
-
-        override public byte[] Handle(string path, Stream request )
-        {
-            Encoding encoding = Encoding.UTF8;
-            StreamReader streamReader = new StreamReader(request, encoding);
-
-            string requestBody = streamReader.ReadToEnd();
-            streamReader.Close();
-
-            string param = GetParam(path);
-            string responseString = m_restMethod(requestBody, path, param );
-
-            return Encoding.UTF8.GetBytes(responseString);
-        }
-
-        public RestStreamHandler(string httpMethod, string path, RestMethod restMethod) : base( httpMethod, path )
-        {
-            m_restMethod = restMethod;
-        }
-    }
-}
+using System;
+using System.Collections.Generic;
+using System.Text;
+using System.IO;
+
+namespace OpenSim.Framework.Servers
+{
+    public class RestStreamHandler : BaseStreamHandler
+    {
+        RestMethod m_restMethod;
+
+        override public byte[] Handle(string path, Stream request )
+        {
+            Encoding encoding = Encoding.UTF8;
+            StreamReader streamReader = new StreamReader(request, encoding);
+
+            string requestBody = streamReader.ReadToEnd();
+            streamReader.Close();
+
+            string param = GetParam(path);
+            string responseString = m_restMethod(requestBody, path, param );
+
+            return Encoding.UTF8.GetBytes(responseString);
+        }
+
+        public RestStreamHandler(string httpMethod, string path, RestMethod restMethod) : base( httpMethod, path )
+        {
+            m_restMethod = restMethod;
+        }
+    }
+}

+ 87 - 87
OpenSim/Framework/Servers/UDPServerBase.cs

@@ -1,87 +1,87 @@
-/*
-* Copyright (c) Contributors, http://www.openmetaverse.org/
-* See CONTRIBUTORS.TXT for a full list of copyright holders.
-*
-* Redistribution and use in source and binary forms, with or without
-* modification, are permitted provided that the following conditions are met:
-*     * Redistributions of source code must retain the above copyright
-*       notice, this list of conditions and the following disclaimer.
-*     * Redistributions in binary form must reproduce the above copyright
-*       notice, this list of conditions and the following disclaimer in the
-*       documentation and/or other materials provided with the distribution.
-*     * Neither the name of the OpenSim Project nor the
-*       names of its contributors may be used to endorse or promote products
-*       derived from this software without specific prior written permission.
-*
-* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS AND ANY
-* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
-* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-* 
-*/
-using System;
-using System.Net;
-using System.Net.Sockets;
-using libsecondlife.Packets;
-
-namespace OpenSim.Framework.Servers
-{
-    public class UDPServerBase
-    {
-        public Socket Server;
-        protected IPEndPoint ServerIncoming;
-        protected byte[] RecvBuffer = new byte[4096];
-        protected byte[] ZeroBuffer = new byte[8192];
-        protected IPEndPoint ipeSender;
-        protected EndPoint epSender;
-        protected AsyncCallback ReceivedData;
-        protected int listenPort;
-
-        public UDPServerBase(int port)
-        {
-            listenPort = port;
-        }
-
-        protected virtual void OnReceivedData(IAsyncResult result)
-        {
-            ipeSender = new IPEndPoint(IPAddress.Parse("0.0.0.0"), 0);
-            epSender = (EndPoint)ipeSender;
-            Packet packet = null;
-            int numBytes = Server.EndReceiveFrom(result, ref epSender);
-            int packetEnd = numBytes - 1;
-
-            packet = Packet.BuildPacket(RecvBuffer, ref packetEnd, ZeroBuffer);
-
-            Server.BeginReceiveFrom(RecvBuffer, 0, RecvBuffer.Length, SocketFlags.None, ref epSender, ReceivedData, null);
-        }
-
-        protected virtual void AddNewClient(Packet packet)
-        {
-        }
-
-        public virtual void ServerListener()
-        {
-
-            ServerIncoming = new IPEndPoint(IPAddress.Parse("0.0.0.0"), listenPort);
-            Server = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp);
-            Server.Bind(ServerIncoming);
-
-            ipeSender = new IPEndPoint(IPAddress.Parse("0.0.0.0"), 0);
-            epSender = (EndPoint)ipeSender;
-            ReceivedData = new AsyncCallback(this.OnReceivedData);
-            Server.BeginReceiveFrom(RecvBuffer, 0, RecvBuffer.Length, SocketFlags.None, ref epSender, ReceivedData, null);
-        }
-
-        public virtual void SendPacketTo(byte[] buffer, int size, SocketFlags flags, uint circuitcode)
-        {
-
-        }
-    }
-}
-
+/*
+* Copyright (c) Contributors, http://www.openmetaverse.org/
+* See CONTRIBUTORS.TXT for a full list of copyright holders.
+*
+* Redistribution and use in source and binary forms, with or without
+* modification, are permitted provided that the following conditions are met:
+*     * Redistributions of source code must retain the above copyright
+*       notice, this list of conditions and the following disclaimer.
+*     * Redistributions in binary form must reproduce the above copyright
+*       notice, this list of conditions and the following disclaimer in the
+*       documentation and/or other materials provided with the distribution.
+*     * Neither the name of the OpenSim Project nor the
+*       names of its contributors may be used to endorse or promote products
+*       derived from this software without specific prior written permission.
+*
+* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS AND ANY
+* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
+* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+* 
+*/
+using System;
+using System.Net;
+using System.Net.Sockets;
+using libsecondlife.Packets;
+
+namespace OpenSim.Framework.Servers
+{
+    public class UDPServerBase
+    {
+        public Socket Server;
+        protected IPEndPoint ServerIncoming;
+        protected byte[] RecvBuffer = new byte[4096];
+        protected byte[] ZeroBuffer = new byte[8192];
+        protected IPEndPoint ipeSender;
+        protected EndPoint epSender;
+        protected AsyncCallback ReceivedData;
+        protected int listenPort;
+
+        public UDPServerBase(int port)
+        {
+            listenPort = port;
+        }
+
+        protected virtual void OnReceivedData(IAsyncResult result)
+        {
+            ipeSender = new IPEndPoint(IPAddress.Parse("0.0.0.0"), 0);
+            epSender = (EndPoint)ipeSender;
+            Packet packet = null;
+            int numBytes = Server.EndReceiveFrom(result, ref epSender);
+            int packetEnd = numBytes - 1;
+
+            packet = Packet.BuildPacket(RecvBuffer, ref packetEnd, ZeroBuffer);
+
+            Server.BeginReceiveFrom(RecvBuffer, 0, RecvBuffer.Length, SocketFlags.None, ref epSender, ReceivedData, null);
+        }
+
+        protected virtual void AddNewClient(Packet packet)
+        {
+        }
+
+        public virtual void ServerListener()
+        {
+
+            ServerIncoming = new IPEndPoint(IPAddress.Parse("0.0.0.0"), listenPort);
+            Server = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp);
+            Server.Bind(ServerIncoming);
+
+            ipeSender = new IPEndPoint(IPAddress.Parse("0.0.0.0"), 0);
+            epSender = (EndPoint)ipeSender;
+            ReceivedData = new AsyncCallback(this.OnReceivedData);
+            Server.BeginReceiveFrom(RecvBuffer, 0, RecvBuffer.Length, SocketFlags.None, ref epSender, ReceivedData, null);
+        }
+
+        public virtual void SendPacketTo(byte[] buffer, int size, SocketFlags flags, uint circuitcode)
+        {
+
+        }
+    }
+}
+

+ 33 - 33
OpenSim/Framework/Servers/XmlRpcMethod.cs

@@ -1,33 +1,33 @@
-/*
-* Copyright (c) Contributors, http://www.openmetaverse.org/
-* See CONTRIBUTORS.TXT for a full list of copyright holders.
-*
-* Redistribution and use in source and binary forms, with or without
-* modification, are permitted provided that the following conditions are met:
-*     * Redistributions of source code must retain the above copyright
-*       notice, this list of conditions and the following disclaimer.
-*     * Redistributions in binary form must reproduce the above copyright
-*       notice, this list of conditions and the following disclaimer in the
-*       documentation and/or other materials provided with the distribution.
-*     * Neither the name of the OpenSim Project nor the
-*       names of its contributors may be used to endorse or promote products
-*       derived from this software without specific prior written permission.
-*
-* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS AND ANY
-* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
-* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-* 
-*/
-using Nwc.XmlRpc;
-
-namespace OpenSim.Framework.Servers
-{
-    public delegate XmlRpcResponse XmlRpcMethod( XmlRpcRequest request );    
-}
+/*
+* Copyright (c) Contributors, http://www.openmetaverse.org/
+* See CONTRIBUTORS.TXT for a full list of copyright holders.
+*
+* Redistribution and use in source and binary forms, with or without
+* modification, are permitted provided that the following conditions are met:
+*     * Redistributions of source code must retain the above copyright
+*       notice, this list of conditions and the following disclaimer.
+*     * Redistributions in binary form must reproduce the above copyright
+*       notice, this list of conditions and the following disclaimer in the
+*       documentation and/or other materials provided with the distribution.
+*     * Neither the name of the OpenSim Project nor the
+*       names of its contributors may be used to endorse or promote products
+*       derived from this software without specific prior written permission.
+*
+* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS AND ANY
+* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
+* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+* 
+*/
+using Nwc.XmlRpc;
+
+namespace OpenSim.Framework.Servers
+{
+    public delegate XmlRpcResponse XmlRpcMethod( XmlRpcRequest request );    
+}

+ 643 - 643
OpenSim/Framework/UserManager/LoginResponse.cs

@@ -1,643 +1,643 @@
-using System;
-using System.Collections;
-using libsecondlife;
-using Nwc.XmlRpc;
-using OpenSim.Framework.Console;
-
-namespace OpenSim.Framework.UserManagement
-{
-
-    /// <summary>
-    /// A temp class to handle login response.
-    /// Should make use of UserProfileManager where possible.
-    /// </summary>
-
-    public class LoginResponse
-    {
-        private Hashtable loginFlagsHash;
-        private Hashtable globalTexturesHash;
-        private Hashtable loginError;
-        private Hashtable eventCategoriesHash;
-        private Hashtable uiConfigHash;
-        private Hashtable classifiedCategoriesHash;
-
-        private ArrayList loginFlags;
-        private ArrayList globalTextures;
-        private ArrayList eventCategories;
-        private ArrayList uiConfig;
-        private ArrayList classifiedCategories;
-        private ArrayList inventoryRoot;
-        private ArrayList initialOutfit;
-        private ArrayList agentInventory;
-
-        private UserInfo userProfile;
-
-        private LLUUID agentID;
-        private LLUUID sessionID;
-        private LLUUID secureSessionID;
-
-        // Login Flags
-        private string dst;
-        private string stipendSinceLogin;
-        private string gendered;
-        private string everLoggedIn;
-        private string login;
-        private int simPort;
-        private string simAddress;
-        private string agentAccess;
-        private Int32 circuitCode;
-        private uint regionX;
-        private uint regionY;
-
-        // Login
-        private string firstname;
-        private string lastname;
-
-        // Global Textures
-        private string sunTexture;
-        private string cloudTexture;
-        private string moonTexture;
-
-        // Error Flags
-        private string errorReason;
-        private string errorMessage;
-
-        // Response
-        private XmlRpcResponse xmlRpcResponse;
-        private XmlRpcResponse defaultXmlRpcResponse;
-
-        private string welcomeMessage;
-        private string startLocation;
-        private string allowFirstLife;
-        private string home;
-        private string seedCapability;
-        private string lookAt;
-
-        public LoginResponse()
-        {
-            this.loginFlags = new ArrayList();
-            this.globalTextures = new ArrayList();
-            this.eventCategories = new ArrayList();
-            this.uiConfig = new ArrayList();
-            this.classifiedCategories = new ArrayList();
-
-            this.loginError = new Hashtable();
-            this.eventCategoriesHash = new Hashtable();
-            this.classifiedCategoriesHash = new Hashtable();
-            this.uiConfigHash = new Hashtable();
-
-            this.defaultXmlRpcResponse = new XmlRpcResponse();
-            this.userProfile = new UserInfo();
-            this.inventoryRoot = new ArrayList();
-            this.initialOutfit = new ArrayList();
-            this.agentInventory = new ArrayList();
-
-            this.xmlRpcResponse = new XmlRpcResponse();
-            this.defaultXmlRpcResponse = new XmlRpcResponse();
-
-            this.SetDefaultValues();
-        } // LoginServer
-
-        public void SetDefaultValues()
-        {
-                this.DST = "N";
-                this.StipendSinceLogin = "N";
-                this.Gendered = "Y";
-                this.EverLoggedIn = "Y";
-                this.login = "false";
-                this.firstname = "Test";
-                this.lastname = "User";
-                this.agentAccess = "M";
-                this.startLocation = "last";
-                this.allowFirstLife = "Y";
-
-                this.SunTexture = "cce0f112-878f-4586-a2e2-a8f104bba271";
-                this.CloudTexture = "fc4b9f0b-d008-45c6-96a4-01dd947ac621";
-                this.MoonTexture = "fc4b9f0b-d008-45c6-96a4-01dd947ac621";
-
-                this.ErrorMessage = "You have entered an invalid name/password combination.  Check Caps/lock.";
-                this.ErrorReason = "key";
-                this.welcomeMessage = "Welcome to OpenSim!";
-                this.seedCapability = "";
-                this.home = "{'region_handle':[r" + (1000 * 256).ToString() + ",r" + (1000 * 256).ToString() + "], 'position':[r" + this.userProfile.homepos.X.ToString() + ",r" + this.userProfile.homepos.Y.ToString() + ",r" + this.userProfile.homepos.Z.ToString() + "], 'look_at':[r" + this.userProfile.homelookat.X.ToString() + ",r" + this.userProfile.homelookat.Y.ToString() + ",r" + this.userProfile.homelookat.Z.ToString() + "]}";
-                this.lookAt = "[r0.99949799999999999756,r0.03166859999999999814,r0]";
-                this.RegionX = (uint)255232;
-                this.RegionY = (uint)254976;
-
-                // Classifieds;
-                this.AddClassifiedCategory((Int32)1, "Shopping");
-                this.AddClassifiedCategory((Int32)2, "Land Rental");
-                this.AddClassifiedCategory((Int32)3, "Property Rental");
-                this.AddClassifiedCategory((Int32)4, "Special Attraction");
-                this.AddClassifiedCategory((Int32)5, "New Products");
-                this.AddClassifiedCategory((Int32)6, "Employment");
-                this.AddClassifiedCategory((Int32)7, "Wanted");
-                this.AddClassifiedCategory((Int32)8, "Service");
-                this.AddClassifiedCategory((Int32)9, "Personal");
-                
-
-                this.SessionID = LLUUID.Random();
-                this.SecureSessionID = LLUUID.Random();
-                this.AgentID = LLUUID.Random();
-
-                Hashtable InitialOutfitHash = new Hashtable();
-                InitialOutfitHash["folder_name"] = "Nightclub Female";
-                InitialOutfitHash["gender"] = "female";
-                this.initialOutfit.Add(InitialOutfitHash);
-          
-
-        } // SetDefaultValues
-
-        #region Login Failure Methods
-        public XmlRpcResponse GenerateFailureResponse(string reason, string message, string login)
-        {
-            // Overwrite any default values;
-            this.xmlRpcResponse = new XmlRpcResponse();
-
-            // Ensure Login Failed message/reason;
-            this.ErrorMessage = message;
-            this.ErrorReason = reason;
-
-            this.loginError["reason"] = this.ErrorReason;
-            this.loginError["message"] = this.ErrorMessage;
-            this.loginError["login"] = login;
-            this.xmlRpcResponse.Value = this.loginError;
-            return (this.xmlRpcResponse);
-        } // GenerateResponse
-
-        public XmlRpcResponse CreateFailedResponse()
-        {
-            return (this.CreateLoginFailedResponse());
-        } // CreateErrorConnectingToGridResponse()
-
-        public XmlRpcResponse CreateLoginFailedResponse()
-        {
-            return (this.GenerateFailureResponse("key", "Could not authenticate your avatar. Please check your username and password, and check the grid if problems persist.", "false"));
-        } // LoginFailedResponse
-
-        public XmlRpcResponse CreateAlreadyLoggedInResponse()
-        {
-            return (this.GenerateFailureResponse("presence", "You appear to be already logged in, if this is not the case please wait for your session to timeout, if this takes longer than a few minutes please contact the grid owner", "false"));
-        } // CreateAlreadyLoggedInResponse()
-
-        public XmlRpcResponse CreateDeadRegionResponse()
-        {
-            return (this.GenerateFailureResponse("key", "The region you are attempting to log into is not responding. Please select another region and try again.", "false"));
-        }
-
-         public XmlRpcResponse CreateGridErrorResponse()
-        {
-            return (this.GenerateFailureResponse("key", "Error connecting to grid. Could not percieve credentials from login XML.", "false"));
-        }
-        
-        #endregion
-
-        public XmlRpcResponse ToXmlRpcResponse()
-        {
-            try
-            {
-
-                Hashtable responseData = new Hashtable();
-
-                this.loginFlagsHash = new Hashtable();
-                this.loginFlagsHash["daylight_savings"] = this.DST;
-                this.loginFlagsHash["stipend_since_login"] = this.StipendSinceLogin;
-                this.loginFlagsHash["gendered"] = this.Gendered;
-                this.loginFlagsHash["ever_logged_in"] = this.EverLoggedIn;
-                this.loginFlags.Add(this.loginFlagsHash);
-
-                responseData["first_name"] = this.Firstname;
-                responseData["last_name"] = this.Lastname;
-                responseData["agent_access"] = this.agentAccess;
-
-                this.globalTexturesHash = new Hashtable();
-                this.globalTexturesHash["sun_texture_id"] = this.SunTexture;
-                this.globalTexturesHash["cloud_texture_id"] = this.CloudTexture;
-                this.globalTexturesHash["moon_texture_id"] = this.MoonTexture;
-                this.globalTextures.Add(this.globalTexturesHash);
-                this.eventCategories.Add(this.eventCategoriesHash);
-
-                this.AddToUIConfig("allow_first_life", this.allowFirstLife);
-                this.uiConfig.Add(this.uiConfigHash);
-
-                responseData["sim_port"] =(Int32) this.SimPort;
-                responseData["sim_ip"] = this.SimAddress;
-                
-                MainLog.Instance.Warn("SIM IP: " + responseData["sim_ip"] + "; SIM PORT: " + responseData["sim_port"]);
-                
-                responseData["agent_id"] = this.AgentID.ToStringHyphenated();
-                responseData["session_id"] = this.SessionID.ToStringHyphenated();
-                responseData["secure_session_id"] = this.SecureSessionID.ToStringHyphenated();
-                responseData["circuit_code"] = this.CircuitCode;
-                responseData["seconds_since_epoch"] = (Int32)(DateTime.UtcNow - new DateTime(1970, 1, 1)).TotalSeconds;
-                responseData["login-flags"] = this.loginFlags;
-                responseData["global-textures"] = this.globalTextures;
-                responseData["seed_capability"] = this.seedCapability;
-
-                responseData["event_categories"] = this.eventCategories;
-                responseData["event_notifications"] = new ArrayList(); // todo
-                responseData["classified_categories"] = this.classifiedCategories;
-                responseData["ui-config"] = this.uiConfig;
-
-                responseData["inventory-skeleton"] = this.agentInventory;
-                responseData["inventory-skel-lib"] = new ArrayList(); // todo
-                responseData["inventory-root"] = this.inventoryRoot;
-                responseData["gestures"] = new ArrayList(); // todo
-                responseData["inventory-lib-owner"] = new ArrayList(); // todo
-                responseData["initial-outfit"] = this.initialOutfit;
-                responseData["start_location"] = this.startLocation;
-                responseData["seed_capability"] = this.seedCapability;
-                responseData["home"] = this.home;
-                responseData["look_at"] = this.lookAt;
-                responseData["message"] = this.welcomeMessage;
-                responseData["region_x"] = (Int32)this.RegionX * 256;
-                responseData["region_y"] = (Int32)this.RegionY * 256;
-
-                //responseData["inventory-lib-root"] = new ArrayList(); // todo
-                //responseData["buddy-list"] = new ArrayList(); // todo
-
-                responseData["login"] = "true";
-                this.xmlRpcResponse.Value = responseData;
-
-                return (this.xmlRpcResponse);
-            }
-            catch (Exception e)
-            {
-                MainLog.Instance.WriteLine(
-                    LogPriority.LOW,
-                    "LoginResponse: Error creating XML-RPC Response: " + e.Message
-                );
-                return (this.GenerateFailureResponse("Internal Error", "Error generating Login Response", "false"));
-
-            }
-
-        } // ToXmlRpcResponse
-
-        public void SetEventCategories(string category, string value)
-        {
-            this.eventCategoriesHash[category] = value;
-        } // SetEventCategories
-
-        public void AddToUIConfig(string itemName, string item)
-        {
-            this.uiConfigHash[itemName] = item;
-        } // SetUIConfig
-
-        public void AddClassifiedCategory(Int32 ID, string categoryName)
-        {
-            this.classifiedCategoriesHash["category_name"] = categoryName;
-            this.classifiedCategoriesHash["category_id"] = ID;
-            this.classifiedCategories.Add(this.classifiedCategoriesHash);
-            // this.classifiedCategoriesHash.Clear();
-        } // SetClassifiedCategory
-
-        #region Properties
-        public string Login
-        {
-            get
-            {
-                return this.login;
-            }
-            set
-            {
-                this.login = value;
-            }
-        } // Login
-
-        public string DST
-        {
-            get
-            {
-                return this.dst;
-            }
-            set
-            {
-                this.dst = value;
-            }
-        } // DST
-
-        public string StipendSinceLogin
-        {
-            get
-            {
-                return this.stipendSinceLogin;
-            }
-            set
-            {
-                this.stipendSinceLogin = value;
-            }
-        } // StipendSinceLogin
-
-        public string Gendered
-        {
-            get
-            {
-                return this.gendered;
-            }
-            set
-            {
-                this.gendered = value;
-            }
-        } // Gendered
-
-        public string EverLoggedIn
-        {
-            get
-            {
-                return this.everLoggedIn;
-            }
-            set
-            {
-                this.everLoggedIn = value;
-            }
-        } // EverLoggedIn
-
-        public int SimPort
-        {
-            get
-            {
-                return this.simPort;
-            }
-            set
-            {
-                this.simPort = value;
-            }
-        } // SimPort
-
-        public string SimAddress
-        {
-            get
-            {
-                return this.simAddress;
-            }
-            set
-            {
-                this.simAddress = value;
-            }
-        } // SimAddress
-
-        public LLUUID AgentID
-        {
-            get
-            {
-                return this.agentID;
-            }
-            set
-            {
-                this.agentID = value;
-            }
-        } // AgentID
-
-        public LLUUID SessionID
-        {
-            get
-            {
-                return this.sessionID;
-            }
-            set
-            {
-                this.sessionID = value;
-            }
-        } // SessionID
-
-        public LLUUID SecureSessionID
-        {
-            get
-            {
-                return this.secureSessionID;
-            }
-            set
-            {
-                this.secureSessionID = value;
-            }
-        } // SecureSessionID
-
-        public Int32 CircuitCode
-        {
-            get
-            {
-                return this.circuitCode;
-            }
-            set
-            {
-                this.circuitCode = value;
-            }
-        } // CircuitCode
-
-        public uint RegionX
-        {
-            get
-            {
-                return this.regionX;
-            }
-            set
-            {
-                this.regionX = value;
-            }
-        } // RegionX
-
-        public uint RegionY
-        {
-            get
-            {
-                return this.regionY;
-            }
-            set
-            {
-                this.regionY = value;
-            }
-        } // RegionY
-
-        public string SunTexture
-        {
-            get
-            {
-                return this.sunTexture;
-            }
-            set
-            {
-                this.sunTexture = value;
-            }
-        } // SunTexture
-
-        public string CloudTexture
-        {
-            get
-            {
-                return this.cloudTexture;
-            }
-            set
-            {
-                this.cloudTexture = value;
-            }
-        } // CloudTexture
-
-        public string MoonTexture
-        {
-            get
-            {
-                return this.moonTexture;
-            }
-            set
-            {
-                this.moonTexture = value;
-            }
-        } // MoonTexture
-
-        public string Firstname
-        {
-            get
-            {
-                return this.firstname;
-            }
-            set
-            {
-                this.firstname = value;
-            }
-        } // Firstname
-
-        public string Lastname
-        {
-            get
-            {
-                return this.lastname;
-            }
-            set
-            {
-                this.lastname = value;
-            }
-        } // Lastname
-
-        public string AgentAccess
-        {
-            get
-            {
-                return this.agentAccess;
-            }
-            set
-            {
-                this.agentAccess = value;
-            }
-        }
-
-        public string StartLocation
-        {
-            get
-            {
-                return this.startLocation;
-            }
-            set
-            {
-                this.startLocation = value;
-            }
-        } // StartLocation
-
-        public string LookAt
-        {
-            get
-            {
-                return this.lookAt;
-            }
-            set
-            {
-                this.lookAt = value;
-            }
-        }
-
-        public string SeedCapability
-        {
-            get
-            {
-                return this.seedCapability;
-            }
-            set
-            {
-                this.seedCapability = value;
-            }
-        } // SeedCapability
-
-        public string ErrorReason
-        {
-            get
-            {
-                return this.errorReason;
-            }
-            set
-            {
-                this.errorReason = value;
-            }
-        } // ErrorReason
-
-        public string ErrorMessage
-        {
-            get
-            {
-                return this.errorMessage;
-            }
-            set
-            {
-                this.errorMessage = value;
-            }
-        } // ErrorMessage
-
-        public ArrayList InventoryRoot
-        {
-            get
-            {
-                return this.inventoryRoot;
-            }
-            set
-            {
-                this.inventoryRoot = value;
-            }
-        }
-
-        public ArrayList InventorySkeleton
-        {
-            get
-            {
-                return this.agentInventory;
-            }
-            set
-            {
-                this.agentInventory = value;
-            }
-        }
-
-        public string Home
-        {
-            get
-            {
-                return this.home;
-            }
-            set
-            {
-                this.home = value;
-            }
-        }
-
-        public string Message
-        {
-            get
-            {
-                return this.welcomeMessage;
-            }
-            set
-            {
-                this.welcomeMessage = value;
-            }
-        }
-        #endregion
-
-
-        public class UserInfo
-        {
-            public string firstname;
-            public string lastname;
-            public ulong homeregionhandle;
-            public LLVector3 homepos;
-            public LLVector3 homelookat;
-        }
-    }
-}
-
+using System;
+using System.Collections;
+using libsecondlife;
+using Nwc.XmlRpc;
+using OpenSim.Framework.Console;
+
+namespace OpenSim.Framework.UserManagement
+{
+
+    /// <summary>
+    /// A temp class to handle login response.
+    /// Should make use of UserProfileManager where possible.
+    /// </summary>
+
+    public class LoginResponse
+    {
+        private Hashtable loginFlagsHash;
+        private Hashtable globalTexturesHash;
+        private Hashtable loginError;
+        private Hashtable eventCategoriesHash;
+        private Hashtable uiConfigHash;
+        private Hashtable classifiedCategoriesHash;
+
+        private ArrayList loginFlags;
+        private ArrayList globalTextures;
+        private ArrayList eventCategories;
+        private ArrayList uiConfig;
+        private ArrayList classifiedCategories;
+        private ArrayList inventoryRoot;
+        private ArrayList initialOutfit;
+        private ArrayList agentInventory;
+
+        private UserInfo userProfile;
+
+        private LLUUID agentID;
+        private LLUUID sessionID;
+        private LLUUID secureSessionID;
+
+        // Login Flags
+        private string dst;
+        private string stipendSinceLogin;
+        private string gendered;
+        private string everLoggedIn;
+        private string login;
+        private int simPort;
+        private string simAddress;
+        private string agentAccess;
+        private Int32 circuitCode;
+        private uint regionX;
+        private uint regionY;
+
+        // Login
+        private string firstname;
+        private string lastname;
+
+        // Global Textures
+        private string sunTexture;
+        private string cloudTexture;
+        private string moonTexture;
+
+        // Error Flags
+        private string errorReason;
+        private string errorMessage;
+
+        // Response
+        private XmlRpcResponse xmlRpcResponse;
+        private XmlRpcResponse defaultXmlRpcResponse;
+
+        private string welcomeMessage;
+        private string startLocation;
+        private string allowFirstLife;
+        private string home;
+        private string seedCapability;
+        private string lookAt;
+
+        public LoginResponse()
+        {
+            this.loginFlags = new ArrayList();
+            this.globalTextures = new ArrayList();
+            this.eventCategories = new ArrayList();
+            this.uiConfig = new ArrayList();
+            this.classifiedCategories = new ArrayList();
+
+            this.loginError = new Hashtable();
+            this.eventCategoriesHash = new Hashtable();
+            this.classifiedCategoriesHash = new Hashtable();
+            this.uiConfigHash = new Hashtable();
+
+            this.defaultXmlRpcResponse = new XmlRpcResponse();
+            this.userProfile = new UserInfo();
+            this.inventoryRoot = new ArrayList();
+            this.initialOutfit = new ArrayList();
+            this.agentInventory = new ArrayList();
+
+            this.xmlRpcResponse = new XmlRpcResponse();
+            this.defaultXmlRpcResponse = new XmlRpcResponse();
+
+            this.SetDefaultValues();
+        } // LoginServer
+
+        public void SetDefaultValues()
+        {
+                this.DST = "N";
+                this.StipendSinceLogin = "N";
+                this.Gendered = "Y";
+                this.EverLoggedIn = "Y";
+                this.login = "false";
+                this.firstname = "Test";
+                this.lastname = "User";
+                this.agentAccess = "M";
+                this.startLocation = "last";
+                this.allowFirstLife = "Y";
+
+                this.SunTexture = "cce0f112-878f-4586-a2e2-a8f104bba271";
+                this.CloudTexture = "fc4b9f0b-d008-45c6-96a4-01dd947ac621";
+                this.MoonTexture = "fc4b9f0b-d008-45c6-96a4-01dd947ac621";
+
+                this.ErrorMessage = "You have entered an invalid name/password combination.  Check Caps/lock.";
+                this.ErrorReason = "key";
+                this.welcomeMessage = "Welcome to OpenSim!";
+                this.seedCapability = "";
+                this.home = "{'region_handle':[r" + (1000 * 256).ToString() + ",r" + (1000 * 256).ToString() + "], 'position':[r" + this.userProfile.homepos.X.ToString() + ",r" + this.userProfile.homepos.Y.ToString() + ",r" + this.userProfile.homepos.Z.ToString() + "], 'look_at':[r" + this.userProfile.homelookat.X.ToString() + ",r" + this.userProfile.homelookat.Y.ToString() + ",r" + this.userProfile.homelookat.Z.ToString() + "]}";
+                this.lookAt = "[r0.99949799999999999756,r0.03166859999999999814,r0]";
+                this.RegionX = (uint)255232;
+                this.RegionY = (uint)254976;
+
+                // Classifieds;
+                this.AddClassifiedCategory((Int32)1, "Shopping");
+                this.AddClassifiedCategory((Int32)2, "Land Rental");
+                this.AddClassifiedCategory((Int32)3, "Property Rental");
+                this.AddClassifiedCategory((Int32)4, "Special Attraction");
+                this.AddClassifiedCategory((Int32)5, "New Products");
+                this.AddClassifiedCategory((Int32)6, "Employment");
+                this.AddClassifiedCategory((Int32)7, "Wanted");
+                this.AddClassifiedCategory((Int32)8, "Service");
+                this.AddClassifiedCategory((Int32)9, "Personal");
+                
+
+                this.SessionID = LLUUID.Random();
+                this.SecureSessionID = LLUUID.Random();
+                this.AgentID = LLUUID.Random();
+
+                Hashtable InitialOutfitHash = new Hashtable();
+                InitialOutfitHash["folder_name"] = "Nightclub Female";
+                InitialOutfitHash["gender"] = "female";
+                this.initialOutfit.Add(InitialOutfitHash);
+          
+
+        } // SetDefaultValues
+
+        #region Login Failure Methods
+        public XmlRpcResponse GenerateFailureResponse(string reason, string message, string login)
+        {
+            // Overwrite any default values;
+            this.xmlRpcResponse = new XmlRpcResponse();
+
+            // Ensure Login Failed message/reason;
+            this.ErrorMessage = message;
+            this.ErrorReason = reason;
+
+            this.loginError["reason"] = this.ErrorReason;
+            this.loginError["message"] = this.ErrorMessage;
+            this.loginError["login"] = login;
+            this.xmlRpcResponse.Value = this.loginError;
+            return (this.xmlRpcResponse);
+        } // GenerateResponse
+
+        public XmlRpcResponse CreateFailedResponse()
+        {
+            return (this.CreateLoginFailedResponse());
+        } // CreateErrorConnectingToGridResponse()
+
+        public XmlRpcResponse CreateLoginFailedResponse()
+        {
+            return (this.GenerateFailureResponse("key", "Could not authenticate your avatar. Please check your username and password, and check the grid if problems persist.", "false"));
+        } // LoginFailedResponse
+
+        public XmlRpcResponse CreateAlreadyLoggedInResponse()
+        {
+            return (this.GenerateFailureResponse("presence", "You appear to be already logged in, if this is not the case please wait for your session to timeout, if this takes longer than a few minutes please contact the grid owner", "false"));
+        } // CreateAlreadyLoggedInResponse()
+
+        public XmlRpcResponse CreateDeadRegionResponse()
+        {
+            return (this.GenerateFailureResponse("key", "The region you are attempting to log into is not responding. Please select another region and try again.", "false"));
+        }
+
+         public XmlRpcResponse CreateGridErrorResponse()
+        {
+            return (this.GenerateFailureResponse("key", "Error connecting to grid. Could not percieve credentials from login XML.", "false"));
+        }
+        
+        #endregion
+
+        public XmlRpcResponse ToXmlRpcResponse()
+        {
+            try
+            {
+
+                Hashtable responseData = new Hashtable();
+
+                this.loginFlagsHash = new Hashtable();
+                this.loginFlagsHash["daylight_savings"] = this.DST;
+                this.loginFlagsHash["stipend_since_login"] = this.StipendSinceLogin;
+                this.loginFlagsHash["gendered"] = this.Gendered;
+                this.loginFlagsHash["ever_logged_in"] = this.EverLoggedIn;
+                this.loginFlags.Add(this.loginFlagsHash);
+
+                responseData["first_name"] = this.Firstname;
+                responseData["last_name"] = this.Lastname;
+                responseData["agent_access"] = this.agentAccess;
+
+                this.globalTexturesHash = new Hashtable();
+                this.globalTexturesHash["sun_texture_id"] = this.SunTexture;
+                this.globalTexturesHash["cloud_texture_id"] = this.CloudTexture;
+                this.globalTexturesHash["moon_texture_id"] = this.MoonTexture;
+                this.globalTextures.Add(this.globalTexturesHash);
+                this.eventCategories.Add(this.eventCategoriesHash);
+
+                this.AddToUIConfig("allow_first_life", this.allowFirstLife);
+                this.uiConfig.Add(this.uiConfigHash);
+
+                responseData["sim_port"] =(Int32) this.SimPort;
+                responseData["sim_ip"] = this.SimAddress;
+                
+                MainLog.Instance.Warn("SIM IP: " + responseData["sim_ip"] + "; SIM PORT: " + responseData["sim_port"]);
+                
+                responseData["agent_id"] = this.AgentID.ToStringHyphenated();
+                responseData["session_id"] = this.SessionID.ToStringHyphenated();
+                responseData["secure_session_id"] = this.SecureSessionID.ToStringHyphenated();
+                responseData["circuit_code"] = this.CircuitCode;
+                responseData["seconds_since_epoch"] = (Int32)(DateTime.UtcNow - new DateTime(1970, 1, 1)).TotalSeconds;
+                responseData["login-flags"] = this.loginFlags;
+                responseData["global-textures"] = this.globalTextures;
+                responseData["seed_capability"] = this.seedCapability;
+
+                responseData["event_categories"] = this.eventCategories;
+                responseData["event_notifications"] = new ArrayList(); // todo
+                responseData["classified_categories"] = this.classifiedCategories;
+                responseData["ui-config"] = this.uiConfig;
+
+                responseData["inventory-skeleton"] = this.agentInventory;
+                responseData["inventory-skel-lib"] = new ArrayList(); // todo
+                responseData["inventory-root"] = this.inventoryRoot;
+                responseData["gestures"] = new ArrayList(); // todo
+                responseData["inventory-lib-owner"] = new ArrayList(); // todo
+                responseData["initial-outfit"] = this.initialOutfit;
+                responseData["start_location"] = this.startLocation;
+                responseData["seed_capability"] = this.seedCapability;
+                responseData["home"] = this.home;
+                responseData["look_at"] = this.lookAt;
+                responseData["message"] = this.welcomeMessage;
+                responseData["region_x"] = (Int32)this.RegionX * 256;
+                responseData["region_y"] = (Int32)this.RegionY * 256;
+
+                //responseData["inventory-lib-root"] = new ArrayList(); // todo
+                //responseData["buddy-list"] = new ArrayList(); // todo
+
+                responseData["login"] = "true";
+                this.xmlRpcResponse.Value = responseData;
+
+                return (this.xmlRpcResponse);
+            }
+            catch (Exception e)
+            {
+                MainLog.Instance.WriteLine(
+                    LogPriority.LOW,
+                    "LoginResponse: Error creating XML-RPC Response: " + e.Message
+                );
+                return (this.GenerateFailureResponse("Internal Error", "Error generating Login Response", "false"));
+
+            }
+
+        } // ToXmlRpcResponse
+
+        public void SetEventCategories(string category, string value)
+        {
+            this.eventCategoriesHash[category] = value;
+        } // SetEventCategories
+
+        public void AddToUIConfig(string itemName, string item)
+        {
+            this.uiConfigHash[itemName] = item;
+        } // SetUIConfig
+
+        public void AddClassifiedCategory(Int32 ID, string categoryName)
+        {
+            this.classifiedCategoriesHash["category_name"] = categoryName;
+            this.classifiedCategoriesHash["category_id"] = ID;
+            this.classifiedCategories.Add(this.classifiedCategoriesHash);
+            // this.classifiedCategoriesHash.Clear();
+        } // SetClassifiedCategory
+
+        #region Properties
+        public string Login
+        {
+            get
+            {
+                return this.login;
+            }
+            set
+            {
+                this.login = value;
+            }
+        } // Login
+
+        public string DST
+        {
+            get
+            {
+                return this.dst;
+            }
+            set
+            {
+                this.dst = value;
+            }
+        } // DST
+
+        public string StipendSinceLogin
+        {
+            get
+            {
+                return this.stipendSinceLogin;
+            }
+            set
+            {
+                this.stipendSinceLogin = value;
+            }
+        } // StipendSinceLogin
+
+        public string Gendered
+        {
+            get
+            {
+                return this.gendered;
+            }
+            set
+            {
+                this.gendered = value;
+            }
+        } // Gendered
+
+        public string EverLoggedIn
+        {
+            get
+            {
+                return this.everLoggedIn;
+            }
+            set
+            {
+                this.everLoggedIn = value;
+            }
+        } // EverLoggedIn
+
+        public int SimPort
+        {
+            get
+            {
+                return this.simPort;
+            }
+            set
+            {
+                this.simPort = value;
+            }
+        } // SimPort
+
+        public string SimAddress
+        {
+            get
+            {
+                return this.simAddress;
+            }
+            set
+            {
+                this.simAddress = value;
+            }
+        } // SimAddress
+
+        public LLUUID AgentID
+        {
+            get
+            {
+                return this.agentID;
+            }
+            set
+            {
+                this.agentID = value;
+            }
+        } // AgentID
+
+        public LLUUID SessionID
+        {
+            get
+            {
+                return this.sessionID;
+            }
+            set
+            {
+                this.sessionID = value;
+            }
+        } // SessionID
+
+        public LLUUID SecureSessionID
+        {
+            get
+            {
+                return this.secureSessionID;
+            }
+            set
+            {
+                this.secureSessionID = value;
+            }
+        } // SecureSessionID
+
+        public Int32 CircuitCode
+        {
+            get
+            {
+                return this.circuitCode;
+            }
+            set
+            {
+                this.circuitCode = value;
+            }
+        } // CircuitCode
+
+        public uint RegionX
+        {
+            get
+            {
+                return this.regionX;
+            }
+            set
+            {
+                this.regionX = value;
+            }
+        } // RegionX
+
+        public uint RegionY
+        {
+            get
+            {
+                return this.regionY;
+            }
+            set
+            {
+                this.regionY = value;
+            }
+        } // RegionY
+
+        public string SunTexture
+        {
+            get
+            {
+                return this.sunTexture;
+            }
+            set
+            {
+                this.sunTexture = value;
+            }
+        } // SunTexture
+
+        public string CloudTexture
+        {
+            get
+            {
+                return this.cloudTexture;
+            }
+            set
+            {
+                this.cloudTexture = value;
+            }
+        } // CloudTexture
+
+        public string MoonTexture
+        {
+            get
+            {
+                return this.moonTexture;
+            }
+            set
+            {
+                this.moonTexture = value;
+            }
+        } // MoonTexture
+
+        public string Firstname
+        {
+            get
+            {
+                return this.firstname;
+            }
+            set
+            {
+                this.firstname = value;
+            }
+        } // Firstname
+
+        public string Lastname
+        {
+            get
+            {
+                return this.lastname;
+            }
+            set
+            {
+                this.lastname = value;
+            }
+        } // Lastname
+
+        public string AgentAccess
+        {
+            get
+            {
+                return this.agentAccess;
+            }
+            set
+            {
+                this.agentAccess = value;
+            }
+        }
+
+        public string StartLocation
+        {
+            get
+            {
+                return this.startLocation;
+            }
+            set
+            {
+                this.startLocation = value;
+            }
+        } // StartLocation
+
+        public string LookAt
+        {
+            get
+            {
+                return this.lookAt;
+            }
+            set
+            {
+                this.lookAt = value;
+            }
+        }
+
+        public string SeedCapability
+        {
+            get
+            {
+                return this.seedCapability;
+            }
+            set
+            {
+                this.seedCapability = value;
+            }
+        } // SeedCapability
+
+        public string ErrorReason
+        {
+            get
+            {
+                return this.errorReason;
+            }
+            set
+            {
+                this.errorReason = value;
+            }
+        } // ErrorReason
+
+        public string ErrorMessage
+        {
+            get
+            {
+                return this.errorMessage;
+            }
+            set
+            {
+                this.errorMessage = value;
+            }
+        } // ErrorMessage
+
+        public ArrayList InventoryRoot
+        {
+            get
+            {
+                return this.inventoryRoot;
+            }
+            set
+            {
+                this.inventoryRoot = value;
+            }
+        }
+
+        public ArrayList InventorySkeleton
+        {
+            get
+            {
+                return this.agentInventory;
+            }
+            set
+            {
+                this.agentInventory = value;
+            }
+        }
+
+        public string Home
+        {
+            get
+            {
+                return this.home;
+            }
+            set
+            {
+                this.home = value;
+            }
+        }
+
+        public string Message
+        {
+            get
+            {
+                return this.welcomeMessage;
+            }
+            set
+            {
+                this.welcomeMessage = value;
+            }
+        }
+        #endregion
+
+
+        public class UserInfo
+        {
+            public string firstname;
+            public string lastname;
+            public ulong homeregionhandle;
+            public LLVector3 homepos;
+            public LLVector3 homelookat;
+        }
+    }
+}
+

+ 631 - 631
OpenSim/Framework/UserManager/UserManagerBase.cs

@@ -1,631 +1,631 @@
-/*
-* Copyright (c) Contributors, http://www.openmetaverse.org/
-* See CONTRIBUTORS.TXT for a full list of copyright holders.
-*
-* Redistribution and use in source and binary forms, with or without
-* modification, are permitted provided that the following conditions are met:
-*     * Redistributions of source code must retain the above copyright
-*       notice, this list of conditions and the following disclaimer.
-*     * Redistributions in binary form must reproduce the above copyright
-*       notice, this list of conditions and the following disclaimer in the
-*       documentation and/or other materials provided with the distribution.
-*     * Neither the name of the OpenSim Project nor the
-*       names of its contributors may be used to endorse or promote products
-*       derived from this software without specific prior written permission.
-*
-* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS AND ANY
-* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
-* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-* 
-*/
-using System;
-using System.Collections;
-using System.Collections.Generic;
-using System.Reflection;
-using System.Security.Cryptography;
-using libsecondlife;
-using Nwc.XmlRpc;
-using OpenSim.Framework.Console;
-using OpenSim.Framework.Data;
-using OpenSim.Framework.Interfaces;
-using OpenSim.Framework.Inventory;
-using OpenSim.Framework.Utilities;
-
-namespace OpenSim.Framework.UserManagement
-{
-    public abstract class UserManagerBase
-    {
-        public UserConfig _config;
-        Dictionary<string, IUserData> _plugins = new Dictionary<string, IUserData>();
-
-        /// <summary>
-        /// Adds a new user server plugin - user servers will be requested in the order they were loaded.
-        /// </summary>
-        /// <param name="FileName">The filename to the user server plugin DLL</param>
-        public void AddPlugin(string FileName)
-        {
-            MainLog.Instance.Verbose( "Userstorage: Attempting to load " + FileName);
-            Assembly pluginAssembly = Assembly.LoadFrom(FileName);
-
-            MainLog.Instance.Verbose( "Userstorage: Found " + pluginAssembly.GetTypes().Length + " interfaces.");
-            foreach (Type pluginType in pluginAssembly.GetTypes())
-            {
-                if (!pluginType.IsAbstract)
-                {
-                    Type typeInterface = pluginType.GetInterface("IUserData", true);
-
-                    if (typeInterface != null)
-                    {
-                        IUserData plug = (IUserData)Activator.CreateInstance(pluginAssembly.GetType(pluginType.ToString()));
-                        plug.Initialise();
-                        this._plugins.Add(plug.getName(), plug);
-                        MainLog.Instance.Verbose( "Userstorage: Added IUserData Interface");
-                    }
-
-                    typeInterface = null;
-                }
-            }
-
-            pluginAssembly = null;
-        }
-
-        #region Get UserProfile 
-        /// <summary>
-        /// Loads a user profile from a database by UUID
-        /// </summary>
-        /// <param name="uuid">The target UUID</param>
-        /// <returns>A user profile</returns>
-        public UserProfileData getUserProfile(LLUUID uuid)
-        {
-            foreach (KeyValuePair<string, IUserData> plugin in _plugins)
-            {
-                try
-                {
-                    UserProfileData profile = plugin.Value.getUserByUUID(uuid);
-                    profile.currentAgent = getUserAgent(profile.UUID);
-                    return profile;
-                }
-                catch (Exception e)
-                {
-                    MainLog.Instance.Verbose( "Unable to find user via " + plugin.Key + "(" + e.ToString() + ")");
-                }
-            }
-
-            return null;
-        }
-
-
-        /// <summary>
-        /// Loads a user profile by name
-        /// </summary>
-        /// <param name="name">The target name</param>
-        /// <returns>A user profile</returns>
-        public UserProfileData getUserProfile(string name)
-        {
-            foreach (KeyValuePair<string, IUserData> plugin in _plugins)
-            {
-                try
-                {
-                    UserProfileData profile = plugin.Value.getUserByName(name);
-                    profile.currentAgent = getUserAgent(profile.UUID);
-                    return profile;
-                }
-                catch (Exception e)
-                {
-                    System.Console.WriteLine("EEK!");
-                    MainLog.Instance.Verbose( "Unable to find user via " + plugin.Key + "(" + e.ToString() + ")");
-                }
-            }
-
-            return null;
-        }
-
-        /// <summary>
-        /// Loads a user profile by name
-        /// </summary>
-        /// <param name="fname">First name</param>
-        /// <param name="lname">Last name</param>
-        /// <returns>A user profile</returns>
-        public UserProfileData getUserProfile(string fname, string lname)
-        {
-            foreach (KeyValuePair<string, IUserData> plugin in _plugins)
-            {
-                try
-                {
-                    UserProfileData profile = plugin.Value.getUserByName(fname,lname);
-
-                    profile.currentAgent = getUserAgent(profile.UUID);
-
-                    return profile;
-                }
-                catch (Exception e)
-                {
-                    MainLog.Instance.Verbose( "Unable to find user via " + plugin.Key + "(" + e.ToString() + ")");
-                }
-            }
-
-            return null;
-        }
-        #endregion
-
-        #region Get UserAgent
-        /// <summary>
-        /// Loads a user agent by uuid (not called directly)
-        /// </summary>
-        /// <param name="uuid">The agents UUID</param>
-        /// <returns>Agent profiles</returns>
-        public UserAgentData getUserAgent(LLUUID uuid)
-        {
-            foreach (KeyValuePair<string, IUserData> plugin in _plugins)
-            {
-                try
-                {
-                    return plugin.Value.getAgentByUUID(uuid);
-                }
-                catch (Exception e)
-                {
-                    MainLog.Instance.Verbose( "Unable to find user via " + plugin.Key + "(" + e.ToString() + ")");
-                }
-            }
-
-            return null;
-        }
-
-        /// <summary>
-        /// Loads a user agent by name (not called directly)
-        /// </summary>
-        /// <param name="name">The agents name</param>
-        /// <returns>A user agent</returns>
-        public UserAgentData getUserAgent(string name)
-        {
-            foreach (KeyValuePair<string, IUserData> plugin in _plugins)
-            {
-                try
-                {
-                    return plugin.Value.getAgentByName(name);
-                }
-                catch (Exception e)
-                {
-                    MainLog.Instance.Verbose( "Unable to find user via " + plugin.Key + "(" + e.ToString() + ")");
-                }
-            }
-
-            return null;
-        }
-
-        /// <summary>
-        /// Loads a user agent by name (not called directly)
-        /// </summary>
-        /// <param name="fname">The agents firstname</param>
-        /// <param name="lname">The agents lastname</param>
-        /// <returns>A user agent</returns>
-        public UserAgentData getUserAgent(string fname, string lname)
-        {
-            foreach (KeyValuePair<string, IUserData> plugin in _plugins)
-            {
-                try
-                {
-                    return plugin.Value.getAgentByName(fname,lname);
-                }
-                catch (Exception e)
-                {
-                    MainLog.Instance.Verbose( "Unable to find user via " + plugin.Key + "(" + e.ToString() + ")");
-                }
-            }
-
-            return null;
-        }
-
-        #endregion
-
-        #region CreateAgent
-        /// <summary>
-        /// Creates and initialises a new user agent - make sure to use CommitAgent when done to submit to the DB
-        /// </summary>
-        /// <param name="profile">The users profile</param>
-        /// <param name="request">The users loginrequest</param>
-        public void CreateAgent(UserProfileData profile, XmlRpcRequest request)
-        {
-            Hashtable requestData = (Hashtable)request.Params[0];
-
-            UserAgentData agent = new UserAgentData();
-
-            // User connection
-            agent.agentOnline = true;
-
-            // Generate sessions
-            RNGCryptoServiceProvider rand = new RNGCryptoServiceProvider();
-            byte[] randDataS = new byte[16];
-            byte[] randDataSS = new byte[16];
-            rand.GetBytes(randDataS);
-            rand.GetBytes(randDataSS);
-
-            agent.secureSessionID = new LLUUID(randDataSS, 0);
-            agent.sessionID = new LLUUID(randDataS, 0);
-
-            // Profile UUID
-            agent.UUID = profile.UUID;
-
-            // Current position (from Home)
-            agent.currentHandle = profile.homeRegion;
-            agent.currentPos = profile.homeLocation;
-
-            // If user specified additional start, use that
-            if (requestData.ContainsKey("start"))
-            {
-                string startLoc = ((string)requestData["start"]).Trim();
-                if (!(startLoc == "last" || startLoc == "home"))
-                {
-                    // Format: uri:Ahern&162&213&34
-                    try
-                    {
-                        string[] parts = startLoc.Remove(0, 4).Split('&');
-                        string region = parts[0];
-
-                        ////////////////////////////////////////////////////
-                        //SimProfile SimInfo = new SimProfile();
-                        //SimInfo = SimInfo.LoadFromGrid(theUser.currentAgent.currentHandle, _config.GridServerURL, _config.GridSendKey, _config.GridRecvKey);
-                    }
-                    catch (Exception)
-                    {
-
-                    }
-                }
-            }
-
-            // What time did the user login?
-            agent.loginTime = Util.UnixTimeSinceEpoch();
-            agent.logoutTime = 0;
-
-            // Current location
-            agent.regionID = new LLUUID(); // Fill in later
-            agent.currentRegion = new LLUUID();      // Fill in later
-
-            profile.currentAgent = agent;
-        }
-
-        /// <summary>
-        /// Saves a target agent to the database
-        /// </summary>
-        /// <param name="profile">The users profile</param>
-        /// <returns>Successful?</returns>
-        public bool CommitAgent(ref UserProfileData profile)
-        {
-            // Saves the agent to database
-            return true;
-        }
-
-        #endregion
-
-        /// <summary>
-        /// Checks a user against it's password hash
-        /// </summary>
-        /// <param name="profile">The users profile</param>
-        /// <param name="password">The supplied password</param>
-        /// <returns>Authenticated?</returns>
-        public virtual bool AuthenticateUser(UserProfileData profile, string password)
-        {
-            MainLog.Instance.Verbose(
-                "Authenticating " + profile.username + " " + profile.surname);
-
-            password = password.Remove(0, 3); //remove $1$
-
-            string s = Util.Md5Hash(password + ":" + profile.passwordSalt);
-
-            return profile.passwordHash.Equals(s.ToString(), StringComparison.InvariantCultureIgnoreCase);
-        }
-
-        #region Xml Response
-
-        /// <summary>
-        /// 
-        /// </summary>
-        /// <param name="firstname"></param>
-        /// <param name="lastname"></param>
-        /// <returns></returns>
-        public virtual UserProfileData GetTheUser(string firstname, string lastname)
-        {
-            return getUserProfile(firstname, lastname);
-        }
-
-        /// <summary>
-        /// 
-        /// </summary>
-        /// <returns></returns>
-        public virtual string GetMessage()
-        {
-            return _config.DefaultStartupMsg;
-        }
-
-        /// <summary>
-        /// Customises the login response and fills in missing values.
-        /// </summary>
-        /// <param name="response">The existing response</param>
-        /// <param name="theUser">The user profile</param>
-        public abstract void CustomiseResponse( LoginResponse response, UserProfileData theUser);
-
-        /// <summary>
-        /// Main user login function
-        /// </summary>
-        /// <param name="request">The XMLRPC request</param>
-        /// <returns>The response to send</returns>
-        public XmlRpcResponse XmlRpcLoginMethod(XmlRpcRequest request)
-        {
-
-            System.Console.WriteLine("Attempting login now...");
-            XmlRpcResponse response = new XmlRpcResponse();
-            Hashtable requestData = (Hashtable)request.Params[0];
-
-            bool GoodXML = (requestData.Contains("first") && requestData.Contains("last") && requestData.Contains("passwd"));
-            bool GoodLogin = false;
-            string firstname = "";
-            string lastname = "";
-            string passwd = "";
-
-            UserProfileData userProfile;
-            LoginResponse logResponse = new LoginResponse();
-
-            if (GoodXML)
-            {
-                firstname = (string)requestData["first"];
-                lastname = (string)requestData["last"];
-                passwd = (string)requestData["passwd"];
-
-                userProfile = GetTheUser(firstname, lastname);
-                if (userProfile == null)
-                    return logResponse.CreateLoginFailedResponse();
-
-                GoodLogin = AuthenticateUser(userProfile, passwd);
-            }
-            else
-            {
-                return logResponse.CreateGridErrorResponse();
-            }
-
-            if (!GoodLogin)
-            {
-                return logResponse.CreateLoginFailedResponse();
-            }
-            else
-            {
-                // If we already have a session...
-                if (userProfile.currentAgent != null && userProfile.currentAgent.agentOnline)
-                {
-                    // Reject the login
-                    return logResponse.CreateAlreadyLoggedInResponse();
-                }
-                // Otherwise...
-                // Create a new agent session
-                CreateAgent( userProfile, request);
-
-                try
-                {
-
-                    LLUUID AgentID = userProfile.UUID;
-
-                    // Inventory Library Section
-                    ArrayList AgentInventoryArray = new ArrayList();
-                    Hashtable TempHash;
-
-                    AgentInventory Library = new AgentInventory();
-                    Library.CreateRootFolder(AgentID, true);
-
-                    foreach (InventoryFolder InvFolder in Library.InventoryFolders.Values)
-                    {
-                        TempHash = new Hashtable();
-                        TempHash["name"] = InvFolder.FolderName;
-                        TempHash["parent_id"] = InvFolder.ParentID.ToStringHyphenated();
-                        TempHash["version"] = (Int32)InvFolder.Version;
-                        TempHash["type_default"] = (Int32)InvFolder.DefaultType;
-                        TempHash["folder_id"] = InvFolder.FolderID.ToStringHyphenated();
-                        AgentInventoryArray.Add(TempHash);
-                    }
-
-                    Hashtable InventoryRootHash = new Hashtable();
-                    InventoryRootHash["folder_id"] = Library.InventoryRoot.FolderID.ToStringHyphenated();
-                    ArrayList InventoryRoot = new ArrayList();
-                    InventoryRoot.Add(InventoryRootHash);
-
-                    // Circuit Code
-                    uint circode = (uint)(Util.RandomClass.Next());
-
-                    logResponse.Lastname = userProfile.surname;
-                    logResponse.Firstname = userProfile.username;
-                    logResponse.AgentID = AgentID.ToStringHyphenated();
-                    logResponse.SessionID = userProfile.currentAgent.sessionID.ToStringHyphenated();
-                    logResponse.SecureSessionID = userProfile.currentAgent.secureSessionID.ToStringHyphenated();
-                    logResponse.InventoryRoot = InventoryRoot;
-                    logResponse.InventorySkeleton = AgentInventoryArray;
-                    logResponse.CircuitCode = (Int32)circode;
-                    //logResponse.RegionX = 0; //overwritten
-                    //logResponse.RegionY = 0; //overwritten
-                    logResponse.Home = "!!null temporary value {home}!!";   // Overwritten
-                    //logResponse.LookAt = "\n[r" + TheUser.homeLookAt.X.ToString() + ",r" + TheUser.homeLookAt.Y.ToString() + ",r" + TheUser.homeLookAt.Z.ToString() + "]\n";
-                    //logResponse.SimAddress = "127.0.0.1"; //overwritten
-                    //logResponse.SimPort = 0; //overwritten
-                    logResponse.Message = this.GetMessage();
-                    
-                    try
-                    {
-                        this.CustomiseResponse(  logResponse,   userProfile);
-                    }
-                    catch (Exception e)
-                    {
-                        System.Console.WriteLine(e.ToString());
-                        return logResponse.CreateDeadRegionResponse();
-                        //return logResponse.ToXmlRpcResponse();
-                    }
-                    CommitAgent(ref userProfile);
-                    return logResponse.ToXmlRpcResponse();
-
-                }
-                
-                catch (Exception E)
-                {
-                    System.Console.WriteLine(E.ToString());
-                }
-                //}
-            }
-            return response;
-
-        }
-
-        #endregion
-
-        /// <summary>
-        /// Deletes an active agent session
-        /// </summary>
-        /// <param name="request">The request</param>
-        /// <param name="path">The path (eg /bork/narf/test)</param>
-        /// <param name="param">Parameters sent</param>
-        /// <returns>Success "OK" else error</returns>
-        public string RestDeleteUserSessionMethod(string request, string path, string param)
-        {
-            // TODO! Important!
-
-            return "OK";
-        }
-
-        /// <summary>
-        /// 
-        /// </summary>
-        /// <param name="user"></param>
-        public void AddUserProfile(string firstName, string lastName, string pass, uint regX, uint regY)
-        {
-            UserProfileData user = new UserProfileData();
-            user.homeLocation = new LLVector3(128, 128, 100);
-            user.UUID = LLUUID.Random();
-            user.username = firstName;
-            user.surname = lastName;
-            user.passwordHash = pass;
-            user.passwordSalt = "";
-            user.created = Util.UnixTimeSinceEpoch();
-            user.homeLookAt = new LLVector3(100, 100, 100);
-            user.homeRegion = Util.UIntsToLong((regX * 256), (regY * 256));
-
-            foreach (KeyValuePair<string, IUserData> plugin in _plugins)
-            {
-                try
-                {
-                    plugin.Value.addNewUserProfile(user);
-
-                }
-                catch (Exception e)
-                {
-                    MainLog.Instance.Verbose("Unable to add user via " + plugin.Key + "(" + e.ToString() + ")");
-                }
-            }
-        }
-
-        /// <summary>
-        /// Returns an error message that the user could not be found in the database
-        /// </summary>
-        /// <returns>XML string consisting of a error element containing individual error(s)</returns>
-        public XmlRpcResponse CreateUnknownUserErrorResponse()
-        {
-            XmlRpcResponse response = new XmlRpcResponse();
-            Hashtable responseData = new Hashtable();
-            responseData["error_type"] = "unknown_user";
-            responseData["error_desc"] = "The user requested is not in the database";
-
-            response.Value = responseData;
-            return response;
-        }
-
-        /// <summary>
-        /// Converts a user profile to an XML element which can be returned
-        /// </summary>
-        /// <param name="profile">The user profile</param>
-        /// <returns>A string containing an XML Document of the user profile</returns>
-        public XmlRpcResponse ProfileToXmlRPCResponse(UserProfileData profile)
-        {
-            XmlRpcResponse response = new XmlRpcResponse();
-            Hashtable responseData = new Hashtable();
-
-            // Account information
-            responseData["firstname"] = profile.username;
-            responseData["lastname"]  = profile.surname;
-            responseData["uuid"]  = profile.UUID.ToStringHyphenated();
-            // Server Information
-            responseData["server_inventory"]  = profile.userInventoryURI;
-            responseData["server_asset"]  = profile.userAssetURI;
-            // Profile Information
-            responseData["profile_about"]  = profile.profileAboutText;
-            responseData["profile_firstlife_about"]  = profile.profileFirstText;
-            responseData["profile_firstlife_image"]  = profile.profileFirstImage.ToStringHyphenated();
-            responseData["profile_can_do"]  = profile.profileCanDoMask.ToString();
-            responseData["profile_want_do"]  = profile.profileWantDoMask.ToString();
-            responseData["profile_image"]  = profile.profileImage.ToStringHyphenated();
-            responseData["profile_created"] = profile.created.ToString();
-            responseData["profile_lastlogin"] = profile.lastLogin.ToString();
-            // Home region information
-            responseData["home_coordinates_x"] = profile.homeLocation.X.ToString();
-            responseData["home_coordinates_y"] = profile.homeLocation.Y.ToString();
-            responseData["home_coordinates_z"] = profile.homeLocation.Z.ToString();
-
-            responseData["home_region"]  = profile.homeRegion.ToString();
-
-            responseData["home_look_x"] = profile.homeLookAt.X.ToString();
-            responseData["home_look_y"] = profile.homeLookAt.Y.ToString();
-            responseData["home_look_z"] = profile.homeLookAt.Z.ToString();
-            response.Value = responseData;
-
-            return response;
-        }
-
-        #region XMLRPC User Methods 
-        //should most likely move out of here and into the grid's userserver sub class
-        public XmlRpcResponse XmlRPCGetUserMethodName(XmlRpcRequest request)
-        {
-            XmlRpcResponse response = new XmlRpcResponse();
-            Hashtable requestData = (Hashtable)request.Params[0];
-            UserProfileData userProfile;
-            if (requestData.Contains("avatar_name"))
-            {
-                userProfile = getUserProfile((string)requestData["avatar_name"]);
-                if (userProfile == null)
-                {
-                    return CreateUnknownUserErrorResponse();
-                }
-            }
-            else
-            {
-                return CreateUnknownUserErrorResponse();
-            }
-
-            return ProfileToXmlRPCResponse(userProfile);
-        }
-
-        public XmlRpcResponse XmlRPCGetUserMethodUUID(XmlRpcRequest request)
-        {
-            XmlRpcResponse response = new XmlRpcResponse();
-            Hashtable requestData = (Hashtable)request.Params[0];
-            UserProfileData userProfile;
-            System.Console.WriteLine("METHOD BY UUID CALLED");
-            if (requestData.Contains("avatar_uuid"))
-            {
-                userProfile = getUserProfile((LLUUID)requestData["avatar_uuid"]);
-                if (userProfile == null)
-                {
-                    return CreateUnknownUserErrorResponse();
-                }
-            }
-            else
-            {
-                return CreateUnknownUserErrorResponse();
-            }
-
-
-            return ProfileToXmlRPCResponse(userProfile);
-        }
-        #endregion
-
-    }
-}
+/*
+* Copyright (c) Contributors, http://www.openmetaverse.org/
+* See CONTRIBUTORS.TXT for a full list of copyright holders.
+*
+* Redistribution and use in source and binary forms, with or without
+* modification, are permitted provided that the following conditions are met:
+*     * Redistributions of source code must retain the above copyright
+*       notice, this list of conditions and the following disclaimer.
+*     * Redistributions in binary form must reproduce the above copyright
+*       notice, this list of conditions and the following disclaimer in the
+*       documentation and/or other materials provided with the distribution.
+*     * Neither the name of the OpenSim Project nor the
+*       names of its contributors may be used to endorse or promote products
+*       derived from this software without specific prior written permission.
+*
+* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS AND ANY
+* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
+* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+* 
+*/
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using System.Reflection;
+using System.Security.Cryptography;
+using libsecondlife;
+using Nwc.XmlRpc;
+using OpenSim.Framework.Console;
+using OpenSim.Framework.Data;
+using OpenSim.Framework.Interfaces;
+using OpenSim.Framework.Inventory;
+using OpenSim.Framework.Utilities;
+
+namespace OpenSim.Framework.UserManagement
+{
+    public abstract class UserManagerBase
+    {
+        public UserConfig _config;
+        Dictionary<string, IUserData> _plugins = new Dictionary<string, IUserData>();
+
+        /// <summary>
+        /// Adds a new user server plugin - user servers will be requested in the order they were loaded.
+        /// </summary>
+        /// <param name="FileName">The filename to the user server plugin DLL</param>
+        public void AddPlugin(string FileName)
+        {
+            MainLog.Instance.Verbose( "Userstorage: Attempting to load " + FileName);
+            Assembly pluginAssembly = Assembly.LoadFrom(FileName);
+
+            MainLog.Instance.Verbose( "Userstorage: Found " + pluginAssembly.GetTypes().Length + " interfaces.");
+            foreach (Type pluginType in pluginAssembly.GetTypes())
+            {
+                if (!pluginType.IsAbstract)
+                {
+                    Type typeInterface = pluginType.GetInterface("IUserData", true);
+
+                    if (typeInterface != null)
+                    {
+                        IUserData plug = (IUserData)Activator.CreateInstance(pluginAssembly.GetType(pluginType.ToString()));
+                        plug.Initialise();
+                        this._plugins.Add(plug.getName(), plug);
+                        MainLog.Instance.Verbose( "Userstorage: Added IUserData Interface");
+                    }
+
+                    typeInterface = null;
+                }
+            }
+
+            pluginAssembly = null;
+        }
+
+        #region Get UserProfile 
+        /// <summary>
+        /// Loads a user profile from a database by UUID
+        /// </summary>
+        /// <param name="uuid">The target UUID</param>
+        /// <returns>A user profile</returns>
+        public UserProfileData getUserProfile(LLUUID uuid)
+        {
+            foreach (KeyValuePair<string, IUserData> plugin in _plugins)
+            {
+                try
+                {
+                    UserProfileData profile = plugin.Value.getUserByUUID(uuid);
+                    profile.currentAgent = getUserAgent(profile.UUID);
+                    return profile;
+                }
+                catch (Exception e)
+                {
+                    MainLog.Instance.Verbose( "Unable to find user via " + plugin.Key + "(" + e.ToString() + ")");
+                }
+            }
+
+            return null;
+        }
+
+
+        /// <summary>
+        /// Loads a user profile by name
+        /// </summary>
+        /// <param name="name">The target name</param>
+        /// <returns>A user profile</returns>
+        public UserProfileData getUserProfile(string name)
+        {
+            foreach (KeyValuePair<string, IUserData> plugin in _plugins)
+            {
+                try
+                {
+                    UserProfileData profile = plugin.Value.getUserByName(name);
+                    profile.currentAgent = getUserAgent(profile.UUID);
+                    return profile;
+                }
+                catch (Exception e)
+                {
+                    System.Console.WriteLine("EEK!");
+                    MainLog.Instance.Verbose( "Unable to find user via " + plugin.Key + "(" + e.ToString() + ")");
+                }
+            }
+
+            return null;
+        }
+
+        /// <summary>
+        /// Loads a user profile by name
+        /// </summary>
+        /// <param name="fname">First name</param>
+        /// <param name="lname">Last name</param>
+        /// <returns>A user profile</returns>
+        public UserProfileData getUserProfile(string fname, string lname)
+        {
+            foreach (KeyValuePair<string, IUserData> plugin in _plugins)
+            {
+                try
+                {
+                    UserProfileData profile = plugin.Value.getUserByName(fname,lname);
+
+                    profile.currentAgent = getUserAgent(profile.UUID);
+
+                    return profile;
+                }
+                catch (Exception e)
+                {
+                    MainLog.Instance.Verbose( "Unable to find user via " + plugin.Key + "(" + e.ToString() + ")");
+                }
+            }
+
+            return null;
+        }
+        #endregion
+
+        #region Get UserAgent
+        /// <summary>
+        /// Loads a user agent by uuid (not called directly)
+        /// </summary>
+        /// <param name="uuid">The agents UUID</param>
+        /// <returns>Agent profiles</returns>
+        public UserAgentData getUserAgent(LLUUID uuid)
+        {
+            foreach (KeyValuePair<string, IUserData> plugin in _plugins)
+            {
+                try
+                {
+                    return plugin.Value.getAgentByUUID(uuid);
+                }
+                catch (Exception e)
+                {
+                    MainLog.Instance.Verbose( "Unable to find user via " + plugin.Key + "(" + e.ToString() + ")");
+                }
+            }
+
+            return null;
+        }
+
+        /// <summary>
+        /// Loads a user agent by name (not called directly)
+        /// </summary>
+        /// <param name="name">The agents name</param>
+        /// <returns>A user agent</returns>
+        public UserAgentData getUserAgent(string name)
+        {
+            foreach (KeyValuePair<string, IUserData> plugin in _plugins)
+            {
+                try
+                {
+                    return plugin.Value.getAgentByName(name);
+                }
+                catch (Exception e)
+                {
+                    MainLog.Instance.Verbose( "Unable to find user via " + plugin.Key + "(" + e.ToString() + ")");
+                }
+            }
+
+            return null;
+        }
+
+        /// <summary>
+        /// Loads a user agent by name (not called directly)
+        /// </summary>
+        /// <param name="fname">The agents firstname</param>
+        /// <param name="lname">The agents lastname</param>
+        /// <returns>A user agent</returns>
+        public UserAgentData getUserAgent(string fname, string lname)
+        {
+            foreach (KeyValuePair<string, IUserData> plugin in _plugins)
+            {
+                try
+                {
+                    return plugin.Value.getAgentByName(fname,lname);
+                }
+                catch (Exception e)
+                {
+                    MainLog.Instance.Verbose( "Unable to find user via " + plugin.Key + "(" + e.ToString() + ")");
+                }
+            }
+
+            return null;
+        }
+
+        #endregion
+
+        #region CreateAgent
+        /// <summary>
+        /// Creates and initialises a new user agent - make sure to use CommitAgent when done to submit to the DB
+        /// </summary>
+        /// <param name="profile">The users profile</param>
+        /// <param name="request">The users loginrequest</param>
+        public void CreateAgent(UserProfileData profile, XmlRpcRequest request)
+        {
+            Hashtable requestData = (Hashtable)request.Params[0];
+
+            UserAgentData agent = new UserAgentData();
+
+            // User connection
+            agent.agentOnline = true;
+
+            // Generate sessions
+            RNGCryptoServiceProvider rand = new RNGCryptoServiceProvider();
+            byte[] randDataS = new byte[16];
+            byte[] randDataSS = new byte[16];
+            rand.GetBytes(randDataS);
+            rand.GetBytes(randDataSS);
+
+            agent.secureSessionID = new LLUUID(randDataSS, 0);
+            agent.sessionID = new LLUUID(randDataS, 0);
+
+            // Profile UUID
+            agent.UUID = profile.UUID;
+
+            // Current position (from Home)
+            agent.currentHandle = profile.homeRegion;
+            agent.currentPos = profile.homeLocation;
+
+            // If user specified additional start, use that
+            if (requestData.ContainsKey("start"))
+            {
+                string startLoc = ((string)requestData["start"]).Trim();
+                if (!(startLoc == "last" || startLoc == "home"))
+                {
+                    // Format: uri:Ahern&162&213&34
+                    try
+                    {
+                        string[] parts = startLoc.Remove(0, 4).Split('&');
+                        string region = parts[0];
+
+                        ////////////////////////////////////////////////////
+                        //SimProfile SimInfo = new SimProfile();
+                        //SimInfo = SimInfo.LoadFromGrid(theUser.currentAgent.currentHandle, _config.GridServerURL, _config.GridSendKey, _config.GridRecvKey);
+                    }
+                    catch (Exception)
+                    {
+
+                    }
+                }
+            }
+
+            // What time did the user login?
+            agent.loginTime = Util.UnixTimeSinceEpoch();
+            agent.logoutTime = 0;
+
+            // Current location
+            agent.regionID = new LLUUID(); // Fill in later
+            agent.currentRegion = new LLUUID();      // Fill in later
+
+            profile.currentAgent = agent;
+        }
+
+        /// <summary>
+        /// Saves a target agent to the database
+        /// </summary>
+        /// <param name="profile">The users profile</param>
+        /// <returns>Successful?</returns>
+        public bool CommitAgent(ref UserProfileData profile)
+        {
+            // Saves the agent to database
+            return true;
+        }
+
+        #endregion
+
+        /// <summary>
+        /// Checks a user against it's password hash
+        /// </summary>
+        /// <param name="profile">The users profile</param>
+        /// <param name="password">The supplied password</param>
+        /// <returns>Authenticated?</returns>
+        public virtual bool AuthenticateUser(UserProfileData profile, string password)
+        {
+            MainLog.Instance.Verbose(
+                "Authenticating " + profile.username + " " + profile.surname);
+
+            password = password.Remove(0, 3); //remove $1$
+
+            string s = Util.Md5Hash(password + ":" + profile.passwordSalt);
+
+            return profile.passwordHash.Equals(s.ToString(), StringComparison.InvariantCultureIgnoreCase);
+        }
+
+        #region Xml Response
+
+        /// <summary>
+        /// 
+        /// </summary>
+        /// <param name="firstname"></param>
+        /// <param name="lastname"></param>
+        /// <returns></returns>
+        public virtual UserProfileData GetTheUser(string firstname, string lastname)
+        {
+            return getUserProfile(firstname, lastname);
+        }
+
+        /// <summary>
+        /// 
+        /// </summary>
+        /// <returns></returns>
+        public virtual string GetMessage()
+        {
+            return _config.DefaultStartupMsg;
+        }
+
+        /// <summary>
+        /// Customises the login response and fills in missing values.
+        /// </summary>
+        /// <param name="response">The existing response</param>
+        /// <param name="theUser">The user profile</param>
+        public abstract void CustomiseResponse( LoginResponse response, UserProfileData theUser);
+
+        /// <summary>
+        /// Main user login function
+        /// </summary>
+        /// <param name="request">The XMLRPC request</param>
+        /// <returns>The response to send</returns>
+        public XmlRpcResponse XmlRpcLoginMethod(XmlRpcRequest request)
+        {
+
+            System.Console.WriteLine("Attempting login now...");
+            XmlRpcResponse response = new XmlRpcResponse();
+            Hashtable requestData = (Hashtable)request.Params[0];
+
+            bool GoodXML = (requestData.Contains("first") && requestData.Contains("last") && requestData.Contains("passwd"));
+            bool GoodLogin = false;
+            string firstname = "";
+            string lastname = "";
+            string passwd = "";
+
+            UserProfileData userProfile;
+            LoginResponse logResponse = new LoginResponse();
+
+            if (GoodXML)
+            {
+                firstname = (string)requestData["first"];
+                lastname = (string)requestData["last"];
+                passwd = (string)requestData["passwd"];
+
+                userProfile = GetTheUser(firstname, lastname);
+                if (userProfile == null)
+                    return logResponse.CreateLoginFailedResponse();
+
+                GoodLogin = AuthenticateUser(userProfile, passwd);
+            }
+            else
+            {
+                return logResponse.CreateGridErrorResponse();
+            }
+
+            if (!GoodLogin)
+            {
+                return logResponse.CreateLoginFailedResponse();
+            }
+            else
+            {
+                // If we already have a session...
+                if (userProfile.currentAgent != null && userProfile.currentAgent.agentOnline)
+                {
+                    // Reject the login
+                    return logResponse.CreateAlreadyLoggedInResponse();
+                }
+                // Otherwise...
+                // Create a new agent session
+                CreateAgent( userProfile, request);
+
+                try
+                {
+
+                    LLUUID AgentID = userProfile.UUID;
+
+                    // Inventory Library Section
+                    ArrayList AgentInventoryArray = new ArrayList();
+                    Hashtable TempHash;
+
+                    AgentInventory Library = new AgentInventory();
+                    Library.CreateRootFolder(AgentID, true);
+
+                    foreach (InventoryFolder InvFolder in Library.InventoryFolders.Values)
+                    {
+                        TempHash = new Hashtable();
+                        TempHash["name"] = InvFolder.FolderName;
+                        TempHash["parent_id"] = InvFolder.ParentID.ToStringHyphenated();
+                        TempHash["version"] = (Int32)InvFolder.Version;
+                        TempHash["type_default"] = (Int32)InvFolder.DefaultType;
+                        TempHash["folder_id"] = InvFolder.FolderID.ToStringHyphenated();
+                        AgentInventoryArray.Add(TempHash);
+                    }
+
+                    Hashtable InventoryRootHash = new Hashtable();
+                    InventoryRootHash["folder_id"] = Library.InventoryRoot.FolderID.ToStringHyphenated();
+                    ArrayList InventoryRoot = new ArrayList();
+                    InventoryRoot.Add(InventoryRootHash);
+
+                    // Circuit Code
+                    uint circode = (uint)(Util.RandomClass.Next());
+
+                    logResponse.Lastname = userProfile.surname;
+                    logResponse.Firstname = userProfile.username;
+                    logResponse.AgentID = AgentID.ToStringHyphenated();
+                    logResponse.SessionID = userProfile.currentAgent.sessionID.ToStringHyphenated();
+                    logResponse.SecureSessionID = userProfile.currentAgent.secureSessionID.ToStringHyphenated();
+                    logResponse.InventoryRoot = InventoryRoot;
+                    logResponse.InventorySkeleton = AgentInventoryArray;
+                    logResponse.CircuitCode = (Int32)circode;
+                    //logResponse.RegionX = 0; //overwritten
+                    //logResponse.RegionY = 0; //overwritten
+                    logResponse.Home = "!!null temporary value {home}!!";   // Overwritten
+                    //logResponse.LookAt = "\n[r" + TheUser.homeLookAt.X.ToString() + ",r" + TheUser.homeLookAt.Y.ToString() + ",r" + TheUser.homeLookAt.Z.ToString() + "]\n";
+                    //logResponse.SimAddress = "127.0.0.1"; //overwritten
+                    //logResponse.SimPort = 0; //overwritten
+                    logResponse.Message = this.GetMessage();
+                    
+                    try
+                    {
+                        this.CustomiseResponse(  logResponse,   userProfile);
+                    }
+                    catch (Exception e)
+                    {
+                        System.Console.WriteLine(e.ToString());
+                        return logResponse.CreateDeadRegionResponse();
+                        //return logResponse.ToXmlRpcResponse();
+                    }
+                    CommitAgent(ref userProfile);
+                    return logResponse.ToXmlRpcResponse();
+
+                }
+                
+                catch (Exception E)
+                {
+                    System.Console.WriteLine(E.ToString());
+                }
+                //}
+            }
+            return response;
+
+        }
+
+        #endregion
+
+        /// <summary>
+        /// Deletes an active agent session
+        /// </summary>
+        /// <param name="request">The request</param>
+        /// <param name="path">The path (eg /bork/narf/test)</param>
+        /// <param name="param">Parameters sent</param>
+        /// <returns>Success "OK" else error</returns>
+        public string RestDeleteUserSessionMethod(string request, string path, string param)
+        {
+            // TODO! Important!
+
+            return "OK";
+        }
+
+        /// <summary>
+        /// 
+        /// </summary>
+        /// <param name="user"></param>
+        public void AddUserProfile(string firstName, string lastName, string pass, uint regX, uint regY)
+        {
+            UserProfileData user = new UserProfileData();
+            user.homeLocation = new LLVector3(128, 128, 100);
+            user.UUID = LLUUID.Random();
+            user.username = firstName;
+            user.surname = lastName;
+            user.passwordHash = pass;
+            user.passwordSalt = "";
+            user.created = Util.UnixTimeSinceEpoch();
+            user.homeLookAt = new LLVector3(100, 100, 100);
+            user.homeRegion = Util.UIntsToLong((regX * 256), (regY * 256));
+
+            foreach (KeyValuePair<string, IUserData> plugin in _plugins)
+            {
+                try
+                {
+                    plugin.Value.addNewUserProfile(user);
+
+                }
+                catch (Exception e)
+                {
+                    MainLog.Instance.Verbose("Unable to add user via " + plugin.Key + "(" + e.ToString() + ")");
+                }
+            }
+        }
+
+        /// <summary>
+        /// Returns an error message that the user could not be found in the database
+        /// </summary>
+        /// <returns>XML string consisting of a error element containing individual error(s)</returns>
+        public XmlRpcResponse CreateUnknownUserErrorResponse()
+        {
+            XmlRpcResponse response = new XmlRpcResponse();
+            Hashtable responseData = new Hashtable();
+            responseData["error_type"] = "unknown_user";
+            responseData["error_desc"] = "The user requested is not in the database";
+
+            response.Value = responseData;
+            return response;
+        }
+
+        /// <summary>
+        /// Converts a user profile to an XML element which can be returned
+        /// </summary>
+        /// <param name="profile">The user profile</param>
+        /// <returns>A string containing an XML Document of the user profile</returns>
+        public XmlRpcResponse ProfileToXmlRPCResponse(UserProfileData profile)
+        {
+            XmlRpcResponse response = new XmlRpcResponse();
+            Hashtable responseData = new Hashtable();
+
+            // Account information
+            responseData["firstname"] = profile.username;
+            responseData["lastname"]  = profile.surname;
+            responseData["uuid"]  = profile.UUID.ToStringHyphenated();
+            // Server Information
+            responseData["server_inventory"]  = profile.userInventoryURI;
+            responseData["server_asset"]  = profile.userAssetURI;
+            // Profile Information
+            responseData["profile_about"]  = profile.profileAboutText;
+            responseData["profile_firstlife_about"]  = profile.profileFirstText;
+            responseData["profile_firstlife_image"]  = profile.profileFirstImage.ToStringHyphenated();
+            responseData["profile_can_do"]  = profile.profileCanDoMask.ToString();
+            responseData["profile_want_do"]  = profile.profileWantDoMask.ToString();
+            responseData["profile_image"]  = profile.profileImage.ToStringHyphenated();
+            responseData["profile_created"] = profile.created.ToString();
+            responseData["profile_lastlogin"] = profile.lastLogin.ToString();
+            // Home region information
+            responseData["home_coordinates_x"] = profile.homeLocation.X.ToString();
+            responseData["home_coordinates_y"] = profile.homeLocation.Y.ToString();
+            responseData["home_coordinates_z"] = profile.homeLocation.Z.ToString();
+
+            responseData["home_region"]  = profile.homeRegion.ToString();
+
+            responseData["home_look_x"] = profile.homeLookAt.X.ToString();
+            responseData["home_look_y"] = profile.homeLookAt.Y.ToString();
+            responseData["home_look_z"] = profile.homeLookAt.Z.ToString();
+            response.Value = responseData;
+
+            return response;
+        }
+
+        #region XMLRPC User Methods 
+        //should most likely move out of here and into the grid's userserver sub class
+        public XmlRpcResponse XmlRPCGetUserMethodName(XmlRpcRequest request)
+        {
+            XmlRpcResponse response = new XmlRpcResponse();
+            Hashtable requestData = (Hashtable)request.Params[0];
+            UserProfileData userProfile;
+            if (requestData.Contains("avatar_name"))
+            {
+                userProfile = getUserProfile((string)requestData["avatar_name"]);
+                if (userProfile == null)
+                {
+                    return CreateUnknownUserErrorResponse();
+                }
+            }
+            else
+            {
+                return CreateUnknownUserErrorResponse();
+            }
+
+            return ProfileToXmlRPCResponse(userProfile);
+        }
+
+        public XmlRpcResponse XmlRPCGetUserMethodUUID(XmlRpcRequest request)
+        {
+            XmlRpcResponse response = new XmlRpcResponse();
+            Hashtable requestData = (Hashtable)request.Params[0];
+            UserProfileData userProfile;
+            System.Console.WriteLine("METHOD BY UUID CALLED");
+            if (requestData.Contains("avatar_uuid"))
+            {
+                userProfile = getUserProfile((LLUUID)requestData["avatar_uuid"]);
+                if (userProfile == null)
+                {
+                    return CreateUnknownUserErrorResponse();
+                }
+            }
+            else
+            {
+                return CreateUnknownUserErrorResponse();
+            }
+
+
+            return ProfileToXmlRPCResponse(userProfile);
+        }
+        #endregion
+
+    }
+}

+ 406 - 406
OpenSim/Grid/AssetServer/Main.cs

@@ -1,406 +1,406 @@
-/*
-* Copyright (c) Contributors, http://www.openmetaverse.org/
-* See CONTRIBUTORS.TXT for a full list of copyright holders.
-*
-* Redistribution and use in source and binary forms, with or without
-* modification, are permitted provided that the following conditions are met:
-*     * Redistributions of source code must retain the above copyright
-*       notice, this list of conditions and the following disclaimer.
-*     * Redistributions in binary form must reproduce the above copyright
-*       notice, this list of conditions and the following disclaimer in the
-*       documentation and/or other materials provided with the distribution.
-*     * Neither the name of the OpenSim Project nor the
-*       names of its contributors may be used to endorse or promote products
-*       derived from this software without specific prior written permission.
-*
-* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS AND ANY
-* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
-* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-* 
-*/
-
-using System;
-using System.IO;
-using System.Text;
-using Db4objects.Db4o;
-using libsecondlife;
-using OpenSim.Framework.Console;
-using OpenSim.Framework.Types;
-using OpenSim.Framework.Servers;
-
-namespace OpenSim.Grid.AssetServer
-{
-    /// <summary>
-    /// An asset server
-    /// </summary>
-    public class OpenAsset_Main : conscmd_callback
-    {
-        private IObjectContainer db;
-
-        public static OpenAsset_Main assetserver;
-
-        private LogBase m_console;
-
-        [STAThread]
-        public static void Main(string[] args)
-        {
-            Console.WriteLine("Starting...\n");
-
-            assetserver = new OpenAsset_Main();
-            assetserver.Startup();
-
-            assetserver.Work();
-        }
-
-        private void Work()
-        {
-            m_console.Notice("Enter help for a list of commands");
-
-            while (true)
-            {
-                m_console.MainLogPrompt();
-            }
-        }
-
-        private OpenAsset_Main()
-        {
-            m_console = new LogBase("opengrid-AssetServer-console.log", "OpenAsset", this, false);
-            MainLog.Instance = m_console;
-        }
-
-        public void Startup()
-        {
-            m_console.Verbose("Main.cs:Startup() - Setting up asset DB");
-            setupDB();
-
-            m_console.Verbose("Main.cs:Startup() - Starting HTTP process");
-            BaseHttpServer httpServer = new BaseHttpServer(8003);
-
-            httpServer.AddStreamHandler( new GetAssetStreamHandler(this));
-            httpServer.AddStreamHandler(new PostAssetStreamHandler( this ));
-
-            //httpServer.AddRestHandler("GET", "/assets/", this.assetGetMethod);
-            //httpServer.AddRestHandler("POST", "/assets/", this.assetPostMethod);
-
-            httpServer.Start();
-
-        }
-
-        //public string AssetPostMethod(string requestBody, string path, string param)
-        //{
-        //    AssetBase asset = new AssetBase();
-        //    asset.Name = "";
-        //    asset.FullID = new LLUUID(param);
-        //    Encoding Windows1252Encoding = Encoding.GetEncoding(1252);
-        //    byte[] buffer = Windows1252Encoding.GetBytes(requestBody);
-        //    asset.Data = buffer;
-        //    AssetStorage store = new AssetStorage();
-        //    store.Data = asset.Data;
-        //    store.Name = asset.Name;
-        //    store.UUID = asset.FullID;
-        //    db.Set(store);
-        //    db.Commit();
-        //    return "";
-        //}
-
-        //public string AssetGetMethod(string request, string path, string param)
-        //{
-        //    Console.WriteLine("got a request " + param);
-        //    byte[] assetdata = GetAssetData(new LLUUID(param), false);
-        //    if (assetdata != null)
-        //    {
-        //        Encoding Windows1252Encoding = Encoding.GetEncoding(1252);
-        //        string ret = Windows1252Encoding.GetString(assetdata);
-        //        //string ret = System.Text.Encoding.Unicode.GetString(assetdata);
-
-        //        return ret;
-
-        //    }
-        //    else
-        //    {
-        //        return "";
-        //    }
-
-        //}
-
-        public byte[] GetAssetData(LLUUID assetID, bool isTexture)
-        {
-            bool found = false;
-            AssetStorage foundAsset = null;
-
-            IObjectSet result = db.Get(new AssetStorage(assetID));
-            if (result.Count > 0)
-            {
-                foundAsset = (AssetStorage)result.Next();
-                found = true;
-            }
-
-            if (found)
-            {
-                return foundAsset.Data;
-            }
-            else
-            {
-                return null;
-            }
-        }
-
-        public void setupDB()
-        {
-            bool yapfile = File.Exists("gridassets.yap");
-            try
-            {
-                db = Db4oFactory.OpenFile("gridassets.yap");
-                MainLog.Instance.Verbose("Main.cs:setupDB() - creation");
-            }
-            catch (Exception e)
-            {
-                db.Close();
-                MainLog.Instance.Warn("Main.cs:setupDB() - Exception occured");
-                MainLog.Instance.Warn(e.ToString());
-            }
-            if (!yapfile)
-            {
-                this.LoadDB();
-            }
-        }
-
-        public void LoadDB()
-        {
-            try
-            {
-
-                Console.WriteLine("setting up Asset database");
-
-                AssetBase Image = new AssetBase();
-                Image.FullID = new LLUUID("00000000-0000-0000-9999-000000000001");
-                Image.Name = "Bricks";
-                this.LoadAsset(Image, true, "bricks.jp2");
-                AssetStorage store = new AssetStorage();
-                store.Data = Image.Data;
-                store.Name = Image.Name;
-                store.UUID = Image.FullID;
-                db.Set(store);
-                db.Commit();
-
-                Image = new AssetBase();
-                Image.FullID = new LLUUID("00000000-0000-0000-9999-000000000002");
-                Image.Name = "Plywood";
-                this.LoadAsset(Image, true, "plywood.jp2");
-                store = new AssetStorage();
-                store.Data = Image.Data;
-                store.Name = Image.Name;
-                store.UUID = Image.FullID;
-                db.Set(store);
-                db.Commit();
-
-                Image = new AssetBase();
-                Image.FullID = new LLUUID("00000000-0000-0000-9999-000000000003");
-                Image.Name = "Rocks";
-                this.LoadAsset(Image, true, "rocks.jp2");
-                store = new AssetStorage();
-                store.Data = Image.Data;
-                store.Name = Image.Name;
-                store.UUID = Image.FullID;
-                db.Set(store);
-                db.Commit();
-
-                Image = new AssetBase();
-                Image.FullID = new LLUUID("00000000-0000-0000-9999-000000000004");
-                Image.Name = "Granite";
-                this.LoadAsset(Image, true, "granite.jp2");
-                store = new AssetStorage();
-                store.Data = Image.Data;
-                store.Name = Image.Name;
-                store.UUID = Image.FullID;
-                db.Set(store);
-                db.Commit();
-
-                Image = new AssetBase();
-                Image.FullID = new LLUUID("00000000-0000-0000-9999-000000000005");
-                Image.Name = "Hardwood";
-                this.LoadAsset(Image, true, "hardwood.jp2");
-                store = new AssetStorage();
-                store.Data = Image.Data;
-                store.Name = Image.Name;
-                store.UUID = Image.FullID;
-                db.Set(store);
-                db.Commit();
-
-                Image = new AssetBase();
-                Image.FullID = new LLUUID("00000000-0000-0000-5005-000000000005");
-                Image.Name = "Prim Base Texture";
-                this.LoadAsset(Image, true, "plywood.jp2");
-                store = new AssetStorage();
-                store.Data = Image.Data;
-                store.Name = Image.Name;
-                store.UUID = Image.FullID;
-                db.Set(store);
-                db.Commit();
-
-                Image = new AssetBase();
-                Image.FullID = new LLUUID("66c41e39-38f9-f75a-024e-585989bfab73");
-                Image.Name = "Shape";
-                this.LoadAsset(Image, false, "base_shape.dat");
-                store = new AssetStorage();
-                store.Data = Image.Data;
-                store.Name = Image.Name;
-                store.UUID = Image.FullID;
-                db.Set(store);
-                db.Commit();
-            }
-            catch (Exception e)
-            {
-                Console.WriteLine(e.Message);
-            }
-        }
-
-        private void LoadAsset(AssetBase info, bool image, string filename)
-        {
-
-
-            string dataPath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "assets"); //+ folder;
-            string fileName = Path.Combine(dataPath, filename);
-            FileInfo fInfo = new FileInfo(fileName);
-            long numBytes = fInfo.Length;
-            FileStream fStream = new FileStream(fileName, FileMode.Open, FileAccess.Read);
-            byte[] idata = new byte[numBytes];
-            BinaryReader br = new BinaryReader(fStream);
-            idata = br.ReadBytes((int)numBytes);
-            br.Close();
-            fStream.Close();
-            info.Data = idata;
-            //info.loaded=true;
-        }
-
-        /*private GridConfig LoadConfigDll(string dllName)
-        {
-            Assembly pluginAssembly = Assembly.LoadFrom(dllName);
-            GridConfig config = null;
-
-            foreach (Type pluginType in pluginAssembly.GetTypes())
-            {
-                if (pluginType.IsPublic)
-                {
-                    if (!pluginType.IsAbstract)
-                    {
-                        Type typeInterface = pluginType.GetInterface("IGridConfig", true);
-
-                        if (typeInterface != null)
-                        {
-                            IGridConfig plug = (IGridConfig)Activator.CreateInstance(pluginAssembly.GetType(pluginType.ToString()));
-                            config = plug.GetConfigObject();
-                            break;
-                        }
-
-                        typeInterface = null;
-                    }
-                }
-            }
-            pluginAssembly = null;
-            return config;
-        }*/
-
-        public void CreateAsset(LLUUID assetId, byte[] assetData)
-        {
-            AssetBase asset = new AssetBase();
-            asset.Name = "";
-            asset.FullID = assetId;
-            asset.Data = assetData;
-                    
-            AssetStorage store = new AssetStorage();
-            store.Data = asset.Data;
-            store.Name = asset.Name;
-            store.UUID = asset.FullID;
-            db.Set(store);
-            db.Commit();
-        }
-        
-        public void RunCmd(string cmd, string[] cmdparams)
-        {
-            switch (cmd)
-            {
-                case "help":
-                    m_console.Notice("shutdown - shutdown this asset server (USE CAUTION!)");
-                    break;
-
-                case "shutdown":
-                    m_console.Close();
-                    Environment.Exit(0);
-                    break;
-            }
-        }
-
-        public void Show(string ShowWhat)
-        {
-        }
-    }
-
-    public class GetAssetStreamHandler : BaseStreamHandler
-    {
-        OpenAsset_Main m_assetManager;
-
-        override public byte[] Handle(string path, Stream request)
-        {
-            string param = GetParam(path);
-
-            byte[] assetdata = m_assetManager.GetAssetData(new LLUUID(param), false);
-            if (assetdata != null)
-            {
-                return assetdata;
-            }
-            else
-            {
-                return new byte[]{};
-            }
-        }
-
-        public GetAssetStreamHandler(OpenAsset_Main assetManager):base( "/assets/", "GET")
-        {
-            m_assetManager = assetManager;
-        }
-    }
-
-    public class PostAssetStreamHandler : BaseStreamHandler
-    {
-        OpenAsset_Main m_assetManager;
-
-        override public byte[] Handle(string path, Stream request)
-        {
-            string param = GetParam(path);
-            LLUUID assetId = new LLUUID(param);
-            byte[] txBuffer = new byte[4096];
-                
-            using( BinaryReader binReader = new BinaryReader( request ) )
-            {
-                using (MemoryStream memoryStream = new MemoryStream(4096))
-                {
-                    int count;
-                    while ((count = binReader.Read(txBuffer, 0, 4096)) > 0)
-                    {
-                        memoryStream.Write(txBuffer, 0, count);
-                    }                    
-
-                    byte[] assetData = memoryStream.ToArray();
-
-                    m_assetManager.CreateAsset(assetId, assetData);
-                }
-            }
-            
-            return new byte[]{};
-        }
-
-        public PostAssetStreamHandler( OpenAsset_Main assetManager )
-            : base("/assets/", "POST")
-        {
-            m_assetManager = assetManager;
-        }
-    }
-}
+/*
+* Copyright (c) Contributors, http://www.openmetaverse.org/
+* See CONTRIBUTORS.TXT for a full list of copyright holders.
+*
+* Redistribution and use in source and binary forms, with or without
+* modification, are permitted provided that the following conditions are met:
+*     * Redistributions of source code must retain the above copyright
+*       notice, this list of conditions and the following disclaimer.
+*     * Redistributions in binary form must reproduce the above copyright
+*       notice, this list of conditions and the following disclaimer in the
+*       documentation and/or other materials provided with the distribution.
+*     * Neither the name of the OpenSim Project nor the
+*       names of its contributors may be used to endorse or promote products
+*       derived from this software without specific prior written permission.
+*
+* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS AND ANY
+* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
+* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+* 
+*/
+
+using System;
+using System.IO;
+using System.Text;
+using Db4objects.Db4o;
+using libsecondlife;
+using OpenSim.Framework.Console;
+using OpenSim.Framework.Types;
+using OpenSim.Framework.Servers;
+
+namespace OpenSim.Grid.AssetServer
+{
+    /// <summary>
+    /// An asset server
+    /// </summary>
+    public class OpenAsset_Main : conscmd_callback
+    {
+        private IObjectContainer db;
+
+        public static OpenAsset_Main assetserver;
+
+        private LogBase m_console;
+
+        [STAThread]
+        public static void Main(string[] args)
+        {
+            Console.WriteLine("Starting...\n");
+
+            assetserver = new OpenAsset_Main();
+            assetserver.Startup();
+
+            assetserver.Work();
+        }
+
+        private void Work()
+        {
+            m_console.Notice("Enter help for a list of commands");
+
+            while (true)
+            {
+                m_console.MainLogPrompt();
+            }
+        }
+
+        private OpenAsset_Main()
+        {
+            m_console = new LogBase("opengrid-AssetServer-console.log", "OpenAsset", this, false);
+            MainLog.Instance = m_console;
+        }
+
+        public void Startup()
+        {
+            m_console.Verbose("Main.cs:Startup() - Setting up asset DB");
+            setupDB();
+
+            m_console.Verbose("Main.cs:Startup() - Starting HTTP process");
+            BaseHttpServer httpServer = new BaseHttpServer(8003);
+
+            httpServer.AddStreamHandler( new GetAssetStreamHandler(this));
+            httpServer.AddStreamHandler(new PostAssetStreamHandler( this ));
+
+            //httpServer.AddRestHandler("GET", "/assets/", this.assetGetMethod);
+            //httpServer.AddRestHandler("POST", "/assets/", this.assetPostMethod);
+
+            httpServer.Start();
+
+        }
+
+        //public string AssetPostMethod(string requestBody, string path, string param)
+        //{
+        //    AssetBase asset = new AssetBase();
+        //    asset.Name = "";
+        //    asset.FullID = new LLUUID(param);
+        //    Encoding Windows1252Encoding = Encoding.GetEncoding(1252);
+        //    byte[] buffer = Windows1252Encoding.GetBytes(requestBody);
+        //    asset.Data = buffer;
+        //    AssetStorage store = new AssetStorage();
+        //    store.Data = asset.Data;
+        //    store.Name = asset.Name;
+        //    store.UUID = asset.FullID;
+        //    db.Set(store);
+        //    db.Commit();
+        //    return "";
+        //}
+
+        //public string AssetGetMethod(string request, string path, string param)
+        //{
+        //    Console.WriteLine("got a request " + param);
+        //    byte[] assetdata = GetAssetData(new LLUUID(param), false);
+        //    if (assetdata != null)
+        //    {
+        //        Encoding Windows1252Encoding = Encoding.GetEncoding(1252);
+        //        string ret = Windows1252Encoding.GetString(assetdata);
+        //        //string ret = System.Text.Encoding.Unicode.GetString(assetdata);
+
+        //        return ret;
+
+        //    }
+        //    else
+        //    {
+        //        return "";
+        //    }
+
+        //}
+
+        public byte[] GetAssetData(LLUUID assetID, bool isTexture)
+        {
+            bool found = false;
+            AssetStorage foundAsset = null;
+
+            IObjectSet result = db.Get(new AssetStorage(assetID));
+            if (result.Count > 0)
+            {
+                foundAsset = (AssetStorage)result.Next();
+                found = true;
+            }
+
+            if (found)
+            {
+                return foundAsset.Data;
+            }
+            else
+            {
+                return null;
+            }
+        }
+
+        public void setupDB()
+        {
+            bool yapfile = File.Exists("gridassets.yap");
+            try
+            {
+                db = Db4oFactory.OpenFile("gridassets.yap");
+                MainLog.Instance.Verbose("Main.cs:setupDB() - creation");
+            }
+            catch (Exception e)
+            {
+                db.Close();
+                MainLog.Instance.Warn("Main.cs:setupDB() - Exception occured");
+                MainLog.Instance.Warn(e.ToString());
+            }
+            if (!yapfile)
+            {
+                this.LoadDB();
+            }
+        }
+
+        public void LoadDB()
+        {
+            try
+            {
+
+                Console.WriteLine("setting up Asset database");
+
+                AssetBase Image = new AssetBase();
+                Image.FullID = new LLUUID("00000000-0000-0000-9999-000000000001");
+                Image.Name = "Bricks";
+                this.LoadAsset(Image, true, "bricks.jp2");
+                AssetStorage store = new AssetStorage();
+                store.Data = Image.Data;
+                store.Name = Image.Name;
+                store.UUID = Image.FullID;
+                db.Set(store);
+                db.Commit();
+
+                Image = new AssetBase();
+                Image.FullID = new LLUUID("00000000-0000-0000-9999-000000000002");
+                Image.Name = "Plywood";
+                this.LoadAsset(Image, true, "plywood.jp2");
+                store = new AssetStorage();
+                store.Data = Image.Data;
+                store.Name = Image.Name;
+                store.UUID = Image.FullID;
+                db.Set(store);
+                db.Commit();
+
+                Image = new AssetBase();
+                Image.FullID = new LLUUID("00000000-0000-0000-9999-000000000003");
+                Image.Name = "Rocks";
+                this.LoadAsset(Image, true, "rocks.jp2");
+                store = new AssetStorage();
+                store.Data = Image.Data;
+                store.Name = Image.Name;
+                store.UUID = Image.FullID;
+                db.Set(store);
+                db.Commit();
+
+                Image = new AssetBase();
+                Image.FullID = new LLUUID("00000000-0000-0000-9999-000000000004");
+                Image.Name = "Granite";
+                this.LoadAsset(Image, true, "granite.jp2");
+                store = new AssetStorage();
+                store.Data = Image.Data;
+                store.Name = Image.Name;
+                store.UUID = Image.FullID;
+                db.Set(store);
+                db.Commit();
+
+                Image = new AssetBase();
+                Image.FullID = new LLUUID("00000000-0000-0000-9999-000000000005");
+                Image.Name = "Hardwood";
+                this.LoadAsset(Image, true, "hardwood.jp2");
+                store = new AssetStorage();
+                store.Data = Image.Data;
+                store.Name = Image.Name;
+                store.UUID = Image.FullID;
+                db.Set(store);
+                db.Commit();
+
+                Image = new AssetBase();
+                Image.FullID = new LLUUID("00000000-0000-0000-5005-000000000005");
+                Image.Name = "Prim Base Texture";
+                this.LoadAsset(Image, true, "plywood.jp2");
+                store = new AssetStorage();
+                store.Data = Image.Data;
+                store.Name = Image.Name;
+                store.UUID = Image.FullID;
+                db.Set(store);
+                db.Commit();
+
+                Image = new AssetBase();
+                Image.FullID = new LLUUID("66c41e39-38f9-f75a-024e-585989bfab73");
+                Image.Name = "Shape";
+                this.LoadAsset(Image, false, "base_shape.dat");
+                store = new AssetStorage();
+                store.Data = Image.Data;
+                store.Name = Image.Name;
+                store.UUID = Image.FullID;
+                db.Set(store);
+                db.Commit();
+            }
+            catch (Exception e)
+            {
+                Console.WriteLine(e.Message);
+            }
+        }
+
+        private void LoadAsset(AssetBase info, bool image, string filename)
+        {
+
+
+            string dataPath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "assets"); //+ folder;
+            string fileName = Path.Combine(dataPath, filename);
+            FileInfo fInfo = new FileInfo(fileName);
+            long numBytes = fInfo.Length;
+            FileStream fStream = new FileStream(fileName, FileMode.Open, FileAccess.Read);
+            byte[] idata = new byte[numBytes];
+            BinaryReader br = new BinaryReader(fStream);
+            idata = br.ReadBytes((int)numBytes);
+            br.Close();
+            fStream.Close();
+            info.Data = idata;
+            //info.loaded=true;
+        }
+
+        /*private GridConfig LoadConfigDll(string dllName)
+        {
+            Assembly pluginAssembly = Assembly.LoadFrom(dllName);
+            GridConfig config = null;
+
+            foreach (Type pluginType in pluginAssembly.GetTypes())
+            {
+                if (pluginType.IsPublic)
+                {
+                    if (!pluginType.IsAbstract)
+                    {
+                        Type typeInterface = pluginType.GetInterface("IGridConfig", true);
+
+                        if (typeInterface != null)
+                        {
+                            IGridConfig plug = (IGridConfig)Activator.CreateInstance(pluginAssembly.GetType(pluginType.ToString()));
+                            config = plug.GetConfigObject();
+                            break;
+                        }
+
+                        typeInterface = null;
+                    }
+                }
+            }
+            pluginAssembly = null;
+            return config;
+        }*/
+
+        public void CreateAsset(LLUUID assetId, byte[] assetData)
+        {
+            AssetBase asset = new AssetBase();
+            asset.Name = "";
+            asset.FullID = assetId;
+            asset.Data = assetData;
+                    
+            AssetStorage store = new AssetStorage();
+            store.Data = asset.Data;
+            store.Name = asset.Name;
+            store.UUID = asset.FullID;
+            db.Set(store);
+            db.Commit();
+        }
+        
+        public void RunCmd(string cmd, string[] cmdparams)
+        {
+            switch (cmd)
+            {
+                case "help":
+                    m_console.Notice("shutdown - shutdown this asset server (USE CAUTION!)");
+                    break;
+
+                case "shutdown":
+                    m_console.Close();
+                    Environment.Exit(0);
+                    break;
+            }
+        }
+
+        public void Show(string ShowWhat)
+        {
+        }
+    }
+
+    public class GetAssetStreamHandler : BaseStreamHandler
+    {
+        OpenAsset_Main m_assetManager;
+
+        override public byte[] Handle(string path, Stream request)
+        {
+            string param = GetParam(path);
+
+            byte[] assetdata = m_assetManager.GetAssetData(new LLUUID(param), false);
+            if (assetdata != null)
+            {
+                return assetdata;
+            }
+            else
+            {
+                return new byte[]{};
+            }
+        }
+
+        public GetAssetStreamHandler(OpenAsset_Main assetManager):base( "/assets/", "GET")
+        {
+            m_assetManager = assetManager;
+        }
+    }
+
+    public class PostAssetStreamHandler : BaseStreamHandler
+    {
+        OpenAsset_Main m_assetManager;
+
+        override public byte[] Handle(string path, Stream request)
+        {
+            string param = GetParam(path);
+            LLUUID assetId = new LLUUID(param);
+            byte[] txBuffer = new byte[4096];
+                
+            using( BinaryReader binReader = new BinaryReader( request ) )
+            {
+                using (MemoryStream memoryStream = new MemoryStream(4096))
+                {
+                    int count;
+                    while ((count = binReader.Read(txBuffer, 0, 4096)) > 0)
+                    {
+                        memoryStream.Write(txBuffer, 0, count);
+                    }                    
+
+                    byte[] assetData = memoryStream.ToArray();
+
+                    m_assetManager.CreateAsset(assetId, assetData);
+                }
+            }
+            
+            return new byte[]{};
+        }
+
+        public PostAssetStreamHandler( OpenAsset_Main assetManager )
+            : base("/assets/", "POST")
+        {
+            m_assetManager = assetManager;
+        }
+    }
+}

+ 58 - 58
OpenSim/Grid/AssetServer/Properties/AssemblyInfo.cs

@@ -1,58 +1,58 @@
-/*
-* Copyright (c) Contributors, http://www.openmetaverse.org/
-* See CONTRIBUTORS.TXT for a full list of copyright holders.
-*
-* Redistribution and use in source and binary forms, with or without
-* modification, are permitted provided that the following conditions are met:
-*     * Redistributions of source code must retain the above copyright
-*       notice, this list of conditions and the following disclaimer.
-*     * Redistributions in binary form must reproduce the above copyright
-*       notice, this list of conditions and the following disclaimer in the
-*       documentation and/or other materials provided with the distribution.
-*     * Neither the name of the OpenSim Project nor the
-*       names of its contributors may be used to endorse or promote products
-*       derived from this software without specific prior written permission.
-*
-* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS AND ANY
-* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
-* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-* 
-*/
-using System.Reflection;
-using System.Runtime.InteropServices;
-// General Information about an assembly is controlled through the following 
-// set of attributes. Change these attribute values to modify the information
-// associated with an assembly.
-[assembly: AssemblyTitle("OGS-AssetServer")]
-[assembly: AssemblyDescription("")]
-[assembly: AssemblyConfiguration("")]
-[assembly: AssemblyCompany("")]
-[assembly: AssemblyProduct("OGS-AssetServer")]
-[assembly: AssemblyCopyright("Copyright ©  2007")]
-[assembly: AssemblyTrademark("")]
-[assembly: AssemblyCulture("")]
-
-// Setting ComVisible to false makes the types in this assembly not visible 
-// to COM components.  If you need to access a type in this assembly from 
-// COM, set the ComVisible attribute to true on that type.
-[assembly: ComVisible(false)]
-
-// The following GUID is for the ID of the typelib if this project is exposed to COM
-[assembly: Guid("b541b244-3d1d-4625-9003-bc2a3a6a39a4")]
-
-// Version information for an assembly consists of the following four values:
-//
-//      Major Version
-//      Minor Version 
-//      Build Number
-//      Revision
-//
-[assembly: AssemblyVersion("1.0.0.0")]
-[assembly: AssemblyFileVersion("1.0.0.0")]
+/*
+* Copyright (c) Contributors, http://www.openmetaverse.org/
+* See CONTRIBUTORS.TXT for a full list of copyright holders.
+*
+* Redistribution and use in source and binary forms, with or without
+* modification, are permitted provided that the following conditions are met:
+*     * Redistributions of source code must retain the above copyright
+*       notice, this list of conditions and the following disclaimer.
+*     * Redistributions in binary form must reproduce the above copyright
+*       notice, this list of conditions and the following disclaimer in the
+*       documentation and/or other materials provided with the distribution.
+*     * Neither the name of the OpenSim Project nor the
+*       names of its contributors may be used to endorse or promote products
+*       derived from this software without specific prior written permission.
+*
+* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS AND ANY
+* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
+* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+* 
+*/
+using System.Reflection;
+using System.Runtime.InteropServices;
+// General Information about an assembly is controlled through the following 
+// set of attributes. Change these attribute values to modify the information
+// associated with an assembly.
+[assembly: AssemblyTitle("OGS-AssetServer")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("")]
+[assembly: AssemblyProduct("OGS-AssetServer")]
+[assembly: AssemblyCopyright("Copyright ©  2007")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// Setting ComVisible to false makes the types in this assembly not visible 
+// to COM components.  If you need to access a type in this assembly from 
+// COM, set the ComVisible attribute to true on that type.
+[assembly: ComVisible(false)]
+
+// The following GUID is for the ID of the typelib if this project is exposed to COM
+[assembly: Guid("b541b244-3d1d-4625-9003-bc2a3a6a39a4")]
+
+// Version information for an assembly consists of the following four values:
+//
+//      Major Version
+//      Minor Version 
+//      Build Number
+//      Revision
+//
+[assembly: AssemblyVersion("1.0.0.0")]
+[assembly: AssemblyFileVersion("1.0.0.0")]

+ 138 - 138
OpenSim/Grid/Framework.Manager/GridManagementAgent.cs

@@ -1,138 +1,138 @@
-/*
-* Copyright (c) Contributors, http://www.openmetaverse.org/
-* See CONTRIBUTORS.TXT for a full list of copyright holders.
-*
-* Redistribution and use in source and binary forms, with or without
-* modification, are permitted provided that the following conditions are met:
-*     * Redistributions of source code must retain the above copyright
-*       notice, this list of conditions and the following disclaimer.
-*     * Redistributions in binary form must reproduce the above copyright
-*       notice, this list of conditions and the following disclaimer in the
-*       documentation and/or other materials provided with the distribution.
-*     * Neither the name of the OpenSim Project nor the
-*       names of its contributors may be used to endorse or promote products
-*       derived from this software without specific prior written permission.
-*
-* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS AND ANY
-* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
-* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-* 
-*/
-using System.Collections;
-using libsecondlife;
-using Nwc.XmlRpc;
-using OpenSim.Framework.Servers;
-
-namespace OpenSim.Framework.Manager
-{
-    /// <summary>
-    /// Used to pass messages to the gridserver
-    /// </summary>
-    /// <param name="param">Pass this argument</param>
-    public delegate void GridManagerCallback(string param);
-
-    /// <summary>
-    /// Serverside listener for grid commands
-    /// </summary>
-    public class GridManagementAgent
-    {
-        /// <summary>
-        /// Passes grid server messages
-        /// </summary>
-        private GridManagerCallback thecallback;
-
-        /// <summary>
-        /// Security keys
-        /// </summary>
-        private string sendkey;
-        private string recvkey;
-
-        /// <summary>
-        /// Our component type
-        /// </summary>
-        private string component_type;
-
-        /// <summary>
-        /// List of active sessions
-        /// </summary>
-        private static ArrayList Sessions;
-
-        /// <summary>
-        /// Initialises a new GridManagementAgent
-        /// </summary>
-        /// <param name="app_httpd">HTTP Daemon for this server</param>
-        /// <param name="component_type">What component type are we?</param>
-        /// <param name="sendkey">Security send key</param>
-        /// <param name="recvkey">Security recieve key</param>
-        /// <param name="thecallback">Message callback</param>
-        public GridManagementAgent(BaseHttpServer app_httpd, string component_type, string sendkey, string recvkey, GridManagerCallback thecallback)
-        {
-            this.sendkey = sendkey;
-            this.recvkey = recvkey;
-            this.component_type = component_type;
-            this.thecallback = thecallback;
-            Sessions = new ArrayList();
-
-            app_httpd.AddXmlRPCHandler("manager_login", XmlRpcLoginMethod);
-
-            switch (component_type)
-            {
-                case "gridserver":
-                    GridServerManager.sendkey = this.sendkey;
-                    GridServerManager.recvkey = this.recvkey;
-                    GridServerManager.thecallback = thecallback;
-                    app_httpd.AddXmlRPCHandler("shutdown", GridServerManager.XmlRpcShutdownMethod);
-                    break;
-            }
-        }
-
-        /// <summary>
-        /// Checks if a session exists
-        /// </summary>
-        /// <param name="sessionID">The session ID</param>
-        /// <returns>Exists?</returns>
-        public static bool SessionExists(LLUUID sessionID)
-        {
-            return Sessions.Contains(sessionID);
-        }
-
-        /// <summary>
-        /// Logs a new session to the grid manager
-        /// </summary>
-        /// <param name="request">the XMLRPC request</param>
-        /// <returns>An XMLRPC reply</returns>
-        public static XmlRpcResponse XmlRpcLoginMethod(XmlRpcRequest request)
-        {
-            XmlRpcResponse response = new XmlRpcResponse();
-            Hashtable requestData = (Hashtable)request.Params[0];
-            Hashtable responseData = new Hashtable();
-
-            // TODO: Switch this over to using OpenSim.Framework.Data
-            if (requestData["username"].Equals("admin") && requestData["password"].Equals("supersecret"))
-            {
-                response.IsFault = false;
-                LLUUID new_session = LLUUID.Random();
-                Sessions.Add(new_session);
-                responseData["session_id"] = new_session.ToString();
-                responseData["msg"] = "Login OK";
-            }
-            else
-            {
-                response.IsFault = true;
-                responseData["error"] = "Invalid username or password";
-            }
-
-            response.Value = responseData;
-            return response;
-
-        }
-
-    }
-}
+/*
+* Copyright (c) Contributors, http://www.openmetaverse.org/
+* See CONTRIBUTORS.TXT for a full list of copyright holders.
+*
+* Redistribution and use in source and binary forms, with or without
+* modification, are permitted provided that the following conditions are met:
+*     * Redistributions of source code must retain the above copyright
+*       notice, this list of conditions and the following disclaimer.
+*     * Redistributions in binary form must reproduce the above copyright
+*       notice, this list of conditions and the following disclaimer in the
+*       documentation and/or other materials provided with the distribution.
+*     * Neither the name of the OpenSim Project nor the
+*       names of its contributors may be used to endorse or promote products
+*       derived from this software without specific prior written permission.
+*
+* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS AND ANY
+* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
+* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+* 
+*/
+using System.Collections;
+using libsecondlife;
+using Nwc.XmlRpc;
+using OpenSim.Framework.Servers;
+
+namespace OpenSim.Framework.Manager
+{
+    /// <summary>
+    /// Used to pass messages to the gridserver
+    /// </summary>
+    /// <param name="param">Pass this argument</param>
+    public delegate void GridManagerCallback(string param);
+
+    /// <summary>
+    /// Serverside listener for grid commands
+    /// </summary>
+    public class GridManagementAgent
+    {
+        /// <summary>
+        /// Passes grid server messages
+        /// </summary>
+        private GridManagerCallback thecallback;
+
+        /// <summary>
+        /// Security keys
+        /// </summary>
+        private string sendkey;
+        private string recvkey;
+
+        /// <summary>
+        /// Our component type
+        /// </summary>
+        private string component_type;
+
+        /// <summary>
+        /// List of active sessions
+        /// </summary>
+        private static ArrayList Sessions;
+
+        /// <summary>
+        /// Initialises a new GridManagementAgent
+        /// </summary>
+        /// <param name="app_httpd">HTTP Daemon for this server</param>
+        /// <param name="component_type">What component type are we?</param>
+        /// <param name="sendkey">Security send key</param>
+        /// <param name="recvkey">Security recieve key</param>
+        /// <param name="thecallback">Message callback</param>
+        public GridManagementAgent(BaseHttpServer app_httpd, string component_type, string sendkey, string recvkey, GridManagerCallback thecallback)
+        {
+            this.sendkey = sendkey;
+            this.recvkey = recvkey;
+            this.component_type = component_type;
+            this.thecallback = thecallback;
+            Sessions = new ArrayList();
+
+            app_httpd.AddXmlRPCHandler("manager_login", XmlRpcLoginMethod);
+
+            switch (component_type)
+            {
+                case "gridserver":
+                    GridServerManager.sendkey = this.sendkey;
+                    GridServerManager.recvkey = this.recvkey;
+                    GridServerManager.thecallback = thecallback;
+                    app_httpd.AddXmlRPCHandler("shutdown", GridServerManager.XmlRpcShutdownMethod);
+                    break;
+            }
+        }
+
+        /// <summary>
+        /// Checks if a session exists
+        /// </summary>
+        /// <param name="sessionID">The session ID</param>
+        /// <returns>Exists?</returns>
+        public static bool SessionExists(LLUUID sessionID)
+        {
+            return Sessions.Contains(sessionID);
+        }
+
+        /// <summary>
+        /// Logs a new session to the grid manager
+        /// </summary>
+        /// <param name="request">the XMLRPC request</param>
+        /// <returns>An XMLRPC reply</returns>
+        public static XmlRpcResponse XmlRpcLoginMethod(XmlRpcRequest request)
+        {
+            XmlRpcResponse response = new XmlRpcResponse();
+            Hashtable requestData = (Hashtable)request.Params[0];
+            Hashtable responseData = new Hashtable();
+
+            // TODO: Switch this over to using OpenSim.Framework.Data
+            if (requestData["username"].Equals("admin") && requestData["password"].Equals("supersecret"))
+            {
+                response.IsFault = false;
+                LLUUID new_session = LLUUID.Random();
+                Sessions.Add(new_session);
+                responseData["session_id"] = new_session.ToString();
+                responseData["msg"] = "Login OK";
+            }
+            else
+            {
+                response.IsFault = true;
+                responseData["error"] = "Invalid username or password";
+            }
+
+            response.Value = responseData;
+            return response;
+
+        }
+
+    }
+}

+ 93 - 93
OpenSim/Grid/Framework.Manager/GridServerManager.cs

@@ -1,93 +1,93 @@
-/*
-* Copyright (c) Contributors, http://www.openmetaverse.org/
-* See CONTRIBUTORS.TXT for a full list of copyright holders.
-*
-* Redistribution and use in source and binary forms, with or without
-* modification, are permitted provided that the following conditions are met:
-*     * Redistributions of source code must retain the above copyright
-*       notice, this list of conditions and the following disclaimer.
-*     * Redistributions in binary form must reproduce the above copyright
-*       notice, this list of conditions and the following disclaimer in the
-*       documentation and/or other materials provided with the distribution.
-*     * Neither the name of the OpenSim Project nor the
-*       names of its contributors may be used to endorse or promote products
-*       derived from this software without specific prior written permission.
-*
-* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS AND ANY
-* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
-* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-* 
-*/
-
-using System;
-using System.Collections;
-using System.Threading;
-using libsecondlife;
-using Nwc.XmlRpc;
-
-namespace OpenSim.Framework.Manager {
-
-    /// <summary>
-    /// A remote management system for the grid server
-    /// </summary>
-	public class GridServerManager 
-	{
-        /// <summary>
-        /// Triggers events from the grid manager
-        /// </summary>
-		public static GridManagerCallback thecallback;
-
-        /// <summary>
-        /// Security keys
-        /// </summary>
-		public static string sendkey;
-		public static string recvkey;
-
-        /// <summary>
-        /// Disconnects the grid server and shuts it down
-        /// </summary>
-        /// <param name="request">XmlRpc Request</param>
-        /// <returns>An XmlRpc response containing either a "msg" or an "error"</returns>
-		public static XmlRpcResponse XmlRpcShutdownMethod(XmlRpcRequest request)
-         	{
-           		XmlRpcResponse response = new XmlRpcResponse();
-            		Hashtable requestData = (Hashtable)request.Params[0];
-	    		Hashtable responseData = new Hashtable();
-         
-			if(requestData.ContainsKey("session_id")) {
-				if(GridManagementAgent.SessionExists(new LLUUID((string)requestData["session_id"]))) {
-					responseData["msg"]="Shutdown command accepted";
-					(new Thread(new ThreadStart(ShutdownServer))).Start();
-				} else {
-					response.IsFault=true;
-					responseData["error"]="bad session ID";
-				}
-			} else {
-				response.IsFault=true;
-				responseData["error"]="no session ID";
-			}
-
-	    		response.Value = responseData;
-	    		return response;
-		}
-
-		/// <summary>
-        /// Shuts down the grid server
-		/// </summary>
-		public static void ShutdownServer()
-		{
-			Console.WriteLine("Shutting down the grid server - recieved a grid manager request");
-            Console.WriteLine("Terminating in three seconds...");
-			Thread.Sleep(3000);
-			thecallback("shutdown");
-		}
-	 }
-}
-
+/*
+* Copyright (c) Contributors, http://www.openmetaverse.org/
+* See CONTRIBUTORS.TXT for a full list of copyright holders.
+*
+* Redistribution and use in source and binary forms, with or without
+* modification, are permitted provided that the following conditions are met:
+*     * Redistributions of source code must retain the above copyright
+*       notice, this list of conditions and the following disclaimer.
+*     * Redistributions in binary form must reproduce the above copyright
+*       notice, this list of conditions and the following disclaimer in the
+*       documentation and/or other materials provided with the distribution.
+*     * Neither the name of the OpenSim Project nor the
+*       names of its contributors may be used to endorse or promote products
+*       derived from this software without specific prior written permission.
+*
+* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS AND ANY
+* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
+* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+* 
+*/
+
+using System;
+using System.Collections;
+using System.Threading;
+using libsecondlife;
+using Nwc.XmlRpc;
+
+namespace OpenSim.Framework.Manager {
+
+    /// <summary>
+    /// A remote management system for the grid server
+    /// </summary>
+	public class GridServerManager 
+	{
+        /// <summary>
+        /// Triggers events from the grid manager
+        /// </summary>
+		public static GridManagerCallback thecallback;
+
+        /// <summary>
+        /// Security keys
+        /// </summary>
+		public static string sendkey;
+		public static string recvkey;
+
+        /// <summary>
+        /// Disconnects the grid server and shuts it down
+        /// </summary>
+        /// <param name="request">XmlRpc Request</param>
+        /// <returns>An XmlRpc response containing either a "msg" or an "error"</returns>
+		public static XmlRpcResponse XmlRpcShutdownMethod(XmlRpcRequest request)
+         	{
+           		XmlRpcResponse response = new XmlRpcResponse();
+            		Hashtable requestData = (Hashtable)request.Params[0];
+	    		Hashtable responseData = new Hashtable();
+         
+			if(requestData.ContainsKey("session_id")) {
+				if(GridManagementAgent.SessionExists(new LLUUID((string)requestData["session_id"]))) {
+					responseData["msg"]="Shutdown command accepted";
+					(new Thread(new ThreadStart(ShutdownServer))).Start();
+				} else {
+					response.IsFault=true;
+					responseData["error"]="bad session ID";
+				}
+			} else {
+				response.IsFault=true;
+				responseData["error"]="no session ID";
+			}
+
+	    		response.Value = responseData;
+	    		return response;
+		}
+
+		/// <summary>
+        /// Shuts down the grid server
+		/// </summary>
+		public static void ShutdownServer()
+		{
+			Console.WriteLine("Shutting down the grid server - recieved a grid manager request");
+            Console.WriteLine("Terminating in three seconds...");
+			Thread.Sleep(3000);
+			thecallback("shutdown");
+		}
+	 }
+}
+

+ 56 - 56
OpenSim/Grid/GridServer.Config/AssemblyInfo.cs

@@ -1,56 +1,56 @@
-/*
-* Copyright (c) Contributors, http://www.openmetaverse.org/
-* See CONTRIBUTORS.TXT for a full list of copyright holders.
-*
-* Redistribution and use in source and binary forms, with or without
-* modification, are permitted provided that the following conditions are met:
-*     * Redistributions of source code must retain the above copyright
-*       notice, this list of conditions and the following disclaimer.
-*     * Redistributions in binary form must reproduce the above copyright
-*       notice, this list of conditions and the following disclaimer in the
-*       documentation and/or other materials provided with the distribution.
-*     * Neither the name of the OpenSim Project nor the
-*       names of its contributors may be used to endorse or promote products
-*       derived from this software without specific prior written permission.
-*
-* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS AND ANY
-* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
-* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-* 
-*/
-using System.Reflection;
-using System.Runtime.InteropServices;
-// Information about this assembly is defined by the following
-// attributes.
-//
-// change them to the information which is associated with the assembly
-// you compile.
-
-[assembly: AssemblyTitle("GridConfig")]
-[assembly: AssemblyDescription("")]
-[assembly: AssemblyConfiguration("")]
-[assembly: AssemblyCompany("")]
-[assembly: AssemblyProduct("GridConfig")]
-[assembly: AssemblyCopyright("")]
-[assembly: AssemblyTrademark("")]
-[assembly: AssemblyCulture("")]
-
-// This sets the default COM visibility of types in the assembly to invisible.
-// If you need to expose a type to COM, use [ComVisible(true)] on that type.
-[assembly: ComVisible(false)]
-
-// The assembly version has following format :
-//
-// Major.Minor.Build.Revision
-//
-// You can specify all values by your own or you can build default build and revision
-// numbers with the '*' character (the default):
-
-[assembly: AssemblyVersion("1.0.*")]
+/*
+* Copyright (c) Contributors, http://www.openmetaverse.org/
+* See CONTRIBUTORS.TXT for a full list of copyright holders.
+*
+* Redistribution and use in source and binary forms, with or without
+* modification, are permitted provided that the following conditions are met:
+*     * Redistributions of source code must retain the above copyright
+*       notice, this list of conditions and the following disclaimer.
+*     * Redistributions in binary form must reproduce the above copyright
+*       notice, this list of conditions and the following disclaimer in the
+*       documentation and/or other materials provided with the distribution.
+*     * Neither the name of the OpenSim Project nor the
+*       names of its contributors may be used to endorse or promote products
+*       derived from this software without specific prior written permission.
+*
+* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS AND ANY
+* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
+* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+* 
+*/
+using System.Reflection;
+using System.Runtime.InteropServices;
+// Information about this assembly is defined by the following
+// attributes.
+//
+// change them to the information which is associated with the assembly
+// you compile.
+
+[assembly: AssemblyTitle("GridConfig")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("")]
+[assembly: AssemblyProduct("GridConfig")]
+[assembly: AssemblyCopyright("")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// This sets the default COM visibility of types in the assembly to invisible.
+// If you need to expose a type to COM, use [ComVisible(true)] on that type.
+[assembly: ComVisible(false)]
+
+// The assembly version has following format :
+//
+// Major.Minor.Build.Revision
+//
+// You can specify all values by your own or you can build default build and revision
+// numbers with the '*' character (the default):
+
+[assembly: AssemblyVersion("1.0.*")]

+ 160 - 160
OpenSim/Grid/GridServer.Config/DbGridConfig.cs

@@ -1,160 +1,160 @@
-/*
-* Copyright (c) Contributors, http://www.openmetaverse.org/
-* See CONTRIBUTORS.TXT for a full list of copyright holders.
-*
-* Redistribution and use in source and binary forms, with or without
-* modification, are permitted provided that the following conditions are met:
-*     * Redistributions of source code must retain the above copyright
-*       notice, this list of conditions and the following disclaimer.
-*     * Redistributions in binary form must reproduce the above copyright
-*       notice, this list of conditions and the following disclaimer in the
-*       documentation and/or other materials provided with the distribution.
-*     * Neither the name of the OpenSim Project nor the
-*       names of its contributors may be used to endorse or promote products
-*       derived from this software without specific prior written permission.
-*
-* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS AND ANY
-* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
-* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-* 
-*/
-using System;
-using Db4objects.Db4o;
-using OpenSim.Framework.Console;
-using OpenSim.Framework.Interfaces;
-
-namespace OpenGrid.Config.GridConfigDb4o
-{
-    /// <summary>
-    /// A grid configuration interface for returning the DB4o Config Provider
-    /// </summary>
-	public class Db40ConfigPlugin: IGridConfig
-	{
-        /// <summary>
-        /// Loads and returns a configuration objeect
-        /// </summary>
-        /// <returns>A grid configuration object</returns>
-		public GridConfig GetConfigObject()
-		{
-			MainLog.Instance.Verbose("Loading Db40Config dll");
-			return ( new DbGridConfig());
-		}
-	}
-	
-    /// <summary>
-    /// A DB4o based Gridserver configuration object
-    /// </summary>
-	public class DbGridConfig : GridConfig
-	{
-        /// <summary>
-        /// The DB4o Database
-        /// </summary>
-		private IObjectContainer db;	
-		
-        /// <summary>
-        /// User configuration for the Grid Config interfaces
-        /// </summary>
-		public void LoadDefaults() {
-			MainLog.Instance.Notice("Config.cs:LoadDefaults() - Please press enter to retain default or enter new settings");
-			
-            // About the grid options
-			this.GridOwner = MainLog.Instance.CmdPrompt("Grid owner", "OGS development team");
-
-            // Asset Options
-			this.DefaultAssetServer = MainLog.Instance.CmdPrompt("Default asset server","http://127.0.0.1:8003/");
-            this.AssetSendKey = MainLog.Instance.CmdPrompt("Key to send to asset server","null");
-            this.AssetRecvKey = MainLog.Instance.CmdPrompt("Key to expect from asset server","null");
-
-            // User Server Options
-	        this.DefaultUserServer = MainLog.Instance.CmdPrompt("Default user server","http://127.0.0.1:8002/");
-        	this.UserSendKey = MainLog.Instance.CmdPrompt("Key to send to user server","null");
-        	this.UserRecvKey = MainLog.Instance.CmdPrompt("Key to expect from user server","null");
-
-            // Region Server Options
-            this.SimSendKey = MainLog.Instance.CmdPrompt("Key to send to sims","null");
-            this.SimRecvKey = MainLog.Instance.CmdPrompt("Key to expect from sims","null");
-		}
-
-        /// <summary>
-        /// Initialises a new configuration object
-        /// </summary>
-		public override void InitConfig() {
-			try {
-                // Perform Db4o initialisation
-				db = Db4oFactory.OpenFile("opengrid.yap");
-
-                // Locate the grid configuration object
-				IObjectSet result = db.Get(typeof(DbGridConfig));
-                // Found?
-				if(result.Count==1) {
-					MainLog.Instance.Verbose("Config.cs:InitConfig() - Found a GridConfig object in the local database, loading");
-					foreach (DbGridConfig cfg in result) {
-                        // Import each setting into this class
-                        // Grid Settings
-						this.GridOwner=cfg.GridOwner;
-                        // Asset Settings
-						this.DefaultAssetServer=cfg.DefaultAssetServer;
-						this.AssetSendKey=cfg.AssetSendKey;
-						this.AssetRecvKey=cfg.AssetRecvKey;
-                        // User Settings
-						this.DefaultUserServer=cfg.DefaultUserServer;
-						this.UserSendKey=cfg.UserSendKey;
-						this.UserRecvKey=cfg.UserRecvKey;
-                        // Region Settings
-						this.SimSendKey=cfg.SimSendKey;
-						this.SimRecvKey=cfg.SimRecvKey;
-					}
-                // Create a new configuration object from this class
-				} else {
-					MainLog.Instance.Verbose("Config.cs:InitConfig() - Could not find object in database, loading precompiled defaults");
-
-                    // Load default settings into this class
-					LoadDefaults();
-
-                    // Saves to the database file...
-                    MainLog.Instance.Verbose( "Writing out default settings to local database");
-					db.Set(this);
-
-                    // Closes file locks
-					db.Close();
-				}
-			} catch(Exception e) {
-				MainLog.Instance.Warn("Config.cs:InitConfig() - Exception occured");
-                MainLog.Instance.Warn(e.ToString());
-			}
-			
-            // Grid Settings
-			MainLog.Instance.Verbose("Grid settings loaded:");
-			MainLog.Instance.Verbose("Grid owner: " + this.GridOwner);
-
-            // Asset Settings
-			MainLog.Instance.Verbose("Default asset server: " + this.DefaultAssetServer);
-			MainLog.Instance.Verbose("Key to send to asset server: " + this.AssetSendKey);
-			MainLog.Instance.Verbose("Key to expect from asset server: " + this.AssetRecvKey);
-
-            // User Settings
-			MainLog.Instance.Verbose("Default user server: " + this.DefaultUserServer);
-			MainLog.Instance.Verbose("Key to send to user server: " + this.UserSendKey);
-			MainLog.Instance.Verbose("Key to expect from user server: " + this.UserRecvKey);
-
-            // Region Settings
-			MainLog.Instance.Verbose("Key to send to sims: " + this.SimSendKey);
-			MainLog.Instance.Verbose("Key to expect from sims: " + this.SimRecvKey);
-		}
-	
-        /// <summary>
-        /// Closes down the database and releases filesystem locks
-        /// </summary>
-		public void Shutdown() {
-			db.Close();
-		}
-	}
-	
-}
+/*
+* Copyright (c) Contributors, http://www.openmetaverse.org/
+* See CONTRIBUTORS.TXT for a full list of copyright holders.
+*
+* Redistribution and use in source and binary forms, with or without
+* modification, are permitted provided that the following conditions are met:
+*     * Redistributions of source code must retain the above copyright
+*       notice, this list of conditions and the following disclaimer.
+*     * Redistributions in binary form must reproduce the above copyright
+*       notice, this list of conditions and the following disclaimer in the
+*       documentation and/or other materials provided with the distribution.
+*     * Neither the name of the OpenSim Project nor the
+*       names of its contributors may be used to endorse or promote products
+*       derived from this software without specific prior written permission.
+*
+* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS AND ANY
+* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
+* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+* 
+*/
+using System;
+using Db4objects.Db4o;
+using OpenSim.Framework.Console;
+using OpenSim.Framework.Interfaces;
+
+namespace OpenGrid.Config.GridConfigDb4o
+{
+    /// <summary>
+    /// A grid configuration interface for returning the DB4o Config Provider
+    /// </summary>
+	public class Db40ConfigPlugin: IGridConfig
+	{
+        /// <summary>
+        /// Loads and returns a configuration objeect
+        /// </summary>
+        /// <returns>A grid configuration object</returns>
+		public GridConfig GetConfigObject()
+		{
+			MainLog.Instance.Verbose("Loading Db40Config dll");
+			return ( new DbGridConfig());
+		}
+	}
+	
+    /// <summary>
+    /// A DB4o based Gridserver configuration object
+    /// </summary>
+	public class DbGridConfig : GridConfig
+	{
+        /// <summary>
+        /// The DB4o Database
+        /// </summary>
+		private IObjectContainer db;	
+		
+        /// <summary>
+        /// User configuration for the Grid Config interfaces
+        /// </summary>
+		public void LoadDefaults() {
+			MainLog.Instance.Notice("Config.cs:LoadDefaults() - Please press enter to retain default or enter new settings");
+			
+            // About the grid options
+			this.GridOwner = MainLog.Instance.CmdPrompt("Grid owner", "OGS development team");
+
+            // Asset Options
+			this.DefaultAssetServer = MainLog.Instance.CmdPrompt("Default asset server","http://127.0.0.1:8003/");
+            this.AssetSendKey = MainLog.Instance.CmdPrompt("Key to send to asset server","null");
+            this.AssetRecvKey = MainLog.Instance.CmdPrompt("Key to expect from asset server","null");
+
+            // User Server Options
+	        this.DefaultUserServer = MainLog.Instance.CmdPrompt("Default user server","http://127.0.0.1:8002/");
+        	this.UserSendKey = MainLog.Instance.CmdPrompt("Key to send to user server","null");
+        	this.UserRecvKey = MainLog.Instance.CmdPrompt("Key to expect from user server","null");
+
+            // Region Server Options
+            this.SimSendKey = MainLog.Instance.CmdPrompt("Key to send to sims","null");
+            this.SimRecvKey = MainLog.Instance.CmdPrompt("Key to expect from sims","null");
+		}
+
+        /// <summary>
+        /// Initialises a new configuration object
+        /// </summary>
+		public override void InitConfig() {
+			try {
+                // Perform Db4o initialisation
+				db = Db4oFactory.OpenFile("opengrid.yap");
+
+                // Locate the grid configuration object
+				IObjectSet result = db.Get(typeof(DbGridConfig));
+                // Found?
+				if(result.Count==1) {
+					MainLog.Instance.Verbose("Config.cs:InitConfig() - Found a GridConfig object in the local database, loading");
+					foreach (DbGridConfig cfg in result) {
+                        // Import each setting into this class
+                        // Grid Settings
+						this.GridOwner=cfg.GridOwner;
+                        // Asset Settings
+						this.DefaultAssetServer=cfg.DefaultAssetServer;
+						this.AssetSendKey=cfg.AssetSendKey;
+						this.AssetRecvKey=cfg.AssetRecvKey;
+                        // User Settings
+						this.DefaultUserServer=cfg.DefaultUserServer;
+						this.UserSendKey=cfg.UserSendKey;
+						this.UserRecvKey=cfg.UserRecvKey;
+                        // Region Settings
+						this.SimSendKey=cfg.SimSendKey;
+						this.SimRecvKey=cfg.SimRecvKey;
+					}
+                // Create a new configuration object from this class
+				} else {
+					MainLog.Instance.Verbose("Config.cs:InitConfig() - Could not find object in database, loading precompiled defaults");
+
+                    // Load default settings into this class
+					LoadDefaults();
+
+                    // Saves to the database file...
+                    MainLog.Instance.Verbose( "Writing out default settings to local database");
+					db.Set(this);
+
+                    // Closes file locks
+					db.Close();
+				}
+			} catch(Exception e) {
+				MainLog.Instance.Warn("Config.cs:InitConfig() - Exception occured");
+                MainLog.Instance.Warn(e.ToString());
+			}
+			
+            // Grid Settings
+			MainLog.Instance.Verbose("Grid settings loaded:");
+			MainLog.Instance.Verbose("Grid owner: " + this.GridOwner);
+
+            // Asset Settings
+			MainLog.Instance.Verbose("Default asset server: " + this.DefaultAssetServer);
+			MainLog.Instance.Verbose("Key to send to asset server: " + this.AssetSendKey);
+			MainLog.Instance.Verbose("Key to expect from asset server: " + this.AssetRecvKey);
+
+            // User Settings
+			MainLog.Instance.Verbose("Default user server: " + this.DefaultUserServer);
+			MainLog.Instance.Verbose("Key to send to user server: " + this.UserSendKey);
+			MainLog.Instance.Verbose("Key to expect from user server: " + this.UserRecvKey);
+
+            // Region Settings
+			MainLog.Instance.Verbose("Key to send to sims: " + this.SimSendKey);
+			MainLog.Instance.Verbose("Key to expect from sims: " + this.SimRecvKey);
+		}
+	
+        /// <summary>
+        /// Closes down the database and releases filesystem locks
+        /// </summary>
+		public void Shutdown() {
+			db.Close();
+		}
+	}
+	
+}

+ 710 - 710
OpenSim/Grid/GridServer/GridManager.cs

@@ -1,710 +1,710 @@
-/*
-* Copyright (c) Contributors, http://www.openmetaverse.org/
-* See CONTRIBUTORS.TXT for a full list of copyright holders.
-*
-* Redistribution and use in source and binary forms, with or without
-* modification, are permitted provided that the following conditions are met:
-*     * Redistributions of source code must retain the above copyright
-*       notice, this list of conditions and the following disclaimer.
-*     * Redistributions in binary form must reproduce the above copyright
-*       notice, this list of conditions and the following disclaimer in the
-*       documentation and/or other materials provided with the distribution.
-*     * Neither the name of the OpenSim Project nor the
-*       names of its contributors may be used to endorse or promote products
-*       derived from this software without specific prior written permission.
-*
-* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS AND ANY
-* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
-* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-* 
-*/
-using System;
-using System.Collections;
-using System.Collections.Generic;
-using System.Reflection;
-using System.Xml;
-using libsecondlife;
-using Nwc.XmlRpc;
-using OpenSim.Framework.Console;
-using OpenSim.Framework.Data;
-using OpenSim.Framework.Interfaces;
-using OpenSim.Framework.Utilities;
-
-namespace OpenSim.Grid.GridServer
-{
-    class GridManager
-    {
-        Dictionary<string, IGridData> _plugins = new Dictionary<string, IGridData>();
-        Dictionary<string, ILogData> _logplugins = new Dictionary<string, ILogData>();
-
-        public GridConfig config;
-
-        /// <summary>
-        /// Adds a new grid server plugin - grid servers will be requested in the order they were loaded.
-        /// </summary>
-        /// <param name="FileName">The filename to the grid server plugin DLL</param>
-        public void AddPlugin(string FileName)
-		{
-            MainLog.Instance.Verbose("Storage: Attempting to load " + FileName);
-			Assembly pluginAssembly = Assembly.LoadFrom(FileName);
-
-            MainLog.Instance.Verbose("Storage: Found " + pluginAssembly.GetTypes().Length + " interfaces.");
-			foreach (Type pluginType in pluginAssembly.GetTypes())
-			{
-                if (!pluginType.IsAbstract)
-                {
-                    // Regions go here
-                    Type typeInterface = pluginType.GetInterface("IGridData", true);
-
-                    if (typeInterface != null)
-                    {
-                        IGridData plug = (IGridData)Activator.CreateInstance(pluginAssembly.GetType(pluginType.ToString()));
-                        plug.Initialise();
-                        this._plugins.Add(plug.getName(), plug);
-                        MainLog.Instance.Verbose("Storage: Added IGridData Interface");
-                    }
-
-                    typeInterface = null;
-
-                    // Logs go here
-                    typeInterface = pluginType.GetInterface("ILogData", true);
-
-                    if (typeInterface != null)
-                    {
-                        ILogData plug = (ILogData)Activator.CreateInstance(pluginAssembly.GetType(pluginType.ToString()));
-                        plug.Initialise();
-                        this._logplugins.Add(plug.getName(), plug);
-                        MainLog.Instance.Verbose( "Storage: Added ILogData Interface");
-                    }
-
-                    typeInterface = null;
-                }
-			}
-			
-			pluginAssembly = null; 
-        }
-
-        /// <summary>
-        /// Logs a piece of information to the database
-        /// </summary>
-        /// <param name="target">What you were operating on (in grid server, this will likely be the region UUIDs)</param>
-        /// <param name="method">Which method is being called?</param>
-        /// <param name="args">What arguments are being passed?</param>
-        /// <param name="priority">How high priority is this? 1 = Max, 6 = Verbose</param>
-        /// <param name="message">The message to log</param>
-        private void logToDB(string target, string method, string args, int priority, string message)
-        {
-            foreach (KeyValuePair<string, ILogData> kvp in _logplugins)
-            {
-                try
-                {
-                    kvp.Value.saveLog("Gridserver", target, method, args, priority, message);
-                }
-                catch (Exception)
-                {
-                    MainLog.Instance.Warn("Storage: unable to write log via " + kvp.Key);
-                }
-            }
-        }
-
-        /// <summary>
-        /// Returns a region by argument
-        /// </summary>
-        /// <param name="uuid">A UUID key of the region to return</param>
-        /// <returns>A SimProfileData for the region</returns>
-        public SimProfileData getRegion(LLUUID uuid)
-        {
-            foreach(KeyValuePair<string,IGridData> kvp in _plugins) {
-                try
-                {
-                    return kvp.Value.GetProfileByLLUUID(uuid);
-                }
-                catch (Exception e)
-                {
-                    MainLog.Instance.Warn("Message from Storage: " + e.Message);
-                }
-            }
-            return null;
-        }
-
-        /// <summary>
-        /// Returns a region by argument
-        /// </summary>
-        /// <param name="uuid">A regionHandle of the region to return</param>
-        /// <returns>A SimProfileData for the region</returns>
-        public SimProfileData getRegion(ulong handle)
-        {
-            foreach (KeyValuePair<string, IGridData> kvp in _plugins)
-            {
-                try
-                {
-                    return kvp.Value.GetProfileByHandle(handle);
-                }
-                catch
-                {
-                    MainLog.Instance.Warn("Storage: Unable to find region " + handle.ToString() + " via " + kvp.Key);
-                }
-            }
-            return null;
-        }
-
-        public Dictionary<ulong, SimProfileData> getRegions(uint xmin, uint ymin, uint xmax, uint ymax)
-        {
-            Dictionary<ulong, SimProfileData> regions = new Dictionary<ulong, SimProfileData>();
-
-            SimProfileData[] neighbours;
-
-            foreach (KeyValuePair<string, IGridData> kvp in _plugins)
-            {
-                try
-                {
-                    neighbours = kvp.Value.GetProfilesInRange(xmin, ymin, xmax, ymax);
-                    foreach (SimProfileData neighbour in neighbours)
-                    {
-                        regions[neighbour.regionHandle] = neighbour;
-                    }
-                }
-                catch
-                {
-                    MainLog.Instance.Warn("Storage: Unable to query regionblock via " + kvp.Key);
-                }
-            }
-
-            return regions;
-        }
-
-
-        
-        /// <summary>
-        /// Returns a XML String containing a list of the neighbouring regions
-        /// </summary>
-        /// <param name="reqhandle">The regionhandle for the center sim</param>
-        /// <returns>An XML string containing neighbour entities</returns>
-        public string GetXMLNeighbours(ulong reqhandle)
-        {
-            string response = "";
-            SimProfileData central_region = getRegion(reqhandle);
-            SimProfileData neighbour;
-            for (int x = -1; x < 2; x++) for (int y = -1; y < 2; y++)
-                {
-                    if (getRegion(Util.UIntsToLong((uint)((central_region.regionLocX + x) * 256), (uint)(central_region.regionLocY + y) * 256)) != null)
-                    {
-                        neighbour = getRegion(Util.UIntsToLong((uint)((central_region.regionLocX + x) * 256), (uint)(central_region.regionLocY + y) * 256));
-                        response += "<neighbour>";
-                        response += "<sim_ip>" + neighbour.serverIP + "</sim_ip>";
-                        response += "<sim_port>" + neighbour.serverPort.ToString() + "</sim_port>";
-                        response += "<locx>" + neighbour.regionLocX.ToString() + "</locx>";
-                        response += "<locy>" + neighbour.regionLocY.ToString() + "</locy>";
-                        response += "<regionhandle>" + neighbour.regionHandle.ToString() + "</regionhandle>";
-                        response += "</neighbour>";
-
-                    }
-                }
-            return response;
-        }
-
-        /// <summary>
-        /// Performed when a region connects to the grid server initially.
-        /// </summary>
-        /// <param name="request">The XMLRPC Request</param>
-        /// <returns>Startup parameters</returns>
-        public XmlRpcResponse XmlRpcSimulatorLoginMethod(XmlRpcRequest request)
-        {
-
-            XmlRpcResponse response = new XmlRpcResponse();
-            Hashtable responseData = new Hashtable();
-            response.Value = responseData;
-
-            SimProfileData TheSim = null;
-            Hashtable requestData = (Hashtable)request.Params[0];
-
-            if (requestData.ContainsKey("UUID"))
-            {
-                TheSim = getRegion(new LLUUID((string)requestData["UUID"]));
-                
-                logToDB((new LLUUID((string)requestData["UUID"])).ToStringHyphenated(),"XmlRpcSimulatorLoginMethod","", 5,"Region attempting login with UUID.");
-            }
-            else if (requestData.ContainsKey("region_handle"))
-            {
-
-                TheSim = getRegion((ulong)Convert.ToUInt64(requestData["region_handle"]));
-                logToDB((string)requestData["region_handle"], "XmlRpcSimulatorLoginMethod", "", 5, "Region attempting login with regionHandle.");
-            }
-            else
-            {
-                responseData["error"] = "No UUID or region_handle passed to grid server - unable to connect you";
-                return response;
-            }
-
-            if (TheSim == null) // Shouldnt this be in the REST Simulator Set method?
-            {
-                //NEW REGION
-                TheSim = new SimProfileData();
-
-                TheSim.regionRecvKey = config.SimRecvKey;
-                TheSim.regionSendKey = config.SimSendKey;
-                TheSim.regionSecret = config.SimRecvKey;
-                TheSim.regionDataURI = "";
-                TheSim.regionAssetURI = config.DefaultAssetServer;
-                TheSim.regionAssetRecvKey = config.AssetRecvKey;
-                TheSim.regionAssetSendKey = config.AssetSendKey;
-                TheSim.regionUserURI = config.DefaultUserServer;
-                TheSim.regionUserSendKey = config.UserSendKey;
-                TheSim.regionUserRecvKey = config.UserRecvKey;
-
-                TheSim.serverIP = (string)requestData["sim_ip"];
-                TheSim.serverPort = Convert.ToUInt32((string)requestData["sim_port"]);
-                TheSim.httpPort = Convert.ToUInt32((string)requestData["http_port"]);
-                TheSim.remotingPort = Convert.ToUInt32((string)requestData["remoting_port"]);
-                TheSim.regionLocX = Convert.ToUInt32((string)requestData["region_locx"]);
-                TheSim.regionLocY = Convert.ToUInt32((string)requestData["region_locy"]);
-                TheSim.regionLocZ = 0;
-                TheSim.regionMapTextureID = new LLUUID((string)requestData["map-image-id"]);
-
-                TheSim.regionHandle = Helpers.UIntsToLong((TheSim.regionLocX * 256), (TheSim.regionLocY * 256));
-                System.Console.WriteLine("adding region " + TheSim.regionLocX + " , " + TheSim.regionLocY + " , " + TheSim.regionHandle);
-                TheSim.serverURI = "http://" + TheSim.serverIP + ":" + TheSim.serverPort + "/";
-                TheSim.httpServerURI = "http://" + TheSim.serverIP + ":" + TheSim.httpPort + "/";
-
-                Console.WriteLine("NEW SIM: " + TheSim.serverURI);
-                TheSim.regionName = (string)requestData["sim_name"];
-                TheSim.UUID = new LLUUID((string)requestData["UUID"]);
-
-                foreach (KeyValuePair<string, IGridData> kvp in _plugins)
-                {
-                    try
-                    {
-                        DataResponse insertResponse = kvp.Value.AddProfile(TheSim);
-                        switch(insertResponse)
-                        {
-                            case DataResponse.RESPONSE_OK:
-                                OpenSim.Framework.Console.MainLog.Instance.Verbose("New sim creation successful: " + TheSim.regionName);
-                                break;
-                            case DataResponse.RESPONSE_ERROR:
-                                OpenSim.Framework.Console.MainLog.Instance.Warn("New sim creation failed (Error): " + TheSim.regionName);
-                                break;
-                            case DataResponse.RESPONSE_INVALIDCREDENTIALS:
-                                OpenSim.Framework.Console.MainLog.Instance.Warn("New sim creation failed (Invalid Credentials): " + TheSim.regionName);
-                                break;
-                            case DataResponse.RESPONSE_AUTHREQUIRED:
-                                OpenSim.Framework.Console.MainLog.Instance.Warn("New sim creation failed (Authentication Required): " + TheSim.regionName);
-                                break;
-                        }
-                        
-                    }
-                    catch (Exception e)
-                    {
-                        OpenSim.Framework.Console.MainLog.Instance.Warn("Storage: Unable to add region " + TheSim.UUID.ToStringHyphenated() + " via " + kvp.Key);
-                        OpenSim.Framework.Console.MainLog.Instance.Warn(e.ToString());
-                    }
-                }
-
-
-                if (getRegion(TheSim.regionHandle) == null)
-                {
-                    responseData["error"] = "Unable to add new region";
-                    return response;
-                }
-            }
-           
-
-            ArrayList SimNeighboursData = new ArrayList();
-
-            SimProfileData neighbour;
-            Hashtable NeighbourBlock;
-
-            bool fastMode = false; // Only compatible with MySQL right now
-
-            if (fastMode)
-            {
-                Dictionary<ulong, SimProfileData> neighbours = getRegions(TheSim.regionLocX - 1, TheSim.regionLocY - 1, TheSim.regionLocX + 1, TheSim.regionLocY + 1);
-
-                foreach (KeyValuePair<ulong, SimProfileData> aSim in neighbours)
-                {
-                    NeighbourBlock = new Hashtable();
-                    NeighbourBlock["sim_ip"] = aSim.Value.serverIP.ToString();
-                    NeighbourBlock["sim_port"] = aSim.Value.serverPort.ToString();
-                    NeighbourBlock["region_locx"] = aSim.Value.regionLocX.ToString();
-                    NeighbourBlock["region_locy"] = aSim.Value.regionLocY.ToString();
-                    NeighbourBlock["UUID"] = aSim.Value.UUID.ToString();
-
-                    if (aSim.Value.UUID != TheSim.UUID)
-                        SimNeighboursData.Add(NeighbourBlock);
-                }
-            }
-            else
-            {
-                for (int x = -1; x < 2; x++) for (int y = -1; y < 2; y++)
-                    {
-                        if (getRegion(Helpers.UIntsToLong((uint)((TheSim.regionLocX + x) * 256), (uint)(TheSim.regionLocY + y) * 256)) != null)
-                        {
-                            neighbour = getRegion(Helpers.UIntsToLong((uint)((TheSim.regionLocX + x) * 256), (uint)(TheSim.regionLocY + y) * 256));
-
-                            NeighbourBlock = new Hashtable();
-                            NeighbourBlock["sim_ip"] = neighbour.serverIP;
-                            NeighbourBlock["sim_port"] = neighbour.serverPort.ToString();
-                            NeighbourBlock["region_locx"] = neighbour.regionLocX.ToString();
-                            NeighbourBlock["region_locy"] = neighbour.regionLocY.ToString();
-                            NeighbourBlock["UUID"] = neighbour.UUID.ToString();
-
-                            if (neighbour.UUID != TheSim.UUID) SimNeighboursData.Add(NeighbourBlock);
-                        }
-                    }
-            }
-
-            responseData["UUID"] = TheSim.UUID.ToString();
-            responseData["region_locx"] = TheSim.regionLocX.ToString();
-            responseData["region_locy"] = TheSim.regionLocY.ToString();
-            responseData["regionname"] = TheSim.regionName;
-            responseData["estate_id"] = "1";
-            responseData["neighbours"] = SimNeighboursData;
-
-            responseData["sim_ip"] = TheSim.serverIP;
-            responseData["sim_port"] = TheSim.serverPort.ToString();
-            responseData["asset_url"] = TheSim.regionAssetURI;
-            responseData["asset_sendkey"] = TheSim.regionAssetSendKey;
-            responseData["asset_recvkey"] = TheSim.regionAssetRecvKey;
-            responseData["user_url"] = TheSim.regionUserURI;
-            responseData["user_sendkey"] = TheSim.regionUserSendKey;
-            responseData["user_recvkey"] = TheSim.regionUserRecvKey;
-            responseData["authkey"] = TheSim.regionSecret;
-
-            // New! If set, use as URL to local sim storage (ie http://remotehost/region.yap)
-            responseData["data_uri"] = TheSim.regionDataURI;
-        
-
-        return response;
-        }
-
-        public XmlRpcResponse XmlRpcSimulatorDataRequestMethod(XmlRpcRequest request)
-        {
-            Hashtable requestData = (Hashtable)request.Params[0];
-            Hashtable responseData = new Hashtable();
-            SimProfileData simData = null;
-            if (requestData.ContainsKey("region_UUID"))
-            {
-                simData = getRegion(new LLUUID((string)requestData["region_UUID"]));
-            }
-            else if (requestData.ContainsKey("region_handle"))
-            {
-                Console.WriteLine("requesting data for region " + (string)requestData["region_handle"]);
-                simData = getRegion(Convert.ToUInt64((string)requestData["region_handle"]));
-            }
-
-            if (simData == null)
-            {
-                //Sim does not exist
-                Console.WriteLine("region not found");
-                responseData["error"] = "Sim does not exist";
-            }
-            else
-            {
-                Console.WriteLine("found region");
-                responseData["sim_ip"] = simData.serverIP;
-                responseData["sim_port"] = simData.serverPort.ToString();
-                responseData["http_port"] = simData.httpPort.ToString();
-                responseData["remoting_port"] = simData.remotingPort.ToString();
-                responseData["region_locx"] = simData.regionLocX.ToString() ;
-                responseData["region_locy"] = simData.regionLocY.ToString();
-                responseData["region_UUID"] = simData.UUID.UUID.ToString();
-                responseData["region_name"] = simData.regionName;
-            }
-
-            XmlRpcResponse response = new XmlRpcResponse();
-            response.Value = responseData;
-            return response;
-        }
-
-        public XmlRpcResponse XmlRpcMapBlockMethod(XmlRpcRequest request)
-        {
-            int xmin=980, ymin=980, xmax=1020, ymax=1020;
-
-            Hashtable requestData = (Hashtable)request.Params[0];
-            if (requestData.ContainsKey("xmin"))
-            {
-                xmin = (Int32)requestData["xmin"];
-            }
-            if (requestData.ContainsKey("ymin"))
-            {
-                ymin = (Int32)requestData["ymin"];
-            }
-            if (requestData.ContainsKey("xmax"))
-            {
-                xmax = (Int32)requestData["xmax"];
-            }
-            if (requestData.ContainsKey("ymax"))
-            {
-                ymax = (Int32)requestData["ymax"];
-            }
-
-            XmlRpcResponse response = new XmlRpcResponse();
-            Hashtable responseData = new Hashtable();
-            response.Value = responseData;
-            IList simProfileList = new ArrayList();
-
-            bool fastMode = false; // MySQL Only
-
-            if (fastMode)
-            {
-                Dictionary<ulong, SimProfileData> neighbours = getRegions((uint)xmin, (uint)ymin, (uint)xmax, (uint)ymax);
-
-                foreach (KeyValuePair<ulong, SimProfileData> aSim in neighbours)
-                {
-                    Hashtable simProfileBlock = new Hashtable();
-                    simProfileBlock["x"] = aSim.Value.regionLocX.ToString();
-                    simProfileBlock["y"] = aSim.Value.regionLocY.ToString();
-                    System.Console.WriteLine("send neighbour info for " + aSim.Value.regionLocX.ToString() + " , " + aSim.Value.regionLocY.ToString());
-                    simProfileBlock["name"] = aSim.Value.regionName;
-                    simProfileBlock["access"] = 21;
-                    simProfileBlock["region-flags"] = 512;
-                    simProfileBlock["water-height"] = 0;
-                    simProfileBlock["agents"] = 1;
-                    simProfileBlock["map-image-id"] = aSim.Value.regionMapTextureID.ToString();
-
-                    // For Sugilite compatibility
-                    simProfileBlock["regionhandle"] = aSim.Value.regionHandle.ToString();
-                    simProfileBlock["sim_ip"] = aSim.Value.serverIP.ToString();
-                    simProfileBlock["sim_port"] = aSim.Value.serverPort.ToString();
-                    simProfileBlock["sim_uri"] = aSim.Value.serverURI.ToString();
-                    simProfileBlock["uuid"] = aSim.Value.UUID.ToStringHyphenated();
-
-                    simProfileList.Add(simProfileBlock);
-                }
-                MainLog.Instance.Verbose("World map request processed, returned " + simProfileList.Count.ToString() + " region(s) in range via FastMode");
-            }
-            else
-            {
-                SimProfileData simProfile;
-                for (int x = xmin; x < xmax+1; x++)
-                {
-                    for (int y = ymin; y < ymax+1; y++)
-                    {
-                        ulong regHandle = Helpers.UIntsToLong((uint)(x * 256), (uint)(y * 256));
-                        simProfile = getRegion(regHandle);
-                        if (simProfile != null)
-                        {
-                            Hashtable simProfileBlock = new Hashtable();
-                            simProfileBlock["x"] = x;
-                            simProfileBlock["y"] = y;
-                            simProfileBlock["name"] = simProfile.regionName;
-                            simProfileBlock["access"] = 0;
-                            simProfileBlock["region-flags"] = 0;
-                            simProfileBlock["water-height"] = 20;
-                            simProfileBlock["agents"] = 1;
-                            simProfileBlock["map-image-id"] = simProfile.regionMapTextureID.ToStringHyphenated();
-
-                            // For Sugilite compatibility
-                            simProfileBlock["regionhandle"] = simProfile.regionHandle.ToString();
-                            simProfileBlock["sim_ip"] = simProfile.serverIP.ToString();
-                            simProfileBlock["sim_port"] = simProfile.serverPort.ToString();
-                            simProfileBlock["sim_uri"] = simProfile.serverURI.ToString();
-                            simProfileBlock["uuid"] = simProfile.UUID.ToStringHyphenated();
-
-                            simProfileList.Add(simProfileBlock);
-                        }
-                    }
-                }
-                MainLog.Instance.Verbose("World map request processed, returned " + simProfileList.Count.ToString() + " region(s) in range via Standard Mode");
-            }
-
-            responseData["sim-profiles"] = simProfileList;
-
-            return response;
-        }
-
-
-
-        /// <summary>
-        /// Performs a REST Get Operation
-        /// </summary>
-        /// <param name="request"></param>
-        /// <param name="path"></param>
-        /// <param name="param"></param>
-        /// <returns></returns>
-        public string RestGetRegionMethod(string request, string path, string param)
-        {
-            return RestGetSimMethod("", "/sims/", param);
-        }
-
-        /// <summary>
-        /// Performs a REST Set Operation
-        /// </summary>
-        /// <param name="request"></param>
-        /// <param name="path"></param>
-        /// <param name="param"></param>
-        /// <returns></returns>
-        public string RestSetRegionMethod(string request, string path, string param)
-        {
-            return RestSetSimMethod("", "/sims/", param);
-        }
-
-        /// <summary>
-        /// Returns information about a sim via a REST Request
-        /// </summary>
-        /// <param name="request"></param>
-        /// <param name="path"></param>
-        /// <param name="param"></param>
-        /// <returns>Information about the sim in XML</returns>
-        public string RestGetSimMethod(string request, string path, string param)
-        {
-            string respstring = String.Empty;
-
-            SimProfileData TheSim;
-            LLUUID UUID = new LLUUID(param);
-            TheSim = getRegion(UUID);
-
-            if (!(TheSim == null))
-            {
-                respstring = "<Root>";
-                respstring += "<authkey>" + TheSim.regionSendKey + "</authkey>";
-                respstring += "<sim>";
-                respstring += "<uuid>" + TheSim.UUID.ToString() + "</uuid>";
-                respstring += "<regionname>" + TheSim.regionName + "</regionname>";
-                respstring += "<sim_ip>" + TheSim.serverIP + "</sim_ip>";
-                respstring += "<sim_port>" + TheSim.serverPort.ToString() + "</sim_port>";
-                respstring += "<region_locx>" + TheSim.regionLocX.ToString() + "</region_locx>";
-                respstring += "<region_locy>" + TheSim.regionLocY.ToString() + "</region_locy>";
-                respstring += "<estate_id>1</estate_id>";
-                respstring += "</sim>";
-                respstring += "</Root>";
-            }
-
-            return respstring;
-        }
-
-        /// <summary>
-        /// Creates or updates a sim via a REST Method Request
-        /// BROKEN with SQL Update
-        /// </summary>
-        /// <param name="request"></param>
-        /// <param name="path"></param>
-        /// <param name="param"></param>
-        /// <returns>"OK" or an error</returns>
-        public string RestSetSimMethod(string request, string path, string param)
-        {
-            Console.WriteLine("Processing region update via REST method");
-            SimProfileData TheSim;
-            TheSim = getRegion(new LLUUID(param));
-            if ((TheSim) == null)
-            {
-                TheSim = new SimProfileData();
-                LLUUID UUID = new LLUUID(param);
-                TheSim.UUID = UUID;
-                TheSim.regionRecvKey = config.SimRecvKey;
-            }
-
-            XmlDocument doc = new XmlDocument();
-            doc.LoadXml(request);
-            XmlNode rootnode = doc.FirstChild;
-            XmlNode authkeynode = rootnode.ChildNodes[0];
-            if (authkeynode.Name != "authkey")
-            {
-                return "ERROR! bad XML - expected authkey tag";
-            }
-
-            XmlNode simnode = rootnode.ChildNodes[1];
-            if (simnode.Name != "sim")
-            {
-                return "ERROR! bad XML - expected sim tag";
-            }
-
-            //TheSim.regionSendKey = Cfg;
-            TheSim.regionRecvKey = config.SimRecvKey;
-            TheSim.regionSendKey = config.SimSendKey;
-            TheSim.regionSecret = config.SimRecvKey;
-            TheSim.regionDataURI = "";
-            TheSim.regionAssetURI = config.DefaultAssetServer;
-            TheSim.regionAssetRecvKey = config.AssetRecvKey;
-            TheSim.regionAssetSendKey = config.AssetSendKey;
-            TheSim.regionUserURI = config.DefaultUserServer;
-            TheSim.regionUserSendKey = config.UserSendKey;
-            TheSim.regionUserRecvKey = config.UserRecvKey;
-
-
-            for (int i = 0; i < simnode.ChildNodes.Count; i++)
-            {
-                switch (simnode.ChildNodes[i].Name)
-                {
-                    case "regionname":
-                        TheSim.regionName = simnode.ChildNodes[i].InnerText;
-                        break;
-
-                    case "sim_ip":
-                        TheSim.serverIP = simnode.ChildNodes[i].InnerText;
-                        break;
-
-                    case "sim_port":
-                        TheSim.serverPort = Convert.ToUInt32(simnode.ChildNodes[i].InnerText);
-                        break;
-
-                    case "region_locx":
-                        TheSim.regionLocX = Convert.ToUInt32((string)simnode.ChildNodes[i].InnerText);
-                        TheSim.regionHandle = Helpers.UIntsToLong((TheSim.regionLocX * 256), (TheSim.regionLocY * 256));
-                        break;
-
-                    case "region_locy":
-                        TheSim.regionLocY = Convert.ToUInt32((string)simnode.ChildNodes[i].InnerText);
-                        TheSim.regionHandle = Helpers.UIntsToLong((TheSim.regionLocX * 256), (TheSim.regionLocY * 256));
-                        break;
-                }
-            }
-
-            TheSim.serverURI = "http://" + TheSim.serverIP + ":" + TheSim.serverPort + "/";
-
-            bool requirePublic = false;
-            bool requireValid = true;
-
-            if (requirePublic && (TheSim.serverIP.StartsWith("172.16") || TheSim.serverIP.StartsWith("192.168") || TheSim.serverIP.StartsWith("10.") || TheSim.serverIP.StartsWith("0.") || TheSim.serverIP.StartsWith("255.")))
-            {
-                return "ERROR! Servers must register with public addresses.";
-            }
-
-            if (requireValid && (TheSim.serverIP.StartsWith("0.")))
-            {
-                return "ERROR! 0.*.*.* Addresses are invalid, please check your server config and try again";
-            }
-
-            
-            try
-            {
-                MainLog.Instance.Verbose("Updating / adding via " + _plugins.Count + " storage provider(s) registered.");
-                foreach (KeyValuePair<string, IGridData> kvp in _plugins)
-                {
-                    try
-                    {
-                        //Check reservations
-                        ReservationData reserveData = kvp.Value.GetReservationAtPoint(TheSim.regionLocX, TheSim.regionLocY);
-                        if ((reserveData != null && reserveData.gridRecvKey == TheSim.regionRecvKey) || (reserveData == null && authkeynode.InnerText != TheSim.regionRecvKey))
-                        {
-                            kvp.Value.AddProfile(TheSim);
-                            MainLog.Instance.Verbose("New sim added to grid (" + TheSim.regionName + ")");
-                            logToDB(TheSim.UUID.ToStringHyphenated(), "RestSetSimMethod", "", 5, "Region successfully updated and connected to grid.");
-                        }
-                        else
-                        {
-                            MainLog.Instance.Warn("Unable to update region (RestSetSimMethod): Incorrect reservation auth key.");// Wanted: " + reserveData.gridRecvKey + ", Got: " + TheSim.regionRecvKey + ".");
-                            return "Unable to update region (RestSetSimMethod): Incorrect auth key.";
-                        }
-                    }
-                    catch (Exception e)
-                    {
-                        MainLog.Instance.Verbose("getRegionPlugin Handle " + kvp.Key + " unable to add new sim: " + e.ToString());
-                    }
-                }
-                return "OK";
-            }
-            catch (Exception e)
-            {
-                return "ERROR! Could not save to database! (" + e.ToString() + ")";
-            }
-        }
-
-    }
-}
+/*
+* Copyright (c) Contributors, http://www.openmetaverse.org/
+* See CONTRIBUTORS.TXT for a full list of copyright holders.
+*
+* Redistribution and use in source and binary forms, with or without
+* modification, are permitted provided that the following conditions are met:
+*     * Redistributions of source code must retain the above copyright
+*       notice, this list of conditions and the following disclaimer.
+*     * Redistributions in binary form must reproduce the above copyright
+*       notice, this list of conditions and the following disclaimer in the
+*       documentation and/or other materials provided with the distribution.
+*     * Neither the name of the OpenSim Project nor the
+*       names of its contributors may be used to endorse or promote products
+*       derived from this software without specific prior written permission.
+*
+* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS AND ANY
+* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
+* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+* 
+*/
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using System.Reflection;
+using System.Xml;
+using libsecondlife;
+using Nwc.XmlRpc;
+using OpenSim.Framework.Console;
+using OpenSim.Framework.Data;
+using OpenSim.Framework.Interfaces;
+using OpenSim.Framework.Utilities;
+
+namespace OpenSim.Grid.GridServer
+{
+    class GridManager
+    {
+        Dictionary<string, IGridData> _plugins = new Dictionary<string, IGridData>();
+        Dictionary<string, ILogData> _logplugins = new Dictionary<string, ILogData>();
+
+        public GridConfig config;
+
+        /// <summary>
+        /// Adds a new grid server plugin - grid servers will be requested in the order they were loaded.
+        /// </summary>
+        /// <param name="FileName">The filename to the grid server plugin DLL</param>
+        public void AddPlugin(string FileName)
+		{
+            MainLog.Instance.Verbose("Storage: Attempting to load " + FileName);
+			Assembly pluginAssembly = Assembly.LoadFrom(FileName);
+
+            MainLog.Instance.Verbose("Storage: Found " + pluginAssembly.GetTypes().Length + " interfaces.");
+			foreach (Type pluginType in pluginAssembly.GetTypes())
+			{
+                if (!pluginType.IsAbstract)
+                {
+                    // Regions go here
+                    Type typeInterface = pluginType.GetInterface("IGridData", true);
+
+                    if (typeInterface != null)
+                    {
+                        IGridData plug = (IGridData)Activator.CreateInstance(pluginAssembly.GetType(pluginType.ToString()));
+                        plug.Initialise();
+                        this._plugins.Add(plug.getName(), plug);
+                        MainLog.Instance.Verbose("Storage: Added IGridData Interface");
+                    }
+
+                    typeInterface = null;
+
+                    // Logs go here
+                    typeInterface = pluginType.GetInterface("ILogData", true);
+
+                    if (typeInterface != null)
+                    {
+                        ILogData plug = (ILogData)Activator.CreateInstance(pluginAssembly.GetType(pluginType.ToString()));
+                        plug.Initialise();
+                        this._logplugins.Add(plug.getName(), plug);
+                        MainLog.Instance.Verbose( "Storage: Added ILogData Interface");
+                    }
+
+                    typeInterface = null;
+                }
+			}
+			
+			pluginAssembly = null; 
+        }
+
+        /// <summary>
+        /// Logs a piece of information to the database
+        /// </summary>
+        /// <param name="target">What you were operating on (in grid server, this will likely be the region UUIDs)</param>
+        /// <param name="method">Which method is being called?</param>
+        /// <param name="args">What arguments are being passed?</param>
+        /// <param name="priority">How high priority is this? 1 = Max, 6 = Verbose</param>
+        /// <param name="message">The message to log</param>
+        private void logToDB(string target, string method, string args, int priority, string message)
+        {
+            foreach (KeyValuePair<string, ILogData> kvp in _logplugins)
+            {
+                try
+                {
+                    kvp.Value.saveLog("Gridserver", target, method, args, priority, message);
+                }
+                catch (Exception)
+                {
+                    MainLog.Instance.Warn("Storage: unable to write log via " + kvp.Key);
+                }
+            }
+        }
+
+        /// <summary>
+        /// Returns a region by argument
+        /// </summary>
+        /// <param name="uuid">A UUID key of the region to return</param>
+        /// <returns>A SimProfileData for the region</returns>
+        public SimProfileData getRegion(LLUUID uuid)
+        {
+            foreach(KeyValuePair<string,IGridData> kvp in _plugins) {
+                try
+                {
+                    return kvp.Value.GetProfileByLLUUID(uuid);
+                }
+                catch (Exception e)
+                {
+                    MainLog.Instance.Warn("Message from Storage: " + e.Message);
+                }
+            }
+            return null;
+        }
+
+        /// <summary>
+        /// Returns a region by argument
+        /// </summary>
+        /// <param name="uuid">A regionHandle of the region to return</param>
+        /// <returns>A SimProfileData for the region</returns>
+        public SimProfileData getRegion(ulong handle)
+        {
+            foreach (KeyValuePair<string, IGridData> kvp in _plugins)
+            {
+                try
+                {
+                    return kvp.Value.GetProfileByHandle(handle);
+                }
+                catch
+                {
+                    MainLog.Instance.Warn("Storage: Unable to find region " + handle.ToString() + " via " + kvp.Key);
+                }
+            }
+            return null;
+        }
+
+        public Dictionary<ulong, SimProfileData> getRegions(uint xmin, uint ymin, uint xmax, uint ymax)
+        {
+            Dictionary<ulong, SimProfileData> regions = new Dictionary<ulong, SimProfileData>();
+
+            SimProfileData[] neighbours;
+
+            foreach (KeyValuePair<string, IGridData> kvp in _plugins)
+            {
+                try
+                {
+                    neighbours = kvp.Value.GetProfilesInRange(xmin, ymin, xmax, ymax);
+                    foreach (SimProfileData neighbour in neighbours)
+                    {
+                        regions[neighbour.regionHandle] = neighbour;
+                    }
+                }
+                catch
+                {
+                    MainLog.Instance.Warn("Storage: Unable to query regionblock via " + kvp.Key);
+                }
+            }
+
+            return regions;
+        }
+
+
+        
+        /// <summary>
+        /// Returns a XML String containing a list of the neighbouring regions
+        /// </summary>
+        /// <param name="reqhandle">The regionhandle for the center sim</param>
+        /// <returns>An XML string containing neighbour entities</returns>
+        public string GetXMLNeighbours(ulong reqhandle)
+        {
+            string response = "";
+            SimProfileData central_region = getRegion(reqhandle);
+            SimProfileData neighbour;
+            for (int x = -1; x < 2; x++) for (int y = -1; y < 2; y++)
+                {
+                    if (getRegion(Util.UIntsToLong((uint)((central_region.regionLocX + x) * 256), (uint)(central_region.regionLocY + y) * 256)) != null)
+                    {
+                        neighbour = getRegion(Util.UIntsToLong((uint)((central_region.regionLocX + x) * 256), (uint)(central_region.regionLocY + y) * 256));
+                        response += "<neighbour>";
+                        response += "<sim_ip>" + neighbour.serverIP + "</sim_ip>";
+                        response += "<sim_port>" + neighbour.serverPort.ToString() + "</sim_port>";
+                        response += "<locx>" + neighbour.regionLocX.ToString() + "</locx>";
+                        response += "<locy>" + neighbour.regionLocY.ToString() + "</locy>";
+                        response += "<regionhandle>" + neighbour.regionHandle.ToString() + "</regionhandle>";
+                        response += "</neighbour>";
+
+                    }
+                }
+            return response;
+        }
+
+        /// <summary>
+        /// Performed when a region connects to the grid server initially.
+        /// </summary>
+        /// <param name="request">The XMLRPC Request</param>
+        /// <returns>Startup parameters</returns>
+        public XmlRpcResponse XmlRpcSimulatorLoginMethod(XmlRpcRequest request)
+        {
+
+            XmlRpcResponse response = new XmlRpcResponse();
+            Hashtable responseData = new Hashtable();
+            response.Value = responseData;
+
+            SimProfileData TheSim = null;
+            Hashtable requestData = (Hashtable)request.Params[0];
+
+            if (requestData.ContainsKey("UUID"))
+            {
+                TheSim = getRegion(new LLUUID((string)requestData["UUID"]));
+                
+                logToDB((new LLUUID((string)requestData["UUID"])).ToStringHyphenated(),"XmlRpcSimulatorLoginMethod","", 5,"Region attempting login with UUID.");
+            }
+            else if (requestData.ContainsKey("region_handle"))
+            {
+
+                TheSim = getRegion((ulong)Convert.ToUInt64(requestData["region_handle"]));
+                logToDB((string)requestData["region_handle"], "XmlRpcSimulatorLoginMethod", "", 5, "Region attempting login with regionHandle.");
+            }
+            else
+            {
+                responseData["error"] = "No UUID or region_handle passed to grid server - unable to connect you";
+                return response;
+            }
+
+            if (TheSim == null) // Shouldnt this be in the REST Simulator Set method?
+            {
+                //NEW REGION
+                TheSim = new SimProfileData();
+
+                TheSim.regionRecvKey = config.SimRecvKey;
+                TheSim.regionSendKey = config.SimSendKey;
+                TheSim.regionSecret = config.SimRecvKey;
+                TheSim.regionDataURI = "";
+                TheSim.regionAssetURI = config.DefaultAssetServer;
+                TheSim.regionAssetRecvKey = config.AssetRecvKey;
+                TheSim.regionAssetSendKey = config.AssetSendKey;
+                TheSim.regionUserURI = config.DefaultUserServer;
+                TheSim.regionUserSendKey = config.UserSendKey;
+                TheSim.regionUserRecvKey = config.UserRecvKey;
+
+                TheSim.serverIP = (string)requestData["sim_ip"];
+                TheSim.serverPort = Convert.ToUInt32((string)requestData["sim_port"]);
+                TheSim.httpPort = Convert.ToUInt32((string)requestData["http_port"]);
+                TheSim.remotingPort = Convert.ToUInt32((string)requestData["remoting_port"]);
+                TheSim.regionLocX = Convert.ToUInt32((string)requestData["region_locx"]);
+                TheSim.regionLocY = Convert.ToUInt32((string)requestData["region_locy"]);
+                TheSim.regionLocZ = 0;
+                TheSim.regionMapTextureID = new LLUUID((string)requestData["map-image-id"]);
+
+                TheSim.regionHandle = Helpers.UIntsToLong((TheSim.regionLocX * 256), (TheSim.regionLocY * 256));
+                System.Console.WriteLine("adding region " + TheSim.regionLocX + " , " + TheSim.regionLocY + " , " + TheSim.regionHandle);
+                TheSim.serverURI = "http://" + TheSim.serverIP + ":" + TheSim.serverPort + "/";
+                TheSim.httpServerURI = "http://" + TheSim.serverIP + ":" + TheSim.httpPort + "/";
+
+                Console.WriteLine("NEW SIM: " + TheSim.serverURI);
+                TheSim.regionName = (string)requestData["sim_name"];
+                TheSim.UUID = new LLUUID((string)requestData["UUID"]);
+
+                foreach (KeyValuePair<string, IGridData> kvp in _plugins)
+                {
+                    try
+                    {
+                        DataResponse insertResponse = kvp.Value.AddProfile(TheSim);
+                        switch(insertResponse)
+                        {
+                            case DataResponse.RESPONSE_OK:
+                                OpenSim.Framework.Console.MainLog.Instance.Verbose("New sim creation successful: " + TheSim.regionName);
+                                break;
+                            case DataResponse.RESPONSE_ERROR:
+                                OpenSim.Framework.Console.MainLog.Instance.Warn("New sim creation failed (Error): " + TheSim.regionName);
+                                break;
+                            case DataResponse.RESPONSE_INVALIDCREDENTIALS:
+                                OpenSim.Framework.Console.MainLog.Instance.Warn("New sim creation failed (Invalid Credentials): " + TheSim.regionName);
+                                break;
+                            case DataResponse.RESPONSE_AUTHREQUIRED:
+                                OpenSim.Framework.Console.MainLog.Instance.Warn("New sim creation failed (Authentication Required): " + TheSim.regionName);
+                                break;
+                        }
+                        
+                    }
+                    catch (Exception e)
+                    {
+                        OpenSim.Framework.Console.MainLog.Instance.Warn("Storage: Unable to add region " + TheSim.UUID.ToStringHyphenated() + " via " + kvp.Key);
+                        OpenSim.Framework.Console.MainLog.Instance.Warn(e.ToString());
+                    }
+                }
+
+
+                if (getRegion(TheSim.regionHandle) == null)
+                {
+                    responseData["error"] = "Unable to add new region";
+                    return response;
+                }
+            }
+           
+
+            ArrayList SimNeighboursData = new ArrayList();
+
+            SimProfileData neighbour;
+            Hashtable NeighbourBlock;
+
+            bool fastMode = false; // Only compatible with MySQL right now
+
+            if (fastMode)
+            {
+                Dictionary<ulong, SimProfileData> neighbours = getRegions(TheSim.regionLocX - 1, TheSim.regionLocY - 1, TheSim.regionLocX + 1, TheSim.regionLocY + 1);
+
+                foreach (KeyValuePair<ulong, SimProfileData> aSim in neighbours)
+                {
+                    NeighbourBlock = new Hashtable();
+                    NeighbourBlock["sim_ip"] = aSim.Value.serverIP.ToString();
+                    NeighbourBlock["sim_port"] = aSim.Value.serverPort.ToString();
+                    NeighbourBlock["region_locx"] = aSim.Value.regionLocX.ToString();
+                    NeighbourBlock["region_locy"] = aSim.Value.regionLocY.ToString();
+                    NeighbourBlock["UUID"] = aSim.Value.UUID.ToString();
+
+                    if (aSim.Value.UUID != TheSim.UUID)
+                        SimNeighboursData.Add(NeighbourBlock);
+                }
+            }
+            else
+            {
+                for (int x = -1; x < 2; x++) for (int y = -1; y < 2; y++)
+                    {
+                        if (getRegion(Helpers.UIntsToLong((uint)((TheSim.regionLocX + x) * 256), (uint)(TheSim.regionLocY + y) * 256)) != null)
+                        {
+                            neighbour = getRegion(Helpers.UIntsToLong((uint)((TheSim.regionLocX + x) * 256), (uint)(TheSim.regionLocY + y) * 256));
+
+                            NeighbourBlock = new Hashtable();
+                            NeighbourBlock["sim_ip"] = neighbour.serverIP;
+                            NeighbourBlock["sim_port"] = neighbour.serverPort.ToString();
+                            NeighbourBlock["region_locx"] = neighbour.regionLocX.ToString();
+                            NeighbourBlock["region_locy"] = neighbour.regionLocY.ToString();
+                            NeighbourBlock["UUID"] = neighbour.UUID.ToString();
+
+                            if (neighbour.UUID != TheSim.UUID) SimNeighboursData.Add(NeighbourBlock);
+                        }
+                    }
+            }
+
+            responseData["UUID"] = TheSim.UUID.ToString();
+            responseData["region_locx"] = TheSim.regionLocX.ToString();
+            responseData["region_locy"] = TheSim.regionLocY.ToString();
+            responseData["regionname"] = TheSim.regionName;
+            responseData["estate_id"] = "1";
+            responseData["neighbours"] = SimNeighboursData;
+
+            responseData["sim_ip"] = TheSim.serverIP;
+            responseData["sim_port"] = TheSim.serverPort.ToString();
+            responseData["asset_url"] = TheSim.regionAssetURI;
+            responseData["asset_sendkey"] = TheSim.regionAssetSendKey;
+            responseData["asset_recvkey"] = TheSim.regionAssetRecvKey;
+            responseData["user_url"] = TheSim.regionUserURI;
+            responseData["user_sendkey"] = TheSim.regionUserSendKey;
+            responseData["user_recvkey"] = TheSim.regionUserRecvKey;
+            responseData["authkey"] = TheSim.regionSecret;
+
+            // New! If set, use as URL to local sim storage (ie http://remotehost/region.yap)
+            responseData["data_uri"] = TheSim.regionDataURI;
+        
+
+        return response;
+        }
+
+        public XmlRpcResponse XmlRpcSimulatorDataRequestMethod(XmlRpcRequest request)
+        {
+            Hashtable requestData = (Hashtable)request.Params[0];
+            Hashtable responseData = new Hashtable();
+            SimProfileData simData = null;
+            if (requestData.ContainsKey("region_UUID"))
+            {
+                simData = getRegion(new LLUUID((string)requestData["region_UUID"]));
+            }
+            else if (requestData.ContainsKey("region_handle"))
+            {
+                Console.WriteLine("requesting data for region " + (string)requestData["region_handle"]);
+                simData = getRegion(Convert.ToUInt64((string)requestData["region_handle"]));
+            }
+
+            if (simData == null)
+            {
+                //Sim does not exist
+                Console.WriteLine("region not found");
+                responseData["error"] = "Sim does not exist";
+            }
+            else
+            {
+                Console.WriteLine("found region");
+                responseData["sim_ip"] = simData.serverIP;
+                responseData["sim_port"] = simData.serverPort.ToString();
+                responseData["http_port"] = simData.httpPort.ToString();
+                responseData["remoting_port"] = simData.remotingPort.ToString();
+                responseData["region_locx"] = simData.regionLocX.ToString() ;
+                responseData["region_locy"] = simData.regionLocY.ToString();
+                responseData["region_UUID"] = simData.UUID.UUID.ToString();
+                responseData["region_name"] = simData.regionName;
+            }
+
+            XmlRpcResponse response = new XmlRpcResponse();
+            response.Value = responseData;
+            return response;
+        }
+
+        public XmlRpcResponse XmlRpcMapBlockMethod(XmlRpcRequest request)
+        {
+            int xmin=980, ymin=980, xmax=1020, ymax=1020;
+
+            Hashtable requestData = (Hashtable)request.Params[0];
+            if (requestData.ContainsKey("xmin"))
+            {
+                xmin = (Int32)requestData["xmin"];
+            }
+            if (requestData.ContainsKey("ymin"))
+            {
+                ymin = (Int32)requestData["ymin"];
+            }
+            if (requestData.ContainsKey("xmax"))
+            {
+                xmax = (Int32)requestData["xmax"];
+            }
+            if (requestData.ContainsKey("ymax"))
+            {
+                ymax = (Int32)requestData["ymax"];
+            }
+
+            XmlRpcResponse response = new XmlRpcResponse();
+            Hashtable responseData = new Hashtable();
+            response.Value = responseData;
+            IList simProfileList = new ArrayList();
+
+            bool fastMode = false; // MySQL Only
+
+            if (fastMode)
+            {
+                Dictionary<ulong, SimProfileData> neighbours = getRegions((uint)xmin, (uint)ymin, (uint)xmax, (uint)ymax);
+
+                foreach (KeyValuePair<ulong, SimProfileData> aSim in neighbours)
+                {
+                    Hashtable simProfileBlock = new Hashtable();
+                    simProfileBlock["x"] = aSim.Value.regionLocX.ToString();
+                    simProfileBlock["y"] = aSim.Value.regionLocY.ToString();
+                    System.Console.WriteLine("send neighbour info for " + aSim.Value.regionLocX.ToString() + " , " + aSim.Value.regionLocY.ToString());
+                    simProfileBlock["name"] = aSim.Value.regionName;
+                    simProfileBlock["access"] = 21;
+                    simProfileBlock["region-flags"] = 512;
+                    simProfileBlock["water-height"] = 0;
+                    simProfileBlock["agents"] = 1;
+                    simProfileBlock["map-image-id"] = aSim.Value.regionMapTextureID.ToString();
+
+                    // For Sugilite compatibility
+                    simProfileBlock["regionhandle"] = aSim.Value.regionHandle.ToString();
+                    simProfileBlock["sim_ip"] = aSim.Value.serverIP.ToString();
+                    simProfileBlock["sim_port"] = aSim.Value.serverPort.ToString();
+                    simProfileBlock["sim_uri"] = aSim.Value.serverURI.ToString();
+                    simProfileBlock["uuid"] = aSim.Value.UUID.ToStringHyphenated();
+
+                    simProfileList.Add(simProfileBlock);
+                }
+                MainLog.Instance.Verbose("World map request processed, returned " + simProfileList.Count.ToString() + " region(s) in range via FastMode");
+            }
+            else
+            {
+                SimProfileData simProfile;
+                for (int x = xmin; x < xmax+1; x++)
+                {
+                    for (int y = ymin; y < ymax+1; y++)
+                    {
+                        ulong regHandle = Helpers.UIntsToLong((uint)(x * 256), (uint)(y * 256));
+                        simProfile = getRegion(regHandle);
+                        if (simProfile != null)
+                        {
+                            Hashtable simProfileBlock = new Hashtable();
+                            simProfileBlock["x"] = x;
+                            simProfileBlock["y"] = y;
+                            simProfileBlock["name"] = simProfile.regionName;
+                            simProfileBlock["access"] = 0;
+                            simProfileBlock["region-flags"] = 0;
+                            simProfileBlock["water-height"] = 20;
+                            simProfileBlock["agents"] = 1;
+                            simProfileBlock["map-image-id"] = simProfile.regionMapTextureID.ToStringHyphenated();
+
+                            // For Sugilite compatibility
+                            simProfileBlock["regionhandle"] = simProfile.regionHandle.ToString();
+                            simProfileBlock["sim_ip"] = simProfile.serverIP.ToString();
+                            simProfileBlock["sim_port"] = simProfile.serverPort.ToString();
+                            simProfileBlock["sim_uri"] = simProfile.serverURI.ToString();
+                            simProfileBlock["uuid"] = simProfile.UUID.ToStringHyphenated();
+
+                            simProfileList.Add(simProfileBlock);
+                        }
+                    }
+                }
+                MainLog.Instance.Verbose("World map request processed, returned " + simProfileList.Count.ToString() + " region(s) in range via Standard Mode");
+            }
+
+            responseData["sim-profiles"] = simProfileList;
+
+            return response;
+        }
+
+
+
+        /// <summary>
+        /// Performs a REST Get Operation
+        /// </summary>
+        /// <param name="request"></param>
+        /// <param name="path"></param>
+        /// <param name="param"></param>
+        /// <returns></returns>
+        public string RestGetRegionMethod(string request, string path, string param)
+        {
+            return RestGetSimMethod("", "/sims/", param);
+        }
+
+        /// <summary>
+        /// Performs a REST Set Operation
+        /// </summary>
+        /// <param name="request"></param>
+        /// <param name="path"></param>
+        /// <param name="param"></param>
+        /// <returns></returns>
+        public string RestSetRegionMethod(string request, string path, string param)
+        {
+            return RestSetSimMethod("", "/sims/", param);
+        }
+
+        /// <summary>
+        /// Returns information about a sim via a REST Request
+        /// </summary>
+        /// <param name="request"></param>
+        /// <param name="path"></param>
+        /// <param name="param"></param>
+        /// <returns>Information about the sim in XML</returns>
+        public string RestGetSimMethod(string request, string path, string param)
+        {
+            string respstring = String.Empty;
+
+            SimProfileData TheSim;
+            LLUUID UUID = new LLUUID(param);
+            TheSim = getRegion(UUID);
+
+            if (!(TheSim == null))
+            {
+                respstring = "<Root>";
+                respstring += "<authkey>" + TheSim.regionSendKey + "</authkey>";
+                respstring += "<sim>";
+                respstring += "<uuid>" + TheSim.UUID.ToString() + "</uuid>";
+                respstring += "<regionname>" + TheSim.regionName + "</regionname>";
+                respstring += "<sim_ip>" + TheSim.serverIP + "</sim_ip>";
+                respstring += "<sim_port>" + TheSim.serverPort.ToString() + "</sim_port>";
+                respstring += "<region_locx>" + TheSim.regionLocX.ToString() + "</region_locx>";
+                respstring += "<region_locy>" + TheSim.regionLocY.ToString() + "</region_locy>";
+                respstring += "<estate_id>1</estate_id>";
+                respstring += "</sim>";
+                respstring += "</Root>";
+            }
+
+            return respstring;
+        }
+
+        /// <summary>
+        /// Creates or updates a sim via a REST Method Request
+        /// BROKEN with SQL Update
+        /// </summary>
+        /// <param name="request"></param>
+        /// <param name="path"></param>
+        /// <param name="param"></param>
+        /// <returns>"OK" or an error</returns>
+        public string RestSetSimMethod(string request, string path, string param)
+        {
+            Console.WriteLine("Processing region update via REST method");
+            SimProfileData TheSim;
+            TheSim = getRegion(new LLUUID(param));
+            if ((TheSim) == null)
+            {
+                TheSim = new SimProfileData();
+                LLUUID UUID = new LLUUID(param);
+                TheSim.UUID = UUID;
+                TheSim.regionRecvKey = config.SimRecvKey;
+            }
+
+            XmlDocument doc = new XmlDocument();
+            doc.LoadXml(request);
+            XmlNode rootnode = doc.FirstChild;
+            XmlNode authkeynode = rootnode.ChildNodes[0];
+            if (authkeynode.Name != "authkey")
+            {
+                return "ERROR! bad XML - expected authkey tag";
+            }
+
+            XmlNode simnode = rootnode.ChildNodes[1];
+            if (simnode.Name != "sim")
+            {
+                return "ERROR! bad XML - expected sim tag";
+            }
+
+            //TheSim.regionSendKey = Cfg;
+            TheSim.regionRecvKey = config.SimRecvKey;
+            TheSim.regionSendKey = config.SimSendKey;
+            TheSim.regionSecret = config.SimRecvKey;
+            TheSim.regionDataURI = "";
+            TheSim.regionAssetURI = config.DefaultAssetServer;
+            TheSim.regionAssetRecvKey = config.AssetRecvKey;
+            TheSim.regionAssetSendKey = config.AssetSendKey;
+            TheSim.regionUserURI = config.DefaultUserServer;
+            TheSim.regionUserSendKey = config.UserSendKey;
+            TheSim.regionUserRecvKey = config.UserRecvKey;
+
+
+            for (int i = 0; i < simnode.ChildNodes.Count; i++)
+            {
+                switch (simnode.ChildNodes[i].Name)
+                {
+                    case "regionname":
+                        TheSim.regionName = simnode.ChildNodes[i].InnerText;
+                        break;
+
+                    case "sim_ip":
+                        TheSim.serverIP = simnode.ChildNodes[i].InnerText;
+                        break;
+
+                    case "sim_port":
+                        TheSim.serverPort = Convert.ToUInt32(simnode.ChildNodes[i].InnerText);
+                        break;
+
+                    case "region_locx":
+                        TheSim.regionLocX = Convert.ToUInt32((string)simnode.ChildNodes[i].InnerText);
+                        TheSim.regionHandle = Helpers.UIntsToLong((TheSim.regionLocX * 256), (TheSim.regionLocY * 256));
+                        break;
+
+                    case "region_locy":
+                        TheSim.regionLocY = Convert.ToUInt32((string)simnode.ChildNodes[i].InnerText);
+                        TheSim.regionHandle = Helpers.UIntsToLong((TheSim.regionLocX * 256), (TheSim.regionLocY * 256));
+                        break;
+                }
+            }
+
+            TheSim.serverURI = "http://" + TheSim.serverIP + ":" + TheSim.serverPort + "/";
+
+            bool requirePublic = false;
+            bool requireValid = true;
+
+            if (requirePublic && (TheSim.serverIP.StartsWith("172.16") || TheSim.serverIP.StartsWith("192.168") || TheSim.serverIP.StartsWith("10.") || TheSim.serverIP.StartsWith("0.") || TheSim.serverIP.StartsWith("255.")))
+            {
+                return "ERROR! Servers must register with public addresses.";
+            }
+
+            if (requireValid && (TheSim.serverIP.StartsWith("0.")))
+            {
+                return "ERROR! 0.*.*.* Addresses are invalid, please check your server config and try again";
+            }
+
+            
+            try
+            {
+                MainLog.Instance.Verbose("Updating / adding via " + _plugins.Count + " storage provider(s) registered.");
+                foreach (KeyValuePair<string, IGridData> kvp in _plugins)
+                {
+                    try
+                    {
+                        //Check reservations
+                        ReservationData reserveData = kvp.Value.GetReservationAtPoint(TheSim.regionLocX, TheSim.regionLocY);
+                        if ((reserveData != null && reserveData.gridRecvKey == TheSim.regionRecvKey) || (reserveData == null && authkeynode.InnerText != TheSim.regionRecvKey))
+                        {
+                            kvp.Value.AddProfile(TheSim);
+                            MainLog.Instance.Verbose("New sim added to grid (" + TheSim.regionName + ")");
+                            logToDB(TheSim.UUID.ToStringHyphenated(), "RestSetSimMethod", "", 5, "Region successfully updated and connected to grid.");
+                        }
+                        else
+                        {
+                            MainLog.Instance.Warn("Unable to update region (RestSetSimMethod): Incorrect reservation auth key.");// Wanted: " + reserveData.gridRecvKey + ", Got: " + TheSim.regionRecvKey + ".");
+                            return "Unable to update region (RestSetSimMethod): Incorrect auth key.";
+                        }
+                    }
+                    catch (Exception e)
+                    {
+                        MainLog.Instance.Verbose("getRegionPlugin Handle " + kvp.Key + " unable to add new sim: " + e.ToString());
+                    }
+                }
+                return "OK";
+            }
+            catch (Exception e)
+            {
+                return "ERROR! Could not save to database! (" + e.ToString() + ")";
+            }
+        }
+
+    }
+}

+ 258 - 258
OpenSim/Grid/GridServer/Main.cs

@@ -1,258 +1,258 @@
-/*
-* Copyright (c) Contributors, http://www.openmetaverse.org/
-* See CONTRIBUTORS.TXT for a full list of copyright holders.
-*
-* Redistribution and use in source and binary forms, with or without
-* modification, are permitted provided that the following conditions are met:
-*     * Redistributions of source code must retain the above copyright
-*       notice, this list of conditions and the following disclaimer.
-*     * Redistributions in binary form must reproduce the above copyright
-*       notice, this list of conditions and the following disclaimer in the
-*       documentation and/or other materials provided with the distribution.
-*     * Neither the name of the OpenSim Project nor the
-*       names of its contributors may be used to endorse or promote products
-*       derived from this software without specific prior written permission.
-*
-* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS AND ANY
-* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
-* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-* 
-*/
-
-using System;
-using System.Reflection;
-using System.Threading;
-using System.Timers;
-using OpenSim.Framework.Console;
-using OpenSim.Framework.Interfaces;
-using OpenSim.Framework.Servers;
-using OpenSim.GenericConfig;
-using Timer=System.Timers.Timer;
-
-namespace OpenSim.Grid.GridServer
-{
-    /// <summary>
-    /// </summary>
-    public class OpenGrid_Main : conscmd_callback
-    {
-        private string ConfigDll = "OpenSim.Grid.GridServer.Config.dll";
-        private string GridDll = "OpenSim.Framework.Data.MySQL.dll";
-        public GridConfig Cfg;
-
-        public static OpenGrid_Main thegrid;
-        protected IGenericConfig localXMLConfig;
-
-        public static bool setuponly;
-
-        //public LLUUID highestUUID;
-
-        //        private SimProfileManager m_simProfileManager;
-
-        private GridManager m_gridManager;
-
-        private LogBase m_console;
-
-        [STAThread]
-        public static void Main(string[] args)
-        {
-            if (args.Length > 0)
-            {
-                if (args[0] == "-setuponly") setuponly = true;
-            }
-            Console.WriteLine("Starting...\n");
-
-            thegrid = new OpenGrid_Main();
-            thegrid.Startup();
-
-            thegrid.Work();
-        }
-
-        private void Work()
-        {
-            m_console.Notice("Enter help for a list of commands\n");
-
-            while (true)
-            {
-                m_console.MainLogPrompt();
-            }
-        }
-
-        private OpenGrid_Main()
-        {
-            m_console = new LogBase("opengrid-gridserver-console.log", "OpenGrid", this, false);
-            MainLog.Instance = m_console;
-
-
-        }
-
-        public void managercallback(string cmd)
-        {
-            switch (cmd)
-            {
-                case "shutdown":
-                    RunCmd("shutdown", new string[0]);
-                    break;
-            }
-        }
-
-
-        public void Startup()
-        {
-            this.localXMLConfig = new XmlConfig("GridServerConfig.xml");
-            this.localXMLConfig.LoadData();
-            this.ConfigDB(this.localXMLConfig);
-            this.localXMLConfig.Close();
-
-            m_console.Verbose( "Main.cs:Startup() - Loading configuration");
-            Cfg = this.LoadConfigDll(this.ConfigDll);
-            Cfg.InitConfig();
-            if (setuponly) Environment.Exit(0);
-
-            m_console.Verbose( "Main.cs:Startup() - Connecting to Storage Server");
-            m_gridManager = new GridManager();
-            m_gridManager.AddPlugin(GridDll); // Made of win
-            m_gridManager.config = Cfg;
-
-            m_console.Verbose( "Main.cs:Startup() - Starting HTTP process");
-            BaseHttpServer httpServer = new BaseHttpServer(8001);
-            //GridManagementAgent GridManagerAgent = new GridManagementAgent(httpServer, "gridserver", Cfg.SimSendKey, Cfg.SimRecvKey, managercallback);
-
-            httpServer.AddXmlRPCHandler("simulator_login", m_gridManager.XmlRpcSimulatorLoginMethod);
-            httpServer.AddXmlRPCHandler("simulator_data_request", m_gridManager.XmlRpcSimulatorDataRequestMethod);
-            httpServer.AddXmlRPCHandler("map_block", m_gridManager.XmlRpcMapBlockMethod);
-
-            httpServer.AddStreamHandler(new RestStreamHandler("GET", "/sims/", m_gridManager.RestGetSimMethod ));
-            httpServer.AddStreamHandler(new RestStreamHandler("POST", "/sims/", m_gridManager.RestSetSimMethod ));
-
-            httpServer.AddStreamHandler( new RestStreamHandler("GET", "/regions/", m_gridManager.RestGetRegionMethod  ));
-            httpServer.AddStreamHandler( new RestStreamHandler("POST","/regions/", m_gridManager.RestSetRegionMethod  ));
-
-            //httpServer.AddRestHandler("GET", "/sims/", m_gridManager.RestGetSimMethod);
-            //httpServer.AddRestHandler("POST", "/sims/", m_gridManager.RestSetSimMethod);
-            //httpServer.AddRestHandler("GET", "/regions/", m_gridManager.RestGetRegionMethod);
-            //httpServer.AddRestHandler("POST", "/regions/", m_gridManager.RestSetRegionMethod);
-
-            httpServer.Start();
-
-            m_console.Verbose( "Main.cs:Startup() - Starting sim status checker");
-
-            Timer simCheckTimer = new Timer(3600000 * 3); // 3 Hours between updates.
-            simCheckTimer.Elapsed += new ElapsedEventHandler(CheckSims);
-            simCheckTimer.Enabled = true;
-        }
-
-        private GridConfig LoadConfigDll(string dllName)
-        {
-            Assembly pluginAssembly = Assembly.LoadFrom(dllName);
-            GridConfig config = null;
-
-            foreach (Type pluginType in pluginAssembly.GetTypes())
-            {
-                if (pluginType.IsPublic)
-                {
-                    if (!pluginType.IsAbstract)
-                    {
-                        Type typeInterface = pluginType.GetInterface("IGridConfig", true);
-
-                        if (typeInterface != null)
-                        {
-                            IGridConfig plug = (IGridConfig)Activator.CreateInstance(pluginAssembly.GetType(pluginType.ToString()));
-                            config = plug.GetConfigObject();
-                            break;
-                        }
-
-                        typeInterface = null;
-                    }
-                }
-            }
-            pluginAssembly = null;
-            return config;
-        }
-
-        public void CheckSims(object sender, ElapsedEventArgs e)
-        {
-            /*
-            foreach (SimProfileBase sim in m_simProfileManager.SimProfiles.Values)
-            {
-                string SimResponse = "";
-                try
-                {
-                    WebRequest CheckSim = WebRequest.Create("http://" + sim.sim_ip + ":" + sim.sim_port.ToString() + "/checkstatus/");
-                    CheckSim.Method = "GET";
-                    CheckSim.ContentType = "text/plaintext";
-                    CheckSim.ContentLength = 0;
-
-                    StreamWriter stOut = new StreamWriter(CheckSim.GetRequestStream(), System.Text.Encoding.ASCII);
-                    stOut.Write("");
-                    stOut.Close();
-
-                    StreamReader stIn = new StreamReader(CheckSim.GetResponse().GetResponseStream());
-                    SimResponse = stIn.ReadToEnd();
-                    stIn.Close();
-                }
-                catch
-                {
-                }
-                
-                if (SimResponse == "OK")
-                {
-                    m_simProfileManager.SimProfiles[sim.UUID].online = true;
-                }
-                else
-                {
-                    m_simProfileManager.SimProfiles[sim.UUID].online = false;
-                }
-            }
-            */
-        }
-
-        public void RunCmd(string cmd, string[] cmdparams)
-        {
-            switch (cmd)
-            {
-                case "help":
-                    m_console.Notice("shutdown - shutdown the grid (USE CAUTION!)");
-                    break;
-
-                case "shutdown":
-                    m_console.Close();
-                    Environment.Exit(0);
-                    break;
-            }
-        }
-
-        public void Show(string ShowWhat)
-        {
-        }
-
-        private void ConfigDB(IGenericConfig configData)
-        {
-            try
-            {
-                string attri = "";
-                attri = configData.GetAttribute("DataBaseProvider");
-                if (attri == "")
-                {
-                    GridDll = "OpenSim.Framework.Data.DB4o.dll";
-                    configData.SetAttribute("DataBaseProvider", "OpenSim.Framework.Data.DB4o.dll");
-                }
-                else
-                {
-                    GridDll = attri;
-                }
-                configData.Commit();
-            }
-            catch
-            {
-
-            }
-        }
-    }
-}
+/*
+* Copyright (c) Contributors, http://www.openmetaverse.org/
+* See CONTRIBUTORS.TXT for a full list of copyright holders.
+*
+* Redistribution and use in source and binary forms, with or without
+* modification, are permitted provided that the following conditions are met:
+*     * Redistributions of source code must retain the above copyright
+*       notice, this list of conditions and the following disclaimer.
+*     * Redistributions in binary form must reproduce the above copyright
+*       notice, this list of conditions and the following disclaimer in the
+*       documentation and/or other materials provided with the distribution.
+*     * Neither the name of the OpenSim Project nor the
+*       names of its contributors may be used to endorse or promote products
+*       derived from this software without specific prior written permission.
+*
+* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS AND ANY
+* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
+* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+* 
+*/
+
+using System;
+using System.Reflection;
+using System.Threading;
+using System.Timers;
+using OpenSim.Framework.Console;
+using OpenSim.Framework.Interfaces;
+using OpenSim.Framework.Servers;
+using OpenSim.GenericConfig;
+using Timer=System.Timers.Timer;
+
+namespace OpenSim.Grid.GridServer
+{
+    /// <summary>
+    /// </summary>
+    public class OpenGrid_Main : conscmd_callback
+    {
+        private string ConfigDll = "OpenSim.Grid.GridServer.Config.dll";
+        private string GridDll = "OpenSim.Framework.Data.MySQL.dll";
+        public GridConfig Cfg;
+
+        public static OpenGrid_Main thegrid;
+        protected IGenericConfig localXMLConfig;
+
+        public static bool setuponly;
+
+        //public LLUUID highestUUID;
+
+        //        private SimProfileManager m_simProfileManager;
+
+        private GridManager m_gridManager;
+
+        private LogBase m_console;
+
+        [STAThread]
+        public static void Main(string[] args)
+        {
+            if (args.Length > 0)
+            {
+                if (args[0] == "-setuponly") setuponly = true;
+            }
+            Console.WriteLine("Starting...\n");
+
+            thegrid = new OpenGrid_Main();
+            thegrid.Startup();
+
+            thegrid.Work();
+        }
+
+        private void Work()
+        {
+            m_console.Notice("Enter help for a list of commands\n");
+
+            while (true)
+            {
+                m_console.MainLogPrompt();
+            }
+        }
+
+        private OpenGrid_Main()
+        {
+            m_console = new LogBase("opengrid-gridserver-console.log", "OpenGrid", this, false);
+            MainLog.Instance = m_console;
+
+
+        }
+
+        public void managercallback(string cmd)
+        {
+            switch (cmd)
+            {
+                case "shutdown":
+                    RunCmd("shutdown", new string[0]);
+                    break;
+            }
+        }
+
+
+        public void Startup()
+        {
+            this.localXMLConfig = new XmlConfig("GridServerConfig.xml");
+            this.localXMLConfig.LoadData();
+            this.ConfigDB(this.localXMLConfig);
+            this.localXMLConfig.Close();
+
+            m_console.Verbose( "Main.cs:Startup() - Loading configuration");
+            Cfg = this.LoadConfigDll(this.ConfigDll);
+            Cfg.InitConfig();
+            if (setuponly) Environment.Exit(0);
+
+            m_console.Verbose( "Main.cs:Startup() - Connecting to Storage Server");
+            m_gridManager = new GridManager();
+            m_gridManager.AddPlugin(GridDll); // Made of win
+            m_gridManager.config = Cfg;
+
+            m_console.Verbose( "Main.cs:Startup() - Starting HTTP process");
+            BaseHttpServer httpServer = new BaseHttpServer(8001);
+            //GridManagementAgent GridManagerAgent = new GridManagementAgent(httpServer, "gridserver", Cfg.SimSendKey, Cfg.SimRecvKey, managercallback);
+
+            httpServer.AddXmlRPCHandler("simulator_login", m_gridManager.XmlRpcSimulatorLoginMethod);
+            httpServer.AddXmlRPCHandler("simulator_data_request", m_gridManager.XmlRpcSimulatorDataRequestMethod);
+            httpServer.AddXmlRPCHandler("map_block", m_gridManager.XmlRpcMapBlockMethod);
+
+            httpServer.AddStreamHandler(new RestStreamHandler("GET", "/sims/", m_gridManager.RestGetSimMethod ));
+            httpServer.AddStreamHandler(new RestStreamHandler("POST", "/sims/", m_gridManager.RestSetSimMethod ));
+
+            httpServer.AddStreamHandler( new RestStreamHandler("GET", "/regions/", m_gridManager.RestGetRegionMethod  ));
+            httpServer.AddStreamHandler( new RestStreamHandler("POST","/regions/", m_gridManager.RestSetRegionMethod  ));
+
+            //httpServer.AddRestHandler("GET", "/sims/", m_gridManager.RestGetSimMethod);
+            //httpServer.AddRestHandler("POST", "/sims/", m_gridManager.RestSetSimMethod);
+            //httpServer.AddRestHandler("GET", "/regions/", m_gridManager.RestGetRegionMethod);
+            //httpServer.AddRestHandler("POST", "/regions/", m_gridManager.RestSetRegionMethod);
+
+            httpServer.Start();
+
+            m_console.Verbose( "Main.cs:Startup() - Starting sim status checker");
+
+            Timer simCheckTimer = new Timer(3600000 * 3); // 3 Hours between updates.
+            simCheckTimer.Elapsed += new ElapsedEventHandler(CheckSims);
+            simCheckTimer.Enabled = true;
+        }
+
+        private GridConfig LoadConfigDll(string dllName)
+        {
+            Assembly pluginAssembly = Assembly.LoadFrom(dllName);
+            GridConfig config = null;
+
+            foreach (Type pluginType in pluginAssembly.GetTypes())
+            {
+                if (pluginType.IsPublic)
+                {
+                    if (!pluginType.IsAbstract)
+                    {
+                        Type typeInterface = pluginType.GetInterface("IGridConfig", true);
+
+                        if (typeInterface != null)
+                        {
+                            IGridConfig plug = (IGridConfig)Activator.CreateInstance(pluginAssembly.GetType(pluginType.ToString()));
+                            config = plug.GetConfigObject();
+                            break;
+                        }
+
+                        typeInterface = null;
+                    }
+                }
+            }
+            pluginAssembly = null;
+            return config;
+        }
+
+        public void CheckSims(object sender, ElapsedEventArgs e)
+        {
+            /*
+            foreach (SimProfileBase sim in m_simProfileManager.SimProfiles.Values)
+            {
+                string SimResponse = "";
+                try
+                {
+                    WebRequest CheckSim = WebRequest.Create("http://" + sim.sim_ip + ":" + sim.sim_port.ToString() + "/checkstatus/");
+                    CheckSim.Method = "GET";
+                    CheckSim.ContentType = "text/plaintext";
+                    CheckSim.ContentLength = 0;
+
+                    StreamWriter stOut = new StreamWriter(CheckSim.GetRequestStream(), System.Text.Encoding.ASCII);
+                    stOut.Write("");
+                    stOut.Close();
+
+                    StreamReader stIn = new StreamReader(CheckSim.GetResponse().GetResponseStream());
+                    SimResponse = stIn.ReadToEnd();
+                    stIn.Close();
+                }
+                catch
+                {
+                }
+                
+                if (SimResponse == "OK")
+                {
+                    m_simProfileManager.SimProfiles[sim.UUID].online = true;
+                }
+                else
+                {
+                    m_simProfileManager.SimProfiles[sim.UUID].online = false;
+                }
+            }
+            */
+        }
+
+        public void RunCmd(string cmd, string[] cmdparams)
+        {
+            switch (cmd)
+            {
+                case "help":
+                    m_console.Notice("shutdown - shutdown the grid (USE CAUTION!)");
+                    break;
+
+                case "shutdown":
+                    m_console.Close();
+                    Environment.Exit(0);
+                    break;
+            }
+        }
+
+        public void Show(string ShowWhat)
+        {
+        }
+
+        private void ConfigDB(IGenericConfig configData)
+        {
+            try
+            {
+                string attri = "";
+                attri = configData.GetAttribute("DataBaseProvider");
+                if (attri == "")
+                {
+                    GridDll = "OpenSim.Framework.Data.DB4o.dll";
+                    configData.SetAttribute("DataBaseProvider", "OpenSim.Framework.Data.DB4o.dll");
+                }
+                else
+                {
+                    GridDll = attri;
+                }
+                configData.Commit();
+            }
+            catch
+            {
+
+            }
+        }
+    }
+}

+ 58 - 58
OpenSim/Grid/GridServer/Properties/AssemblyInfo.cs

@@ -1,58 +1,58 @@
-/*
-* Copyright (c) Contributors, http://www.openmetaverse.org/
-* See CONTRIBUTORS.TXT for a full list of copyright holders.
-*
-* Redistribution and use in source and binary forms, with or without
-* modification, are permitted provided that the following conditions are met:
-*     * Redistributions of source code must retain the above copyright
-*       notice, this list of conditions and the following disclaimer.
-*     * Redistributions in binary form must reproduce the above copyright
-*       notice, this list of conditions and the following disclaimer in the
-*       documentation and/or other materials provided with the distribution.
-*     * Neither the name of the OpenSim Project nor the
-*       names of its contributors may be used to endorse or promote products
-*       derived from this software without specific prior written permission.
-*
-* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS AND ANY
-* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
-* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-* 
-*/
-using System.Reflection;
-using System.Runtime.InteropServices;
-// General Information about an assembly is controlled through the following 
-// set of attributes. Change these attribute values to modify the information
-// associated with an assembly.
-[assembly: AssemblyTitle("OGS-GridServer")]
-[assembly: AssemblyDescription("")]
-[assembly: AssemblyConfiguration("")]
-[assembly: AssemblyCompany("")]
-[assembly: AssemblyProduct("OGS-GridServer")]
-[assembly: AssemblyCopyright("Copyright ©  2007")]
-[assembly: AssemblyTrademark("")]
-[assembly: AssemblyCulture("")]
-
-// Setting ComVisible to false makes the types in this assembly not visible 
-// to COM components.  If you need to access a type in this assembly from 
-// COM, set the ComVisible attribute to true on that type.
-[assembly: ComVisible(false)]
-
-// The following GUID is for the ID of the typelib if this project is exposed to COM
-[assembly: Guid("b541b244-3d1d-4625-9003-bc2a3a6a39a4")]
-
-// Version information for an assembly consists of the following four values:
-//
-//      Major Version
-//      Minor Version 
-//      Build Number
-//      Revision
-//
-[assembly: AssemblyVersion("1.0.0.0")]
-[assembly: AssemblyFileVersion("1.0.0.0")]
+/*
+* Copyright (c) Contributors, http://www.openmetaverse.org/
+* See CONTRIBUTORS.TXT for a full list of copyright holders.
+*
+* Redistribution and use in source and binary forms, with or without
+* modification, are permitted provided that the following conditions are met:
+*     * Redistributions of source code must retain the above copyright
+*       notice, this list of conditions and the following disclaimer.
+*     * Redistributions in binary form must reproduce the above copyright
+*       notice, this list of conditions and the following disclaimer in the
+*       documentation and/or other materials provided with the distribution.
+*     * Neither the name of the OpenSim Project nor the
+*       names of its contributors may be used to endorse or promote products
+*       derived from this software without specific prior written permission.
+*
+* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS AND ANY
+* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
+* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+* 
+*/
+using System.Reflection;
+using System.Runtime.InteropServices;
+// General Information about an assembly is controlled through the following 
+// set of attributes. Change these attribute values to modify the information
+// associated with an assembly.
+[assembly: AssemblyTitle("OGS-GridServer")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("")]
+[assembly: AssemblyProduct("OGS-GridServer")]
+[assembly: AssemblyCopyright("Copyright ©  2007")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// Setting ComVisible to false makes the types in this assembly not visible 
+// to COM components.  If you need to access a type in this assembly from 
+// COM, set the ComVisible attribute to true on that type.
+[assembly: ComVisible(false)]
+
+// The following GUID is for the ID of the typelib if this project is exposed to COM
+[assembly: Guid("b541b244-3d1d-4625-9003-bc2a3a6a39a4")]
+
+// Version information for an assembly consists of the following four values:
+//
+//      Major Version
+//      Minor Version 
+//      Build Number
+//      Revision
+//
+[assembly: AssemblyVersion("1.0.0.0")]
+[assembly: AssemblyFileVersion("1.0.0.0")]

+ 125 - 125
OpenSim/Grid/InventoryServer/InventoryManager.cs

@@ -1,125 +1,125 @@
-/*
-* Copyright (c) Contributors, http://www.openmetaverse.org/
-* See CONTRIBUTORS.TXT for a full list of copyright holders.
-*
-* Redistribution and use in source and binary forms, with or without
-* modification, are permitted provided that the following conditions are met:
-*     * Redistributions of source code must retain the above copyright
-*       notice, this list of conditions and the following disclaimer.
-*     * Redistributions in binary form must reproduce the above copyright
-*       notice, this list of conditions and the following disclaimer in the
-*       documentation and/or other materials provided with the distribution.
-*     * Neither the name of the OpenSim Project nor the
-*       names of its contributors may be used to endorse or promote products
-*       derived from this software without specific prior written permission.
-*
-* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS AND ANY
-* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
-* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-* 
-*/
-using System;
-using System.Collections;
-using System.Collections.Generic;
-using System.Text;
-using OpenGrid.Framework.Data;
-using libsecondlife;
-using System.Reflection;
-
-using System.Xml;
-using Nwc.XmlRpc;
-using OpenSim.Framework.Sims;
-using OpenSim.Framework.Inventory;
-using OpenSim.Framework.Utilities;
-
-using System.Security.Cryptography;
-
-namespace OpenGridServices.InventoryServer
-{
-    class InventoryManager
-    {
-        Dictionary<string, IInventoryData> _plugins = new Dictionary<string, IInventoryData>();
-
-        /// <summary>
-        /// Adds a new inventory server plugin - user servers will be requested in the order they were loaded.
-        /// </summary>
-        /// <param name="FileName">The filename to the inventory server plugin DLL</param>
-        public void AddPlugin(string FileName)
-        {
-            OpenSim.Framework.Console.MainConsole.Instance.Verbose( "Invenstorage: Attempting to load " + FileName);
-            Assembly pluginAssembly = Assembly.LoadFrom(FileName);
-
-            OpenSim.Framework.Console.MainConsole.Instance.Verbose( "Invenstorage: Found " + pluginAssembly.GetTypes().Length + " interfaces.");
-            foreach (Type pluginType in pluginAssembly.GetTypes())
-            {
-                if (!pluginType.IsAbstract)
-                {
-                    Type typeInterface = pluginType.GetInterface("IInventoryData", true);
-
-                    if (typeInterface != null)
-                    {
-                        IInventoryData plug = (IInventoryData)Activator.CreateInstance(pluginAssembly.GetType(pluginType.ToString()));
-                        plug.Initialise();
-                        this._plugins.Add(plug.getName(), plug);
-                        OpenSim.Framework.Console.MainConsole.Instance.Verbose( "Invenstorage: Added IUserData Interface");
-                    }
-
-                    typeInterface = null;
-                }
-            }
-
-            pluginAssembly = null;
-        }
-
-        public List<InventoryFolderBase> getRootFolders(LLUUID user)
-        {
-            foreach (KeyValuePair<string, IInventoryData> kvp in _plugins)
-            {
-                try
-                {
-                    return kvp.Value.getUserRootFolders(user);
-                }
-                catch (Exception e)
-                {
-                    OpenSim.Framework.Console.MainConsole.Instance.Notice("Unable to get root folders via " + kvp.Key + " (" + e.ToString() + ")");
-                }
-            }
-            return null;
-        }
-
-        public XmlRpcResponse XmlRpcInventoryRequest(XmlRpcRequest request)
-        {
-            XmlRpcResponse response = new XmlRpcResponse();
-            Hashtable requestData = (Hashtable)request.Params[0];
-
-            Hashtable responseData = new Hashtable();
-
-            // Stuff happens here
-
-            if (requestData.ContainsKey("Access-type"))
-            {
-                if (requestData["access-type"] == "rootfolders")
-                {
-//                    responseData["rootfolders"] =
-                }
-            }
-            else
-            {
-                responseData["error"] = "No access-type specified.";
-            }
-
-
-            // Stuff stops happening here
-
-            response.Value = responseData;
-            return response;
-        }
-    }
-}
+/*
+* Copyright (c) Contributors, http://www.openmetaverse.org/
+* See CONTRIBUTORS.TXT for a full list of copyright holders.
+*
+* Redistribution and use in source and binary forms, with or without
+* modification, are permitted provided that the following conditions are met:
+*     * Redistributions of source code must retain the above copyright
+*       notice, this list of conditions and the following disclaimer.
+*     * Redistributions in binary form must reproduce the above copyright
+*       notice, this list of conditions and the following disclaimer in the
+*       documentation and/or other materials provided with the distribution.
+*     * Neither the name of the OpenSim Project nor the
+*       names of its contributors may be used to endorse or promote products
+*       derived from this software without specific prior written permission.
+*
+* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS AND ANY
+* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
+* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+* 
+*/
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using System.Text;
+using OpenGrid.Framework.Data;
+using libsecondlife;
+using System.Reflection;
+
+using System.Xml;
+using Nwc.XmlRpc;
+using OpenSim.Framework.Sims;
+using OpenSim.Framework.Inventory;
+using OpenSim.Framework.Utilities;
+
+using System.Security.Cryptography;
+
+namespace OpenGridServices.InventoryServer
+{
+    class InventoryManager
+    {
+        Dictionary<string, IInventoryData> _plugins = new Dictionary<string, IInventoryData>();
+
+        /// <summary>
+        /// Adds a new inventory server plugin - user servers will be requested in the order they were loaded.
+        /// </summary>
+        /// <param name="FileName">The filename to the inventory server plugin DLL</param>
+        public void AddPlugin(string FileName)
+        {
+            OpenSim.Framework.Console.MainConsole.Instance.Verbose( "Invenstorage: Attempting to load " + FileName);
+            Assembly pluginAssembly = Assembly.LoadFrom(FileName);
+
+            OpenSim.Framework.Console.MainConsole.Instance.Verbose( "Invenstorage: Found " + pluginAssembly.GetTypes().Length + " interfaces.");
+            foreach (Type pluginType in pluginAssembly.GetTypes())
+            {
+                if (!pluginType.IsAbstract)
+                {
+                    Type typeInterface = pluginType.GetInterface("IInventoryData", true);
+
+                    if (typeInterface != null)
+                    {
+                        IInventoryData plug = (IInventoryData)Activator.CreateInstance(pluginAssembly.GetType(pluginType.ToString()));
+                        plug.Initialise();
+                        this._plugins.Add(plug.getName(), plug);
+                        OpenSim.Framework.Console.MainConsole.Instance.Verbose( "Invenstorage: Added IUserData Interface");
+                    }
+
+                    typeInterface = null;
+                }
+            }
+
+            pluginAssembly = null;
+        }
+
+        public List<InventoryFolderBase> getRootFolders(LLUUID user)
+        {
+            foreach (KeyValuePair<string, IInventoryData> kvp in _plugins)
+            {
+                try
+                {
+                    return kvp.Value.getUserRootFolders(user);
+                }
+                catch (Exception e)
+                {
+                    OpenSim.Framework.Console.MainConsole.Instance.Notice("Unable to get root folders via " + kvp.Key + " (" + e.ToString() + ")");
+                }
+            }
+            return null;
+        }
+
+        public XmlRpcResponse XmlRpcInventoryRequest(XmlRpcRequest request)
+        {
+            XmlRpcResponse response = new XmlRpcResponse();
+            Hashtable requestData = (Hashtable)request.Params[0];
+
+            Hashtable responseData = new Hashtable();
+
+            // Stuff happens here
+
+            if (requestData.ContainsKey("Access-type"))
+            {
+                if (requestData["access-type"] == "rootfolders")
+                {
+//                    responseData["rootfolders"] =
+                }
+            }
+            else
+            {
+                responseData["error"] = "No access-type specified.";
+            }
+
+
+            // Stuff stops happening here
+
+            response.Value = responseData;
+            return response;
+        }
+    }
+}

+ 87 - 87
OpenSim/Grid/InventoryServer/Main.cs

@@ -1,87 +1,87 @@
-/*
-* Copyright (c) Contributors, http://www.openmetaverse.org/
-* See CONTRIBUTORS.TXT for a full list of copyright holders.
-*
-* Redistribution and use in source and binary forms, with or without
-* modification, are permitted provided that the following conditions are met:
-*     * Redistributions of source code must retain the above copyright
-*       notice, this list of conditions and the following disclaimer.
-*     * Redistributions in binary form must reproduce the above copyright
-*       notice, this list of conditions and the following disclaimer in the
-*       documentation and/or other materials provided with the distribution.
-*     * Neither the name of the OpenSim Project nor the
-*       names of its contributors may be used to endorse or promote products
-*       derived from this software without specific prior written permission.
-*
-* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS AND ANY
-* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
-* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-* 
-*/
-using System;
-using System.Collections;
-using System.Collections.Generic;
-using System.Reflection;
-using System.IO;
-using System.Text;
-using libsecondlife;
-using OpenSim.Framework.User;
-using OpenSim.Framework.Sims;
-using OpenSim.Framework.Inventory;
-using OpenSim.Framework.Interfaces;
-using OpenSim.Framework.Console;
-using OpenSim.Servers;
-using OpenSim.Framework.Utilities;
-
-namespace OpenGridServices.InventoryServer
-{
-    public class OpenInventory_Main : BaseServer, conscmd_callback
-    {
-        ConsoleBase m_console;
-        InventoryManager m_inventoryManager;
-
-        public static void Main(string[] args)
-        {
-        }
-
-        public OpenInventory_Main()
-        {
-            m_console = new ConsoleBase("opengrid-inventory-console.log", "OpenInventory", this, false);
-            MainConsole.Instance = m_console;
-        }
-
-        public void Startup()
-        {
-            MainConsole.Instance.Notice("Initialising inventory manager...");
-            m_inventoryManager = new InventoryManager();
-
-            MainConsole.Instance.Notice("Starting HTTP server");
-            BaseHttpServer httpServer = new BaseHttpServer(8004);
-
-            httpServer.AddXmlRPCHandler("rootfolders", m_inventoryManager.XmlRpcInventoryRequest);
-            //httpServer.AddRestHandler("GET","/rootfolders/",Rest
-        }
-
-        public void RunCmd(string cmd, string[] cmdparams)
-        {
-            switch (cmd)
-            {
-                case "shutdown":
-                    m_console.Close();
-                    Environment.Exit(0);
-                    break;
-            }
-        }
-
-        public void Show(string ShowWhat)
-        {
-        }
-    }
-}
+/*
+* Copyright (c) Contributors, http://www.openmetaverse.org/
+* See CONTRIBUTORS.TXT for a full list of copyright holders.
+*
+* Redistribution and use in source and binary forms, with or without
+* modification, are permitted provided that the following conditions are met:
+*     * Redistributions of source code must retain the above copyright
+*       notice, this list of conditions and the following disclaimer.
+*     * Redistributions in binary form must reproduce the above copyright
+*       notice, this list of conditions and the following disclaimer in the
+*       documentation and/or other materials provided with the distribution.
+*     * Neither the name of the OpenSim Project nor the
+*       names of its contributors may be used to endorse or promote products
+*       derived from this software without specific prior written permission.
+*
+* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS AND ANY
+* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
+* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+* 
+*/
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using System.Reflection;
+using System.IO;
+using System.Text;
+using libsecondlife;
+using OpenSim.Framework.User;
+using OpenSim.Framework.Sims;
+using OpenSim.Framework.Inventory;
+using OpenSim.Framework.Interfaces;
+using OpenSim.Framework.Console;
+using OpenSim.Servers;
+using OpenSim.Framework.Utilities;
+
+namespace OpenGridServices.InventoryServer
+{
+    public class OpenInventory_Main : BaseServer, conscmd_callback
+    {
+        ConsoleBase m_console;
+        InventoryManager m_inventoryManager;
+
+        public static void Main(string[] args)
+        {
+        }
+
+        public OpenInventory_Main()
+        {
+            m_console = new ConsoleBase("opengrid-inventory-console.log", "OpenInventory", this, false);
+            MainConsole.Instance = m_console;
+        }
+
+        public void Startup()
+        {
+            MainConsole.Instance.Notice("Initialising inventory manager...");
+            m_inventoryManager = new InventoryManager();
+
+            MainConsole.Instance.Notice("Starting HTTP server");
+            BaseHttpServer httpServer = new BaseHttpServer(8004);
+
+            httpServer.AddXmlRPCHandler("rootfolders", m_inventoryManager.XmlRpcInventoryRequest);
+            //httpServer.AddRestHandler("GET","/rootfolders/",Rest
+        }
+
+        public void RunCmd(string cmd, string[] cmdparams)
+        {
+            switch (cmd)
+            {
+                case "shutdown":
+                    m_console.Close();
+                    Environment.Exit(0);
+                    break;
+            }
+        }
+
+        public void Show(string ShowWhat)
+        {
+        }
+    }
+}

+ 33 - 33
OpenSim/Grid/Manager/OpenGridServices.Manager/BlockingQueue.cs

@@ -1,33 +1,33 @@
-using System;
-using System.Threading;
-using System.Collections.Generic;
-using System.Text;
-
-namespace OpenGridServices.Manager
-{
-    public class BlockingQueue<T>
-    {
-        private Queue<T> _queue = new Queue<T>();
-        private object _queueSync = new object();
-
-        public void Enqueue(T value)
-        {
-            lock (_queueSync)
-            {
-                _queue.Enqueue(value);
-                Monitor.Pulse(_queueSync);
-            }
-        }
-
-        public T Dequeue()
-        {
-            lock (_queueSync)
-            {
-                if (_queue.Count < 1)
-                    Monitor.Wait(_queueSync);
-
-                return _queue.Dequeue();
-            }
-        }
-    }
-}
+using System;
+using System.Threading;
+using System.Collections.Generic;
+using System.Text;
+
+namespace OpenGridServices.Manager
+{
+    public class BlockingQueue<T>
+    {
+        private Queue<T> _queue = new Queue<T>();
+        private object _queueSync = new object();
+
+        public void Enqueue(T value)
+        {
+            lock (_queueSync)
+            {
+                _queue.Enqueue(value);
+                Monitor.Pulse(_queueSync);
+            }
+        }
+
+        public T Dequeue()
+        {
+            lock (_queueSync)
+            {
+                if (_queue.Count < 1)
+                    Monitor.Wait(_queueSync);
+
+                return _queue.Dequeue();
+            }
+        }
+    }
+}

Alguns arquivos não foram mostrados porque muitos arquivos mudaram nesse diff