aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Framework/Servers/BaseHttpServer.cs
diff options
context:
space:
mode:
authorJustin Clarke Casey2008-03-20 20:04:45 +0000
committerJustin Clarke Casey2008-03-20 20:04:45 +0000
commitc1beb85315aad09197ca7ffaa8ec194346af82cb (patch)
tree2554ed107ef378a3fdab9ec23d6760a6962a92a0 /OpenSim/Framework/Servers/BaseHttpServer.cs
parentAdded back a fix that lbsa71 did aqes ago to fix a buffer overflow in the pac... (diff)
downloadopensim-SC-c1beb85315aad09197ca7ffaa8ec194346af82cb.zip
opensim-SC-c1beb85315aad09197ca7ffaa8ec194346af82cb.tar.gz
opensim-SC-c1beb85315aad09197ca7ffaa8ec194346af82cb.tar.bz2
opensim-SC-c1beb85315aad09197ca7ffaa8ec194346af82cb.tar.xz
* First draft resolution of mantis 777, 734, 389 - scripts do not save in non-home regions
* Should work in multi-region standalone and grid modes * This should also solve other non-home region caps issues (map requests, RC client inventory requests, etc) * We now pass CAPS information on to the destination region on region crossing, and set up a CAPS object when an agent becomes a master * Current limitation is that this will only work if your http_listener_port is 9000 * This is a very early code cut (lots of bad practice, hard coding and inefficiency). However, I wanted to get this out there for feedback and my own sanity. Next few patches will clean up the mess.
Diffstat (limited to 'OpenSim/Framework/Servers/BaseHttpServer.cs')
-rw-r--r--OpenSim/Framework/Servers/BaseHttpServer.cs19
1 files changed, 16 insertions, 3 deletions
diff --git a/OpenSim/Framework/Servers/BaseHttpServer.cs b/OpenSim/Framework/Servers/BaseHttpServer.cs
index 0fb8314..0f6d79b 100644
--- a/OpenSim/Framework/Servers/BaseHttpServer.cs
+++ b/OpenSim/Framework/Servers/BaseHttpServer.cs
@@ -70,13 +70,22 @@ namespace OpenSim.Framework.Servers
70 m_port = port; 70 m_port = port;
71 } 71 }
72 72
73 /// <summary>
74 /// Add a stream handler to the http server. If the handler already exists, then nothing happens.
75 /// </summary>
76 /// <param name="handler"></param>
73 public void AddStreamHandler(IRequestHandler handler) 77 public void AddStreamHandler(IRequestHandler handler)
74 { 78 {
75 string httpMethod = handler.HttpMethod; 79 string httpMethod = handler.HttpMethod;
76 string path = handler.Path; 80 string path = handler.Path;
77 81
78 string handlerKey = GetHandlerKey(httpMethod, path); 82 string handlerKey = GetHandlerKey(httpMethod, path);
79 m_streamHandlers.Add(handlerKey, handler); 83
84 if (!m_streamHandlers.ContainsKey(handlerKey))
85 {
86 //m_log.DebugFormat("[BASE HTTP SERVER]: Adding handler key {0}", handlerKey);
87 m_streamHandlers.Add(handlerKey, handler);
88 }
80 } 89 }
81 90
82 private static string GetHandlerKey(string httpMethod, string path) 91 private static string GetHandlerKey(string httpMethod, string path)
@@ -289,7 +298,7 @@ namespace OpenSim.Framework.Servers
289 } 298 }
290 else 299 else
291 { 300 {
292 System.Console.WriteLine("Handler not found for http request " + request.RawUrl); 301 m_log.ErrorFormat("[BASE HTTP SERVER] Handler not found for http request {0}", request.RawUrl);
293 responseString = "Error"; 302 responseString = "Error";
294 } 303 }
295 } 304 }
@@ -589,7 +598,11 @@ namespace OpenSim.Framework.Servers
589 598
590 public void RemoveStreamHandler(string httpMethod, string path) 599 public void RemoveStreamHandler(string httpMethod, string path)
591 { 600 {
592 m_streamHandlers.Remove(GetHandlerKey(httpMethod, path)); 601 string handlerKey = GetHandlerKey(httpMethod, path);
602
603 //m_log.DebugFormat("[BASE HTTP SERVER]: Removing handler key {0}", handlerKey);
604
605 m_streamHandlers.Remove(handlerKey);
593 } 606 }
594 607
595 public void RemoveHTTPHandler(string httpMethod, string path) 608 public void RemoveHTTPHandler(string httpMethod, string path)