From f62b5e6cec31fe496ec4b9f7dcd6ae1f4063bead Mon Sep 17 00:00:00 2001 From: Justin Clark-Casey (justincc) Date: Thu, 24 Sep 2009 15:19:47 +0100 Subject: Produce a different error message if the user service does not have the authenticate method available --- .../Region/Communications/OGS1/OGS1UserServices.cs | 46 +++++++++++----------- 1 file changed, 23 insertions(+), 23 deletions(-) (limited to 'OpenSim/Region/Communications') diff --git a/OpenSim/Region/Communications/OGS1/OGS1UserServices.cs b/OpenSim/Region/Communications/OGS1/OGS1UserServices.cs index 89b3e42..a55b62e 100644 --- a/OpenSim/Region/Communications/OGS1/OGS1UserServices.cs +++ b/OpenSim/Region/Communications/OGS1/OGS1UserServices.cs @@ -144,16 +144,25 @@ namespace OpenSim.Region.Communications.OGS1 public override bool AuthenticateUserByPassword(UUID userID, string password) { - try + Hashtable param = new Hashtable(); + param["user_uuid"] = userID.ToString(); + param["password"] = password; + IList parameters = new ArrayList(); + parameters.Add(param); + XmlRpcRequest req = new XmlRpcRequest("authenticate_user_by_password", parameters); + XmlRpcResponse resp = req.Send(m_commsManager.NetworkServersInfo.UserURL, 30000); + + // Temporary measure to deal with older services + if (resp.IsFault && resp.FaultCode == XmlRpcErrorCodes.SERVER_ERROR_METHOD) + //if ((string)respData["fault_code"] != null && (string)respData["fault_code"] == { - Hashtable param = new Hashtable(); - param["user_uuid"] = userID.ToString(); - param["password"] = password; - IList parameters = new ArrayList(); - parameters.Add(param); - XmlRpcRequest req = new XmlRpcRequest("authenticate_user_by_password", parameters); - XmlRpcResponse resp = req.Send(m_commsManager.NetworkServersInfo.UserURL, 30000); - Hashtable respData = (Hashtable)resp.Value; + throw new Exception( + String.Format( + "XMLRPC method 'authenticate_user_by_password' not yet implemented by user service at {0}", + m_commsManager.NetworkServersInfo.UserURL)); + } + + Hashtable respData = (Hashtable)resp.Value; // foreach (object key in respData.Keys) // { @@ -164,23 +173,14 @@ namespace OpenSim.Region.Communications.OGS1 // "[OGS1 USER SERVICES]: AuthenticatedUserByPassword response for {0} is [{1}]", // userID, respData["auth_user"]); - if ((string)respData["auth_user"] == "TRUE") - { - return true; - } - else - { - return false; - } + if ((string)respData["auth_user"] == "TRUE") + { + return true; } - catch (Exception e) + else { - m_log.ErrorFormat( - "[OGS1 USER SERVICES]: Error when trying to authenticate user by password from remote user server: {0}", - e); - return false; - } + } } } } \ No newline at end of file -- cgit v1.1