mirror of
https://github.com/opensim/opensim.git
synced 2026-08-01 06:06:06 +08:00
replace llsd xml fw encoder
This commit is contained in:
@@ -35,6 +35,7 @@ using System.Text;
|
||||
using log4net;
|
||||
using Nini.Config;
|
||||
using OpenMetaverse;
|
||||
using OpenMetaverse.StructuredData;
|
||||
using Mono.Addins;
|
||||
using OpenSim.Framework;
|
||||
using OpenSim.Framework.Servers.HttpServer;
|
||||
@@ -42,6 +43,7 @@ using OpenSim.Region.Framework.Interfaces;
|
||||
using OpenSim.Region.Framework.Scenes;
|
||||
using Caps=OpenSim.Framework.Capabilities.Caps;
|
||||
|
||||
|
||||
namespace OpenSim.Region.ClientStack.Linden
|
||||
{
|
||||
[Extension(Path = "/OpenSim/RegionModules", NodeName = "RegionModule", Id = "EstateAcessCapModule")]
|
||||
@@ -162,84 +164,84 @@ namespace OpenSim.Region.ClientStack.Linden
|
||||
UUID[] groups = regionSettings.EstateGroups;
|
||||
EstateBan[] EstateBans = regionSettings.EstateBans;
|
||||
|
||||
StringBuilder sb = LLSDxmlEncode.Start();
|
||||
LLSDxmlEncode.AddMap(sb);
|
||||
osUTF8 sb = LLSDxmlEncode2.Start();
|
||||
LLSDxmlEncode2.AddMap(sb);
|
||||
|
||||
if (allowed != null && allowed.Length > 0)
|
||||
{
|
||||
LLSDxmlEncode.AddArray("AllowedAgents", sb);
|
||||
LLSDxmlEncode2.AddArray("AllowedAgents", sb);
|
||||
for (int i = 0; i < allowed.Length; ++i)
|
||||
{
|
||||
UUID id = allowed[i];
|
||||
if (id == UUID.Zero)
|
||||
continue;
|
||||
LLSDxmlEncode.AddMap(sb);
|
||||
LLSDxmlEncode.AddElem("id", id, sb);
|
||||
LLSDxmlEncode.AddEndMap(sb);
|
||||
LLSDxmlEncode2.AddMap(sb);
|
||||
LLSDxmlEncode2.AddElem("id", id, sb);
|
||||
LLSDxmlEncode2.AddEndMap(sb);
|
||||
}
|
||||
LLSDxmlEncode.AddEndArray(sb);
|
||||
LLSDxmlEncode2.AddEndArray(sb);
|
||||
}
|
||||
else
|
||||
LLSDxmlEncode.AddEmptyArray("AllowedAgents", sb);
|
||||
LLSDxmlEncode2.AddEmptyArray("AllowedAgents", sb);
|
||||
|
||||
if (groups != null && groups.Length > 0)
|
||||
{
|
||||
LLSDxmlEncode.AddArray("AllowedGroups", sb);
|
||||
LLSDxmlEncode2.AddArray("AllowedGroups", sb);
|
||||
for (int i = 0; i < groups.Length; ++i)
|
||||
{
|
||||
UUID id = groups[i];
|
||||
if (id == UUID.Zero)
|
||||
continue;
|
||||
LLSDxmlEncode.AddMap(sb);
|
||||
LLSDxmlEncode.AddElem("id", id, sb);
|
||||
LLSDxmlEncode.AddEndMap(sb);
|
||||
LLSDxmlEncode2.AddMap(sb);
|
||||
LLSDxmlEncode2.AddElem("id", id, sb);
|
||||
LLSDxmlEncode2.AddEndMap(sb);
|
||||
}
|
||||
LLSDxmlEncode.AddEndArray(sb);
|
||||
LLSDxmlEncode2.AddEndArray(sb);
|
||||
}
|
||||
else
|
||||
LLSDxmlEncode.AddEmptyArray("AllowedGroups", sb);
|
||||
LLSDxmlEncode2.AddEmptyArray("AllowedGroups", sb);
|
||||
|
||||
if (EstateBans != null && EstateBans.Length > 0)
|
||||
{
|
||||
LLSDxmlEncode.AddArray("BannedAgents", sb);
|
||||
LLSDxmlEncode2.AddArray("BannedAgents", sb);
|
||||
for (int i = 0; i < EstateBans.Length; ++i)
|
||||
{
|
||||
EstateBan ban = EstateBans[i];
|
||||
UUID id = ban.BannedUserID;
|
||||
if (id == UUID.Zero)
|
||||
continue;
|
||||
LLSDxmlEncode.AddMap(sb);
|
||||
LLSDxmlEncode.AddElem("id", id, sb);
|
||||
LLSDxmlEncode.AddElem("banning_id", ban.BanningUserID, sb);
|
||||
LLSDxmlEncode.AddElem("last_login_date", "na", sb); // We will not have this. This information is far at grid
|
||||
LLSDxmlEncode2.AddMap(sb);
|
||||
LLSDxmlEncode2.AddElem("id", id, sb);
|
||||
LLSDxmlEncode2.AddElem("banning_id", ban.BanningUserID, sb);
|
||||
LLSDxmlEncode2.AddElem("last_login_date", "na", sb); // We will not have this. This information is far at grid
|
||||
if (ban.BanTime == 0)
|
||||
LLSDxmlEncode.AddElem("ban_date", "0000-00-00 00:00", sb);
|
||||
LLSDxmlEncode2.AddElem("ban_date", "0000-00-00 00:00", sb);
|
||||
else
|
||||
LLSDxmlEncode.AddElem("ban_date", (Util.ToDateTime(ban.BanTime)).ToString("yyyy-MM-dd HH:mm", CultureInfo.InvariantCulture), sb);
|
||||
LLSDxmlEncode.AddEndMap(sb);
|
||||
LLSDxmlEncode2.AddElem("ban_date", (Util.ToDateTime(ban.BanTime)).ToString("yyyy-MM-dd HH:mm", CultureInfo.InvariantCulture), sb);
|
||||
LLSDxmlEncode2.AddEndMap(sb);
|
||||
}
|
||||
LLSDxmlEncode.AddEndArray(sb);
|
||||
LLSDxmlEncode2.AddEndArray(sb);
|
||||
}
|
||||
else
|
||||
LLSDxmlEncode.AddEmptyArray("BannedAgents", sb);
|
||||
LLSDxmlEncode2.AddEmptyArray("BannedAgents", sb);
|
||||
|
||||
if (managers != null && managers.Length > 0)
|
||||
{
|
||||
LLSDxmlEncode.AddArray("Managers", sb);
|
||||
LLSDxmlEncode2.AddArray("Managers", sb);
|
||||
for (int i = 0; i < managers.Length; ++i)
|
||||
{
|
||||
LLSDxmlEncode.AddMap(sb);
|
||||
LLSDxmlEncode.AddElem("agent_id", managers[i], sb);
|
||||
LLSDxmlEncode.AddEndMap(sb);
|
||||
LLSDxmlEncode2.AddMap(sb);
|
||||
LLSDxmlEncode2.AddElem("agent_id", managers[i], sb);
|
||||
LLSDxmlEncode2.AddEndMap(sb);
|
||||
}
|
||||
LLSDxmlEncode.AddEndArray(sb);
|
||||
LLSDxmlEncode2.AddEndArray(sb);
|
||||
}
|
||||
else
|
||||
LLSDxmlEncode.AddEmptyArray("Managers", sb);
|
||||
LLSDxmlEncode2.AddEmptyArray("Managers", sb);
|
||||
|
||||
LLSDxmlEncode.AddEndMap(sb);
|
||||
LLSDxmlEncode2.AddEndMap(sb);
|
||||
|
||||
response.RawBuffer = Util.UTF8.GetBytes(LLSDxmlEncode.End(sb));
|
||||
response.RawBuffer = LLSDxmlEncode2.EndToBytes(sb);
|
||||
response.StatusCode = (int)HttpStatusCode.OK;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -468,12 +468,7 @@ namespace OpenSim.Region.ClientStack.Linden
|
||||
// do nothing, in last case http server will do it
|
||||
}
|
||||
|
||||
private readonly byte[] EventHeader = GenEventHeader();
|
||||
|
||||
private static byte[] GenEventHeader()
|
||||
{
|
||||
return Encoding.UTF8.GetBytes("<llsd><map><key>events</key><array>");
|
||||
}
|
||||
private readonly byte[] EventHeader = osUTF8.GetASCIIBytes("<llsd><map><key>events</key><array>");
|
||||
|
||||
public Hashtable GetEvents(UUID requestID, UUID pAgentId)
|
||||
{
|
||||
@@ -539,11 +534,11 @@ namespace OpenSim.Region.ClientStack.Linden
|
||||
|
||||
totalSize += EventHeader.Length;
|
||||
|
||||
StringBuilder sb = new StringBuilder(1024);
|
||||
LLSDxmlEncode.AddEndArray(sb); // events array
|
||||
LLSDxmlEncode.AddElem("id", thisID, sb);
|
||||
LLSDxmlEncode.AddEndMap(sb);
|
||||
element = LLSDxmlEncode.EndToNBBytes(sb);
|
||||
osUTF8 sb = OSUTF8Cached.Acquire();
|
||||
LLSDxmlEncode2.AddEndArray(sb); // events array
|
||||
LLSDxmlEncode2.AddElem("id", thisID, sb);
|
||||
LLSDxmlEncode2.AddEndMap(sb);
|
||||
element = LLSDxmlEncode2.EndToBytes(sb);
|
||||
elements.Add(element);
|
||||
totalSize += element.Length;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user