Thank you kindly, TLaukkan, for a patch that:
Adds connectivity to grid regions. * Fixed UserService cast. * Added exception handling to avoid mxp message handling thread to exit and hang the module on unhandled exception.0.6.5-rc1
parent
4c80685563
commit
0f08f4cc4b
|
@ -83,13 +83,20 @@ namespace OpenSim.Client.MXP
|
|||
|
||||
m_ticker.Start();
|
||||
|
||||
m_log.Info("[MXP] MXP Enabled and Listening");
|
||||
m_log.Info("[MXP ClientStack] MXP Enabled and Listening");
|
||||
}
|
||||
}
|
||||
|
||||
void ticker_Elapsed(object sender, ElapsedEventArgs e)
|
||||
{
|
||||
try
|
||||
{
|
||||
m_server.Process();
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
m_log.Error("[MXP ClientStack]: Unhandled exception in process loop: " + ex.ToString() + " :" + ex.StackTrace.ToString());
|
||||
}
|
||||
|
||||
if (!m_shutdown)
|
||||
m_ticker.Start();
|
||||
|
|
|
@ -270,6 +270,9 @@ namespace OpenSim.Client.MXP.PacketHandler
|
|||
(session.IsIncoming ? "from" : "to") + " " + session.RemoteEndPoint.Address + ":" +
|
||||
session.RemoteEndPoint.Port + ")");
|
||||
|
||||
try
|
||||
{
|
||||
|
||||
if (joinRequestMessage.BubbleId == Guid.Empty)
|
||||
{
|
||||
foreach (Scene scene in m_scenes.Values)
|
||||
|
@ -293,17 +296,17 @@ namespace OpenSim.Client.MXP.PacketHandler
|
|||
if (!m_scenes.ContainsKey(sceneId))
|
||||
{
|
||||
m_log.Info("[MXP ClientStack]: No such region: " + sceneId);
|
||||
regionExists=false;
|
||||
regionExists = false;
|
||||
}
|
||||
|
||||
UserProfileData user=null;
|
||||
UUID userId=UUID.Zero;
|
||||
string firstName=null;
|
||||
string lastName=null;
|
||||
bool authorized = regionExists?AuthoriseUser(joinRequestMessage.ParticipantName,
|
||||
UserProfileData user = null;
|
||||
UUID userId = UUID.Zero;
|
||||
string firstName = null;
|
||||
string lastName = null;
|
||||
bool authorized = regionExists ? AuthoriseUser(joinRequestMessage.ParticipantName,
|
||||
joinRequestMessage.ParticipantPassphrase,
|
||||
new UUID(joinRequestMessage.BubbleId), out userId, out firstName, out lastName, out user)
|
||||
:false;
|
||||
: false;
|
||||
|
||||
if (authorized)
|
||||
{
|
||||
|
@ -358,7 +361,13 @@ namespace OpenSim.Client.MXP.PacketHandler
|
|||
|
||||
DeclineConnection(session, joinRequestMessage);
|
||||
}
|
||||
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
m_log.Error("[MXP ClientStack]: Session join request failure: " + session.SessionId + " (" +
|
||||
(session.IsIncoming ? "from" : "to") + " " + session.RemoteEndPoint.Address + ":" +
|
||||
session.RemoteEndPoint.Port + "): "+e.ToString()+" :"+e.StackTrace.ToString());
|
||||
}
|
||||
tmpRemove.Add(session);
|
||||
}
|
||||
}
|
||||
|
@ -528,7 +537,7 @@ namespace OpenSim.Client.MXP.PacketHandler
|
|||
{
|
||||
//Scene scene = m_scenes[sceneId];
|
||||
CommunicationsManager commsManager = m_scenes[sceneId].CommsManager;
|
||||
UserManagerBase userService = (UserManagerBase)commsManager.UserService;
|
||||
IUserService userService = (IUserService)commsManager.UserService;
|
||||
|
||||
UserAgentData agent = new UserAgentData();
|
||||
|
||||
|
@ -565,7 +574,9 @@ namespace OpenSim.Client.MXP.PacketHandler
|
|||
|
||||
userProfile.CurrentAgent = agent;
|
||||
|
||||
userService.CommitAgent(ref userProfile);
|
||||
|
||||
userService.UpdateUserProfile(userProfile);
|
||||
//userService.CommitAgent(ref userProfile);
|
||||
}
|
||||
|
||||
private void PrepareSceneForConnection(UUID sessionId, UUID sceneId, UserProfileData userProfile)
|
||||
|
|
Loading…
Reference in New Issue