remove old and dead code that its only making it hard to understand
parent
86a9710e77
commit
fa59cddc28
|
@ -77,7 +77,6 @@ namespace OpenSim.Region.ClientStack.Linden
|
||||||
private Dictionary<UUID, int> m_ids = new Dictionary<UUID, int>();
|
private Dictionary<UUID, int> m_ids = new Dictionary<UUID, int>();
|
||||||
|
|
||||||
private Dictionary<UUID, Queue<OSD>> queues = new Dictionary<UUID, Queue<OSD>>();
|
private Dictionary<UUID, Queue<OSD>> queues = new Dictionary<UUID, Queue<OSD>>();
|
||||||
private Dictionary<UUID, UUID> m_QueueUUIDAvatarMapping = new Dictionary<UUID, UUID>();
|
|
||||||
private Dictionary<UUID, UUID> m_AvatarQueueUUIDMapping = new Dictionary<UUID, UUID>();
|
private Dictionary<UUID, UUID> m_AvatarQueueUUIDMapping = new Dictionary<UUID, UUID>();
|
||||||
|
|
||||||
#region INonSharedRegionModule methods
|
#region INonSharedRegionModule methods
|
||||||
|
@ -254,28 +253,13 @@ namespace OpenSim.Region.ClientStack.Linden
|
||||||
lock (queues)
|
lock (queues)
|
||||||
queues.Remove(agentID);
|
queues.Remove(agentID);
|
||||||
|
|
||||||
List<UUID> removeitems = new List<UUID>();
|
|
||||||
lock (m_AvatarQueueUUIDMapping)
|
lock (m_AvatarQueueUUIDMapping)
|
||||||
m_AvatarQueueUUIDMapping.Remove(agentID);
|
m_AvatarQueueUUIDMapping.Remove(agentID);
|
||||||
|
|
||||||
UUID searchval = UUID.Zero;
|
lock (m_ids)
|
||||||
|
|
||||||
removeitems.Clear();
|
|
||||||
|
|
||||||
lock (m_QueueUUIDAvatarMapping)
|
|
||||||
{
|
{
|
||||||
foreach (UUID ky in m_QueueUUIDAvatarMapping.Keys)
|
if (!m_ids.ContainsKey(agentID))
|
||||||
{
|
m_ids.Remove(agentID);
|
||||||
searchval = m_QueueUUIDAvatarMapping[ky];
|
|
||||||
|
|
||||||
if (searchval == agentID)
|
|
||||||
{
|
|
||||||
removeitems.Add(ky);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
foreach (UUID ky in removeitems)
|
|
||||||
m_QueueUUIDAvatarMapping.Remove(ky);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// m_log.DebugFormat("[EVENTQUEUE]: Deleted queues for {0} in region {1}", agentID, m_scene.RegionInfo.RegionName);
|
// m_log.DebugFormat("[EVENTQUEUE]: Deleted queues for {0} in region {1}", agentID, m_scene.RegionInfo.RegionName);
|
||||||
|
@ -307,28 +291,18 @@ namespace OpenSim.Region.ClientStack.Linden
|
||||||
lock (m_AvatarQueueUUIDMapping)
|
lock (m_AvatarQueueUUIDMapping)
|
||||||
{
|
{
|
||||||
// Reuse open queues. The client does!
|
// Reuse open queues. The client does!
|
||||||
// if (m_AvatarQueueUUIDMapping.ContainsKey(agentID))
|
// Its reuse caps path not queues those are been reused already
|
||||||
// {
|
if (m_AvatarQueueUUIDMapping.ContainsKey(agentID))
|
||||||
//m_log.DebugFormat("[EVENTQUEUE]: Found Existing UUID!");
|
{
|
||||||
// eventQueueGetUUID = m_AvatarQueueUUIDMapping[agentID];
|
m_log.DebugFormat("[EVENTQUEUE]: Found Existing UUID!");
|
||||||
// }
|
eventQueueGetUUID = m_AvatarQueueUUIDMapping[agentID];
|
||||||
// else
|
}
|
||||||
|
else
|
||||||
{
|
{
|
||||||
eventQueueGetUUID = UUID.Random();
|
eventQueueGetUUID = UUID.Random();
|
||||||
//m_log.DebugFormat("[EVENTQUEUE]: Using random UUID!");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
lock (m_QueueUUIDAvatarMapping)
|
|
||||||
{
|
|
||||||
if (!m_QueueUUIDAvatarMapping.ContainsKey(eventQueueGetUUID))
|
|
||||||
m_QueueUUIDAvatarMapping.Add(eventQueueGetUUID, agentID);
|
|
||||||
}
|
|
||||||
|
|
||||||
lock (m_AvatarQueueUUIDMapping)
|
|
||||||
{
|
|
||||||
if (!m_AvatarQueueUUIDMapping.ContainsKey(agentID))
|
|
||||||
m_AvatarQueueUUIDMapping.Add(agentID, eventQueueGetUUID);
|
m_AvatarQueueUUIDMapping.Add(agentID, eventQueueGetUUID);
|
||||||
|
m_log.DebugFormat("[EVENTQUEUE]: Using random UUID!");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
caps.RegisterPollHandler(
|
caps.RegisterPollHandler(
|
||||||
|
@ -336,10 +310,14 @@ namespace OpenSim.Region.ClientStack.Linden
|
||||||
new PollServiceEventArgs(null, GenerateEqgCapPath(eventQueueGetUUID), HasEvents, GetEvents, NoEvents, agentID, SERVER_EQ_TIME_NO_EVENTS));
|
new PollServiceEventArgs(null, GenerateEqgCapPath(eventQueueGetUUID), HasEvents, GetEvents, NoEvents, agentID, SERVER_EQ_TIME_NO_EVENTS));
|
||||||
|
|
||||||
Random rnd = new Random(Environment.TickCount);
|
Random rnd = new Random(Environment.TickCount);
|
||||||
|
int nrnd = rnd.Next(30000000);
|
||||||
|
|
||||||
lock (m_ids)
|
lock (m_ids)
|
||||||
{
|
{
|
||||||
if (!m_ids.ContainsKey(agentID))
|
if (!m_ids.ContainsKey(agentID))
|
||||||
m_ids.Add(agentID, rnd.Next(30000000));
|
m_ids.Add(agentID, nrnd);
|
||||||
|
else
|
||||||
|
m_ids[agentID] = nrnd;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -455,254 +433,7 @@ namespace OpenSim.Region.ClientStack.Linden
|
||||||
return responsedata;
|
return responsedata;
|
||||||
}
|
}
|
||||||
|
|
||||||
// public Hashtable ProcessQueue(Hashtable request, UUID agentID, Caps caps)
|
|
||||||
// {
|
|
||||||
// // TODO: this has to be redone to not busy-wait (and block the thread),
|
|
||||||
// // TODO: as soon as we have a non-blocking way to handle HTTP-requests.
|
|
||||||
//
|
|
||||||
//// if (m_log.IsDebugEnabled)
|
|
||||||
//// {
|
|
||||||
//// String debug = "[EVENTQUEUE]: Got request for agent {0} in region {1} from thread {2}: [ ";
|
|
||||||
//// foreach (object key in request.Keys)
|
|
||||||
//// {
|
|
||||||
//// debug += key.ToString() + "=" + request[key].ToString() + " ";
|
|
||||||
//// }
|
|
||||||
//// m_log.DebugFormat(debug + " ]", agentID, m_scene.RegionInfo.RegionName, System.Threading.Thread.CurrentThread.Name);
|
|
||||||
//// }
|
|
||||||
//
|
|
||||||
// Queue<OSD> queue = TryGetQueue(agentID);
|
|
||||||
// OSD element;
|
|
||||||
//
|
|
||||||
// lock (queue)
|
|
||||||
// element = queue.Dequeue(); // 15s timeout
|
|
||||||
//
|
|
||||||
// Hashtable responsedata = new Hashtable();
|
|
||||||
//
|
|
||||||
// int thisID = 0;
|
|
||||||
// lock (m_ids)
|
|
||||||
// thisID = m_ids[agentID];
|
|
||||||
//
|
|
||||||
// if (element == null)
|
|
||||||
// {
|
|
||||||
// //m_log.ErrorFormat("[EVENTQUEUE]: Nothing to process in " + m_scene.RegionInfo.RegionName);
|
|
||||||
// if (thisID == -1) // close-request
|
|
||||||
// {
|
|
||||||
// m_log.ErrorFormat("[EVENTQUEUE]: 404 in " + m_scene.RegionInfo.RegionName);
|
|
||||||
// responsedata["int_response_code"] = 404; //501; //410; //404;
|
|
||||||
// responsedata["content_type"] = "text/plain";
|
|
||||||
// responsedata["keepalive"] = false;
|
|
||||||
// responsedata["str_response_string"] = "Closed EQG";
|
|
||||||
// return responsedata;
|
|
||||||
// }
|
|
||||||
// responsedata["int_response_code"] = 502;
|
|
||||||
// responsedata["content_type"] = "text/plain";
|
|
||||||
// responsedata["keepalive"] = false;
|
|
||||||
// responsedata["str_response_string"] = "Upstream error: ";
|
|
||||||
// responsedata["error_status_text"] = "Upstream error:";
|
|
||||||
// responsedata["http_protocol_version"] = "HTTP/1.0";
|
|
||||||
// return responsedata;
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// OSDArray array = new OSDArray();
|
|
||||||
// if (element == null) // didn't have an event in 15s
|
|
||||||
// {
|
|
||||||
// // Send it a fake event to keep the client polling! It doesn't like 502s like the proxys say!
|
|
||||||
// array.Add(EventQueueHelper.KeepAliveEvent());
|
|
||||||
// //m_log.DebugFormat("[EVENTQUEUE]: adding fake event for {0} in region {1}", agentID, m_scene.RegionInfo.RegionName);
|
|
||||||
// }
|
|
||||||
// else
|
|
||||||
// {
|
|
||||||
// array.Add(element);
|
|
||||||
//
|
|
||||||
// if (element is OSDMap)
|
|
||||||
// {
|
|
||||||
// OSDMap ev = (OSDMap)element;
|
|
||||||
// m_log.DebugFormat(
|
|
||||||
// "[EVENT QUEUE GET MODULE]: Eq OUT {0} to {1}",
|
|
||||||
// ev["message"], m_scene.GetScenePresence(agentID).Name);
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// lock (queue)
|
|
||||||
// {
|
|
||||||
// while (queue.Count > 0)
|
|
||||||
// {
|
|
||||||
// element = queue.Dequeue();
|
|
||||||
//
|
|
||||||
// if (element is OSDMap)
|
|
||||||
// {
|
|
||||||
// OSDMap ev = (OSDMap)element;
|
|
||||||
// m_log.DebugFormat(
|
|
||||||
// "[EVENT QUEUE GET MODULE]: Eq OUT {0} to {1}",
|
|
||||||
// ev["message"], m_scene.GetScenePresence(agentID).Name);
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// array.Add(element);
|
|
||||||
// thisID++;
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// OSDMap events = new OSDMap();
|
|
||||||
// events.Add("events", array);
|
|
||||||
//
|
|
||||||
// events.Add("id", new OSDInteger(thisID));
|
|
||||||
// lock (m_ids)
|
|
||||||
// {
|
|
||||||
// m_ids[agentID] = thisID + 1;
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// responsedata["int_response_code"] = 200;
|
|
||||||
// responsedata["content_type"] = "application/xml";
|
|
||||||
// responsedata["keepalive"] = false;
|
|
||||||
// responsedata["str_response_string"] = OSDParser.SerializeLLSDXmlString(events);
|
|
||||||
//
|
|
||||||
// m_log.DebugFormat("[EVENTQUEUE]: sending response for {0} in region {1}: {2}", agentID, m_scene.RegionInfo.RegionName, responsedata["str_response_string"]);
|
|
||||||
//
|
|
||||||
// return responsedata;
|
|
||||||
// }
|
|
||||||
|
|
||||||
// public Hashtable EventQueuePath2(Hashtable request)
|
|
||||||
// {
|
|
||||||
// string capuuid = (string)request["uri"]; //path.Replace("/CAPS/EQG/","");
|
|
||||||
// // pull off the last "/" in the path.
|
|
||||||
// Hashtable responsedata = new Hashtable();
|
|
||||||
// capuuid = capuuid.Substring(0, capuuid.Length - 1);
|
|
||||||
// capuuid = capuuid.Replace("/CAPS/EQG/", "");
|
|
||||||
// UUID AvatarID = UUID.Zero;
|
|
||||||
// UUID capUUID = UUID.Zero;
|
|
||||||
//
|
|
||||||
// // parse the path and search for the avatar with it registered
|
|
||||||
// if (UUID.TryParse(capuuid, out capUUID))
|
|
||||||
// {
|
|
||||||
// lock (m_QueueUUIDAvatarMapping)
|
|
||||||
// {
|
|
||||||
// if (m_QueueUUIDAvatarMapping.ContainsKey(capUUID))
|
|
||||||
// {
|
|
||||||
// AvatarID = m_QueueUUIDAvatarMapping[capUUID];
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// if (AvatarID != UUID.Zero)
|
|
||||||
// {
|
|
||||||
// return ProcessQueue(request, AvatarID, m_scene.CapsModule.GetCapsForUser(AvatarID));
|
|
||||||
// }
|
|
||||||
// else
|
|
||||||
// {
|
|
||||||
// responsedata["int_response_code"] = 404;
|
|
||||||
// responsedata["content_type"] = "text/plain";
|
|
||||||
// responsedata["keepalive"] = false;
|
|
||||||
// responsedata["str_response_string"] = "Not Found";
|
|
||||||
// responsedata["error_status_text"] = "Not Found";
|
|
||||||
// responsedata["http_protocol_version"] = "HTTP/1.0";
|
|
||||||
// return responsedata;
|
|
||||||
// // return 404
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
// else
|
|
||||||
// {
|
|
||||||
// responsedata["int_response_code"] = 404;
|
|
||||||
// responsedata["content_type"] = "text/plain";
|
|
||||||
// responsedata["keepalive"] = false;
|
|
||||||
// responsedata["str_response_string"] = "Not Found";
|
|
||||||
// responsedata["error_status_text"] = "Not Found";
|
|
||||||
// responsedata["http_protocol_version"] = "HTTP/1.0";
|
|
||||||
// return responsedata;
|
|
||||||
// // return 404
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
|
|
||||||
public OSD EventQueueFallBack(string path, OSD request, string endpoint)
|
|
||||||
{
|
|
||||||
// This is a fallback element to keep the client from loosing EventQueueGet
|
|
||||||
// Why does CAPS fail sometimes!?
|
|
||||||
m_log.Warn("[EVENTQUEUE]: In the Fallback handler! We lost the Queue in the rest handler!");
|
|
||||||
string capuuid = path.Replace("/CAPS/EQG/","");
|
|
||||||
capuuid = capuuid.Substring(0, capuuid.Length - 1);
|
|
||||||
|
|
||||||
// UUID AvatarID = UUID.Zero;
|
|
||||||
UUID capUUID = UUID.Zero;
|
|
||||||
if (UUID.TryParse(capuuid, out capUUID))
|
|
||||||
{
|
|
||||||
/* Don't remove this yet code cleaners!
|
|
||||||
* Still testing this!
|
|
||||||
*
|
|
||||||
lock (m_QueueUUIDAvatarMapping)
|
|
||||||
{
|
|
||||||
if (m_QueueUUIDAvatarMapping.ContainsKey(capUUID))
|
|
||||||
{
|
|
||||||
AvatarID = m_QueueUUIDAvatarMapping[capUUID];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
if (AvatarID != UUID.Zero)
|
|
||||||
{
|
|
||||||
// Repair the CAP!
|
|
||||||
//OpenSim.Framework.Capabilities.Caps caps = m_scene.GetCapsHandlerForUser(AvatarID);
|
|
||||||
//string capsBase = "/CAPS/EQG/";
|
|
||||||
//caps.RegisterHandler("EventQueueGet",
|
|
||||||
//new RestHTTPHandler("POST", capsBase + capUUID.ToString() + "/",
|
|
||||||
//delegate(Hashtable m_dhttpMethod)
|
|
||||||
//{
|
|
||||||
// return ProcessQueue(m_dhttpMethod, AvatarID, caps);
|
|
||||||
//}));
|
|
||||||
// start new ID sequence.
|
|
||||||
Random rnd = new Random(System.Environment.TickCount);
|
|
||||||
lock (m_ids)
|
|
||||||
{
|
|
||||||
if (!m_ids.ContainsKey(AvatarID))
|
|
||||||
m_ids.Add(AvatarID, rnd.Next(30000000));
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
int thisID = 0;
|
|
||||||
lock (m_ids)
|
|
||||||
thisID = m_ids[AvatarID];
|
|
||||||
|
|
||||||
BlockingLLSDQueue queue = GetQueue(AvatarID);
|
|
||||||
OSDArray array = new OSDArray();
|
|
||||||
LLSD element = queue.Dequeue(15000); // 15s timeout
|
|
||||||
if (element == null)
|
|
||||||
{
|
|
||||||
|
|
||||||
array.Add(EventQueueHelper.KeepAliveEvent());
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
array.Add(element);
|
|
||||||
while (queue.Count() > 0)
|
|
||||||
{
|
|
||||||
array.Add(queue.Dequeue(1));
|
|
||||||
thisID++;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
OSDMap events = new OSDMap();
|
|
||||||
events.Add("events", array);
|
|
||||||
|
|
||||||
events.Add("id", new LLSDInteger(thisID));
|
|
||||||
|
|
||||||
lock (m_ids)
|
|
||||||
{
|
|
||||||
m_ids[AvatarID] = thisID + 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
return events;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
return new LLSD();
|
|
||||||
}
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
//return new LLSD();
|
|
||||||
}
|
|
||||||
|
|
||||||
return new OSDString("shutdown404!");
|
|
||||||
}
|
|
||||||
|
|
||||||
public void DisableSimulator(ulong handle, UUID avatarID)
|
public void DisableSimulator(ulong handle, UUID avatarID)
|
||||||
{
|
{
|
||||||
OSD item = EventQueueHelper.DisableSimulator(handle);
|
OSD item = EventQueueHelper.DisableSimulator(handle);
|
||||||
|
|
Loading…
Reference in New Issue