aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Framework
diff options
context:
space:
mode:
authorlbsa712007-07-01 13:17:27 +0000
committerlbsa712007-07-01 13:17:27 +0000
commit5e805656db1215518a344d6d5364629a4997fd47 (patch)
tree2d8b50bac8e77f983e3016e969df3535c52fb0d3 /OpenSim/Framework
parent* Project files fixed for OGS. (diff)
downloadopensim-SC-5e805656db1215518a344d6d5364629a4997fd47.zip
opensim-SC-5e805656db1215518a344d6d5364629a4997fd47.tar.gz
opensim-SC-5e805656db1215518a344d6d5364629a4997fd47.tar.bz2
opensim-SC-5e805656db1215518a344d6d5364629a4997fd47.tar.xz
Fixed SimpleApp - aka thankgoditssundaycommit
* Updated SimpleApp with various introduced dependencies * Extracted ScenePrescence creation in Scene * removed try-catchall from UserManagerBase (that actually hid a bug) * Refactored RegionInfo * handle is calculated * it will explode upon accessing x,y,ip,port,externalip if not explicitly initialized * Removed superfluous 'ref' keywords * Removed a shitload of 'catch Exception e' that causes build warnings * Lots of small refactorings, renames et c * Ignored some bins
Diffstat (limited to 'OpenSim/Framework')
-rw-r--r--OpenSim/Framework/Communications/OpenSim.Framework.Communications.csproj6
-rw-r--r--OpenSim/Framework/Communications/OpenSim.Framework.Communications.dll.build4
-rw-r--r--OpenSim/Framework/Console/OpenSim.Framework.Console.csproj4
-rw-r--r--OpenSim/Framework/Console/OpenSim.Framework.Console.dll.build2
-rw-r--r--OpenSim/Framework/Data.DB4o/DB4oManager.cs4
-rw-r--r--OpenSim/Framework/Data.DB4o/DB4oUserData.cs4
-rw-r--r--OpenSim/Framework/Data.DB4o/OpenSim.Framework.Data.DB4o.csproj4
-rw-r--r--OpenSim/Framework/Data.DB4o/OpenSim.Framework.Data.DB4o.dll.build4
-rw-r--r--OpenSim/Framework/Data.MSSQL/MSSQLManager.cs2
-rw-r--r--OpenSim/Framework/Data.MySQL/OpenSim.Framework.Data.MySQL.csproj10
-rw-r--r--OpenSim/Framework/Data.MySQL/OpenSim.Framework.Data.MySQL.dll.build6
-rw-r--r--OpenSim/Framework/Data.SQLite/OpenSim.Framework.Data.SQLite.csproj4
-rw-r--r--OpenSim/Framework/Data.SQLite/OpenSim.Framework.Data.SQLite.dll.build2
-rw-r--r--OpenSim/Framework/Data.SQLite/SQLiteManager.cs2
-rw-r--r--OpenSim/Framework/Data/OpenSim.Framework.Data.csproj12
-rw-r--r--OpenSim/Framework/Data/OpenSim.Framework.Data.dll.build4
-rw-r--r--OpenSim/Framework/Data/UserProfileData.cs2
-rw-r--r--OpenSim/Framework/General/Interfaces/IWorld.cs2
-rw-r--r--OpenSim/Framework/General/OpenSim.Framework.csproj100
-rw-r--r--OpenSim/Framework/General/OpenSim.Framework.dll.build39
-rw-r--r--OpenSim/Framework/General/Types/RegionInfo.cs127
-rw-r--r--OpenSim/Framework/Servers/OpenSim.Framework.Servers.csproj8
-rw-r--r--OpenSim/Framework/Servers/OpenSim.Framework.Servers.dll.build4
-rw-r--r--OpenSim/Framework/UserManager/OpenSim.Framework.UserManagement.csproj4
-rw-r--r--OpenSim/Framework/UserManager/OpenSim.Framework.UserManagement.dll.build2
-rw-r--r--OpenSim/Framework/UserManager/UserManagerBase.cs60
26 files changed, 234 insertions, 188 deletions
diff --git a/OpenSim/Framework/Communications/OpenSim.Framework.Communications.csproj b/OpenSim/Framework/Communications/OpenSim.Framework.Communications.csproj
index 0ee62e9..31ab172 100644
--- a/OpenSim/Framework/Communications/OpenSim.Framework.Communications.csproj
+++ b/OpenSim/Framework/Communications/OpenSim.Framework.Communications.csproj
@@ -86,16 +86,16 @@
86 </ProjectReference> 86 </ProjectReference>
87 </ItemGroup> 87 </ItemGroup>
88 <ItemGroup> 88 <ItemGroup>
89 <Compile Include="IUserServices.cs"> 89 <Compile Include="CommunicationsManager.cs">
90 <SubType>Code</SubType> 90 <SubType>Code</SubType>
91 </Compile> 91 </Compile>
92 <Compile Include="IGridServices.cs"> 92 <Compile Include="IGridServices.cs">
93 <SubType>Code</SubType> 93 <SubType>Code</SubType>
94 </Compile> 94 </Compile>
95 <Compile Include="CommunicationsManager.cs"> 95 <Compile Include="IInterRegionCommunications.cs">
96 <SubType>Code</SubType> 96 <SubType>Code</SubType>
97 </Compile> 97 </Compile>
98 <Compile Include="IInterRegionCommunications.cs"> 98 <Compile Include="IUserServices.cs">
99 <SubType>Code</SubType> 99 <SubType>Code</SubType>
100 </Compile> 100 </Compile>
101 <Compile Include="Properties\AssemblyInfo.cs"> 101 <Compile Include="Properties\AssemblyInfo.cs">
diff --git a/OpenSim/Framework/Communications/OpenSim.Framework.Communications.dll.build b/OpenSim/Framework/Communications/OpenSim.Framework.Communications.dll.build
index 8b0e0f6..52d29f6 100644
--- a/OpenSim/Framework/Communications/OpenSim.Framework.Communications.dll.build
+++ b/OpenSim/Framework/Communications/OpenSim.Framework.Communications.dll.build
@@ -11,10 +11,10 @@
11 <resources prefix="OpenSim.Framework.Communications" dynamicprefix="true" > 11 <resources prefix="OpenSim.Framework.Communications" dynamicprefix="true" >
12 </resources> 12 </resources>
13 <sources failonempty="true"> 13 <sources failonempty="true">
14 <include name="IUserServices.cs" />
15 <include name="IGridServices.cs" />
16 <include name="CommunicationsManager.cs" /> 14 <include name="CommunicationsManager.cs" />
15 <include name="IGridServices.cs" />
17 <include name="IInterRegionCommunications.cs" /> 16 <include name="IInterRegionCommunications.cs" />
17 <include name="IUserServices.cs" />
18 <include name="Properties/AssemblyInfo.cs" /> 18 <include name="Properties/AssemblyInfo.cs" />
19 </sources> 19 </sources>
20 <references basedir="${project::get-base-directory()}"> 20 <references basedir="${project::get-base-directory()}">
diff --git a/OpenSim/Framework/Console/OpenSim.Framework.Console.csproj b/OpenSim/Framework/Console/OpenSim.Framework.Console.csproj
index c02a506..f3dcec5 100644
--- a/OpenSim/Framework/Console/OpenSim.Framework.Console.csproj
+++ b/OpenSim/Framework/Console/OpenSim.Framework.Console.csproj
@@ -69,10 +69,10 @@
69 <Compile Include="AssemblyInfo.cs"> 69 <Compile Include="AssemblyInfo.cs">
70 <SubType>Code</SubType> 70 <SubType>Code</SubType>
71 </Compile> 71 </Compile>
72 <Compile Include="LogBase.cs"> 72 <Compile Include="ConsoleCallbacksBase.cs">
73 <SubType>Code</SubType> 73 <SubType>Code</SubType>
74 </Compile> 74 </Compile>
75 <Compile Include="ConsoleCallbacksBase.cs"> 75 <Compile Include="LogBase.cs">
76 <SubType>Code</SubType> 76 <SubType>Code</SubType>
77 </Compile> 77 </Compile>
78 <Compile Include="MainLog.cs"> 78 <Compile Include="MainLog.cs">
diff --git a/OpenSim/Framework/Console/OpenSim.Framework.Console.dll.build b/OpenSim/Framework/Console/OpenSim.Framework.Console.dll.build
index 10e72a1..eb40c0d 100644
--- a/OpenSim/Framework/Console/OpenSim.Framework.Console.dll.build
+++ b/OpenSim/Framework/Console/OpenSim.Framework.Console.dll.build
@@ -12,8 +12,8 @@
12 </resources> 12 </resources>
13 <sources failonempty="true"> 13 <sources failonempty="true">
14 <include name="AssemblyInfo.cs" /> 14 <include name="AssemblyInfo.cs" />
15 <include name="LogBase.cs" />
16 <include name="ConsoleCallbacksBase.cs" /> 15 <include name="ConsoleCallbacksBase.cs" />
16 <include name="LogBase.cs" />
17 <include name="MainLog.cs" /> 17 <include name="MainLog.cs" />
18 </sources> 18 </sources>
19 <references basedir="${project::get-base-directory()}"> 19 <references basedir="${project::get-base-directory()}">
diff --git a/OpenSim/Framework/Data.DB4o/DB4oManager.cs b/OpenSim/Framework/Data.DB4o/DB4oManager.cs
index 3870a8c..bd4cea8 100644
--- a/OpenSim/Framework/Data.DB4o/DB4oManager.cs
+++ b/OpenSim/Framework/Data.DB4o/DB4oManager.cs
@@ -89,7 +89,7 @@ namespace OpenSim.Framework.Data.DB4o
89 database.Close(); 89 database.Close();
90 return true; 90 return true;
91 } 91 }
92 catch (Exception e) 92 catch (Exception)
93 { 93 {
94 return false; 94 return false;
95 } 95 }
@@ -154,7 +154,7 @@ namespace OpenSim.Framework.Data.DB4o
154 database.Close(); 154 database.Close();
155 return true; 155 return true;
156 } 156 }
157 catch (Exception e) 157 catch (Exception)
158 { 158 {
159 return false; 159 return false;
160 } 160 }
diff --git a/OpenSim/Framework/Data.DB4o/DB4oUserData.cs b/OpenSim/Framework/Data.DB4o/DB4oUserData.cs
index 8caa75d..3ab0073 100644
--- a/OpenSim/Framework/Data.DB4o/DB4oUserData.cs
+++ b/OpenSim/Framework/Data.DB4o/DB4oUserData.cs
@@ -100,7 +100,7 @@ namespace OpenSim.Framework.Data.DB4o
100 { 100 {
101 return getUserByUUID(uuid).currentAgent; 101 return getUserByUUID(uuid).currentAgent;
102 } 102 }
103 catch (Exception e) 103 catch (Exception)
104 { 104 {
105 return null; 105 return null;
106 } 106 }
@@ -128,7 +128,7 @@ namespace OpenSim.Framework.Data.DB4o
128 { 128 {
129 return getUserByName(fname,lname).currentAgent; 129 return getUserByName(fname,lname).currentAgent;
130 } 130 }
131 catch (Exception e) 131 catch (Exception)
132 { 132 {
133 return null; 133 return null;
134 } 134 }
diff --git a/OpenSim/Framework/Data.DB4o/OpenSim.Framework.Data.DB4o.csproj b/OpenSim/Framework/Data.DB4o/OpenSim.Framework.Data.DB4o.csproj
index f6e8311..b09cecf 100644
--- a/OpenSim/Framework/Data.DB4o/OpenSim.Framework.Data.DB4o.csproj
+++ b/OpenSim/Framework/Data.DB4o/OpenSim.Framework.Data.DB4o.csproj
@@ -88,13 +88,13 @@
88 </ProjectReference> 88 </ProjectReference>
89 </ItemGroup> 89 </ItemGroup>
90 <ItemGroup> 90 <ItemGroup>
91 <Compile Include="DB4oUserData.cs"> 91 <Compile Include="DB4oGridData.cs">
92 <SubType>Code</SubType> 92 <SubType>Code</SubType>
93 </Compile> 93 </Compile>
94 <Compile Include="DB4oManager.cs"> 94 <Compile Include="DB4oManager.cs">
95 <SubType>Code</SubType> 95 <SubType>Code</SubType>
96 </Compile> 96 </Compile>
97 <Compile Include="DB4oGridData.cs"> 97 <Compile Include="DB4oUserData.cs">
98 <SubType>Code</SubType> 98 <SubType>Code</SubType>
99 </Compile> 99 </Compile>
100 <Compile Include="Properties\AssemblyInfo.cs"> 100 <Compile Include="Properties\AssemblyInfo.cs">
diff --git a/OpenSim/Framework/Data.DB4o/OpenSim.Framework.Data.DB4o.dll.build b/OpenSim/Framework/Data.DB4o/OpenSim.Framework.Data.DB4o.dll.build
index 2c5e31b..f124eb5 100644
--- a/OpenSim/Framework/Data.DB4o/OpenSim.Framework.Data.DB4o.dll.build
+++ b/OpenSim/Framework/Data.DB4o/OpenSim.Framework.Data.DB4o.dll.build
@@ -11,9 +11,9 @@
11 <resources prefix="OpenSim.Framework.Data.DB4o" dynamicprefix="true" > 11 <resources prefix="OpenSim.Framework.Data.DB4o" dynamicprefix="true" >
12 </resources> 12 </resources>
13 <sources failonempty="true"> 13 <sources failonempty="true">
14 <include name="DB4oUserData.cs" />
15 <include name="DB4oManager.cs" />
16 <include name="DB4oGridData.cs" /> 14 <include name="DB4oGridData.cs" />
15 <include name="DB4oManager.cs" />
16 <include name="DB4oUserData.cs" />
17 <include name="Properties/AssemblyInfo.cs" /> 17 <include name="Properties/AssemblyInfo.cs" />
18 </sources> 18 </sources>
19 <references basedir="${project::get-base-directory()}"> 19 <references basedir="${project::get-base-directory()}">
diff --git a/OpenSim/Framework/Data.MSSQL/MSSQLManager.cs b/OpenSim/Framework/Data.MSSQL/MSSQLManager.cs
index 7cf1a56..3c83c1f 100644
--- a/OpenSim/Framework/Data.MSSQL/MSSQLManager.cs
+++ b/OpenSim/Framework/Data.MSSQL/MSSQLManager.cs
@@ -203,7 +203,7 @@ namespace OpenSim.Framework.Data.MSSQL
203 203
204 result.Dispose(); 204 result.Dispose();
205 } 205 }
206 catch (Exception e) 206 catch (Exception)
207 { 207 {
208 return false; 208 return false;
209 } 209 }
diff --git a/OpenSim/Framework/Data.MySQL/OpenSim.Framework.Data.MySQL.csproj b/OpenSim/Framework/Data.MySQL/OpenSim.Framework.Data.MySQL.csproj
index 09a32b5..62e3887 100644
--- a/OpenSim/Framework/Data.MySQL/OpenSim.Framework.Data.MySQL.csproj
+++ b/OpenSim/Framework/Data.MySQL/OpenSim.Framework.Data.MySQL.csproj
@@ -88,19 +88,19 @@
88 </ProjectReference> 88 </ProjectReference>
89 </ItemGroup> 89 </ItemGroup>
90 <ItemGroup> 90 <ItemGroup>
91 <Compile Include="MySQLInventoryData.cs"> 91 <Compile Include="MySQLGridData.cs">
92 <SubType>Code</SubType> 92 <SubType>Code</SubType>
93 </Compile> 93 </Compile>
94 <Compile Include="MySQLUserData.cs"> 94 <Compile Include="MySQLInventoryData.cs">
95 <SubType>Code</SubType> 95 <SubType>Code</SubType>
96 </Compile> 96 </Compile>
97 <Compile Include="MySQLManager.cs"> 97 <Compile Include="MySQLLogData.cs">
98 <SubType>Code</SubType> 98 <SubType>Code</SubType>
99 </Compile> 99 </Compile>
100 <Compile Include="MySQLLogData.cs"> 100 <Compile Include="MySQLManager.cs">
101 <SubType>Code</SubType> 101 <SubType>Code</SubType>
102 </Compile> 102 </Compile>
103 <Compile Include="MySQLGridData.cs"> 103 <Compile Include="MySQLUserData.cs">
104 <SubType>Code</SubType> 104 <SubType>Code</SubType>
105 </Compile> 105 </Compile>
106 <Compile Include="Properties\AssemblyInfo.cs"> 106 <Compile Include="Properties\AssemblyInfo.cs">
diff --git a/OpenSim/Framework/Data.MySQL/OpenSim.Framework.Data.MySQL.dll.build b/OpenSim/Framework/Data.MySQL/OpenSim.Framework.Data.MySQL.dll.build
index 3aeebbc..594ec52 100644
--- a/OpenSim/Framework/Data.MySQL/OpenSim.Framework.Data.MySQL.dll.build
+++ b/OpenSim/Framework/Data.MySQL/OpenSim.Framework.Data.MySQL.dll.build
@@ -11,11 +11,11 @@
11 <resources prefix="OpenSim.Framework.Data.MySQL" dynamicprefix="true" > 11 <resources prefix="OpenSim.Framework.Data.MySQL" dynamicprefix="true" >
12 </resources> 12 </resources>
13 <sources failonempty="true"> 13 <sources failonempty="true">
14 <include name="MySQLGridData.cs" />
14 <include name="MySQLInventoryData.cs" /> 15 <include name="MySQLInventoryData.cs" />
15 <include name="MySQLUserData.cs" />
16 <include name="MySQLManager.cs" />
17 <include name="MySQLLogData.cs" /> 16 <include name="MySQLLogData.cs" />
18 <include name="MySQLGridData.cs" /> 17 <include name="MySQLManager.cs" />
18 <include name="MySQLUserData.cs" />
19 <include name="Properties/AssemblyInfo.cs" /> 19 <include name="Properties/AssemblyInfo.cs" />
20 </sources> 20 </sources>
21 <references basedir="${project::get-base-directory()}"> 21 <references basedir="${project::get-base-directory()}">
diff --git a/OpenSim/Framework/Data.SQLite/OpenSim.Framework.Data.SQLite.csproj b/OpenSim/Framework/Data.SQLite/OpenSim.Framework.Data.SQLite.csproj
index dab22ea..4ba24f1 100644
--- a/OpenSim/Framework/Data.SQLite/OpenSim.Framework.Data.SQLite.csproj
+++ b/OpenSim/Framework/Data.SQLite/OpenSim.Framework.Data.SQLite.csproj
@@ -88,10 +88,10 @@
88 </ProjectReference> 88 </ProjectReference>
89 </ItemGroup> 89 </ItemGroup>
90 <ItemGroup> 90 <ItemGroup>
91 <Compile Include="SQLiteManager.cs"> 91 <Compile Include="SQLiteGridData.cs">
92 <SubType>Code</SubType> 92 <SubType>Code</SubType>
93 </Compile> 93 </Compile>
94 <Compile Include="SQLiteGridData.cs"> 94 <Compile Include="SQLiteManager.cs">
95 <SubType>Code</SubType> 95 <SubType>Code</SubType>
96 </Compile> 96 </Compile>
97 <Compile Include="Properties\AssemblyInfo.cs"> 97 <Compile Include="Properties\AssemblyInfo.cs">
diff --git a/OpenSim/Framework/Data.SQLite/OpenSim.Framework.Data.SQLite.dll.build b/OpenSim/Framework/Data.SQLite/OpenSim.Framework.Data.SQLite.dll.build
index 719fbc6..e28d0a6 100644
--- a/OpenSim/Framework/Data.SQLite/OpenSim.Framework.Data.SQLite.dll.build
+++ b/OpenSim/Framework/Data.SQLite/OpenSim.Framework.Data.SQLite.dll.build
@@ -11,8 +11,8 @@
11 <resources prefix="OpenSim.Framework.Data.SQLite" dynamicprefix="true" > 11 <resources prefix="OpenSim.Framework.Data.SQLite" dynamicprefix="true" >
12 </resources> 12 </resources>
13 <sources failonempty="true"> 13 <sources failonempty="true">
14 <include name="SQLiteManager.cs" />
15 <include name="SQLiteGridData.cs" /> 14 <include name="SQLiteGridData.cs" />
15 <include name="SQLiteManager.cs" />
16 <include name="Properties/AssemblyInfo.cs" /> 16 <include name="Properties/AssemblyInfo.cs" />
17 </sources> 17 </sources>
18 <references basedir="${project::get-base-directory()}"> 18 <references basedir="${project::get-base-directory()}">
diff --git a/OpenSim/Framework/Data.SQLite/SQLiteManager.cs b/OpenSim/Framework/Data.SQLite/SQLiteManager.cs
index b67b79c..3397e0d 100644
--- a/OpenSim/Framework/Data.SQLite/SQLiteManager.cs
+++ b/OpenSim/Framework/Data.SQLite/SQLiteManager.cs
@@ -198,7 +198,7 @@ namespace OpenSim.Framework.Data.SQLite
198 198
199 result.Dispose(); 199 result.Dispose();
200 } 200 }
201 catch (Exception e) 201 catch (Exception)
202 { 202 {
203 return false; 203 return false;
204 } 204 }
diff --git a/OpenSim/Framework/Data/OpenSim.Framework.Data.csproj b/OpenSim/Framework/Data/OpenSim.Framework.Data.csproj
index 47b9ba3..dcafbcd 100644
--- a/OpenSim/Framework/Data/OpenSim.Framework.Data.csproj
+++ b/OpenSim/Framework/Data/OpenSim.Framework.Data.csproj
@@ -78,15 +78,9 @@
78 <ItemGroup> 78 <ItemGroup>
79 </ItemGroup> 79 </ItemGroup>
80 <ItemGroup> 80 <ItemGroup>
81 <Compile Include="ReservationData.cs">
82 <SubType>Code</SubType>
83 </Compile>
84 <Compile Include="GridData.cs"> 81 <Compile Include="GridData.cs">
85 <SubType>Code</SubType> 82 <SubType>Code</SubType>
86 </Compile> 83 </Compile>
87 <Compile Include="SimProfileData.cs">
88 <SubType>Code</SubType>
89 </Compile>
90 <Compile Include="ILogData.cs"> 84 <Compile Include="ILogData.cs">
91 <SubType>Code</SubType> 85 <SubType>Code</SubType>
92 </Compile> 86 </Compile>
@@ -96,6 +90,12 @@
96 <Compile Include="InventoryData.cs"> 90 <Compile Include="InventoryData.cs">
97 <SubType>Code</SubType> 91 <SubType>Code</SubType>
98 </Compile> 92 </Compile>
93 <Compile Include="ReservationData.cs">
94 <SubType>Code</SubType>
95 </Compile>
96 <Compile Include="SimProfileData.cs">
97 <SubType>Code</SubType>
98 </Compile>
99 <Compile Include="UserData.cs"> 99 <Compile Include="UserData.cs">
100 <SubType>Code</SubType> 100 <SubType>Code</SubType>
101 </Compile> 101 </Compile>
diff --git a/OpenSim/Framework/Data/OpenSim.Framework.Data.dll.build b/OpenSim/Framework/Data/OpenSim.Framework.Data.dll.build
index 881bb3a..aefb02b 100644
--- a/OpenSim/Framework/Data/OpenSim.Framework.Data.dll.build
+++ b/OpenSim/Framework/Data/OpenSim.Framework.Data.dll.build
@@ -11,12 +11,12 @@
11 <resources prefix="OpenSim.Framework.Data" dynamicprefix="true" > 11 <resources prefix="OpenSim.Framework.Data" dynamicprefix="true" >
12 </resources> 12 </resources>
13 <sources failonempty="true"> 13 <sources failonempty="true">
14 <include name="ReservationData.cs" />
15 <include name="GridData.cs" /> 14 <include name="GridData.cs" />
16 <include name="SimProfileData.cs" />
17 <include name="ILogData.cs" /> 15 <include name="ILogData.cs" />
18 <include name="IniConfig.cs" /> 16 <include name="IniConfig.cs" />
19 <include name="InventoryData.cs" /> 17 <include name="InventoryData.cs" />
18 <include name="ReservationData.cs" />
19 <include name="SimProfileData.cs" />
20 <include name="UserData.cs" /> 20 <include name="UserData.cs" />
21 <include name="UserProfileData.cs" /> 21 <include name="UserProfileData.cs" />
22 <include name="Properties/AssemblyInfo.cs" /> 22 <include name="Properties/AssemblyInfo.cs" />
diff --git a/OpenSim/Framework/Data/UserProfileData.cs b/OpenSim/Framework/Data/UserProfileData.cs
index 00d422d..ac168e0 100644
--- a/OpenSim/Framework/Data/UserProfileData.cs
+++ b/OpenSim/Framework/Data/UserProfileData.cs
@@ -136,7 +136,7 @@ namespace OpenSim.Framework.Data
136 /// <summary> 136 /// <summary>
137 /// The IP address of the user 137 /// The IP address of the user
138 /// </summary> 138 /// </summary>
139 public string agentIP; 139 public string agentIP = String.Empty;
140 /// <summary> 140 /// <summary>
141 /// The port of the user 141 /// The port of the user
142 /// </summary> 142 /// </summary>
diff --git a/OpenSim/Framework/General/Interfaces/IWorld.cs b/OpenSim/Framework/General/Interfaces/IWorld.cs
index 4857417..2edc0b4 100644
--- a/OpenSim/Framework/General/Interfaces/IWorld.cs
+++ b/OpenSim/Framework/General/Interfaces/IWorld.cs
@@ -35,7 +35,7 @@ namespace OpenSim.Framework.Interfaces
35{ 35{
36 public interface IWorld 36 public interface IWorld
37 { 37 {
38 void AddNewClient(IClientAPI remoteClient, LLUUID agentID, bool child); 38 void AddNewClient(IClientAPI client, bool child);
39 void RemoveClient(LLUUID agentID); 39 void RemoveClient(LLUUID agentID);
40 40
41 RegionInfo RegionInfo { get; } 41 RegionInfo RegionInfo { get; }
diff --git a/OpenSim/Framework/General/OpenSim.Framework.csproj b/OpenSim/Framework/General/OpenSim.Framework.csproj
index 57076a1..7d3d53a 100644
--- a/OpenSim/Framework/General/OpenSim.Framework.csproj
+++ b/OpenSim/Framework/General/OpenSim.Framework.csproj
@@ -1,4 +1,4 @@
1<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> 1<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
2 <PropertyGroup> 2 <PropertyGroup>
3 <ProjectType>Local</ProjectType> 3 <ProjectType>Local</ProjectType>
4 <ProductVersion>8.0.50727</ProductVersion> 4 <ProductVersion>8.0.50727</ProductVersion>
@@ -6,8 +6,7 @@
6 <ProjectGuid>{8ACA2445-0000-0000-0000-000000000000}</ProjectGuid> 6 <ProjectGuid>{8ACA2445-0000-0000-0000-000000000000}</ProjectGuid>
7 <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> 7 <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
8 <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> 8 <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
9 <ApplicationIcon> 9 <ApplicationIcon></ApplicationIcon>
10 </ApplicationIcon>
11 <AssemblyKeyContainerName> 10 <AssemblyKeyContainerName>
12 </AssemblyKeyContainerName> 11 </AssemblyKeyContainerName>
13 <AssemblyName>OpenSim.Framework</AssemblyName> 12 <AssemblyName>OpenSim.Framework</AssemblyName>
@@ -16,11 +15,9 @@
16 <DefaultTargetSchema>IE50</DefaultTargetSchema> 15 <DefaultTargetSchema>IE50</DefaultTargetSchema>
17 <DelaySign>false</DelaySign> 16 <DelaySign>false</DelaySign>
18 <OutputType>Library</OutputType> 17 <OutputType>Library</OutputType>
19 <AppDesignerFolder> 18 <AppDesignerFolder></AppDesignerFolder>
20 </AppDesignerFolder>
21 <RootNamespace>OpenSim.Framework</RootNamespace> 19 <RootNamespace>OpenSim.Framework</RootNamespace>
22 <StartupObject> 20 <StartupObject></StartupObject>
23 </StartupObject>
24 <FileUpgradeFlags> 21 <FileUpgradeFlags>
25 </FileUpgradeFlags> 22 </FileUpgradeFlags>
26 </PropertyGroup> 23 </PropertyGroup>
@@ -31,8 +28,7 @@
31 <ConfigurationOverrideFile> 28 <ConfigurationOverrideFile>
32 </ConfigurationOverrideFile> 29 </ConfigurationOverrideFile>
33 <DefineConstants>TRACE;DEBUG</DefineConstants> 30 <DefineConstants>TRACE;DEBUG</DefineConstants>
34 <DocumentationFile> 31 <DocumentationFile></DocumentationFile>
35 </DocumentationFile>
36 <DebugSymbols>True</DebugSymbols> 32 <DebugSymbols>True</DebugSymbols>
37 <FileAlignment>4096</FileAlignment> 33 <FileAlignment>4096</FileAlignment>
38 <Optimize>False</Optimize> 34 <Optimize>False</Optimize>
@@ -41,8 +37,7 @@
41 <RemoveIntegerChecks>False</RemoveIntegerChecks> 37 <RemoveIntegerChecks>False</RemoveIntegerChecks>
42 <TreatWarningsAsErrors>False</TreatWarningsAsErrors> 38 <TreatWarningsAsErrors>False</TreatWarningsAsErrors>
43 <WarningLevel>4</WarningLevel> 39 <WarningLevel>4</WarningLevel>
44 <NoWarn> 40 <NoWarn></NoWarn>
45 </NoWarn>
46 </PropertyGroup> 41 </PropertyGroup>
47 <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' "> 42 <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
48 <AllowUnsafeBlocks>False</AllowUnsafeBlocks> 43 <AllowUnsafeBlocks>False</AllowUnsafeBlocks>
@@ -51,8 +46,7 @@
51 <ConfigurationOverrideFile> 46 <ConfigurationOverrideFile>
52 </ConfigurationOverrideFile> 47 </ConfigurationOverrideFile>
53 <DefineConstants>TRACE</DefineConstants> 48 <DefineConstants>TRACE</DefineConstants>
54 <DocumentationFile> 49 <DocumentationFile></DocumentationFile>
55 </DocumentationFile>
56 <DebugSymbols>False</DebugSymbols> 50 <DebugSymbols>False</DebugSymbols>
57 <FileAlignment>4096</FileAlignment> 51 <FileAlignment>4096</FileAlignment>
58 <Optimize>True</Optimize> 52 <Optimize>True</Optimize>
@@ -61,28 +55,26 @@
61 <RemoveIntegerChecks>False</RemoveIntegerChecks> 55 <RemoveIntegerChecks>False</RemoveIntegerChecks>
62 <TreatWarningsAsErrors>False</TreatWarningsAsErrors> 56 <TreatWarningsAsErrors>False</TreatWarningsAsErrors>
63 <WarningLevel>4</WarningLevel> 57 <WarningLevel>4</WarningLevel>
64 <NoWarn> 58 <NoWarn></NoWarn>
65 </NoWarn>
66 </PropertyGroup> 59 </PropertyGroup>
67 <ItemGroup> 60 <ItemGroup>
68 <Reference Include="Db4objects.Db4o.dll"> 61 <Reference Include="Db4objects.Db4o.dll" >
69 <HintPath>..\..\..\bin\Db4objects.Db4o.dll</HintPath> 62 <HintPath>..\..\..\bin\Db4objects.Db4o.dll</HintPath>
70 <Private>False</Private> 63 <Private>False</Private>
71 </Reference> 64 </Reference>
72 <Reference Include="libsecondlife.dll"> 65 <Reference Include="libsecondlife.dll" >
73 <HintPath>..\..\..\bin\libsecondlife.dll</HintPath> 66 <HintPath>..\..\..\bin\libsecondlife.dll</HintPath>
74 <Private>False</Private> 67 <Private>False</Private>
75 </Reference> 68 </Reference>
76 <Reference Include="System"> 69 <Reference Include="System" >
77 <HintPath>System.dll</HintPath> 70 <HintPath>System.dll</HintPath>
78 <Private>False</Private> 71 <Private>False</Private>
79 </Reference> 72 </Reference>
80 <Reference Include="System.Data" /> 73 <Reference Include="System.Xml" >
81 <Reference Include="System.Xml">
82 <HintPath>System.Xml.dll</HintPath> 74 <HintPath>System.Xml.dll</HintPath>
83 <Private>False</Private> 75 <Private>False</Private>
84 </Reference> 76 </Reference>
85 <Reference Include="XMLRPC.dll"> 77 <Reference Include="XMLRPC.dll" >
86 <HintPath>..\..\..\bin\XMLRPC.dll</HintPath> 78 <HintPath>..\..\..\bin\XMLRPC.dll</HintPath>
87 <Private>False</Private> 79 <Private>False</Private>
88 </Reference> 80 </Reference>
@@ -92,17 +84,14 @@
92 <Name>OpenSim.Framework.Console</Name> 84 <Name>OpenSim.Framework.Console</Name>
93 <Project>{A7CD0630-0000-0000-0000-000000000000}</Project> 85 <Project>{A7CD0630-0000-0000-0000-000000000000}</Project>
94 <Package>{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</Package> 86 <Package>{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</Package>
95 <Private>False</Private> 87 <Private>False</Private>
96 </ProjectReference> 88 </ProjectReference>
97 </ItemGroup> 89 </ItemGroup>
98 <ItemGroup> 90 <ItemGroup>
99 <Compile Include="AuthenticateSessionBase.cs"> 91 <Compile Include="AgentInventory.cs">
100 <SubType>Code</SubType>
101 </Compile>
102 <Compile Include="Remoting.cs">
103 <SubType>Code</SubType> 92 <SubType>Code</SubType>
104 </Compile> 93 </Compile>
105 <Compile Include="RegionCommsListener.cs"> 94 <Compile Include="AuthenticateSessionBase.cs">
106 <SubType>Code</SubType> 95 <SubType>Code</SubType>
107 </Compile> 96 </Compile>
108 <Compile Include="BlockingQueue.cs"> 97 <Compile Include="BlockingQueue.cs">
@@ -111,92 +100,97 @@
111 <Compile Include="IRegionCommsListener.cs"> 100 <Compile Include="IRegionCommsListener.cs">
112 <SubType>Code</SubType> 101 <SubType>Code</SubType>
113 </Compile> 102 </Compile>
114 <Compile Include="Types\UUID.cs" /> 103 <Compile Include="LoginService.cs">
115 <Compile Include="Util.cs">
116 <SubType>Code</SubType> 104 <SubType>Code</SubType>
117 </Compile> 105 </Compile>
118 <Compile Include="UserProfile.cs"> 106 <Compile Include="RegionCommsListener.cs">
107 <SubType>Code</SubType>
108 </Compile>
109 <Compile Include="Remoting.cs">
119 <SubType>Code</SubType> 110 <SubType>Code</SubType>
120 </Compile> 111 </Compile>
121 <Compile Include="SimProfile.cs"> 112 <Compile Include="SimProfile.cs">
122 <SubType>Code</SubType> 113 <SubType>Code</SubType>
123 </Compile> 114 </Compile>
124 <Compile Include="LoginService.cs"> 115 <Compile Include="UserProfile.cs">
125 <SubType>Code</SubType> 116 <SubType>Code</SubType>
126 </Compile> 117 </Compile>
127 <Compile Include="AgentInventory.cs"> 118 <Compile Include="Util.cs">
128 <SubType>Code</SubType> 119 <SubType>Code</SubType>
129 </Compile> 120 </Compile>
130 <Compile Include="Interfaces\AuthenticateResponse.cs"> 121 <Compile Include="Interfaces\AuthenticateResponse.cs">
131 <SubType>Code</SubType> 122 <SubType>Code</SubType>
132 </Compile> 123 </Compile>
133 <Compile Include="Interfaces\IUserServer.cs"> 124 <Compile Include="Interfaces\IAssetServer.cs">
134 <SubType>Code</SubType> 125 <SubType>Code</SubType>
135 </Compile> 126 </Compile>
136 <Compile Include="Interfaces\IAssetServer.cs"> 127 <Compile Include="Interfaces\IClientAPI.cs">
137 <SubType>Code</SubType> 128 <SubType>Code</SubType>
138 </Compile> 129 </Compile>
139 <Compile Include="Interfaces\IWorld.cs"> 130 <Compile Include="Interfaces\ILocalStorage.cs">
140 <SubType>Code</SubType> 131 <SubType>Code</SubType>
141 </Compile> 132 </Compile>
142 <Compile Include="Interfaces\IClientAPI.cs"> 133 <Compile Include="Interfaces\IUserServer.cs">
143 <SubType>Code</SubType> 134 <SubType>Code</SubType>
144 </Compile> 135 </Compile>
145 <Compile Include="Interfaces\ILocalStorage.cs"> 136 <Compile Include="Interfaces\IWorld.cs">
146 <SubType>Code</SubType> 137 <SubType>Code</SubType>
147 </Compile> 138 </Compile>
148 <Compile Include="Interfaces\Config\IGenericConfig.cs"> 139 <Compile Include="Interfaces\Config\IGenericConfig.cs">
149 <SubType>Code</SubType> 140 <SubType>Code</SubType>
150 </Compile> 141 </Compile>
151 <Compile Include="Interfaces\Config\IUserConfig.cs"> 142 <Compile Include="Interfaces\Config\IGridConfig.cs">
152 <SubType>Code</SubType> 143 <SubType>Code</SubType>
153 </Compile> 144 </Compile>
154 <Compile Include="Interfaces\Config\IGridConfig.cs"> 145 <Compile Include="Interfaces\Config\IUserConfig.cs">
155 <SubType>Code</SubType> 146 <SubType>Code</SubType>
156 </Compile> 147 </Compile>
157 <Compile Include="Properties\AssemblyInfo.cs"> 148 <Compile Include="Properties\AssemblyInfo.cs">
158 <SubType>Code</SubType> 149 <SubType>Code</SubType>
159 </Compile> 150 </Compile>
160 <Compile Include="Types\NeighbourInfo.cs"> 151 <Compile Include="Types\AgentCiruitData.cs">
161 <SubType>Code</SubType> 152 <SubType>Code</SubType>
162 </Compile> 153 </Compile>
163 <Compile Include="Types\NetworkServersInfo.cs"> 154 <Compile Include="Types\AgentWearable.cs">
164 <SubType>Code</SubType> 155 <SubType>Code</SubType>
165 </Compile> 156 </Compile>
166 <Compile Include="Types\RegionHandle.cs"> 157 <Compile Include="Types\AssetBase.cs">
167 <SubType>Code</SubType> 158 <SubType>Code</SubType>
168 </Compile> 159 </Compile>
169 <Compile Include="Types\RegionInfo.cs"> 160 <Compile Include="Types\AssetLandmark.cs">
170 <SubType>Code</SubType> 161 <SubType>Code</SubType>
171 </Compile> 162 </Compile>
172 <Compile Include="Types\ParcelData.cs"> 163 <Compile Include="Types\AssetStorage.cs">
173 <SubType>Code</SubType> 164 <SubType>Code</SubType>
174 </Compile> 165 </Compile>
175 <Compile Include="Types\AgentWearable.cs"> 166 <Compile Include="Types\EstateSettings.cs">
176 <SubType>Code</SubType> 167 <SubType>Code</SubType>
177 </Compile> 168 </Compile>
178 <Compile Include="Types\PrimData.cs"> 169 <Compile Include="Types\Login.cs">
179 <SubType>Code</SubType> 170 <SubType>Code</SubType>
180 </Compile> 171 </Compile>
181 <Compile Include="Types\MapBlockData.cs"> 172 <Compile Include="Types\MapBlockData.cs">
182 <SubType>Code</SubType> 173 <SubType>Code</SubType>
183 </Compile> 174 </Compile>
184 <Compile Include="Types\AssetStorage.cs"> 175 <Compile Include="Types\NeighbourInfo.cs">
185 <SubType>Code</SubType> 176 <SubType>Code</SubType>
186 </Compile> 177 </Compile>
187 <Compile Include="Types\EstateSettings.cs"> 178 <Compile Include="Types\NetworkServersInfo.cs">
188 <SubType>Code</SubType> 179 <SubType>Code</SubType>
189 </Compile> 180 </Compile>
190 <Compile Include="Types\AgentCiruitData.cs"> 181 <Compile Include="Types\ParcelData.cs">
191 <SubType>Code</SubType> 182 <SubType>Code</SubType>
192 </Compile> 183 </Compile>
193 <Compile Include="Types\Login.cs"> 184 <Compile Include="Types\PrimData.cs">
194 <SubType>Code</SubType> 185 <SubType>Code</SubType>
195 </Compile> 186 </Compile>
196 <Compile Include="Types\AssetLandmark.cs"> 187 <Compile Include="Types\RegionHandle.cs">
197 <SubType>Code</SubType> 188 <SubType>Code</SubType>
198 </Compile> 189 </Compile>
199 <Compile Include="Types\AssetBase.cs"> 190 <Compile Include="Types\RegionInfo.cs">
191 <SubType>Code</SubType>
192 </Compile>
193 <Compile Include="Types\UUID.cs">
200 <SubType>Code</SubType> 194 <SubType>Code</SubType>
201 </Compile> 195 </Compile>
202 </ItemGroup> 196 </ItemGroup>
@@ -207,4 +201,4 @@
207 <PostBuildEvent> 201 <PostBuildEvent>
208 </PostBuildEvent> 202 </PostBuildEvent>
209 </PropertyGroup> 203 </PropertyGroup>
210</Project> \ No newline at end of file 204</Project>
diff --git a/OpenSim/Framework/General/OpenSim.Framework.dll.build b/OpenSim/Framework/General/OpenSim.Framework.dll.build
index 0d8077b..239e3e5 100644
--- a/OpenSim/Framework/General/OpenSim.Framework.dll.build
+++ b/OpenSim/Framework/General/OpenSim.Framework.dll.build
@@ -11,40 +11,41 @@
11 <resources prefix="OpenSim.Framework" dynamicprefix="true" > 11 <resources prefix="OpenSim.Framework" dynamicprefix="true" >
12 </resources> 12 </resources>
13 <sources failonempty="true"> 13 <sources failonempty="true">
14 <include name="AgentInventory.cs" />
14 <include name="AuthenticateSessionBase.cs" /> 15 <include name="AuthenticateSessionBase.cs" />
15 <include name="Remoting.cs" />
16 <include name="RegionCommsListener.cs" />
17 <include name="BlockingQueue.cs" /> 16 <include name="BlockingQueue.cs" />
18 <include name="IRegionCommsListener.cs" /> 17 <include name="IRegionCommsListener.cs" />
19 <include name="Util.cs" />
20 <include name="UserProfile.cs" />
21 <include name="SimProfile.cs" />
22 <include name="LoginService.cs" /> 18 <include name="LoginService.cs" />
23 <include name="AgentInventory.cs" /> 19 <include name="RegionCommsListener.cs" />
20 <include name="Remoting.cs" />
21 <include name="SimProfile.cs" />
22 <include name="UserProfile.cs" />
23 <include name="Util.cs" />
24 <include name="Interfaces/AuthenticateResponse.cs" /> 24 <include name="Interfaces/AuthenticateResponse.cs" />
25 <include name="Interfaces/IUserServer.cs" />
26 <include name="Interfaces/IAssetServer.cs" /> 25 <include name="Interfaces/IAssetServer.cs" />
27 <include name="Interfaces/IWorld.cs" />
28 <include name="Interfaces/IClientAPI.cs" /> 26 <include name="Interfaces/IClientAPI.cs" />
29 <include name="Interfaces/ILocalStorage.cs" /> 27 <include name="Interfaces/ILocalStorage.cs" />
28 <include name="Interfaces/IUserServer.cs" />
29 <include name="Interfaces/IWorld.cs" />
30 <include name="Interfaces/Config/IGenericConfig.cs" /> 30 <include name="Interfaces/Config/IGenericConfig.cs" />
31 <include name="Interfaces/Config/IUserConfig.cs" />
32 <include name="Interfaces/Config/IGridConfig.cs" /> 31 <include name="Interfaces/Config/IGridConfig.cs" />
32 <include name="Interfaces/Config/IUserConfig.cs" />
33 <include name="Properties/AssemblyInfo.cs" /> 33 <include name="Properties/AssemblyInfo.cs" />
34 <include name="Types/NeighbourInfo.cs" /> 34 <include name="Types/AgentCiruitData.cs" />
35 <include name="Types/NetworkServersInfo.cs" />
36 <include name="Types/RegionHandle.cs" />
37 <include name="Types/RegionInfo.cs" />
38 <include name="Types/ParcelData.cs" />
39 <include name="Types/AgentWearable.cs" /> 35 <include name="Types/AgentWearable.cs" />
40 <include name="Types/PrimData.cs" /> 36 <include name="Types/AssetBase.cs" />
41 <include name="Types/MapBlockData.cs" /> 37 <include name="Types/AssetLandmark.cs" />
42 <include name="Types/AssetStorage.cs" /> 38 <include name="Types/AssetStorage.cs" />
43 <include name="Types/EstateSettings.cs" /> 39 <include name="Types/EstateSettings.cs" />
44 <include name="Types/AgentCiruitData.cs" />
45 <include name="Types/Login.cs" /> 40 <include name="Types/Login.cs" />
46 <include name="Types/AssetLandmark.cs" /> 41 <include name="Types/MapBlockData.cs" />
47 <include name="Types/AssetBase.cs" /> 42 <include name="Types/NeighbourInfo.cs" />
43 <include name="Types/NetworkServersInfo.cs" />
44 <include name="Types/ParcelData.cs" />
45 <include name="Types/PrimData.cs" />
46 <include name="Types/RegionHandle.cs" />
47 <include name="Types/RegionInfo.cs" />
48 <include name="Types/UUID.cs" />
48 </sources> 49 </sources>
49 <references basedir="${project::get-base-directory()}"> 50 <references basedir="${project::get-base-directory()}">
50 <lib> 51 <lib>
diff --git a/OpenSim/Framework/General/Types/RegionInfo.cs b/OpenSim/Framework/General/Types/RegionInfo.cs
index 0fba6ca..1ead3c4 100644
--- a/OpenSim/Framework/General/Types/RegionInfo.cs
+++ b/OpenSim/Framework/General/Types/RegionInfo.cs
@@ -40,9 +40,38 @@ namespace OpenSim.Framework.Types
40 { 40 {
41 public LLUUID SimUUID = new LLUUID(); 41 public LLUUID SimUUID = new LLUUID();
42 public string RegionName = ""; 42 public string RegionName = "";
43 public uint RegionLocX = 0; 43
44 public uint RegionLocY = 0; 44 private uint? m_regionLocX;
45 public ulong RegionHandle = 0; 45 public uint RegionLocX
46 {
47 get
48 {
49 return m_regionLocX.Value;
50 }
51 }
52
53 private uint? m_regionLocY;
54 public uint RegionLocY
55 {
56 get
57 {
58 return m_regionLocY.Value;
59 }
60 }
61
62 private ulong? m_regionHandle;
63 public ulong RegionHandle
64 {
65 get
66 {
67 if (!m_regionHandle.HasValue)
68 {
69 m_regionHandle = Util.UIntsToLong((RegionLocX * 256), (RegionLocY * 256));
70 }
71
72 return m_regionHandle.Value;
73 }
74 }
46 75
47 public string DataStore = ""; 76 public string DataStore = "";
48 public bool isSandbox = false; 77 public bool isSandbox = false;
@@ -52,19 +81,43 @@ namespace OpenSim.Framework.Types
52 public string MasterAvatarLastName = ""; 81 public string MasterAvatarLastName = "";
53 public string MasterAvatarSandboxPassword = ""; 82 public string MasterAvatarSandboxPassword = "";
54 83
84 private int? m_commsIPListenPort;
85
55 /// <summary> 86 /// <summary>
56 /// Port used for listening (TCP and UDP) 87 /// Port used for listening (TCP and UDP)
57 /// </summary> 88 /// </summary>
58 /// <remarks>Seperate TCP and UDP</remarks> 89 /// <remarks>Seperate TCP and UDP</remarks>
59 public int CommsIPListenPort = 0; 90 public int CommsIPListenPort
91 {
92 get
93 {
94 return m_commsIPListenPort.Value;
95 }
96 }
97
98 private string m_commsIPListenAddr;
60 /// <summary> 99 /// <summary>
61 /// Address used for internal listening (default: 0.0.0.0?) 100 /// Address used for internal listening (default: 0.0.0.0?)
62 /// </summary> 101 /// </summary>
63 public string CommsIPListenAddr = ""; 102 public string CommsIPListenAddr
103 {
104 get
105 {
106 return m_commsIPListenAddr;
107 }
108 }
109
110 private string m_commsExternalAddress;
64 /// <summary> 111 /// <summary>
65 /// Address used for external addressing (DNS or IP) 112 /// Address used for external addressing (DNS or IP)
66 /// </summary> 113 /// </summary>
67 public string CommsExternalAddress = ""; 114 public string CommsExternalAddress
115 {
116 get
117 {
118 return m_commsExternalAddress;
119 }
120 }
68 121
69 122
70 public EstateSettings estateSettings; 123 public EstateSettings estateSettings;
@@ -73,7 +126,16 @@ namespace OpenSim.Framework.Types
73 { 126 {
74 estateSettings = new EstateSettings(); 127 estateSettings = new EstateSettings();
75 } 128 }
76 129
130 public RegionInfo( uint regionLocX, uint regionLocY, string simIp, int simPort, string simUri ) : this()
131 {
132 m_regionLocX = regionLocX;
133 m_regionLocY = regionLocY;
134
135 m_commsIPListenAddr = simIp;
136 m_commsIPListenPort = simPort;
137 m_commsExternalAddress = simUri;
138 }
77 139
78 public void InitConfig(bool sandboxMode, IGenericConfig configData) 140 public void InitConfig(bool sandboxMode, IGenericConfig configData)
79 { 141 {
@@ -112,11 +174,11 @@ namespace OpenSim.Framework.Types
112 { 174 {
113 string location = OpenSim.Framework.Console.MainLog.Instance.CmdPrompt("Grid Location X", "1000"); 175 string location = OpenSim.Framework.Console.MainLog.Instance.CmdPrompt("Grid Location X", "1000");
114 configData.SetAttribute("SimLocationX", location); 176 configData.SetAttribute("SimLocationX", location);
115 this.RegionLocX = (uint)Convert.ToUInt32(location); 177 m_regionLocX = (uint)Convert.ToUInt32(location);
116 } 178 }
117 else 179 else
118 { 180 {
119 this.RegionLocX = (uint)Convert.ToUInt32(attri); 181 m_regionLocX = (uint)Convert.ToUInt32(attri);
120 } 182 }
121 // Sim/Grid location Y 183 // Sim/Grid location Y
122 attri = ""; 184 attri = "";
@@ -125,13 +187,15 @@ namespace OpenSim.Framework.Types
125 { 187 {
126 string location = OpenSim.Framework.Console.MainLog.Instance.CmdPrompt("Grid Location Y", "1000"); 188 string location = OpenSim.Framework.Console.MainLog.Instance.CmdPrompt("Grid Location Y", "1000");
127 configData.SetAttribute("SimLocationY", location); 189 configData.SetAttribute("SimLocationY", location);
128 this.RegionLocY = (uint)Convert.ToUInt32(location); 190 m_regionLocY = (uint)Convert.ToUInt32(location);
129 } 191 }
130 else 192 else
131 { 193 {
132 this.RegionLocY = (uint)Convert.ToUInt32(attri); 194 m_regionLocY = (uint)Convert.ToUInt32(attri);
133 } 195 }
134 196
197 m_regionHandle = null;
198
135 // Local storage datastore 199 // Local storage datastore
136 attri = ""; 200 attri = "";
137 attri = configData.GetAttribute("Datastore"); 201 attri = configData.GetAttribute("Datastore");
@@ -153,11 +217,11 @@ namespace OpenSim.Framework.Types
153 { 217 {
154 string port = OpenSim.Framework.Console.MainLog.Instance.CmdPrompt("UDP port for client connections", "9000"); 218 string port = OpenSim.Framework.Console.MainLog.Instance.CmdPrompt("UDP port for client connections", "9000");
155 configData.SetAttribute("SimListenPort", port); 219 configData.SetAttribute("SimListenPort", port);
156 this.CommsIPListenPort = Convert.ToInt32(port); 220 m_commsIPListenPort = Convert.ToInt32(port);
157 } 221 }
158 else 222 else
159 { 223 {
160 this.CommsIPListenPort = Convert.ToInt32(attri); 224 m_commsIPListenPort = Convert.ToInt32(attri);
161 } 225 }
162 226
163 //Sim Listen Address 227 //Sim Listen Address
@@ -165,8 +229,8 @@ namespace OpenSim.Framework.Types
165 attri = configData.GetAttribute("SimListenAddress"); 229 attri = configData.GetAttribute("SimListenAddress");
166 if (attri == "") 230 if (attri == "")
167 { 231 {
168 this.CommsIPListenAddr = OpenSim.Framework.Console.MainLog.Instance.CmdPrompt("IP Address to listen on for client connections", "0.0.0.0"); 232 m_commsIPListenAddr = OpenSim.Framework.Console.MainLog.Instance.CmdPrompt("IP Address to listen on for client connections", "0.0.0.0");
169 configData.SetAttribute("SimListenAddress", this.CommsIPListenAddr); 233 configData.SetAttribute("SimListenAddress", CommsIPListenAddr );
170 } 234 }
171 else 235 else
172 { 236 {
@@ -177,26 +241,25 @@ namespace OpenSim.Framework.Types
177 System.Net.IPAddress[] ips = System.Net.Dns.GetHostAddresses(localhostname); 241 System.Net.IPAddress[] ips = System.Net.Dns.GetHostAddresses(localhostname);
178 try 242 try
179 { 243 {
180 this.CommsIPListenAddr = "0.0.0.0"; // Incase a IPv4 address isnt found 244 m_commsIPListenAddr = "0.0.0.0"; // Incase a IPv4 address isnt found
181 245
182 foreach (System.Net.IPAddress ip in ips) 246 foreach (System.Net.IPAddress ip in ips)
183 { 247 {
184 if (ip.AddressFamily.ToString() == System.Net.Sockets.ProtocolFamily.InterNetwork.ToString()) 248 if (ip.AddressFamily.ToString() == System.Net.Sockets.ProtocolFamily.InterNetwork.ToString())
185 { 249 {
186 this.CommsIPListenAddr = ip.ToString(); 250 m_commsIPListenAddr = ip.ToString();
187 break; 251 break;
188 } 252 }
189 } 253 }
190 } 254 }
191 catch (Exception e) 255 catch (Exception)
192 { 256 {
193 e.ToString(); 257 m_commsIPListenAddr = "0.0.0.0"; // Use the default if we fail
194 this.CommsIPListenAddr = "0.0.0.0"; // Use the default if we fail
195 } 258 }
196 } 259 }
197 else 260 else
198 { 261 {
199 this.CommsIPListenAddr = attri; 262 m_commsIPListenAddr = attri;
200 } 263 }
201 } 264 }
202 265
@@ -205,12 +268,12 @@ namespace OpenSim.Framework.Types
205 attri = configData.GetAttribute("SimExternalAddress"); 268 attri = configData.GetAttribute("SimExternalAddress");
206 if (attri == "") 269 if (attri == "")
207 { 270 {
208 this.CommsExternalAddress = OpenSim.Framework.Console.MainLog.Instance.CmdPrompt("IP or DNS address to send external clients to", "localhost"); 271 m_commsExternalAddress = OpenSim.Framework.Console.MainLog.Instance.CmdPrompt("IP or DNS address to send external clients to", "localhost");
209 configData.SetAttribute("SimExternalAddress", this.CommsExternalAddress); 272 configData.SetAttribute("SimExternalAddress", CommsExternalAddress);
210 } 273 }
211 else 274 else
212 { 275 {
213 this.CommsExternalAddress = attri; 276 m_commsExternalAddress = attri;
214 } 277 }
215 278
216 attri = ""; 279 attri = "";
@@ -281,8 +344,6 @@ namespace OpenSim.Framework.Types
281 } 344 }
282 } 345 }
283 346
284 this.RegionHandle = Util.UIntsToLong((RegionLocX * 256), (RegionLocY * 256));
285
286 configData.Commit(); 347 configData.Commit();
287 } 348 }
288 catch (Exception e) 349 catch (Exception e)
@@ -292,13 +353,13 @@ namespace OpenSim.Framework.Types
292 } 353 }
293 354
294 OpenSim.Framework.Console.MainLog.Instance.Verbose("Sim settings loaded:"); 355 OpenSim.Framework.Console.MainLog.Instance.Verbose("Sim settings loaded:");
295 OpenSim.Framework.Console.MainLog.Instance.Verbose( "UUID: " + this.SimUUID.ToStringHyphenated()); 356 OpenSim.Framework.Console.MainLog.Instance.Verbose("UUID: " + this.SimUUID.ToStringHyphenated());
296 OpenSim.Framework.Console.MainLog.Instance.Verbose( "Name: " + this.RegionName); 357 OpenSim.Framework.Console.MainLog.Instance.Verbose("Name: " + this.RegionName);
297 OpenSim.Framework.Console.MainLog.Instance.Verbose( "Region Location: [" + this.RegionLocX.ToString() + "," + this.RegionLocY + "]"); 358 OpenSim.Framework.Console.MainLog.Instance.Verbose("Region Location: [" + this.RegionLocX.ToString() + "," + this.RegionLocY + "]");
298 OpenSim.Framework.Console.MainLog.Instance.Verbose( "Region Handle: " + this.RegionHandle.ToString()); 359 OpenSim.Framework.Console.MainLog.Instance.Verbose("Region Handle: " + this.RegionHandle.ToString());
299 OpenSim.Framework.Console.MainLog.Instance.Verbose( "Listening on IP: " + this.CommsIPListenAddr + ":" + this.CommsIPListenPort); 360 OpenSim.Framework.Console.MainLog.Instance.Verbose("Listening on IP: " + this.CommsIPListenAddr + ":" + this.CommsIPListenPort);
300 OpenSim.Framework.Console.MainLog.Instance.Verbose( "Sandbox Mode? " + isSandbox.ToString()); 361 OpenSim.Framework.Console.MainLog.Instance.Verbose("Sandbox Mode? " + isSandbox.ToString());
301 362
302 } 363 }
303 } 364 }
304} 365}
diff --git a/OpenSim/Framework/Servers/OpenSim.Framework.Servers.csproj b/OpenSim/Framework/Servers/OpenSim.Framework.Servers.csproj
index 5262224..399f456 100644
--- a/OpenSim/Framework/Servers/OpenSim.Framework.Servers.csproj
+++ b/OpenSim/Framework/Servers/OpenSim.Framework.Servers.csproj
@@ -93,16 +93,16 @@
93 <Compile Include="BaseHttpServer.cs"> 93 <Compile Include="BaseHttpServer.cs">
94 <SubType>Code</SubType> 94 <SubType>Code</SubType>
95 </Compile> 95 </Compile>
96 <Compile Include="IRestHandler.cs"> 96 <Compile Include="CheckSumServer.cs">
97 <SubType>Code</SubType> 97 <SubType>Code</SubType>
98 </Compile> 98 </Compile>
99 <Compile Include="XmlRpcMethod.cs"> 99 <Compile Include="IRestHandler.cs">
100 <SubType>Code</SubType> 100 <SubType>Code</SubType>
101 </Compile> 101 </Compile>
102 <Compile Include="CheckSumServer.cs"> 102 <Compile Include="UDPServerBase.cs">
103 <SubType>Code</SubType> 103 <SubType>Code</SubType>
104 </Compile> 104 </Compile>
105 <Compile Include="UDPServerBase.cs"> 105 <Compile Include="XmlRpcMethod.cs">
106 <SubType>Code</SubType> 106 <SubType>Code</SubType>
107 </Compile> 107 </Compile>
108 </ItemGroup> 108 </ItemGroup>
diff --git a/OpenSim/Framework/Servers/OpenSim.Framework.Servers.dll.build b/OpenSim/Framework/Servers/OpenSim.Framework.Servers.dll.build
index 96b937c..7401b07 100644
--- a/OpenSim/Framework/Servers/OpenSim.Framework.Servers.dll.build
+++ b/OpenSim/Framework/Servers/OpenSim.Framework.Servers.dll.build
@@ -12,10 +12,10 @@
12 </resources> 12 </resources>
13 <sources failonempty="true"> 13 <sources failonempty="true">
14 <include name="BaseHttpServer.cs" /> 14 <include name="BaseHttpServer.cs" />
15 <include name="IRestHandler.cs" />
16 <include name="XmlRpcMethod.cs" />
17 <include name="CheckSumServer.cs" /> 15 <include name="CheckSumServer.cs" />
16 <include name="IRestHandler.cs" />
18 <include name="UDPServerBase.cs" /> 17 <include name="UDPServerBase.cs" />
18 <include name="XmlRpcMethod.cs" />
19 </sources> 19 </sources>
20 <references basedir="${project::get-base-directory()}"> 20 <references basedir="${project::get-base-directory()}">
21 <lib> 21 <lib>
diff --git a/OpenSim/Framework/UserManager/OpenSim.Framework.UserManagement.csproj b/OpenSim/Framework/UserManager/OpenSim.Framework.UserManagement.csproj
index 60c4b2f..02aa3f3 100644
--- a/OpenSim/Framework/UserManager/OpenSim.Framework.UserManagement.csproj
+++ b/OpenSim/Framework/UserManager/OpenSim.Framework.UserManagement.csproj
@@ -108,10 +108,10 @@
108 </ProjectReference> 108 </ProjectReference>
109 </ItemGroup> 109 </ItemGroup>
110 <ItemGroup> 110 <ItemGroup>
111 <Compile Include="UserManagerBase.cs"> 111 <Compile Include="LoginResponse.cs">
112 <SubType>Code</SubType> 112 <SubType>Code</SubType>
113 </Compile> 113 </Compile>
114 <Compile Include="LoginResponse.cs"> 114 <Compile Include="UserManagerBase.cs">
115 <SubType>Code</SubType> 115 <SubType>Code</SubType>
116 </Compile> 116 </Compile>
117 </ItemGroup> 117 </ItemGroup>
diff --git a/OpenSim/Framework/UserManager/OpenSim.Framework.UserManagement.dll.build b/OpenSim/Framework/UserManager/OpenSim.Framework.UserManagement.dll.build
index ced9276..3ea339b 100644
--- a/OpenSim/Framework/UserManager/OpenSim.Framework.UserManagement.dll.build
+++ b/OpenSim/Framework/UserManager/OpenSim.Framework.UserManagement.dll.build
@@ -11,8 +11,8 @@
11 <resources prefix="OpenSim.Framework.UserManagement" dynamicprefix="true" > 11 <resources prefix="OpenSim.Framework.UserManagement" dynamicprefix="true" >
12 </resources> 12 </resources>
13 <sources failonempty="true"> 13 <sources failonempty="true">
14 <include name="UserManagerBase.cs" />
15 <include name="LoginResponse.cs" /> 14 <include name="LoginResponse.cs" />
15 <include name="UserManagerBase.cs" />
16 </sources> 16 </sources>
17 <references basedir="${project::get-base-directory()}"> 17 <references basedir="${project::get-base-directory()}">
18 <lib> 18 <lib>
diff --git a/OpenSim/Framework/UserManager/UserManagerBase.cs b/OpenSim/Framework/UserManager/UserManagerBase.cs
index d06059e..560752e 100644
--- a/OpenSim/Framework/UserManager/UserManagerBase.cs
+++ b/OpenSim/Framework/UserManager/UserManagerBase.cs
@@ -43,7 +43,7 @@ using System.Security.Cryptography;
43 43
44namespace OpenSim.Framework.UserManagement 44namespace OpenSim.Framework.UserManagement
45{ 45{
46 public class UserManagerBase 46 public abstract class UserManagerBase
47 { 47 {
48 public OpenSim.Framework.Interfaces.UserConfig _config; 48 public OpenSim.Framework.Interfaces.UserConfig _config;
49 Dictionary<string, IUserData> _plugins = new Dictionary<string, IUserData>(); 49 Dictionary<string, IUserData> _plugins = new Dictionary<string, IUserData>();
@@ -142,14 +142,9 @@ namespace OpenSim.Framework.UserManagement
142 try 142 try
143 { 143 {
144 UserProfileData profile = plugin.Value.getUserByName(fname,lname); 144 UserProfileData profile = plugin.Value.getUserByName(fname,lname);
145 try 145
146 { 146 profile.currentAgent = getUserAgent(profile.UUID);
147 profile.currentAgent = getUserAgent(profile.UUID); 147
148 }
149 catch (Exception e)
150 {
151 // Ignore
152 }
153 return profile; 148 return profile;
154 } 149 }
155 catch (Exception e) 150 catch (Exception e)
@@ -238,16 +233,14 @@ namespace OpenSim.Framework.UserManagement
238 /// </summary> 233 /// </summary>
239 /// <param name="profile">The users profile</param> 234 /// <param name="profile">The users profile</param>
240 /// <param name="request">The users loginrequest</param> 235 /// <param name="request">The users loginrequest</param>
241 public void CreateAgent(ref UserProfileData profile, XmlRpcRequest request) 236 public void CreateAgent(UserProfileData profile, XmlRpcRequest request)
242 { 237 {
243 Hashtable requestData = (Hashtable)request.Params[0]; 238 Hashtable requestData = (Hashtable)request.Params[0];
244 239
245 UserAgentData agent = new UserAgentData(); 240 UserAgentData agent = new UserAgentData();
246 241
247 // User connection 242 // User connection
248 agent.agentIP = "";
249 agent.agentOnline = true; 243 agent.agentOnline = true;
250 agent.agentPort = 0;
251 244
252 // Generate sessions 245 // Generate sessions
253 RNGCryptoServiceProvider rand = new RNGCryptoServiceProvider(); 246 RNGCryptoServiceProvider rand = new RNGCryptoServiceProvider();
@@ -282,7 +275,7 @@ namespace OpenSim.Framework.UserManagement
282 //SimProfile SimInfo = new SimProfile(); 275 //SimProfile SimInfo = new SimProfile();
283 //SimInfo = SimInfo.LoadFromGrid(theUser.currentAgent.currentHandle, _config.GridServerURL, _config.GridSendKey, _config.GridRecvKey); 276 //SimInfo = SimInfo.LoadFromGrid(theUser.currentAgent.currentHandle, _config.GridServerURL, _config.GridSendKey, _config.GridRecvKey);
284 } 277 }
285 catch (Exception e) 278 catch (Exception)
286 { 279 {
287 280
288 } 281 }
@@ -319,7 +312,7 @@ namespace OpenSim.Framework.UserManagement
319 /// <param name="profile">The users profile</param> 312 /// <param name="profile">The users profile</param>
320 /// <param name="password">The supplied password</param> 313 /// <param name="password">The supplied password</param>
321 /// <returns>Authenticated?</returns> 314 /// <returns>Authenticated?</returns>
322 public virtual bool AuthenticateUser(ref UserProfileData profile, string password) 315 public virtual bool AuthenticateUser(UserProfileData profile, string password)
323 { 316 {
324 OpenSim.Framework.Console.MainLog.Instance.Verbose( 317 OpenSim.Framework.Console.MainLog.Instance.Verbose(
325 "Authenticating " + profile.username + " " + profile.surname); 318 "Authenticating " + profile.username + " " + profile.surname);
@@ -358,10 +351,7 @@ namespace OpenSim.Framework.UserManagement
358 /// </summary> 351 /// </summary>
359 /// <param name="response">The existing response</param> 352 /// <param name="response">The existing response</param>
360 /// <param name="theUser">The user profile</param> 353 /// <param name="theUser">The user profile</param>
361 public virtual void CustomiseResponse(ref LoginResponse response, ref UserProfileData theUser) 354 public abstract void CustomiseResponse( LoginResponse response, UserProfileData theUser);
362 {
363
364 }
365 355
366 /// <summary> 356 /// <summary>
367 /// Main user login function 357 /// Main user login function
@@ -379,7 +369,7 @@ namespace OpenSim.Framework.UserManagement
379 string lastname = ""; 369 string lastname = "";
380 string passwd = ""; 370 string passwd = "";
381 371
382 UserProfileData TheUser; 372 UserProfileData userProfile;
383 LoginResponse logResponse = new LoginResponse(); 373 LoginResponse logResponse = new LoginResponse();
384 374
385 if (GoodXML) 375 if (GoodXML)
@@ -388,11 +378,11 @@ namespace OpenSim.Framework.UserManagement
388 lastname = (string)requestData["last"]; 378 lastname = (string)requestData["last"];
389 passwd = (string)requestData["passwd"]; 379 passwd = (string)requestData["passwd"];
390 380
391 TheUser = GetTheUser(firstname, lastname); 381 userProfile = GetTheUser(firstname, lastname);
392 if (TheUser == null) 382 if (userProfile == null)
393 return logResponse.CreateLoginFailedResponse(); 383 return logResponse.CreateLoginFailedResponse();
394 384
395 GoodLogin = AuthenticateUser(ref TheUser, passwd); 385 GoodLogin = AuthenticateUser(userProfile, passwd);
396 } 386 }
397 else 387 else
398 { 388 {
@@ -406,19 +396,19 @@ namespace OpenSim.Framework.UserManagement
406 else 396 else
407 { 397 {
408 // If we already have a session... 398 // If we already have a session...
409 if (TheUser.currentAgent != null && TheUser.currentAgent.agentOnline) 399 if (userProfile.currentAgent != null && userProfile.currentAgent.agentOnline)
410 { 400 {
411 // Reject the login 401 // Reject the login
412 return logResponse.CreateAlreadyLoggedInResponse(); 402 return logResponse.CreateAlreadyLoggedInResponse();
413 } 403 }
414 // Otherwise... 404 // Otherwise...
415 // Create a new agent session 405 // Create a new agent session
416 CreateAgent(ref TheUser, request); 406 CreateAgent( userProfile, request);
417 407
418 try 408 try
419 { 409 {
420 410
421 LLUUID AgentID = TheUser.UUID; 411 LLUUID AgentID = userProfile.UUID;
422 412
423 // Inventory Library Section 413 // Inventory Library Section
424 ArrayList AgentInventoryArray = new ArrayList(); 414 ArrayList AgentInventoryArray = new ArrayList();
@@ -446,32 +436,32 @@ namespace OpenSim.Framework.UserManagement
446 // Circuit Code 436 // Circuit Code
447 uint circode = (uint)(Util.RandomClass.Next()); 437 uint circode = (uint)(Util.RandomClass.Next());
448 438
449 logResponse.Lastname = TheUser.surname; 439 logResponse.Lastname = userProfile.surname;
450 logResponse.Firstname = TheUser.username; 440 logResponse.Firstname = userProfile.username;
451 logResponse.AgentID = AgentID.ToStringHyphenated(); 441 logResponse.AgentID = AgentID.ToStringHyphenated();
452 logResponse.SessionID = TheUser.currentAgent.sessionID.ToStringHyphenated(); 442 logResponse.SessionID = userProfile.currentAgent.sessionID.ToStringHyphenated();
453 logResponse.SecureSessionID = TheUser.currentAgent.secureSessionID.ToStringHyphenated(); 443 logResponse.SecureSessionID = userProfile.currentAgent.secureSessionID.ToStringHyphenated();
454 logResponse.InventoryRoot = InventoryRoot; 444 logResponse.InventoryRoot = InventoryRoot;
455 logResponse.InventorySkeleton = AgentInventoryArray; 445 logResponse.InventorySkeleton = AgentInventoryArray;
456 logResponse.CircuitCode = (Int32)circode; 446 logResponse.CircuitCode = (Int32)circode;
457 logResponse.RegionX = 0; //overwritten 447 //logResponse.RegionX = 0; //overwritten
458 logResponse.RegionY = 0; //overwritten 448 //logResponse.RegionY = 0; //overwritten
459 logResponse.Home = "!!null temporary value {home}!!"; // Overwritten 449 logResponse.Home = "!!null temporary value {home}!!"; // Overwritten
460 //logResponse.LookAt = "\n[r" + TheUser.homeLookAt.X.ToString() + ",r" + TheUser.homeLookAt.Y.ToString() + ",r" + TheUser.homeLookAt.Z.ToString() + "]\n"; 450 //logResponse.LookAt = "\n[r" + TheUser.homeLookAt.X.ToString() + ",r" + TheUser.homeLookAt.Y.ToString() + ",r" + TheUser.homeLookAt.Z.ToString() + "]\n";
461 logResponse.SimAddress = "127.0.0.1"; //overwritten 451 //logResponse.SimAddress = "127.0.0.1"; //overwritten
462 logResponse.SimPort = 0; //overwritten 452 //logResponse.SimPort = 0; //overwritten
463 logResponse.Message = this.GetMessage(); 453 logResponse.Message = this.GetMessage();
464 454
465 try 455 try
466 { 456 {
467 this.CustomiseResponse(ref logResponse, ref TheUser); 457 this.CustomiseResponse( logResponse, userProfile);
468 } 458 }
469 catch (Exception e) 459 catch (Exception e)
470 { 460 {
471 System.Console.WriteLine(e.ToString()); 461 System.Console.WriteLine(e.ToString());
472 return logResponse.CreateDeadRegionResponse(); 462 return logResponse.CreateDeadRegionResponse();
473 } 463 }
474 CommitAgent(ref TheUser); 464 CommitAgent(ref userProfile);
475 return logResponse.ToXmlRpcResponse(); 465 return logResponse.ToXmlRpcResponse();
476 466
477 } 467 }