diff options
author | Adam Frisby | 2007-06-14 14:36:40 +0000 |
---|---|---|
committer | Adam Frisby | 2007-06-14 14:36:40 +0000 |
commit | 16b43b8bffff8f11f0f633d8f503e752223a4772 (patch) | |
tree | a4c4081d2ebc1bd24ff23ea18527891b206acf90 | |
parent | Fixed the bug that makes a region use its water height as its name (in region... (diff) | |
download | opensim-SC-16b43b8bffff8f11f0f633d8f503e752223a4772.zip opensim-SC-16b43b8bffff8f11f0f633d8f503e752223a4772.tar.gz opensim-SC-16b43b8bffff8f11f0f633d8f503e752223a4772.tar.bz2 opensim-SC-16b43b8bffff8f11f0f633d8f503e752223a4772.tar.xz |
* Added maintenance patch (issue #139) from BigfootAg to /trunk
16 files changed, 213 insertions, 112 deletions
diff --git a/Common/OpenSim.Servers/OpenSim.Servers.csproj b/Common/OpenSim.Servers/OpenSim.Servers.csproj index a4f56fe..7a99206 100644 --- a/Common/OpenSim.Servers/OpenSim.Servers.csproj +++ b/Common/OpenSim.Servers/OpenSim.Servers.csproj | |||
@@ -113,6 +113,9 @@ | |||
113 | <Compile Include="LoginServer.cs"> | 113 | <Compile Include="LoginServer.cs"> |
114 | <SubType>Code</SubType> | 114 | <SubType>Code</SubType> |
115 | </Compile> | 115 | </Compile> |
116 | <Compile Include="SocketRegistry.cs"> | ||
117 | <SubType>Code</SubType> | ||
118 | </Compile> | ||
116 | <Compile Include="UDPServerBase.cs"> | 119 | <Compile Include="UDPServerBase.cs"> |
117 | <SubType>Code</SubType> | 120 | <SubType>Code</SubType> |
118 | </Compile> | 121 | </Compile> |
diff --git a/Common/OpenSim.Servers/OpenSim.Servers.dll.build b/Common/OpenSim.Servers/OpenSim.Servers.dll.build index 25bcd65..6147ea7 100644 --- a/Common/OpenSim.Servers/OpenSim.Servers.dll.build +++ b/Common/OpenSim.Servers/OpenSim.Servers.dll.build | |||
@@ -18,6 +18,7 @@ | |||
18 | <include name="LocalUserProfileManager.cs" /> | 18 | <include name="LocalUserProfileManager.cs" /> |
19 | <include name="LoginResponse.cs" /> | 19 | <include name="LoginResponse.cs" /> |
20 | <include name="LoginServer.cs" /> | 20 | <include name="LoginServer.cs" /> |
21 | <include name="SocketRegistry.cs" /> | ||
21 | <include name="UDPServerBase.cs" /> | 22 | <include name="UDPServerBase.cs" /> |
22 | <include name="XmlRpcMethod.cs" /> | 23 | <include name="XmlRpcMethod.cs" /> |
23 | </sources> | 24 | </sources> |
diff --git a/Common/OpenSim.Servers/SocketRegistry.cs b/Common/OpenSim.Servers/SocketRegistry.cs new file mode 100644 index 0000000..2ebf80c --- /dev/null +++ b/Common/OpenSim.Servers/SocketRegistry.cs | |||
@@ -0,0 +1,63 @@ | |||
1 | /* | ||
2 | * Created by SharpDevelop. | ||
3 | * User: Adam Stevenson | ||
4 | * Date: 6/13/2007 | ||
5 | * Time: 12:55 AM | ||
6 | * | ||
7 | * To change this template use Tools | Options | Coding | Edit Standard Headers. | ||
8 | */ | ||
9 | |||
10 | using System; | ||
11 | using System.Collections.Generic; | ||
12 | using System.Net; | ||
13 | using System.Net.Sockets; | ||
14 | |||
15 | namespace OpenSim.Servers | ||
16 | { | ||
17 | /// <summary> | ||
18 | /// | ||
19 | /// </summary> | ||
20 | public class SocketRegistry | ||
21 | { | ||
22 | static List<Socket> _Sockets; | ||
23 | |||
24 | static SocketRegistry() | ||
25 | { | ||
26 | _Sockets = new List<Socket>(); | ||
27 | } | ||
28 | |||
29 | private SocketRegistry() | ||
30 | { | ||
31 | |||
32 | } | ||
33 | |||
34 | public static void Register(Socket pSocket) | ||
35 | { | ||
36 | _Sockets.Add(pSocket); | ||
37 | } | ||
38 | |||
39 | public static void Unregister(Socket pSocket) | ||
40 | { | ||
41 | _Sockets.Remove(pSocket); | ||
42 | } | ||
43 | |||
44 | public static void UnregisterAllAndClose() | ||
45 | { | ||
46 | int iSockets = _Sockets.Count; | ||
47 | |||
48 | for (int i = 0; i < iSockets; i++) | ||
49 | { | ||
50 | try | ||
51 | { | ||
52 | _Sockets[i].Close(); | ||
53 | } | ||
54 | catch | ||
55 | { | ||
56 | |||
57 | } | ||
58 | } | ||
59 | |||
60 | _Sockets.Clear(); | ||
61 | } | ||
62 | } | ||
63 | } | ||
diff --git a/Common/OpenSim.Servers/UDPServerBase.cs b/Common/OpenSim.Servers/UDPServerBase.cs index b472c97..b763315 100644 --- a/Common/OpenSim.Servers/UDPServerBase.cs +++ b/Common/OpenSim.Servers/UDPServerBase.cs | |||
@@ -78,6 +78,13 @@ namespace OpenSim.Servers | |||
78 | 78 | ||
79 | ServerIncoming = new IPEndPoint(IPAddress.Any, listenPort); | 79 | ServerIncoming = new IPEndPoint(IPAddress.Any, listenPort); |
80 | Server = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp); | 80 | Server = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp); |
81 | |||
82 | /// Add this new socket to the list of sockets that was opened by the application. When the application | ||
83 | /// closes, either gracefully or not, all sockets can be cleaned up. Right now I am not aware of any method | ||
84 | /// to get all of the sockets for a process within .NET, but if so, this process can be refactored, as | ||
85 | /// socket registration would not be neccessary. | ||
86 | SocketRegistry.Register(Server); | ||
87 | |||
81 | Server.Bind(ServerIncoming); | 88 | Server.Bind(ServerIncoming); |
82 | 89 | ||
83 | ipeSender = new IPEndPoint(IPAddress.Any, 0); | 90 | ipeSender = new IPEndPoint(IPAddress.Any, 0); |
@@ -93,3 +100,4 @@ namespace OpenSim.Servers | |||
93 | } | 100 | } |
94 | } | 101 | } |
95 | 102 | ||
103 | |||
diff --git a/OpenGridServices/OpenGrid.Config/GridConfigDb4o/OpenGrid.Config.GridConfigDb4o.dll.build b/OpenGridServices/OpenGrid.Config/GridConfigDb4o/OpenGrid.Config.GridConfigDb4o.dll.build index 075593b..d0ba0a8 100644 --- a/OpenGridServices/OpenGrid.Config/GridConfigDb4o/OpenGrid.Config.GridConfigDb4o.dll.build +++ b/OpenGridServices/OpenGrid.Config/GridConfigDb4o/OpenGrid.Config.GridConfigDb4o.dll.build | |||
@@ -21,8 +21,8 @@ | |||
21 | </lib> | 21 | </lib> |
22 | <include name="../../../bin/Db4objects.Db4o.dll" /> | 22 | <include name="../../../bin/Db4objects.Db4o.dll" /> |
23 | <include name="../../../bin/libsecondlife.dll" /> | 23 | <include name="../../../bin/libsecondlife.dll" /> |
24 | <include name="../../../bin/OpenSim.Framework.dll" /> | 24 | <include name="OpenSim.Framework.dll" /> |
25 | <include name="../../../bin/OpenSim.Framework.Console.dll" /> | 25 | <include name="OpenSim.Framework.Console.dll" /> |
26 | <include name="System.dll" /> | 26 | <include name="System.dll" /> |
27 | <include name="System.Data.dll.dll" /> | 27 | <include name="System.Data.dll.dll" /> |
28 | <include name="System.Xml.dll" /> | 28 | <include name="System.Xml.dll" /> |
diff --git a/OpenGridServices/OpenGrid.Framework.Manager/OpenGrid.Framework.Manager.dll.build b/OpenGridServices/OpenGrid.Framework.Manager/OpenGrid.Framework.Manager.dll.build index 9430ab9..7195699 100644 --- a/OpenGridServices/OpenGrid.Framework.Manager/OpenGrid.Framework.Manager.dll.build +++ b/OpenGridServices/OpenGrid.Framework.Manager/OpenGrid.Framework.Manager.dll.build | |||
@@ -20,10 +20,10 @@ | |||
20 | <include name="${project::get-base-directory()}/${build.dir}" /> | 20 | <include name="${project::get-base-directory()}/${build.dir}" /> |
21 | </lib> | 21 | </lib> |
22 | <include name="../../bin/libsecondlife.dll" /> | 22 | <include name="../../bin/libsecondlife.dll" /> |
23 | <include name="../../bin/OpenSim.Framework.dll" /> | 23 | <include name="OpenSim.Framework.dll.dll" /> |
24 | <include name="../../bin/OpenSim.Servers.dll" /> | 24 | <include name="OpenSim.Servers.dll.dll" /> |
25 | <include name="System.dll" /> | 25 | <include name="System.dll" /> |
26 | <include name="../../bin/XMLRPC.dll" /> | 26 | <include name="XMLRPC.dll" /> |
27 | </references> | 27 | </references> |
28 | </csc> | 28 | </csc> |
29 | <echo message="Copying from [${project::get-base-directory()}/${build.dir}/] to [${project::get-base-directory()}/../../bin/" /> | 29 | <echo message="Copying from [${project::get-base-directory()}/${build.dir}/] to [${project::get-base-directory()}/../../bin/" /> |
diff --git a/OpenGridServices/OpenGridServices.AssetServer/OpenGridServices.AssetServer.exe.build b/OpenGridServices/OpenGridServices.AssetServer/OpenGridServices.AssetServer.exe.build index 808f015..f9976e3 100644 --- a/OpenGridServices/OpenGridServices.AssetServer/OpenGridServices.AssetServer.exe.build +++ b/OpenGridServices/OpenGridServices.AssetServer/OpenGridServices.AssetServer.exe.build | |||
@@ -22,14 +22,14 @@ | |||
22 | </lib> | 22 | </lib> |
23 | <include name="../../bin/Db4objects.Db4o.dll" /> | 23 | <include name="../../bin/Db4objects.Db4o.dll" /> |
24 | <include name="../../bin/libsecondlife.dll" /> | 24 | <include name="../../bin/libsecondlife.dll" /> |
25 | <include name="../../bin/OpenSim.Framework.dll" /> | 25 | <include name="OpenSim.Framework.dll" /> |
26 | <include name="../../bin/OpenSim.Framework.Console.dll" /> | 26 | <include name="OpenSim.Framework.Console.dll" /> |
27 | <include name="../../bin/OpenSim.GridInterfaces.Local.dll" /> | 27 | <include name="OpenSim.GridInterfaces.Local.dll" /> |
28 | <include name="../../bin/OpenSim.Servers.dll" /> | 28 | <include name="OpenSim.Servers.dll" /> |
29 | <include name="System.dll" /> | 29 | <include name="System.dll" /> |
30 | <include name="System.Data.dll" /> | 30 | <include name="System.Data.dll" /> |
31 | <include name="System.Xml.dll" /> | 31 | <include name="System.Xml.dll" /> |
32 | <include name="../../bin/XMLRPC.dll" /> | 32 | <include name="XMLRPC.dll" /> |
33 | </references> | 33 | </references> |
34 | </csc> | 34 | </csc> |
35 | <echo message="Copying from [${project::get-base-directory()}/${build.dir}/] to [${project::get-base-directory()}/../../bin/" /> | 35 | <echo message="Copying from [${project::get-base-directory()}/${build.dir}/] to [${project::get-base-directory()}/../../bin/" /> |
diff --git a/OpenGridServices/OpenGridServices.GridServer/OpenGridServices.GridServer.exe.build b/OpenGridServices/OpenGridServices.GridServer/OpenGridServices.GridServer.exe.build index 60c0f85..f8951b7 100644 --- a/OpenGridServices/OpenGridServices.GridServer/OpenGridServices.GridServer.exe.build +++ b/OpenGridServices/OpenGridServices.GridServer/OpenGridServices.GridServer.exe.build | |||
@@ -24,14 +24,14 @@ | |||
24 | <include name="../../bin/libsecondlife.dll" /> | 24 | <include name="../../bin/libsecondlife.dll" /> |
25 | <include name="../../bin/OpenGrid.Framework.Data.dll" /> | 25 | <include name="../../bin/OpenGrid.Framework.Data.dll" /> |
26 | <include name="../../bin/OpenGrid.Framework.Manager.dll" /> | 26 | <include name="../../bin/OpenGrid.Framework.Manager.dll" /> |
27 | <include name="../../bin/OpenSim.Framework.dll" /> | 27 | <include name="OpenSim.Framework.dll" /> |
28 | <include name="../../bin/OpenSim.Framework.Console.dll" /> | 28 | <include name="OpenSim.Framework.Console.dll" /> |
29 | <include name="../../bin/OpenSim.GenericConfig.Xml.dll" /> | 29 | <include name="OpenSim.GenericConfig.Xml.dll" /> |
30 | <include name="../../bin/OpenSim.Servers.dll" /> | 30 | <include name="OpenSim.Servers.dll" /> |
31 | <include name="System.dll" /> | 31 | <include name="System.dll" /> |
32 | <include name="System.Data.dll" /> | 32 | <include name="System.Data.dll" /> |
33 | <include name="System.Xml.dll" /> | 33 | <include name="System.Xml.dll" /> |
34 | <include name="../../bin/XMLRPC.dll" /> | 34 | <include name="XMLRPC.dll" /> |
35 | </references> | 35 | </references> |
36 | </csc> | 36 | </csc> |
37 | <echo message="Copying from [${project::get-base-directory()}/${build.dir}/] to [${project::get-base-directory()}/../../bin/" /> | 37 | <echo message="Copying from [${project::get-base-directory()}/${build.dir}/] to [${project::get-base-directory()}/../../bin/" /> |
diff --git a/OpenGridServices/OpenGridServices.InventoryServer/OpenGridServices.InventoryServer.csproj.user b/OpenGridServices/OpenGridServices.InventoryServer/OpenGridServices.InventoryServer.csproj.user index ea58087..179959e 100644 --- a/OpenGridServices/OpenGridServices.InventoryServer/OpenGridServices.InventoryServer.csproj.user +++ b/OpenGridServices/OpenGridServices.InventoryServer/OpenGridServices.InventoryServer.csproj.user | |||
@@ -2,7 +2,7 @@ | |||
2 | <PropertyGroup> | 2 | <PropertyGroup> |
3 | <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> | 3 | <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> |
4 | <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> | 4 | <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> |
5 | <ReferencePath>C:\Documents and Settings\Stefan\My Documents\source\opensim\trunk\bin\</ReferencePath> | 5 | <ReferencePath>E:\work\oslauth\sim\trunk\bin\</ReferencePath> |
6 | <LastOpenVersion>8.0.50727</LastOpenVersion> | 6 | <LastOpenVersion>8.0.50727</LastOpenVersion> |
7 | <ProjectView>ProjectFiles</ProjectView> | 7 | <ProjectView>ProjectFiles</ProjectView> |
8 | <ProjectTrust>0</ProjectTrust> | 8 | <ProjectTrust>0</ProjectTrust> |
diff --git a/OpenGridServices/OpenGridServices.InventoryServer/OpenGridServices.InventoryServer.exe.build b/OpenGridServices/OpenGridServices.InventoryServer/OpenGridServices.InventoryServer.exe.build index 5e67af1..ff980ad 100644 --- a/OpenGridServices/OpenGridServices.InventoryServer/OpenGridServices.InventoryServer.exe.build +++ b/OpenGridServices/OpenGridServices.InventoryServer/OpenGridServices.InventoryServer.exe.build | |||
@@ -22,14 +22,14 @@ | |||
22 | <include name="../../bin/Db4objects.Db4o.dll" /> | 22 | <include name="../../bin/Db4objects.Db4o.dll" /> |
23 | <include name="../../bin/libsecondlife.dll" /> | 23 | <include name="../../bin/libsecondlife.dll" /> |
24 | <include name="../../bin/OpenGrid.Framework.Data.dll" /> | 24 | <include name="../../bin/OpenGrid.Framework.Data.dll" /> |
25 | <include name="../../bin/OpenSim.Framework.dll" /> | 25 | <include name="OpenSim.Framework.dll" /> |
26 | <include name="../../bin/OpenSim.Framework.Console.dll" /> | 26 | <include name="OpenSim.Framework.Console.dll" /> |
27 | <include name="../../bin/OpenSim.GridInterfaces.Local.dll" /> | 27 | <include name="OpenSim.GridInterfaces.Local.dll" /> |
28 | <include name="../../bin/OpenSim.Servers.dll" /> | 28 | <include name="OpenSim.Servers.dll" /> |
29 | <include name="System.dll" /> | 29 | <include name="System.dll" /> |
30 | <include name="System.Data.dll" /> | 30 | <include name="System.Data.dll" /> |
31 | <include name="System.Xml.dll" /> | 31 | <include name="System.Xml.dll" /> |
32 | <include name="../../bin/XMLRPC.dll" /> | 32 | <include name="XMLRPC.dll" /> |
33 | </references> | 33 | </references> |
34 | </csc> | 34 | </csc> |
35 | <echo message="Copying from [${project::get-base-directory()}/${build.dir}/] to [${project::get-base-directory()}/../../bin/" /> | 35 | <echo message="Copying from [${project::get-base-directory()}/${build.dir}/] to [${project::get-base-directory()}/../../bin/" /> |
diff --git a/OpenGridServices/OpenGridServices.UserServer/OpenGridServices.UserServer.exe.build b/OpenGridServices/OpenGridServices.UserServer/OpenGridServices.UserServer.exe.build index 68cbef7..894c282 100644 --- a/OpenGridServices/OpenGridServices.UserServer/OpenGridServices.UserServer.exe.build +++ b/OpenGridServices/OpenGridServices.UserServer/OpenGridServices.UserServer.exe.build | |||
@@ -23,14 +23,14 @@ | |||
23 | <include name="../../bin/Db4objects.Db4o.dll" /> | 23 | <include name="../../bin/Db4objects.Db4o.dll" /> |
24 | <include name="../../bin/libsecondlife.dll" /> | 24 | <include name="../../bin/libsecondlife.dll" /> |
25 | <include name="../../bin/OpenGrid.Framework.Data.dll" /> | 25 | <include name="../../bin/OpenGrid.Framework.Data.dll" /> |
26 | <include name="../../bin/OpenSim.Framework.dll" /> | 26 | <include name="OpenSim.Framework.dll" /> |
27 | <include name="../../bin/OpenSim.Framework.Console.dll" /> | 27 | <include name="OpenSim.Framework.Console.dll" /> |
28 | <include name="../../bin/OpenSim.GenericConfig.Xml.dll" /> | 28 | <include name="OpenSim.GenericConfig.Xml.dll" /> |
29 | <include name="../../bin/OpenSim.Servers.dll" /> | 29 | <include name="OpenSim.Servers.dll" /> |
30 | <include name="System.dll" /> | 30 | <include name="System.dll" /> |
31 | <include name="System.Data.dll" /> | 31 | <include name="System.Data.dll" /> |
32 | <include name="System.Xml.dll" /> | 32 | <include name="System.Xml.dll" /> |
33 | <include name="../../bin/XMLRPC.dll" /> | 33 | <include name="XMLRPC.dll" /> |
34 | </references> | 34 | </references> |
35 | </csc> | 35 | </csc> |
36 | <echo message="Copying from [${project::get-base-directory()}/${build.dir}/] to [${project::get-base-directory()}/../../bin/" /> | 36 | <echo message="Copying from [${project::get-base-directory()}/${build.dir}/] to [${project::get-base-directory()}/../../bin/" /> |
diff --git a/OpenGridServices/OpenUser.Config/UserConfigDb4o/OpenUser.Config.UserConfigDb4o.dll.build b/OpenGridServices/OpenUser.Config/UserConfigDb4o/OpenUser.Config.UserConfigDb4o.dll.build index bd5d49f..31801c7 100644 --- a/OpenGridServices/OpenUser.Config/UserConfigDb4o/OpenUser.Config.UserConfigDb4o.dll.build +++ b/OpenGridServices/OpenUser.Config/UserConfigDb4o/OpenUser.Config.UserConfigDb4o.dll.build | |||
@@ -21,8 +21,8 @@ | |||
21 | </lib> | 21 | </lib> |
22 | <include name="../../../bin/Db4objects.Db4o.dll" /> | 22 | <include name="../../../bin/Db4objects.Db4o.dll" /> |
23 | <include name="../../../bin/libsecondlife.dll" /> | 23 | <include name="../../../bin/libsecondlife.dll" /> |
24 | <include name="../../../bin/OpenSim.Framework.dll" /> | 24 | <include name="OpenSim.Framework.dll" /> |
25 | <include name="../../../bin/OpenSim.Framework.Console.dll" /> | 25 | <include name="OpenSim.Framework.Console.dll" /> |
26 | <include name="System.dll" /> | 26 | <include name="System.dll" /> |
27 | <include name="System.Data.dll.dll" /> | 27 | <include name="System.Data.dll.dll" /> |
28 | <include name="System.Xml.dll" /> | 28 | <include name="System.Xml.dll" /> |
diff --git a/OpenGridServices/ServiceManager/ServiceManager.exe.build b/OpenGridServices/ServiceManager/ServiceManager.exe.build index e0502c6..d50b1bb 100644 --- a/OpenGridServices/ServiceManager/ServiceManager.exe.build +++ b/OpenGridServices/ServiceManager/ServiceManager.exe.build | |||
@@ -19,8 +19,8 @@ | |||
19 | <include name="${project::get-base-directory()}/${build.dir}" /> | 19 | <include name="${project::get-base-directory()}/${build.dir}" /> |
20 | </lib> | 20 | </lib> |
21 | <include name="../../bin/libsecondlife.dll" /> | 21 | <include name="../../bin/libsecondlife.dll" /> |
22 | <include name="../../bin/OpenSim.Framework.dll" /> | 22 | <include name="OpenSim.Framework.dll.dll" /> |
23 | <include name="../../bin/OpenSim.GenericConfig.Xml.dll" /> | 23 | <include name="OpenSim.GenericConfig.Xml.dll" /> |
24 | <include name="System.dll" /> | 24 | <include name="System.dll" /> |
25 | <include name="System.ServiceProcess.dll" /> | 25 | <include name="System.ServiceProcess.dll" /> |
26 | <include name="System.Xml.dll" /> | 26 | <include name="System.Xml.dll" /> |
diff --git a/OpenSim/OpenSim.RegionServer/UDPServer.cs b/OpenSim/OpenSim.RegionServer/UDPServer.cs index f0d3367..ae62607 100644 --- a/OpenSim/OpenSim.RegionServer/UDPServer.cs +++ b/OpenSim/OpenSim.RegionServer/UDPServer.cs | |||
@@ -61,7 +61,7 @@ namespace OpenSim.RegionServer | |||
61 | public class UDPServer : OpenSimNetworkHandler | 61 | public class UDPServer : OpenSimNetworkHandler |
62 | { | 62 | { |
63 | protected Dictionary<EndPoint, uint> clientCircuits = new Dictionary<EndPoint, uint>(); | 63 | protected Dictionary<EndPoint, uint> clientCircuits = new Dictionary<EndPoint, uint>(); |
64 | public Socket Server; | 64 | private Socket Server; |
65 | protected IPEndPoint ServerIncoming; | 65 | protected IPEndPoint ServerIncoming; |
66 | protected byte[] RecvBuffer = new byte[4096]; | 66 | protected byte[] RecvBuffer = new byte[4096]; |
67 | protected byte[] ZeroBuffer = new byte[8192]; | 67 | protected byte[] ZeroBuffer = new byte[8192]; |
@@ -201,6 +201,13 @@ namespace OpenSim.RegionServer | |||
201 | 201 | ||
202 | ServerIncoming = new IPEndPoint(IPAddress.Any, listenPort); | 202 | ServerIncoming = new IPEndPoint(IPAddress.Any, listenPort); |
203 | Server = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp); | 203 | Server = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp); |
204 | |||
205 | /// Add this new socket to the list of sockets that was opened by the application. When the application | ||
206 | /// closes, either gracefully or not, all sockets can be cleaned up. Right now I am not aware of any method | ||
207 | /// to get all of the sockets for a process within .NET, but if so, this process can be refactored, as | ||
208 | /// socket registration would not be neccessary. | ||
209 | SocketRegistry.Register(Server); | ||
210 | |||
204 | Server.Bind(ServerIncoming); | 211 | Server.Bind(ServerIncoming); |
205 | 212 | ||
206 | m_console.Notice("UDPServer.cs:ServerListener() - UDP socket bound, getting ready to listen"); | 213 | m_console.Notice("UDPServer.cs:ServerListener() - UDP socket bound, getting ready to listen"); |
@@ -255,4 +262,4 @@ namespace OpenSim.RegionServer | |||
255 | return this.AuthenticateHandler(sessionID, agentID, circuitCode); | 262 | return this.AuthenticateHandler(sessionID, agentID, circuitCode); |
256 | } | 263 | } |
257 | } | 264 | } |
258 | } \ No newline at end of file | 265 | } |
diff --git a/OpenSim/OpenSim/Application.cs b/OpenSim/OpenSim/Application.cs index e3b23ad..15fcd93 100644 --- a/OpenSim/OpenSim/Application.cs +++ b/OpenSim/OpenSim/Application.cs | |||
@@ -41,84 +41,103 @@ namespace OpenSim | |||
41 | [STAThread] | 41 | [STAThread] |
42 | public static void Main(string[] args) | 42 | public static void Main(string[] args) |
43 | { | 43 | { |
44 | Console.WriteLine("OpenSim " + VersionInfo.Version + "\n"); | 44 | try |
45 | Console.WriteLine("Starting...\n"); | ||
46 | |||
47 | bool sandBoxMode = false; | ||
48 | bool startLoginServer = false; | ||
49 | string physicsEngine = "basicphysics"; | ||
50 | bool allowFlying = false; | ||
51 | bool userAccounts = false; | ||
52 | bool gridLocalAsset = false; | ||
53 | bool useConfigFile = false; | ||
54 | bool silent = false; | ||
55 | string configFile = "simconfig.xml"; | ||
56 | |||
57 | for (int i = 0; i < args.Length; i++) | ||
58 | { | 45 | { |
59 | if (args[i] == "-sandbox") | 46 | Console.WriteLine("OpenSim " + VersionInfo.Version + "\n"); |
60 | { | 47 | Console.WriteLine("Starting...\n"); |
61 | sandBoxMode = true; | 48 | |
62 | userAccounts = true; | 49 | bool sandBoxMode = false; |
63 | startLoginServer = true; | 50 | bool startLoginServer = false; |
64 | } | 51 | string physicsEngine = "basicphysics"; |
65 | /* | 52 | bool allowFlying = false; |
66 | if (args[i] == "-loginserver") | 53 | bool userAccounts = false; |
67 | { | 54 | bool gridLocalAsset = false; |
68 | startLoginServer = true; | 55 | bool useConfigFile = false; |
69 | }*/ | 56 | bool silent = false; |
70 | if (args[i] == "-accounts") | 57 | string configFile = "simconfig.xml"; |
71 | { | 58 | |
72 | userAccounts = true; | 59 | for (int i = 0; i < args.Length; i++) |
73 | } | ||
74 | if (args[i] == "-realphysx") | ||
75 | { | ||
76 | physicsEngine = "RealPhysX"; | ||
77 | allowFlying = true; | ||
78 | } | ||
79 | if (args[i] == "-ode") | ||
80 | { | ||
81 | physicsEngine = "OpenDynamicsEngine"; | ||
82 | allowFlying = true; | ||
83 | } | ||
84 | if (args[i] == "-localasset") | ||
85 | { | ||
86 | gridLocalAsset = true; | ||
87 | } | ||
88 | if (args[i] == "-configfile") | ||
89 | { | ||
90 | useConfigFile = true; | ||
91 | } | ||
92 | if (args[i] == "-noverbose") | ||
93 | { | ||
94 | silent = true; | ||
95 | } | ||
96 | if (args[i] == "-config") | ||
97 | { | 60 | { |
98 | try | 61 | if (args[i] == "-sandbox") |
99 | { | 62 | { |
100 | i++; | 63 | sandBoxMode = true; |
101 | configFile = args[i]; | 64 | userAccounts = true; |
65 | startLoginServer = true; | ||
102 | } | 66 | } |
103 | catch (Exception e) | 67 | /* |
68 | if (args[i] == "-loginserver") | ||
104 | { | 69 | { |
105 | Console.WriteLine("-config: Please specify a config file. (" + e.ToString() + ")"); | 70 | startLoginServer = true; |
71 | }*/ | ||
72 | if (args[i] == "-accounts") | ||
73 | { | ||
74 | userAccounts = true; | ||
75 | } | ||
76 | if (args[i] == "-realphysx") | ||
77 | { | ||
78 | physicsEngine = "RealPhysX"; | ||
79 | allowFlying = true; | ||
80 | } | ||
81 | if (args[i] == "-ode") | ||
82 | { | ||
83 | physicsEngine = "OpenDynamicsEngine"; | ||
84 | allowFlying = true; | ||
85 | } | ||
86 | if (args[i] == "-localasset") | ||
87 | { | ||
88 | gridLocalAsset = true; | ||
89 | } | ||
90 | if (args[i] == "-configfile") | ||
91 | { | ||
92 | useConfigFile = true; | ||
93 | } | ||
94 | if (args[i] == "-noverbose") | ||
95 | { | ||
96 | silent = true; | ||
97 | } | ||
98 | if (args[i] == "-config") | ||
99 | { | ||
100 | try | ||
101 | { | ||
102 | i++; | ||
103 | configFile = args[i]; | ||
104 | } | ||
105 | catch (Exception e) | ||
106 | { | ||
107 | Console.WriteLine("-config: Please specify a config file. (" + e.ToString() + ")"); | ||
108 | } | ||
106 | } | 109 | } |
107 | } | 110 | } |
108 | } | ||
109 | 111 | ||
110 | OpenSimMain sim = new OpenSimMain(sandBoxMode, startLoginServer, physicsEngine, useConfigFile, silent, configFile); | 112 | OpenSimMain sim = new OpenSimMain(sandBoxMode, startLoginServer, physicsEngine, useConfigFile, silent, configFile); |
111 | // OpenSimRoot.Instance.Application = sim; | 113 | // OpenSimRoot.Instance.Application = sim; |
112 | sim.m_sandbox = sandBoxMode; | 114 | sim.m_sandbox = sandBoxMode; |
113 | sim.user_accounts = userAccounts; | 115 | sim.user_accounts = userAccounts; |
114 | sim.gridLocalAsset = gridLocalAsset; | 116 | sim.gridLocalAsset = gridLocalAsset; |
115 | OpenSim.RegionServer.Simulator.Avatar.PhysicsEngineFlying = allowFlying; | 117 | OpenSim.RegionServer.Simulator.Avatar.PhysicsEngineFlying = allowFlying; |
116 | 118 | ||
117 | sim.StartUp(); | 119 | sim.StartUp(); |
118 | 120 | ||
119 | while (true) | 121 | while (true) |
122 | { | ||
123 | OpenSim.Framework.Console.MainConsole.Instance.MainConsolePrompt(); | ||
124 | } | ||
125 | } | ||
126 | catch (Exception oException) | ||
127 | { | ||
128 | Console.WriteLine(oException.Message); | ||
129 | Console.WriteLine("Fatal error. Server is shutdown. Press 'Enter' to close."); | ||
130 | Console.ReadLine(); | ||
131 | |||
132 | } | ||
133 | finally | ||
120 | { | 134 | { |
121 | OpenSim.Framework.Console.MainConsole.Instance.MainConsolePrompt(); | 135 | /// Ensure that all sockets have been closed before the process closes. This helps ensure that no |
136 | /// open ports are left open on process that '<do not exist>'. This is in the finally block, as it | ||
137 | /// should be done regardless of whether a exception closes the application, or if the application | ||
138 | /// is closed normally. | ||
139 | |||
140 | OpenSim.Servers.SocketRegistry.UnregisterAllAndClose(); | ||
122 | } | 141 | } |
123 | } | 142 | } |
124 | } | 143 | } |
diff --git a/Prebuild/Prebuild.sln b/Prebuild/Prebuild.sln index 227677f..449896b 100644 --- a/Prebuild/Prebuild.sln +++ b/Prebuild/Prebuild.sln | |||
@@ -3,17 +3,17 @@ Microsoft Visual Studio Solution File, Format Version 9.00 | |||
3 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Prebuild", "src\Prebuild.csproj", "{92E80C1C-0000-0000-0000-000000000000}" | 3 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Prebuild", "src\Prebuild.csproj", "{92E80C1C-0000-0000-0000-000000000000}" |
4 | EndProject | 4 | EndProject |
5 | Global | 5 | Global |
6 | GlobalSection(SolutionConfigurationPlatforms) = preSolution | 6 | GlobalSection(SolutionConfigurationPlatforms) = preSolution |
7 | Debug|Any CPU = Debug|Any CPU | 7 | Debug|Any CPU = Debug|Any CPU |
8 | Release|Any CPU = Release|Any CPU | 8 | Release|Any CPU = Release|Any CPU |
9 | EndGlobalSection | 9 | EndGlobalSection |
10 | GlobalSection(ProjectConfigurationPlatforms) = postSolution | 10 | GlobalSection(ProjectConfigurationPlatforms) = postSolution |
11 | {92E80C1C-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU | 11 | {92E80C1C-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU |
12 | {92E80C1C-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU | 12 | {92E80C1C-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU |
13 | {92E80C1C-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU | 13 | {92E80C1C-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU |
14 | {92E80C1C-0000-0000-0000-000000000000}.Release|Any CPU.Build.0 = Release|Any CPU | 14 | {92E80C1C-0000-0000-0000-000000000000}.Release|Any CPU.Build.0 = Release|Any CPU |
15 | EndGlobalSection | 15 | EndGlobalSection |
16 | GlobalSection(SolutionProperties) = preSolution | 16 | GlobalSection(SolutionProperties) = preSolution |
17 | HideSolutionNode = FALSE | 17 | HideSolutionNode = FALSE |
18 | EndGlobalSection | 18 | EndGlobalSection |
19 | EndGlobal | 19 | EndGlobal |