diff --git a/OpenSim/Framework/Servers/BaseHttpServer.cs b/OpenSim/Framework/Servers/BaseHttpServer.cs
index 6b576e6f30..7f9e1a1dbf 100644
--- a/OpenSim/Framework/Servers/BaseHttpServer.cs
+++ b/OpenSim/Framework/Servers/BaseHttpServer.cs
@@ -230,6 +230,13 @@ namespace OpenSim.Framework.Servers
return true;
}
}
+
+ ///
+ /// Try all the registered xmlrpc handlers when an xmlrpc request is received.
+ /// Sends back an XMLRPC unknown request response if no handler is registered for the requested method.
+ ///
+ ///
+ ///
private void HandleXmlRpcRequests(HttpListenerRequest request, HttpListenerResponse response)
{
Stream requestStream = request.InputStream;
@@ -268,12 +275,8 @@ namespace OpenSim.Framework.Servers
else
{
xmlRpcResponse = new XmlRpcResponse();
- Hashtable unknownMethodError = new Hashtable();
- unknownMethodError["reason"] = "XmlRequest";
- ;
- unknownMethodError["message"] = "Unknown Rpc Request [" + methodName + "]";
- unknownMethodError["login"] = "false";
- xmlRpcResponse.Value = unknownMethodError;
+ // Code set in accordance with http://xmlrpc-epi.sourceforge.net/specs/rfc.fault_codes.php
+ xmlRpcResponse.SetFault(-32601, String.Format("Requested method [{0}] not found", methodName));
}
responseString = XmlRpcResponseSerializer.Singleton.Serialize(xmlRpcResponse);
diff --git a/OpenSim/Grid/UserServer/UserLoginService.cs b/OpenSim/Grid/UserServer/UserLoginService.cs
index 58e85d811b..11eaa5f571 100644
--- a/OpenSim/Grid/UserServer/UserLoginService.cs
+++ b/OpenSim/Grid/UserServer/UserLoginService.cs
@@ -130,12 +130,19 @@ namespace OpenSim.Grid.UserServer
theUser.currentAgent.currentRegion = SimInfo.UUID;
theUser.currentAgent.currentHandle = SimInfo.regionHandle;
- m_log.Info("[LOGIN]: Sending expect user call to "
+ m_log.Info("[LOGIN]: Telling "
+ SimInfo.regionName + " @ " + SimInfo.httpServerURI + " " +
- SimInfo.regionLocX + "," + SimInfo.regionLocY);
+ SimInfo.regionLocX + "," + SimInfo.regionLocY + " to expect user connection");
XmlRpcRequest GridReq = new XmlRpcRequest("expect_user", SendParams);
XmlRpcResponse GridResp = GridReq.Send(SimInfo.httpServerURI, 6000);
+
+ if (GridResp.IsFault)
+ {
+ m_log.ErrorFormat(
+ "[LOGIN]: XMLRPC request for {0} failed, fault code: {1}, reason: {2}",
+ SimInfo.httpServerURI, GridResp.FaultCode, GridResp.FaultString);
+ }
}
catch (Exception)
{
diff --git a/OpenSim/Region/Communications/OGS1/OGS1GridServices.cs b/OpenSim/Region/Communications/OGS1/OGS1GridServices.cs
index 0a9a05c10c..f8cbe0f6e0 100644
--- a/OpenSim/Region/Communications/OGS1/OGS1GridServices.cs
+++ b/OpenSim/Region/Communications/OGS1/OGS1GridServices.cs
@@ -450,7 +450,9 @@ namespace OpenSim.Region.Communications.OGS1
// Grid Request Processing
///
- ///
+ /// Received from the user server when a user starts logging in. This call allows
+ /// the region to prepare for direct communication from the client. Sends back an empty
+ /// xmlrpc response on completion.
///
///
///