Produce a different error message if the user service does not have the authenticate method available

remotes/origin/0.6.7-post-fixes
Justin Clark-Casey (justincc) 2009-09-24 15:19:47 +01:00
parent e67341f24c
commit f62b5e6cec
2 changed files with 42 additions and 35 deletions

View File

@ -143,8 +143,6 @@ namespace OpenSim.Region.Communications.OGS1
}
public override bool AuthenticateUserByPassword(UUID userID, string password)
{
try
{
Hashtable param = new Hashtable();
param["user_uuid"] = userID.ToString();
@ -153,6 +151,17 @@ namespace OpenSim.Region.Communications.OGS1
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"] ==
{
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)
@ -173,14 +182,5 @@ namespace OpenSim.Region.Communications.OGS1
return false;
}
}
catch (Exception e)
{
m_log.ErrorFormat(
"[OGS1 USER SERVICES]: Error when trying to authenticate user by password from remote user server: {0}",
e);
return false;
}
}
}
}

View File

@ -333,6 +333,8 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver
return null;
}
try
{
if (m_aScene.CommsManager.UserService.AuthenticateUserByPassword(userInfo.UserProfile.ID, pass))
{
return userInfo;
@ -342,7 +344,12 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver
m_log.ErrorFormat(
"[INVENTORY ARCHIVER]: Password for user {0} {1} incorrect. Please try again.",
firstName, lastName);
return null;
}
}
catch (Exception e)
{
m_log.ErrorFormat("[INVENTORY ARCHIVER]: Could not authenticate password, {0}", e.Message);
return null;
}
}
@ -364,9 +371,9 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver
{
foreach (InventoryNodeBase node in loadedNodes)
{
m_log.DebugFormat(
"[INVENTORY ARCHIVER]: Notifying {0} of loaded inventory node {1}",
user.Name, node.Name);
// m_log.DebugFormat(
// "[INVENTORY ARCHIVER]: Notifying {0} of loaded inventory node {1}",
// user.Name, node.Name);
user.ControllingClient.SendBulkUpdateInventory(node);
}