aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Server/Handlers/Login/LLLoginServiceInConnector.cs
diff options
context:
space:
mode:
authorDiva Canto2009-12-31 14:59:26 -0800
committerDiva Canto2009-12-31 14:59:26 -0800
commit0ce9be653d2194877cb972cbce261eecb0cd58a8 (patch)
tree6294c927ce714d140165bb32c1a2dbd337f25ea2 /OpenSim/Server/Handlers/Login/LLLoginServiceInConnector.cs
parentMore progress on both the Simulation service and the Login service. Both stil... (diff)
downloadopensim-SC_OLD-0ce9be653d2194877cb972cbce261eecb0cd58a8.zip
opensim-SC_OLD-0ce9be653d2194877cb972cbce261eecb0cd58a8.tar.gz
opensim-SC_OLD-0ce9be653d2194877cb972cbce261eecb0cd58a8.tar.bz2
opensim-SC_OLD-0ce9be653d2194877cb972cbce261eecb0cd58a8.tar.xz
* Added the Login server handlers that were lost in yesterday's commit grief
* More beef to the LLLoginService * Better design for handling local simulation service
Diffstat (limited to 'OpenSim/Server/Handlers/Login/LLLoginServiceInConnector.cs')
-rw-r--r--OpenSim/Server/Handlers/Login/LLLoginServiceInConnector.cs93
1 files changed, 93 insertions, 0 deletions
diff --git a/OpenSim/Server/Handlers/Login/LLLoginServiceInConnector.cs b/OpenSim/Server/Handlers/Login/LLLoginServiceInConnector.cs
new file mode 100644
index 0000000..42ecd4d
--- /dev/null
+++ b/OpenSim/Server/Handlers/Login/LLLoginServiceInConnector.cs
@@ -0,0 +1,93 @@
1/*
2 * Copyright (c) Contributors, http://opensimulator.org/
3 * See CONTRIBUTORS.TXT for a full list of copyright holders.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions are met:
7 * * Redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer.
9 * * Redistributions in binary form must reproduce the above copyright
10 * notice, this list of conditions and the following disclaimer in the
11 * documentation and/or other materials provided with the distribution.
12 * * Neither the name of the OpenSimulator Project nor the
13 * names of its contributors may be used to endorse or promote products
14 * derived from this software without specific prior written permission.
15 *
16 * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
17 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
18 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
19 * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
20 * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
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
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
25 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26 */
27
28using System;
29using System.Collections.Generic;
30using System.Reflection;
31using log4net;
32using Nini.Config;
33using OpenSim.Server.Base;
34using OpenSim.Services.Interfaces;
35using OpenSim.Framework;
36using OpenSim.Framework.Servers.HttpServer;
37using OpenSim.Server.Handlers.Base;
38
39namespace OpenSim.Server.Handlers.Login
40{
41 public class LLLoginServiceInConnector : ServiceConnector
42 {
43 private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
44
45 private ILoginService m_LoginService;
46
47 public LLLoginServiceInConnector(IConfigSource config, IHttpServer server, IScene scene) :
48 base(config, server, String.Empty)
49 {
50 string loginService = ReadLocalServiceFromConfig(config);
51
52 ISimulationService simService = scene.RequestModuleInterface<ISimulationService>();
53
54 Object[] args = new Object[] { config, simService };
55 m_LoginService = ServerUtils.LoadPlugin<ILoginService>(loginService, args);
56
57 InitializeHandlers(server);
58 }
59
60 public LLLoginServiceInConnector(IConfigSource config, IHttpServer server) :
61 base(config, server, String.Empty)
62 {
63 string loginService = ReadLocalServiceFromConfig(config);
64
65 Object[] args = new Object[] { config };
66
67 m_LoginService = ServerUtils.LoadPlugin<ILoginService>(loginService, args);
68
69 InitializeHandlers(server);
70 }
71
72 private string ReadLocalServiceFromConfig(IConfigSource config)
73 {
74 IConfig serverConfig = config.Configs["LoginService"];
75 if (serverConfig == null)
76 throw new Exception(String.Format("No section LoginService in config file"));
77
78 string loginService = serverConfig.GetString("LocalServiceModule", String.Empty);
79 if (loginService == string.Empty)
80 throw new Exception(String.Format("No LocalServiceModule for LoginService in config file"));
81
82 return loginService;
83 }
84
85 private void InitializeHandlers(IHttpServer server)
86 {
87 LLLoginHandlers loginHandlers = new LLLoginHandlers(m_LoginService);
88 server.AddXmlRPCHandler("Login_to_simulator", loginHandlers.HandleXMLRPCLogin, false);
89 server.SetDefaultLLSDHandler(loginHandlers.HandleLLSDLogin);
90 }
91
92 }
93}