aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Server/Handlers/Simulation
diff options
context:
space:
mode:
Diffstat (limited to 'OpenSim/Server/Handlers/Simulation')
-rw-r--r--OpenSim/Server/Handlers/Simulation/AgentHandlers.cs23
1 files changed, 10 insertions, 13 deletions
diff --git a/OpenSim/Server/Handlers/Simulation/AgentHandlers.cs b/OpenSim/Server/Handlers/Simulation/AgentHandlers.cs
index 96821ec..57672a8 100644
--- a/OpenSim/Server/Handlers/Simulation/AgentHandlers.cs
+++ b/OpenSim/Server/Handlers/Simulation/AgentHandlers.cs
@@ -200,24 +200,21 @@ namespace OpenSim.Server.Handlers.Simulation
200 200
201 // We're behind a proxy 201 // We're behind a proxy
202 Hashtable headers = (Hashtable)request["headers"]; 202 Hashtable headers = (Hashtable)request["headers"];
203 string xff = "X-Forwarded-For";
204 if (headers.ContainsKey(xff.ToLower()))
205 xff = xff.ToLower();
203 206
204 foreach (object o in headers.Keys) 207 if (!headers.ContainsKey(xff) || headers[xff] == null)
205 { 208 {
206 if (o != null) 209 m_log.WarnFormat("[AGENT HANDLER]: No XFF header");
207 m_log.DebugFormat("[XXX] {0}", o.ToString()); 210 return Util.GetCallerIP(request);
208 } 211 }
209 212
210 if (headers.ContainsKey("X-Forwarded-For") && headers["X-Forwarded-For"] != null) 213 m_log.DebugFormat("[AGENT HANDLER]: XFF is {0}", headers[xff]);
211 {
212 m_log.DebugFormat("[AGENT HANDLER]: XFF is {0}", headers["X-Forwarded-For"]);
213
214 IPEndPoint ep = Util.GetClientIPFromXFF((string)headers["X-Forwarded-For"]);
215 if (ep != null)
216 return ep.Address.ToString();
217 }
218 else
219 m_log.WarnFormat("[AGENT HANDLER]: No XFF header");
220 214
215 IPEndPoint ep = Util.GetClientIPFromXFF((string)headers[xff]);
216 if (ep != null)
217 return ep.Address.ToString();
221 218
222 // Oops 219 // Oops
223 return Util.GetCallerIP(request); 220 return Util.GetCallerIP(request);