diff options
Diffstat (limited to 'OpenSim/Framework/MainServer.cs')
-rw-r--r-- | OpenSim/Framework/MainServer.cs | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/OpenSim/Framework/MainServer.cs b/OpenSim/Framework/MainServer.cs index b5f947e..7da4893 100644 --- a/OpenSim/Framework/MainServer.cs +++ b/OpenSim/Framework/MainServer.cs | |||
@@ -26,17 +26,36 @@ | |||
26 | */ | 26 | */ |
27 | 27 | ||
28 | using OpenSim.Framework.Servers.HttpServer; | 28 | using OpenSim.Framework.Servers.HttpServer; |
29 | using System.Collections.Generic; | ||
29 | 30 | ||
30 | namespace OpenSim.Framework | 31 | namespace OpenSim.Framework |
31 | { | 32 | { |
32 | public class MainServer | 33 | public class MainServer |
33 | { | 34 | { |
34 | private static BaseHttpServer instance; | 35 | private static BaseHttpServer instance; |
36 | private static Dictionary<uint, BaseHttpServer> m_Servers = | ||
37 | new Dictionary<uint, BaseHttpServer>(); | ||
35 | 38 | ||
36 | public static BaseHttpServer Instance | 39 | public static BaseHttpServer Instance |
37 | { | 40 | { |
38 | get { return instance; } | 41 | get { return instance; } |
39 | set { instance = value; } | 42 | set { instance = value; } |
40 | } | 43 | } |
44 | |||
45 | public static IHttpServer GetHttpServer(uint port) | ||
46 | { | ||
47 | if (port == 0) | ||
48 | return Instance; | ||
49 | if (port == Instance.Port) | ||
50 | return Instance; | ||
51 | |||
52 | if (m_Servers.ContainsKey(port)) | ||
53 | return m_Servers[port]; | ||
54 | |||
55 | m_Servers[port] = new BaseHttpServer(port); | ||
56 | m_Servers[port].Start(); | ||
57 | |||
58 | return m_Servers[port]; | ||
59 | } | ||
41 | } | 60 | } |
42 | } | 61 | } |