diff options
Diffstat (limited to 'OpenSim/Grid/UserServer/Main.cs')
-rw-r--r-- | OpenSim/Grid/UserServer/Main.cs | 428 |
1 files changed, 214 insertions, 214 deletions
diff --git a/OpenSim/Grid/UserServer/Main.cs b/OpenSim/Grid/UserServer/Main.cs index c792918..9bdf8d7 100644 --- a/OpenSim/Grid/UserServer/Main.cs +++ b/OpenSim/Grid/UserServer/Main.cs | |||
@@ -1,214 +1,214 @@ | |||
1 | /* | 1 | /* |
2 | * Copyright (c) Contributors, http://www.openmetaverse.org/ | 2 | * Copyright (c) Contributors, http://www.openmetaverse.org/ |
3 | * See CONTRIBUTORS.TXT for a full list of copyright holders. | 3 | * See CONTRIBUTORS.TXT for a full list of copyright holders. |
4 | * | 4 | * |
5 | * Redistribution and use in source and binary forms, with or without | 5 | * Redistribution and use in source and binary forms, with or without |
6 | * modification, are permitted provided that the following conditions are met: | 6 | * modification, are permitted provided that the following conditions are met: |
7 | * * Redistributions of source code must retain the above copyright | 7 | * * Redistributions of source code must retain the above copyright |
8 | * notice, this list of conditions and the following disclaimer. | 8 | * notice, this list of conditions and the following disclaimer. |
9 | * * Redistributions in binary form must reproduce the above copyright | 9 | * * Redistributions in binary form must reproduce the above copyright |
10 | * notice, this list of conditions and the following disclaimer in the | 10 | * notice, this list of conditions and the following disclaimer in the |
11 | * documentation and/or other materials provided with the distribution. | 11 | * documentation and/or other materials provided with the distribution. |
12 | * * Neither the name of the OpenSim Project nor the | 12 | * * Neither the name of the OpenSim Project nor the |
13 | * names of its contributors may be used to endorse or promote products | 13 | * names of its contributors may be used to endorse or promote products |
14 | * derived from this software without specific prior written permission. | 14 | * derived from this software without specific prior written permission. |
15 | * | 15 | * |
16 | * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS AND ANY | 16 | * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS AND ANY |
17 | * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED | 17 | * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED |
18 | * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE | 18 | * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE |
19 | * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY | 19 | * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY |
20 | * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES | 20 | * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES |
21 | * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; | 21 | * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; |
22 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND | 22 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND |
23 | * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | 23 | * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |
24 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS | 24 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS |
25 | * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | 25 | * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
26 | * | 26 | * |
27 | */ | 27 | */ |
28 | 28 | ||
29 | using System; | 29 | using System; |
30 | using System.Collections.Generic; | 30 | using System.Collections.Generic; |
31 | using System.Reflection; | 31 | using System.Reflection; |
32 | using libsecondlife; | 32 | using libsecondlife; |
33 | using OpenSim.Framework.Console; | 33 | using OpenSim.Framework.Console; |
34 | using OpenSim.Framework.Interfaces; | 34 | using OpenSim.Framework.Interfaces; |
35 | using OpenSim.Framework.Servers; | 35 | using OpenSim.Framework.Servers; |
36 | using OpenSim.Framework.User; | 36 | using OpenSim.Framework.User; |
37 | using OpenSim.Framework.Utilities; | 37 | using OpenSim.Framework.Utilities; |
38 | using OpenSim.GenericConfig; | 38 | using OpenSim.GenericConfig; |
39 | 39 | ||
40 | namespace OpenSim.Grid.UserServer | 40 | namespace OpenSim.Grid.UserServer |
41 | { | 41 | { |
42 | /// <summary> | 42 | /// <summary> |
43 | /// </summary> | 43 | /// </summary> |
44 | public class OpenUser_Main : conscmd_callback | 44 | public class OpenUser_Main : conscmd_callback |
45 | { | 45 | { |
46 | private string ConfigDll = "OpenSim.Grid.UserServer.Config.dll"; | 46 | private string ConfigDll = "OpenSim.Grid.UserServer.Config.dll"; |
47 | private string StorageDll = "OpenSim.Framework.Data.MySQL.dll"; | 47 | private string StorageDll = "OpenSim.Framework.Data.MySQL.dll"; |
48 | private UserConfig Cfg; | 48 | private UserConfig Cfg; |
49 | protected IGenericConfig localXMLConfig; | 49 | protected IGenericConfig localXMLConfig; |
50 | 50 | ||
51 | public UserManager m_userManager; | 51 | public UserManager m_userManager; |
52 | 52 | ||
53 | public Dictionary<LLUUID, UserProfile> UserSessions = new Dictionary<LLUUID, UserProfile>(); | 53 | public Dictionary<LLUUID, UserProfile> UserSessions = new Dictionary<LLUUID, UserProfile>(); |
54 | 54 | ||
55 | LogBase m_console; | 55 | LogBase m_console; |
56 | 56 | ||
57 | [STAThread] | 57 | [STAThread] |
58 | public static void Main(string[] args) | 58 | public static void Main(string[] args) |
59 | { | 59 | { |
60 | Console.WriteLine("Launching UserServer..."); | 60 | Console.WriteLine("Launching UserServer..."); |
61 | 61 | ||
62 | OpenUser_Main userserver = new OpenUser_Main(); | 62 | OpenUser_Main userserver = new OpenUser_Main(); |
63 | 63 | ||
64 | userserver.Startup(); | 64 | userserver.Startup(); |
65 | userserver.Work(); | 65 | userserver.Work(); |
66 | } | 66 | } |
67 | 67 | ||
68 | private OpenUser_Main() | 68 | private OpenUser_Main() |
69 | { | 69 | { |
70 | m_console = new LogBase("opengrid-userserver-console.log", "OpenUser", this , false); | 70 | m_console = new LogBase("opengrid-userserver-console.log", "OpenUser", this , false); |
71 | MainLog.Instance = m_console; | 71 | MainLog.Instance = m_console; |
72 | } | 72 | } |
73 | 73 | ||
74 | private void Work() | 74 | private void Work() |
75 | { | 75 | { |
76 | m_console.Notice("Enter help for a list of commands\n"); | 76 | m_console.Notice("Enter help for a list of commands\n"); |
77 | 77 | ||
78 | while (true) | 78 | while (true) |
79 | { | 79 | { |
80 | m_console.MainLogPrompt(); | 80 | m_console.MainLogPrompt(); |
81 | } | 81 | } |
82 | } | 82 | } |
83 | 83 | ||
84 | public void Startup() | 84 | public void Startup() |
85 | { | 85 | { |
86 | this.localXMLConfig = new XmlConfig("UserServerConfig.xml"); | 86 | this.localXMLConfig = new XmlConfig("UserServerConfig.xml"); |
87 | this.localXMLConfig.LoadData(); | 87 | this.localXMLConfig.LoadData(); |
88 | this.ConfigDB(this.localXMLConfig); | 88 | this.ConfigDB(this.localXMLConfig); |
89 | this.localXMLConfig.Close(); | 89 | this.localXMLConfig.Close(); |
90 | 90 | ||
91 | MainLog.Instance.Verbose("Main.cs:Startup() - Loading configuration"); | 91 | MainLog.Instance.Verbose("Main.cs:Startup() - Loading configuration"); |
92 | Cfg = this.LoadConfigDll(this.ConfigDll); | 92 | Cfg = this.LoadConfigDll(this.ConfigDll); |
93 | Cfg.InitConfig(); | 93 | Cfg.InitConfig(); |
94 | 94 | ||
95 | MainLog.Instance.Verbose("Main.cs:Startup() - Establishing data connection"); | 95 | MainLog.Instance.Verbose("Main.cs:Startup() - Establishing data connection"); |
96 | m_userManager = new UserManager(); | 96 | m_userManager = new UserManager(); |
97 | m_userManager._config = Cfg; | 97 | m_userManager._config = Cfg; |
98 | m_userManager.AddPlugin(StorageDll); | 98 | m_userManager.AddPlugin(StorageDll); |
99 | 99 | ||
100 | MainLog.Instance.Verbose("Main.cs:Startup() - Starting HTTP process"); | 100 | MainLog.Instance.Verbose("Main.cs:Startup() - Starting HTTP process"); |
101 | BaseHttpServer httpServer = new BaseHttpServer(8002); | 101 | BaseHttpServer httpServer = new BaseHttpServer(8002); |
102 | 102 | ||
103 | httpServer.AddXmlRPCHandler("login_to_simulator", m_userManager.XmlRpcLoginMethod); | 103 | httpServer.AddXmlRPCHandler("login_to_simulator", m_userManager.XmlRpcLoginMethod); |
104 | 104 | ||
105 | httpServer.AddXmlRPCHandler("get_user_by_name", m_userManager.XmlRPCGetUserMethodName); | 105 | httpServer.AddXmlRPCHandler("get_user_by_name", m_userManager.XmlRPCGetUserMethodName); |
106 | httpServer.AddXmlRPCHandler("get_user_by_uuid", m_userManager.XmlRPCGetUserMethodUUID); | 106 | httpServer.AddXmlRPCHandler("get_user_by_uuid", m_userManager.XmlRPCGetUserMethodUUID); |
107 | 107 | ||
108 | httpServer.AddStreamHandler( new RestStreamHandler("DELETE", "/usersessions/", m_userManager.RestDeleteUserSessionMethod )); | 108 | httpServer.AddStreamHandler( new RestStreamHandler("DELETE", "/usersessions/", m_userManager.RestDeleteUserSessionMethod )); |
109 | 109 | ||
110 | httpServer.Start(); | 110 | httpServer.Start(); |
111 | m_console.Status("Userserver 0.3 - Startup complete"); | 111 | m_console.Status("Userserver 0.3 - Startup complete"); |
112 | } | 112 | } |
113 | 113 | ||
114 | 114 | ||
115 | public void do_create(string what) | 115 | public void do_create(string what) |
116 | { | 116 | { |
117 | switch (what) | 117 | switch (what) |
118 | { | 118 | { |
119 | case "user": | 119 | case "user": |
120 | string tempfirstname; | 120 | string tempfirstname; |
121 | string templastname; | 121 | string templastname; |
122 | string tempMD5Passwd; | 122 | string tempMD5Passwd; |
123 | uint regX = 1000; | 123 | uint regX = 1000; |
124 | uint regY = 1000; | 124 | uint regY = 1000; |
125 | 125 | ||
126 | tempfirstname = m_console.CmdPrompt("First name"); | 126 | tempfirstname = m_console.CmdPrompt("First name"); |
127 | templastname = m_console.CmdPrompt("Last name"); | 127 | templastname = m_console.CmdPrompt("Last name"); |
128 | tempMD5Passwd = m_console.PasswdPrompt("Password"); | 128 | tempMD5Passwd = m_console.PasswdPrompt("Password"); |
129 | regX = Convert.ToUInt32(m_console.CmdPrompt("Start Region X")); | 129 | regX = Convert.ToUInt32(m_console.CmdPrompt("Start Region X")); |
130 | regY = Convert.ToUInt32(m_console.CmdPrompt("Start Region Y")); | 130 | regY = Convert.ToUInt32(m_console.CmdPrompt("Start Region Y")); |
131 | 131 | ||
132 | tempMD5Passwd = Util.Md5Hash(Util.Md5Hash(tempMD5Passwd) + ":" + ""); | 132 | tempMD5Passwd = Util.Md5Hash(Util.Md5Hash(tempMD5Passwd) + ":" + ""); |
133 | 133 | ||
134 | m_userManager.AddUserProfile(tempfirstname, templastname, tempMD5Passwd, regX, regY); | 134 | m_userManager.AddUserProfile(tempfirstname, templastname, tempMD5Passwd, regX, regY); |
135 | break; | 135 | break; |
136 | } | 136 | } |
137 | } | 137 | } |
138 | 138 | ||
139 | public void RunCmd(string cmd, string[] cmdparams) | 139 | public void RunCmd(string cmd, string[] cmdparams) |
140 | { | 140 | { |
141 | switch (cmd) | 141 | switch (cmd) |
142 | { | 142 | { |
143 | case "help": | 143 | case "help": |
144 | m_console.Notice("create user - create a new user"); | 144 | m_console.Notice("create user - create a new user"); |
145 | m_console.Notice("shutdown - shutdown the grid (USE CAUTION!)"); | 145 | m_console.Notice("shutdown - shutdown the grid (USE CAUTION!)"); |
146 | break; | 146 | break; |
147 | 147 | ||
148 | case "create": | 148 | case "create": |
149 | do_create(cmdparams[0]); | 149 | do_create(cmdparams[0]); |
150 | break; | 150 | break; |
151 | 151 | ||
152 | case "shutdown": | 152 | case "shutdown": |
153 | m_console.Close(); | 153 | m_console.Close(); |
154 | Environment.Exit(0); | 154 | Environment.Exit(0); |
155 | break; | 155 | break; |
156 | } | 156 | } |
157 | } | 157 | } |
158 | 158 | ||
159 | private void ConfigDB(IGenericConfig configData) | 159 | private void ConfigDB(IGenericConfig configData) |
160 | { | 160 | { |
161 | try | 161 | try |
162 | { | 162 | { |
163 | string attri = ""; | 163 | string attri = ""; |
164 | attri = configData.GetAttribute("DataBaseProvider"); | 164 | attri = configData.GetAttribute("DataBaseProvider"); |
165 | if (attri == "") | 165 | if (attri == "") |
166 | { | 166 | { |
167 | StorageDll = "OpenSim.Framework.Data.DB4o.dll"; | 167 | StorageDll = "OpenSim.Framework.Data.DB4o.dll"; |
168 | configData.SetAttribute("DataBaseProvider", "OpenSim.Framework.Data.DB4o.dll"); | 168 | configData.SetAttribute("DataBaseProvider", "OpenSim.Framework.Data.DB4o.dll"); |
169 | } | 169 | } |
170 | else | 170 | else |
171 | { | 171 | { |
172 | StorageDll = attri; | 172 | StorageDll = attri; |
173 | } | 173 | } |
174 | configData.Commit(); | 174 | configData.Commit(); |
175 | } | 175 | } |
176 | catch | 176 | catch |
177 | { | 177 | { |
178 | 178 | ||
179 | } | 179 | } |
180 | } | 180 | } |
181 | 181 | ||
182 | private UserConfig LoadConfigDll(string dllName) | 182 | private UserConfig LoadConfigDll(string dllName) |
183 | { | 183 | { |
184 | Assembly pluginAssembly = Assembly.LoadFrom(dllName); | 184 | Assembly pluginAssembly = Assembly.LoadFrom(dllName); |
185 | UserConfig config = null; | 185 | UserConfig config = null; |
186 | 186 | ||
187 | foreach (Type pluginType in pluginAssembly.GetTypes()) | 187 | foreach (Type pluginType in pluginAssembly.GetTypes()) |
188 | { | 188 | { |
189 | if (pluginType.IsPublic) | 189 | if (pluginType.IsPublic) |
190 | { | 190 | { |
191 | if (!pluginType.IsAbstract) | 191 | if (!pluginType.IsAbstract) |
192 | { | 192 | { |
193 | Type typeInterface = pluginType.GetInterface("IUserConfig", true); | 193 | Type typeInterface = pluginType.GetInterface("IUserConfig", true); |
194 | 194 | ||
195 | if (typeInterface != null) | 195 | if (typeInterface != null) |
196 | { | 196 | { |
197 | IUserConfig plug = (IUserConfig)Activator.CreateInstance(pluginAssembly.GetType(pluginType.ToString())); | 197 | IUserConfig plug = (IUserConfig)Activator.CreateInstance(pluginAssembly.GetType(pluginType.ToString())); |
198 | config = plug.GetConfigObject(); | 198 | config = plug.GetConfigObject(); |
199 | break; | 199 | break; |
200 | } | 200 | } |
201 | 201 | ||
202 | typeInterface = null; | 202 | typeInterface = null; |
203 | } | 203 | } |
204 | } | 204 | } |
205 | } | 205 | } |
206 | pluginAssembly = null; | 206 | pluginAssembly = null; |
207 | return config; | 207 | return config; |
208 | } | 208 | } |
209 | 209 | ||
210 | public void Show(string ShowWhat) | 210 | public void Show(string ShowWhat) |
211 | { | 211 | { |
212 | } | 212 | } |
213 | } | 213 | } |
214 | } | 214 | } |