diff options
Diffstat (limited to 'OpenSim/Server/Handlers/Login')
-rw-r--r-- | OpenSim/Server/Handlers/Login/LLLoginHandlers.cs | 12 | ||||
-rw-r--r-- | OpenSim/Server/Handlers/Login/LLLoginServiceInConnector.cs | 5 |
2 files changed, 15 insertions, 2 deletions
diff --git a/OpenSim/Server/Handlers/Login/LLLoginHandlers.cs b/OpenSim/Server/Handlers/Login/LLLoginHandlers.cs index 5bb529c..30dc65e 100644 --- a/OpenSim/Server/Handlers/Login/LLLoginHandlers.cs +++ b/OpenSim/Server/Handlers/Login/LLLoginHandlers.cs | |||
@@ -52,15 +52,24 @@ namespace OpenSim.Server.Handlers.Login | |||
52 | private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); | 52 | private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); |
53 | 53 | ||
54 | private ILoginService m_LocalService; | 54 | private ILoginService m_LocalService; |
55 | private bool m_Proxy; | ||
55 | 56 | ||
56 | public LLLoginHandlers(ILoginService service) | 57 | public LLLoginHandlers(ILoginService service, bool hasProxy) |
57 | { | 58 | { |
58 | m_LocalService = service; | 59 | m_LocalService = service; |
60 | m_Proxy = hasProxy; | ||
59 | } | 61 | } |
60 | 62 | ||
61 | public XmlRpcResponse HandleXMLRPCLogin(XmlRpcRequest request, IPEndPoint remoteClient) | 63 | public XmlRpcResponse HandleXMLRPCLogin(XmlRpcRequest request, IPEndPoint remoteClient) |
62 | { | 64 | { |
63 | Hashtable requestData = (Hashtable)request.Params[0]; | 65 | Hashtable requestData = (Hashtable)request.Params[0]; |
66 | if (m_Proxy && request.Params[3] != null) | ||
67 | { | ||
68 | IPEndPoint ep = Util.GetClientIPFromXFF((string)request.Params[3]); | ||
69 | if (ep != null) | ||
70 | // Bang! | ||
71 | remoteClient = ep; | ||
72 | } | ||
64 | 73 | ||
65 | if (requestData != null) | 74 | if (requestData != null) |
66 | { | 75 | { |
@@ -189,6 +198,7 @@ namespace OpenSim.Server.Handlers.Login | |||
189 | 198 | ||
190 | return map; | 199 | return map; |
191 | } | 200 | } |
201 | |||
192 | } | 202 | } |
193 | 203 | ||
194 | } | 204 | } |
diff --git a/OpenSim/Server/Handlers/Login/LLLoginServiceInConnector.cs b/OpenSim/Server/Handlers/Login/LLLoginServiceInConnector.cs index 67e8392..16c93c8 100644 --- a/OpenSim/Server/Handlers/Login/LLLoginServiceInConnector.cs +++ b/OpenSim/Server/Handlers/Login/LLLoginServiceInConnector.cs | |||
@@ -43,6 +43,7 @@ namespace OpenSim.Server.Handlers.Login | |||
43 | private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); | 43 | private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); |
44 | 44 | ||
45 | private ILoginService m_LoginService; | 45 | private ILoginService m_LoginService; |
46 | private bool m_Proxy; | ||
46 | 47 | ||
47 | public LLLoginServiceInConnector(IConfigSource config, IHttpServer server, IScene scene) : | 48 | public LLLoginServiceInConnector(IConfigSource config, IHttpServer server, IScene scene) : |
48 | base(config, server, String.Empty) | 49 | base(config, server, String.Empty) |
@@ -81,12 +82,14 @@ namespace OpenSim.Server.Handlers.Login | |||
81 | if (loginService == string.Empty) | 82 | if (loginService == string.Empty) |
82 | throw new Exception(String.Format("No LocalServiceModule for LoginService in config file")); | 83 | throw new Exception(String.Format("No LocalServiceModule for LoginService in config file")); |
83 | 84 | ||
85 | m_Proxy = serverConfig.GetBoolean("HasProxy", false); | ||
86 | |||
84 | return loginService; | 87 | return loginService; |
85 | } | 88 | } |
86 | 89 | ||
87 | private void InitializeHandlers(IHttpServer server) | 90 | private void InitializeHandlers(IHttpServer server) |
88 | { | 91 | { |
89 | LLLoginHandlers loginHandlers = new LLLoginHandlers(m_LoginService); | 92 | LLLoginHandlers loginHandlers = new LLLoginHandlers(m_LoginService, m_Proxy); |
90 | server.AddXmlRPCHandler("login_to_simulator", loginHandlers.HandleXMLRPCLogin, false); | 93 | server.AddXmlRPCHandler("login_to_simulator", loginHandlers.HandleXMLRPCLogin, false); |
91 | server.AddXmlRPCHandler("set_login_level", loginHandlers.HandleXMLRPCSetLoginLevel, false); | 94 | server.AddXmlRPCHandler("set_login_level", loginHandlers.HandleXMLRPCSetLoginLevel, false); |
92 | server.SetDefaultLLSDHandler(loginHandlers.HandleLLSDLogin); | 95 | server.SetDefaultLLSDHandler(loginHandlers.HandleLLSDLogin); |