From d10a578096e235855238721c856aa7d7112e12d1 Mon Sep 17 00:00:00 2001 From: Adam Frisby Date: Sun, 12 Oct 2008 00:11:22 +0000 Subject: * Fixed two major unhandled exceptions discovered during the Pub Quiz on friday. --- .../Avatar/InstantMessage/InstantMessageModule.cs | 35 ++++++++++++++++++---- 1 file changed, 30 insertions(+), 5 deletions(-) (limited to 'OpenSim/Region/Environment/Modules') diff --git a/OpenSim/Region/Environment/Modules/Avatar/InstantMessage/InstantMessageModule.cs b/OpenSim/Region/Environment/Modules/Avatar/InstantMessage/InstantMessageModule.cs index 6b2de80..9312fd8 100644 --- a/OpenSim/Region/Environment/Modules/Avatar/InstantMessage/InstantMessageModule.cs +++ b/OpenSim/Region/Environment/Modules/Avatar/InstantMessage/InstantMessageModule.cs @@ -274,14 +274,30 @@ namespace OpenSim.Region.Environment.Modules.Avatar.InstantMessage message = (string)requestData["message"]; // Bytes don't transfer well over XMLRPC, so, we Base64 Encode them. - byte[] dialogdata = Convert.FromBase64String((string)requestData["dialog"]); - dialog = dialogdata[0]; + string requestData1 = (string)requestData["dialog"]; + if (string.IsNullOrEmpty(requestData1)) + { + dialog = 0; + } + else + { + byte[] dialogdata = Convert.FromBase64String(requestData1); + dialog = dialogdata[0]; + } if ((string)requestData["from_group"] == "TRUE") fromGroup = true; - byte[] offlinedata = Convert.FromBase64String((string)requestData["offline"]); - offline = offlinedata[0]; + string requestData2 = (string)requestData["offline"]; + if (String.IsNullOrEmpty(requestData2)) + { + offline = 0; + } + else + { + byte[] offlinedata = Convert.FromBase64String(requestData2); + offline = offlinedata[0]; + } # region ParentEstateID try @@ -346,7 +362,16 @@ namespace OpenSim.Region.Environment.Modules.Avatar.InstantMessage # endregion Position = new Vector3(pos_x, pos_y, pos_z); - binaryBucket = Convert.FromBase64String((string)requestData["binary_bucket"]); + + string requestData3 = (string)requestData["binary_bucket"]; + if (string.IsNullOrEmpty(requestData3)) + { + binaryBucket = new byte[0]; + } + else + { + binaryBucket = Convert.FromBase64String(requestData3); + } // Create a New GridInstantMessageObject the the data GridInstantMessage gim = new GridInstantMessage(); -- cgit v1.1