aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Server/Handlers/Simulation/AgentHandlers.cs
diff options
context:
space:
mode:
Diffstat (limited to 'OpenSim/Server/Handlers/Simulation/AgentHandlers.cs')
-rw-r--r--OpenSim/Server/Handlers/Simulation/AgentHandlers.cs17
1 files changed, 13 insertions, 4 deletions
diff --git a/OpenSim/Server/Handlers/Simulation/AgentHandlers.cs b/OpenSim/Server/Handlers/Simulation/AgentHandlers.cs
index 8aa410b..6d01f80 100644
--- a/OpenSim/Server/Handlers/Simulation/AgentHandlers.cs
+++ b/OpenSim/Server/Handlers/Simulation/AgentHandlers.cs
@@ -205,13 +205,22 @@ namespace OpenSim.Server.Handlers.Simulation
205 205
206 // We're behind a proxy 206 // We're behind a proxy
207 Hashtable headers = (Hashtable)request["headers"]; 207 Hashtable headers = (Hashtable)request["headers"];
208 if (headers.ContainsKey("X-Forwarded-For") && headers["X-Forwarded-For"] != null) 208 string xff = "X-Forwarded-For";
209 if (headers.ContainsKey(xff.ToLower()))
210 xff = xff.ToLower();
211
212 if (!headers.ContainsKey(xff) || headers[xff] == null)
209 { 213 {
210 IPEndPoint ep = Util.GetClientIPFromXFF((string)headers["X-Forwarded-For"]); 214 m_log.WarnFormat("[AGENT HANDLER]: No XFF header");
211 if (ep != null) 215 return Util.GetCallerIP(request);
212 return ep.Address.ToString();
213 } 216 }
214 217
218 m_log.DebugFormat("[AGENT HANDLER]: XFF is {0}", headers[xff]);
219
220 IPEndPoint ep = Util.GetClientIPFromXFF((string)headers[xff]);
221 if (ep != null)
222 return ep.Address.ToString();
223
215 // Oops 224 // Oops
216 return Util.GetCallerIP(request); 225 return Util.GetCallerIP(request);
217 } 226 }