aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim
diff options
context:
space:
mode:
authorHomer Horwitz2008-11-02 13:07:57 +0000
committerHomer Horwitz2008-11-02 13:07:57 +0000
commit499f1428f707cbb116349dc0a2f07a19658df668 (patch)
tree516cd76203c030773b0bc9bf3cd86e5581b09a46 /OpenSim
parentCause inventory to be fetched on scripted item gives if the destination (diff)
downloadopensim-SC-499f1428f707cbb116349dc0a2f07a19658df668.zip
opensim-SC-499f1428f707cbb116349dc0a2f07a19658df668.tar.gz
opensim-SC-499f1428f707cbb116349dc0a2f07a19658df668.tar.bz2
opensim-SC-499f1428f707cbb116349dc0a2f07a19658df668.tar.xz
- Add Util.isUUID
- Add tests for Util.isUUID - First part of the fix for protocol interoperability between viewer 1.20 and 1.21 for friend offers.
Diffstat (limited to 'OpenSim')
-rw-r--r--OpenSim/Framework/Tests/UtilTest.cs15
-rw-r--r--OpenSim/Framework/Util.cs7
-rw-r--r--OpenSim/Region/Environment/Modules/Avatar/Friends/FriendsModule.cs4
3 files changed, 26 insertions, 0 deletions
diff --git a/OpenSim/Framework/Tests/UtilTest.cs b/OpenSim/Framework/Tests/UtilTest.cs
index a973ed2..0224356 100644
--- a/OpenSim/Framework/Tests/UtilTest.cs
+++ b/OpenSim/Framework/Tests/UtilTest.cs
@@ -137,5 +137,20 @@ namespace OpenSim.Framework.Tests
137 "Normalized vector generated from vector does not have magnitude of 1."); 137 "Normalized vector generated from vector does not have magnitude of 1.");
138 } 138 }
139 } 139 }
140
141 [Test]
142 public void UUIDTests()
143 {
144 Assert.IsTrue(Util.isUUID("01234567-89ab-Cdef-0123-456789AbCdEf"),
145 "A correct UUID wasn't recognized.");
146 Assert.IsFalse(Util.isUUID("FOOBAR67-89ab-Cdef-0123-456789AbCdEf"),
147 "UUIDs with non-hex characters are recognized as correct UUIDs.");
148 Assert.IsFalse(Util.isUUID("01234567"),
149 "Too short UUIDs are regognized as correct UUIDs.");
150 Assert.IsFalse(Util.isUUID("01234567-89ab-Cdef-0123-456789AbCdEf0"),
151 "Too long UUIDs are regognized as correct UUIDs.");
152 Assert.IsFalse(Util.isUUID("01234567-89ab-Cdef-0123+456789AbCdEf"),
153 "UUIDs with wrong format are recognized as correct UUIDs.");
154 }
140 } 155 }
141} 156}
diff --git a/OpenSim/Framework/Util.cs b/OpenSim/Framework/Util.cs
index c5334a8..b8080ec 100644
--- a/OpenSim/Framework/Util.cs
+++ b/OpenSim/Framework/Util.cs
@@ -64,6 +64,8 @@ namespace OpenSim.Framework
64 private static readonly DateTime unixEpoch = 64 private static readonly DateTime unixEpoch =
65 DateTime.ParseExact("1970-01-01 00:00:00 +0", "yyyy-MM-dd hh:mm:ss z", DateTimeFormatInfo.InvariantInfo).ToUniversalTime(); 65 DateTime.ParseExact("1970-01-01 00:00:00 +0", "yyyy-MM-dd hh:mm:ss z", DateTimeFormatInfo.InvariantInfo).ToUniversalTime();
66 66
67 private static readonly Regex UUIDPattern = new Regex("^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$");
68
67 #region Vector Equations 69 #region Vector Equations
68 70
69 /// <summary> 71 /// <summary>
@@ -796,5 +798,10 @@ namespace OpenSim.Framework
796 x += rx; 798 x += rx;
797 y += ry; 799 y += ry;
798 } 800 }
801
802 public static bool isUUID(string s)
803 {
804 return UUIDPattern.IsMatch(s);
805 }
799 } 806 }
800} 807}
diff --git a/OpenSim/Region/Environment/Modules/Avatar/Friends/FriendsModule.cs b/OpenSim/Region/Environment/Modules/Avatar/Friends/FriendsModule.cs
index 605b6a2..33ca632 100644
--- a/OpenSim/Region/Environment/Modules/Avatar/Friends/FriendsModule.cs
+++ b/OpenSim/Region/Environment/Modules/Avatar/Friends/FriendsModule.cs
@@ -396,6 +396,10 @@ namespace OpenSim.Region.Environment.Modules.Avatar.Friends
396 396
397 UUID transactionID = UUID.Random(); 397 UUID transactionID = UUID.Random();
398 398
399 // 1.20 protocol sends an UUID in the message field, instead of the friendship offer text.
400 // For interoperability, we have to clear that
401 if (Util.isUUID(message)) message = "";
402
399 GridInstantMessage msg = new GridInstantMessage(); 403 GridInstantMessage msg = new GridInstantMessage();
400 msg.fromAgentID = fromAgentID.Guid; 404 msg.fromAgentID = fromAgentID.Guid;
401 msg.fromAgentSession = UUID.Zero.Guid; // server IMs don't have a session 405 msg.fromAgentSession = UUID.Zero.Guid; // server IMs don't have a session