From 1b05dde65971e60001cda527f9840eec756c8102 Mon Sep 17 00:00:00 2001 From: Adam Frisby Date: Sun, 27 May 2007 09:14:22 +0000 Subject: [PATCH] * Added DeadRegionResponse - occurs when connecting to a downed region (was the mysterious "(Done)" error). --- .../UserManager.cs | 25 ++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) diff --git a/OpenGridServices/OpenGridServices.UserServer/UserManager.cs b/OpenGridServices/OpenGridServices.UserServer/UserManager.cs index fdda63bcef..eb987836f5 100644 --- a/OpenGridServices/OpenGridServices.UserServer/UserManager.cs +++ b/OpenGridServices/OpenGridServices.UserServer/UserManager.cs @@ -276,6 +276,21 @@ namespace OpenGridServices.UserServer return response; } + /// + /// Creates an error response caused by target region being down + /// + /// An XMLRPC Response + private static XmlRpcResponse CreateDeadRegionResponse() + { + XmlRpcResponse response = new XmlRpcResponse(); + Hashtable PresenceErrorRespData = new Hashtable(); + PresenceErrorRespData["reason"] = "key"; + PresenceErrorRespData["message"] = "The region you are attempting to log into is not responding. Please select another region and try again."; + PresenceErrorRespData["login"] = "false"; + response.Value = PresenceErrorRespData; + return response; + } + /// /// Customises the login response and fills in missing values. /// @@ -560,7 +575,15 @@ namespace OpenGridServices.UserServer responseData["session_id"] = TheUser.currentAgent.sessionID.ToStringHyphenated(); responseData["login"] = "true"; - this.CustomiseResponse(ref responseData, ref TheUser); + try + { + this.CustomiseResponse(ref responseData, ref TheUser); + } + catch (Exception e) + { + return CreateDeadRegionResponse(); + Console.WriteLine(e.ToString()); + } CommitAgent(ref TheUser);