diff options
Diffstat (limited to 'OpenSim/Services')
4 files changed, 10 insertions, 6 deletions
diff --git a/OpenSim/Services/Connectors/Presence/PresenceServiceConnector.cs b/OpenSim/Services/Connectors/Presence/PresenceServiceConnector.cs index 29cfd6e..fac3d1f 100644 --- a/OpenSim/Services/Connectors/Presence/PresenceServiceConnector.cs +++ b/OpenSim/Services/Connectors/Presence/PresenceServiceConnector.cs | |||
@@ -132,7 +132,7 @@ namespace OpenSim.Services.Connectors | |||
132 | 132 | ||
133 | } | 133 | } |
134 | 134 | ||
135 | public bool LogoutAgent(UUID sessionID) | 135 | public bool LogoutAgent(UUID sessionID, Vector3 position, Vector3 lookat) |
136 | { | 136 | { |
137 | Dictionary<string, object> sendData = new Dictionary<string, object>(); | 137 | Dictionary<string, object> sendData = new Dictionary<string, object>(); |
138 | //sendData["SCOPEID"] = scopeID.ToString(); | 138 | //sendData["SCOPEID"] = scopeID.ToString(); |
@@ -141,6 +141,8 @@ namespace OpenSim.Services.Connectors | |||
141 | sendData["METHOD"] = "logout"; | 141 | sendData["METHOD"] = "logout"; |
142 | 142 | ||
143 | sendData["SessionID"] = sessionID.ToString(); | 143 | sendData["SessionID"] = sessionID.ToString(); |
144 | sendData["Position"] = position.ToString(); | ||
145 | sendData["LookAt"] = lookat.ToString(); | ||
144 | 146 | ||
145 | string reqString = ServerUtils.BuildQueryString(sendData); | 147 | string reqString = ServerUtils.BuildQueryString(sendData); |
146 | // m_log.DebugFormat("[PRESENCE CONNECTOR]: queryString = {0}", reqString); | 148 | // m_log.DebugFormat("[PRESENCE CONNECTOR]: queryString = {0}", reqString); |
diff --git a/OpenSim/Services/Interfaces/IPresenceService.cs b/OpenSim/Services/Interfaces/IPresenceService.cs index a010611..b4c1859 100644 --- a/OpenSim/Services/Interfaces/IPresenceService.cs +++ b/OpenSim/Services/Interfaces/IPresenceService.cs | |||
@@ -115,7 +115,7 @@ namespace OpenSim.Services.Interfaces | |||
115 | public interface IPresenceService | 115 | public interface IPresenceService |
116 | { | 116 | { |
117 | bool LoginAgent(string userID, UUID sessionID, UUID secureSessionID); | 117 | bool LoginAgent(string userID, UUID sessionID, UUID secureSessionID); |
118 | bool LogoutAgent(UUID sessionID); | 118 | bool LogoutAgent(UUID sessionID, Vector3 position, Vector3 lookAt); |
119 | bool LogoutRegionAgents(UUID regionID); | 119 | bool LogoutRegionAgents(UUID regionID); |
120 | 120 | ||
121 | bool ReportAgent(UUID sessionID, UUID regionID, Vector3 position, Vector3 lookAt); | 121 | bool ReportAgent(UUID sessionID, UUID regionID, Vector3 position, Vector3 lookAt); |
diff --git a/OpenSim/Services/LLLoginService/LLLoginService.cs b/OpenSim/Services/LLLoginService/LLLoginService.cs index 2ae552f..47d1b16 100644 --- a/OpenSim/Services/LLLoginService/LLLoginService.cs +++ b/OpenSim/Services/LLLoginService/LLLoginService.cs | |||
@@ -163,7 +163,7 @@ namespace OpenSim.Services.LLLoginService | |||
163 | GridRegion destination = FindDestination(account, presence, session, startLocation, out where, out position, out lookAt); | 163 | GridRegion destination = FindDestination(account, presence, session, startLocation, out where, out position, out lookAt); |
164 | if (destination == null) | 164 | if (destination == null) |
165 | { | 165 | { |
166 | m_PresenceService.LogoutAgent(session); | 166 | m_PresenceService.LogoutAgent(session, presence.Position, presence.LookAt); |
167 | m_log.InfoFormat("[LLOGIN SERVICE]: Login failed, reason: destination not found"); | 167 | m_log.InfoFormat("[LLOGIN SERVICE]: Login failed, reason: destination not found"); |
168 | return LLFailedLoginResponse.GridProblem; | 168 | return LLFailedLoginResponse.GridProblem; |
169 | } | 169 | } |
@@ -195,7 +195,7 @@ namespace OpenSim.Services.LLLoginService | |||
195 | } | 195 | } |
196 | if (aCircuit == null) | 196 | if (aCircuit == null) |
197 | { | 197 | { |
198 | m_PresenceService.LogoutAgent(session); | 198 | m_PresenceService.LogoutAgent(session, presence.Position, presence.LookAt); |
199 | m_log.InfoFormat("[LLOGIN SERVICE]: Login failed, reason: {0}", reason); | 199 | m_log.InfoFormat("[LLOGIN SERVICE]: Login failed, reason: {0}", reason); |
200 | return LLFailedLoginResponse.AuthorizationProblem; | 200 | return LLFailedLoginResponse.AuthorizationProblem; |
201 | } | 201 | } |
@@ -212,7 +212,7 @@ namespace OpenSim.Services.LLLoginService | |||
212 | { | 212 | { |
213 | m_log.WarnFormat("[LLOGIN SERVICE]: Exception processing login for {0} {1}: {2}", firstName, lastName, e.StackTrace); | 213 | m_log.WarnFormat("[LLOGIN SERVICE]: Exception processing login for {0} {1}: {2}", firstName, lastName, e.StackTrace); |
214 | if (m_PresenceService != null) | 214 | if (m_PresenceService != null) |
215 | m_PresenceService.LogoutAgent(session); | 215 | m_PresenceService.LogoutAgent(session, new Vector3(128, 128, 0), new Vector3(0, 1, 0)); |
216 | return LLFailedLoginResponse.InternalError; | 216 | return LLFailedLoginResponse.InternalError; |
217 | } | 217 | } |
218 | } | 218 | } |
diff --git a/OpenSim/Services/PresenceService/PresenceService.cs b/OpenSim/Services/PresenceService/PresenceService.cs index 2884199..34a3154 100644 --- a/OpenSim/Services/PresenceService/PresenceService.cs +++ b/OpenSim/Services/PresenceService/PresenceService.cs | |||
@@ -87,7 +87,7 @@ namespace OpenSim.Services.PresenceService | |||
87 | return true; | 87 | return true; |
88 | } | 88 | } |
89 | 89 | ||
90 | public bool LogoutAgent(UUID sessionID) | 90 | public bool LogoutAgent(UUID sessionID, Vector3 position, Vector3 lookat) |
91 | { | 91 | { |
92 | PresenceData data = m_Database.Get(sessionID); | 92 | PresenceData data = m_Database.Get(sessionID); |
93 | if (data == null) | 93 | if (data == null) |
@@ -103,6 +103,8 @@ namespace OpenSim.Services.PresenceService | |||
103 | 103 | ||
104 | data.Data["Online"] = "false"; | 104 | data.Data["Online"] = "false"; |
105 | data.Data["Logout"] = Util.UnixTimeSinceEpoch().ToString(); | 105 | data.Data["Logout"] = Util.UnixTimeSinceEpoch().ToString(); |
106 | data.Data["Position"] = position.ToString(); | ||
107 | data.Data["LookAt"] = lookat.ToString(); | ||
106 | 108 | ||
107 | m_Database.Store(data); | 109 | m_Database.Store(data); |
108 | 110 | ||