aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
authorTeravus Ovares2009-01-13 23:27:48 +0000
committerTeravus Ovares2009-01-13 23:27:48 +0000
commit412dd1260b4241c48e04eca6f9ce55a26f28dc51 (patch)
treeeb22aff2fa72e13b6415be7d4919e9eabc0ee689
parent* Fix a few caps limiter that were causing problems (diff)
downloadopensim-SC-412dd1260b4241c48e04eca6f9ce55a26f28dc51.zip
opensim-SC-412dd1260b4241c48e04eca6f9ce55a26f28dc51.tar.gz
opensim-SC-412dd1260b4241c48e04eca6f9ce55a26f28dc51.tar.bz2
opensim-SC-412dd1260b4241c48e04eca6f9ce55a26f28dc51.tar.xz
* Add a second logoffuser message with the region secret.
* This ensures that the user will be logged off successfully by a properly permissioned user server
-rw-r--r--OpenSim/Grid/UserServer/UserLoginService.cs33
1 files changed, 32 insertions, 1 deletions
diff --git a/OpenSim/Grid/UserServer/UserLoginService.cs b/OpenSim/Grid/UserServer/UserLoginService.cs
index 267b2a0..f19e564 100644
--- a/OpenSim/Grid/UserServer/UserLoginService.cs
+++ b/OpenSim/Grid/UserServer/UserLoginService.cs
@@ -106,7 +106,7 @@ namespace OpenSim.Grid.UserServer
106 Hashtable SimParams = new Hashtable(); 106 Hashtable SimParams = new Hashtable();
107 SimParams["agent_id"] = theUser.ID.ToString(); 107 SimParams["agent_id"] = theUser.ID.ToString();
108 SimParams["region_secret"] = theUser.CurrentAgent.SecureSessionID.ToString(); 108 SimParams["region_secret"] = theUser.CurrentAgent.SecureSessionID.ToString();
109 //SimParams["region_secret"] = SimInfo.regionSecret; 109 SimParams["region_secret2"] = SimInfo.regionSecret;
110 //m_log.Info(SimInfo.regionSecret); 110 //m_log.Info(SimInfo.regionSecret);
111 SimParams["regionhandle"] = theUser.CurrentAgent.Handle.ToString(); 111 SimParams["regionhandle"] = theUser.CurrentAgent.Handle.ToString();
112 SimParams["message"] = message; 112 SimParams["message"] = message;
@@ -135,6 +135,37 @@ namespace OpenSim.Grid.UserServer
135 m_log.Error("[LOGIN]: Error telling region to logout user!"); 135 m_log.Error("[LOGIN]: Error telling region to logout user!");
136 } 136 }
137 137
138 // Prepare notification
139 SimParams = new Hashtable();
140 SimParams["agent_id"] = theUser.ID.ToString();
141 SimParams["region_secret"] = SimInfo.regionSecret;
142 //m_log.Info(SimInfo.regionSecret);
143 SimParams["regionhandle"] = theUser.CurrentAgent.Handle.ToString();
144 SimParams["message"] = message;
145 SendParams = new ArrayList();
146 SendParams.Add(SimParams);
147
148 m_log.InfoFormat(
149 "[ASSUMED CRASH]: Telling region {0} @ {1},{2} ({3}) that their agent is dead: {4}",
150 SimInfo.regionName, SimInfo.regionLocX, SimInfo.regionLocY, SimInfo.httpServerURI,
151 theUser.FirstName + " " + theUser.SurName);
152
153 try
154 {
155 XmlRpcRequest GridReq = new XmlRpcRequest("logoff_user", SendParams);
156 XmlRpcResponse GridResp = GridReq.Send(SimInfo.httpServerURI, 6000);
157
158 if (GridResp.IsFault)
159 {
160 m_log.ErrorFormat(
161 "[LOGIN]: XMLRPC request for {0} failed, fault code: {1}, reason: {2}, This is likely an old region revision.",
162 SimInfo.httpServerURI, GridResp.FaultCode, GridResp.FaultString);
163 }
164 }
165 catch (Exception)
166 {
167 m_log.Error("[LOGIN]: Error telling region to logout user!");
168 }
138 //base.LogOffUser(theUser); 169 //base.LogOffUser(theUser);
139 } 170 }
140 171