Compare commits

...

2 Commits

Author SHA1 Message Date
UbitUmarov
c6733b8c80 cosmetics on a blobfish 2026-04-27 19:40:51 +01:00
UbitUmarov
d068a68583 cosmetics 2026-04-27 14:06:55 +01:00
5 changed files with 27 additions and 86 deletions

View File

@@ -128,11 +128,10 @@ namespace OpenSim.Groups
Dictionary<string, object> request =
ServerUtils.ParseQueryString(body);
if (!request.ContainsKey("METHOD"))
if(!request.Remove("METHOD", out object omethod))
return FailureResult();
string method = request["METHOD"].ToString();
request.Remove("METHOD");
string method = omethod.ToString();
m_log.DebugFormat("[Groups.RobustHGConnector]: {0}", method);
switch (method)

View File

@@ -305,13 +305,10 @@ namespace OpenSim.Region.ClientStack.Linden
{
lock(dropedResponses)
{
if(dropedResponses.Contains(requestID))
{
dropedResponses.Remove(requestID);
if(dropedResponses.Remove(requestID))
return;
}
}
}
OSHttpResponse osresponse = new OSHttpResponse(requestinfo.request);
m_webFetchHandler.FetchInventoryDescendentsRequest(requestinfo.request, osresponse, m_module.m_badRequests);
@@ -321,9 +318,8 @@ namespace OpenSim.Region.ClientStack.Linden
{
lock(dropedResponses)
{
if(dropedResponses.Contains(requestID))
if(dropedResponses.Remove(requestID))
{
dropedResponses.Remove(requestID);
ProcessedRequestsCount++;
return;
}

View File

@@ -32,6 +32,7 @@ using OpenMetaverse;
using OpenMetaverse.Packets;
using log4net;
using OpenSim.Framework.Monitoring;
using System.Runtime.InteropServices;
namespace OpenSim.Region.ClientStack.LindenUDP
{
@@ -114,19 +115,15 @@ namespace OpenSim.Region.ClientStack.LindenUDP
public Packet GetPacket(PacketType type)
{
PacketsRequested++;
Packet packet;
if (!RecyclePackets)
return Packet.BuildPacket(type);
Packet packet;
lock (pool)
{
if (!pool.ContainsKey(type) || pool[type] == null || (pool[type]).Count == 0)
if (!pool.TryGetValue(type, out Stack<Packet> typePacketsStack) || typePacketsStack == null || typePacketsStack.Count == 0)
{
//m_log.DebugFormat("[PACKETPOOL]: Building {0} packet", type);
// Creating a new packet if we cannot reuse an old package
packet = Packet.BuildPacket(type);
}
else
@@ -135,8 +132,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP
// Recycle old packages
PacketsReused++;
packet = pool[type].Pop();
packet = typePacketsStack.Pop();
}
}
@@ -199,7 +195,6 @@ namespace OpenSim.Region.ClientStack.LindenUDP
if (!RecyclePackets)
return;
bool trypool = false;
PacketType type = packet.Type;
switch (type)
@@ -207,83 +202,33 @@ namespace OpenSim.Region.ClientStack.LindenUDP
case PacketType.ObjectUpdate:
ObjectUpdatePacket oup = (ObjectUpdatePacket)packet;
oup.ObjectData = null;
trypool = true;
break;
case PacketType.ImprovedTerseObjectUpdate:
ImprovedTerseObjectUpdatePacket itoup = (ImprovedTerseObjectUpdatePacket)packet;
itoup.ObjectData = null;
trypool = true;
break;
case PacketType.PacketAck:
PacketAckPacket ackup = (PacketAckPacket)packet;
ackup.Packets = null;
trypool = true;
break;
case PacketType.AgentUpdate:
trypool = true;
break;
default:
return;
}
if(!trypool)
return;
lock (pool)
{
if (!pool.ContainsKey(type))
ref Stack<Packet> spkt = ref CollectionsMarshal.GetValueRefOrAddDefault(pool, type, out bool exists);
if (exists && spkt.Count < 50)
{
pool[type] = new Stack<Packet>();
}
if ((pool[type]).Count < 50)
{
// m_log.DebugFormat("[PACKETPOOL]: Pushing {0} packet", type);
pool[type].Push(packet);
}
}
}
public T GetDataBlock<T>() where T: new()
{
lock (DataBlocks)
{
BlocksRequested++;
Stack<Object> s;
if (DataBlocks.TryGetValue(typeof(T), out s))
{
if (s.Count > 0)
{
BlocksReused++;
return (T)s.Pop();
}
}
else
{
DataBlocks[typeof(T)] = new Stack<Object>();
}
return new T();
}
}
public void ReturnDataBlock<T>(T block) where T: new()
{
if (block == null)
spkt.Push(packet);
return;
}
lock (DataBlocks)
{
if (!DataBlocks.ContainsKey(typeof(T)))
DataBlocks[typeof(T)] = new Stack<Object>();
if (DataBlocks[typeof(T)].Count < 50)
DataBlocks[typeof(T)].Push(block);
spkt = new Stack<Packet>();
spkt.Push(packet);
}
}
}

View File

@@ -29,6 +29,7 @@ using System;
using System.Collections.Generic;
using System.IO;
using System.Reflection;
using System.Runtime.InteropServices;
using System.Text;
using System.Text.RegularExpressions;
using System.Xml;
@@ -147,15 +148,14 @@ namespace OpenSim.Region.DataSnapshot
#region Response storage
public XmlNode GetScene(Scene scene, XmlDocument factory)
{
m_log.Debug("[DATASNAPSHOT]: Data requested for scene " + scene.RegionInfo.RegionName);
m_log.Debug("[DATASNAPSHOT]: Data requested for scene " + scene.Name);
if (!m_scenes.ContainsKey(scene)) {
m_scenes.Add(scene, true); //stale by default
}
ref bool sceneStale = ref CollectionsMarshal.GetValueRefOrAddDefault(m_scenes, scene, out bool exists);
sceneStale |= !exists;
XmlNode regionElement = null;
if (!m_scenes[scene])
if (!sceneStale)
{
m_log.Debug("[DATASNAPSHOT]: Attempting to retrieve snapshot from cache.");
//get snapshot from cache
@@ -212,7 +212,7 @@ namespace OpenSim.Region.DataSnapshot
m_log.WarnFormat("[DATASNAPSHOT]: Exception on writing to file {0}: {1}", path, e.Message);
}
m_scenes[scene] = false;
sceneStale = false;
m_log.Debug("[DATASNAPSHOT]: Generated new snapshot for " + scene.RegionInfo.RegionName);
}
@@ -258,7 +258,6 @@ namespace OpenSim.Region.DataSnapshot
//attr.Value = scene.LandManager.landList.Count.ToString();
//docElement.Attributes.Append(attr);
XmlNode infoblock = basedoc.CreateNode(XmlNodeType.Element, "info", "");
XmlNode infopiece = basedoc.CreateNode(XmlNodeType.Element, "uuid", "");

View File

@@ -450,9 +450,11 @@ namespace OpenSim.Services.LLLoginService
//
// Authenticate this user
//
if (!passwd.StartsWith("$1$"))
passwd = "$1$" + Util.Md5Hash(passwd);
passwd = passwd.Remove(0, 3); //remove $1$
if (passwd.StartsWith("$1$"))
passwd = passwd[3..];
else
passwd = Util.Md5Hash(passwd);
string token = m_AuthenticationService.Authenticate(account.PrincipalID, passwd, 30, out UUID realID);
UUID secureSession = UUID.Zero;
if (string.IsNullOrWhiteSpace(token) || !UUID.TryParse(token, out secureSession))