aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Server
diff options
context:
space:
mode:
authorUbitUmarov2017-05-22 21:22:04 +0100
committerUbitUmarov2017-05-22 21:22:04 +0100
commit4da5d249d8c92705b16a06641f6ddd93d1bfbfa3 (patch)
tree6085299e84e24a723b75db048f24644981d20dd0 /OpenSim/Server
parentremove some code for NAT that was disabled by its author Adam Frisby since 20... (diff)
downloadopensim-SC-4da5d249d8c92705b16a06641f6ddd93d1bfbfa3.zip
opensim-SC-4da5d249d8c92705b16a06641f6ddd93d1bfbfa3.tar.gz
opensim-SC-4da5d249d8c92705b16a06641f6ddd93d1bfbfa3.tar.bz2
opensim-SC-4da5d249d8c92705b16a06641f6ddd93d1bfbfa3.tar.xz
receivers can't tell if there where proxies on path unless they look
Diffstat (limited to 'OpenSim/Server')
-rw-r--r--OpenSim/Server/Handlers/Login/LLLoginHandlers.cs2
-rw-r--r--OpenSim/Server/Handlers/Simulation/AgentHandlers.cs40
2 files changed, 20 insertions, 22 deletions
diff --git a/OpenSim/Server/Handlers/Login/LLLoginHandlers.cs b/OpenSim/Server/Handlers/Login/LLLoginHandlers.cs
index 072429a..4e7ab00 100644
--- a/OpenSim/Server/Handlers/Login/LLLoginHandlers.cs
+++ b/OpenSim/Server/Handlers/Login/LLLoginHandlers.cs
@@ -64,7 +64,7 @@ namespace OpenSim.Server.Handlers.Login
64 public XmlRpcResponse HandleXMLRPCLogin(XmlRpcRequest request, IPEndPoint remoteClient) 64 public XmlRpcResponse HandleXMLRPCLogin(XmlRpcRequest request, IPEndPoint remoteClient)
65 { 65 {
66 Hashtable requestData = (Hashtable)request.Params[0]; 66 Hashtable requestData = (Hashtable)request.Params[0];
67 if (m_Proxy && request.Params[3] != null) 67 if (request.Params[3] != null)
68 { 68 {
69 IPEndPoint ep = Util.GetClientIPFromXFF((string)request.Params[3]); 69 IPEndPoint ep = Util.GetClientIPFromXFF((string)request.Params[3]);
70 if (ep != null) 70 if (ep != null)
diff --git a/OpenSim/Server/Handlers/Simulation/AgentHandlers.cs b/OpenSim/Server/Handlers/Simulation/AgentHandlers.cs
index 4e1f72e..bb524e6 100644
--- a/OpenSim/Server/Handlers/Simulation/AgentHandlers.cs
+++ b/OpenSim/Server/Handlers/Simulation/AgentHandlers.cs
@@ -517,32 +517,30 @@ namespace OpenSim.Server.Handlers.Simulation
517 517
518 protected string GetCallerIP(Hashtable request) 518 protected string GetCallerIP(Hashtable request)
519 { 519 {
520 if (!m_Proxy) 520 if (request.ContainsKey("headers"))
521 return Util.GetCallerIP(request); 521 {
522 522 Hashtable headers = (Hashtable)request["headers"];
523 // We're behind a proxy
524 Hashtable headers = (Hashtable)request["headers"];
525
526 //// DEBUG
527 //foreach (object o in headers.Keys)
528 // m_log.DebugFormat("XXX {0} = {1}", o.ToString(), (headers[o] == null? "null" : headers[o].ToString()));
529 523
530 string xff = "X-Forwarded-For"; 524 //// DEBUG
531 if (headers.ContainsKey(xff.ToLower())) 525 //foreach (object o in headers.Keys)
532 xff = xff.ToLower(); 526 // m_log.DebugFormat("XXX {0} = {1}", o.ToString(), (headers[o] == null? "null" : headers[o].ToString()));
533 527
534 if (!headers.ContainsKey(xff) || headers[xff] == null) 528 string xff = "X-Forwarded-For";
535 { 529 if (!headers.ContainsKey(xff))
536 m_log.WarnFormat("[AGENT HANDLER]: No XFF header"); 530 xff = xff.ToLower();
537 return Util.GetCallerIP(request);
538 }
539 531
540 m_log.DebugFormat("[AGENT HANDLER]: XFF is {0}", headers[xff]); 532 if (!headers.ContainsKey(xff) || headers[xff] == null)
533 {
534 m_log.WarnFormat("[AGENT HANDLER]: No XFF header");
535 return Util.GetCallerIP(request);
536 }
541 537
542 IPEndPoint ep = Util.GetClientIPFromXFF((string)headers[xff]); 538 m_log.DebugFormat("[AGENT HANDLER]: XFF is {0}", headers[xff]);
543 if (ep != null)
544 return ep.Address.ToString();
545 539
540 IPEndPoint ep = Util.GetClientIPFromXFF((string)headers[xff]);
541 if (ep != null)
542 return ep.Address.ToString();
543 }
546 // Oops 544 // Oops
547 return Util.GetCallerIP(request); 545 return Util.GetCallerIP(request);
548 } 546 }