From 80118ac0575ad6816f65ed7436ec4e0b384f231d Mon Sep 17 00:00:00 2001
From: Melanie Thielker
Date: Fri, 21 Nov 2014 04:00:52 +0100
Subject: Remove braindead "fix" that messed up intersim scripted giving.
---
.../Inventory/Transfer/InventoryTransferModule.cs | 11 -----------
.../Avatar/Voice/VivoxVoice/VivoxVoiceModule.cs | 17 +++++++++++++++++
.../ScriptEngine/Shared/Api/Implementation/LSL_Api.cs | 15 ++++++++++++++-
3 files changed, 31 insertions(+), 12 deletions(-)
diff --git a/OpenSim/Region/CoreModules/Avatar/Inventory/Transfer/InventoryTransferModule.cs b/OpenSim/Region/CoreModules/Avatar/Inventory/Transfer/InventoryTransferModule.cs
index 03aaaac..3815c71 100644
--- a/OpenSim/Region/CoreModules/Avatar/Inventory/Transfer/InventoryTransferModule.cs
+++ b/OpenSim/Region/CoreModules/Avatar/Inventory/Transfer/InventoryTransferModule.cs
@@ -471,17 +471,6 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Transfer
///
private void OnGridInstantMessage(GridInstantMessage im)
{
- // Check if it's a type of message that we should handle
- if (!((im.dialog == (byte) InstantMessageDialog.InventoryOffered)
- || (im.dialog == (byte) InstantMessageDialog.InventoryAccepted)
- || (im.dialog == (byte) InstantMessageDialog.InventoryDeclined)
- || (im.dialog == (byte) InstantMessageDialog.TaskInventoryDeclined)))
- return;
-
- m_log.DebugFormat(
- "[INVENTORY TRANSFER]: {0} IM type received from grid. From={1} ({2}), To={3}",
- (InstantMessageDialog)im.dialog, im.fromAgentID, im.fromAgentName, im.toAgentID);
-
// Check if this is ours to handle
//
Scene scene = FindClientScene(new UUID(im.toAgentID));
diff --git a/OpenSim/Region/OptionalModules/Avatar/Voice/VivoxVoice/VivoxVoiceModule.cs b/OpenSim/Region/OptionalModules/Avatar/Voice/VivoxVoice/VivoxVoiceModule.cs
index 6ee15ad..e6b14c6 100644
--- a/OpenSim/Region/OptionalModules/Avatar/Voice/VivoxVoice/VivoxVoiceModule.cs
+++ b/OpenSim/Region/OptionalModules/Avatar/Voice/VivoxVoice/VivoxVoiceModule.cs
@@ -121,6 +121,7 @@ namespace OpenSim.Region.OptionalModules.Avatar.Voice.VivoxVoice
public void Initialise(IConfigSource config)
{
+ MainConsole.Instance.Commands.AddCommand("vivox", false, "vivox debug", "vivox debug |", "Set vivox debugging", HandleDebug);
m_config = config.Configs["VivoxVoice"];
@@ -1335,5 +1336,21 @@ namespace OpenSim.Region.OptionalModules.Avatar.Voice.VivoxVoice
result = String.Empty;
return false;
}
+
+ private void HandleDebug(string module, string[] cmd)
+ {
+ if (cmd.Length < 3)
+ {
+ MainConsole.Instance.Output("Error: missing on/off flag");
+ return;
+ }
+
+ if (cmd[2] == "on")
+ m_dumpXml = true;
+ else if (cmd[2] == "off")
+ m_dumpXml = false;
+ else
+ MainConsole.Instance.Output("Error: only on and off are supported");
+ }
}
}
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs
index 5141e0e..aaf1170 100644
--- a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs
+++ b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs
@@ -8540,6 +8540,8 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
public LSL_String llXorBase64Strings(string str1, string str2)
{
+ int padding = 0;
+
string b64 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
ScriptSleep(300);
@@ -8583,6 +8585,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
// than the decoded length of s1, simply perform a normal
// decode and XOR
//
+ /*
if (data2.Length >= data1.Length)
{
for (int pos = 0 ; pos < data1.Length ; pos++ )
@@ -8590,10 +8593,14 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
return Convert.ToBase64String(data1);
}
+ */
// Remove padding
while (str1.EndsWith("="))
+ {
str1 = str1.Substring(0, str1.Length - 1);
+ padding++;
+ }
while (str2.EndsWith("="))
str2 = str2.Substring(0, str2.Length - 1);
@@ -8621,7 +8628,13 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
for (int pos = 0 ; pos < d1.Length ; pos++)
output += b64[d1[pos] ^ d2[pos % d2.Length]];
- while (output.Length % 3 > 0)
+ // Here's a funny thing: LL blithely violate the base64
+ // standard pretty much everywhere. Here, padding is
+ // added only if the first input string had it, rather
+ // than when the data actually needs it. This can result
+ // in invalid base64 being returned. Go figure.
+
+ while (padding-- > 0)
output += "=";
return output;
--
cgit v1.1