diff --git a/OpenSim/Data/IPresenceData.cs b/OpenSim/Data/IPresenceData.cs index 2759a42522..9ec48b0e2a 100644 --- a/OpenSim/Data/IPresenceData.cs +++ b/OpenSim/Data/IPresenceData.cs @@ -53,6 +53,6 @@ namespace OpenSim.Data bool ReportAgent(UUID sessionID, UUID regionID); PresenceData[] Get(string field, string data); bool Delete(string field, string val); - PresenceData VerifyAgent(UUID secureSessionID); + bool VerifyAgent(UUID agentId, UUID secureSessionID); } } diff --git a/OpenSim/Data/MSSQL/MSSQLPresenceData.cs b/OpenSim/Data/MSSQL/MSSQLPresenceData.cs index 5f495ae034..0c71e792e4 100644 --- a/OpenSim/Data/MSSQL/MSSQLPresenceData.cs +++ b/OpenSim/Data/MSSQL/MSSQLPresenceData.cs @@ -100,16 +100,18 @@ namespace OpenSim.Data.MSSQL return true; } - public PresenceData VerifyAgent(UUID secureSessionID) + public bool VerifyAgent(UUID agentId, UUID secureSessionID) { PresenceData[] ret = Get("SecureSessionID", secureSessionID.ToString()); - + if (ret.Length == 0) - return null; + return false; - return ret[0]; + if(ret[0].UserID != agentId.ToString()) + return false; + + return true; } - } } diff --git a/OpenSim/Data/MySQL/MySQLPresenceData.cs b/OpenSim/Data/MySQL/MySQLPresenceData.cs index 577a71a42f..3f906399ec 100644 --- a/OpenSim/Data/MySQL/MySQLPresenceData.cs +++ b/OpenSim/Data/MySQL/MySQLPresenceData.cs @@ -96,15 +96,18 @@ namespace OpenSim.Data.MySQL return true; } - public PresenceData VerifyAgent(UUID secureSessionID) + public bool VerifyAgent(UUID agentId, UUID secureSessionID) { PresenceData[] ret = Get("SecureSessionID", secureSessionID.ToString()); if (ret.Length == 0) - return null; + return false; - return ret[0]; + if(ret[0].UserID != agentId.ToString()) + return false; + + return true; } } } \ No newline at end of file diff --git a/OpenSim/Data/Null/NullPresenceData.cs b/OpenSim/Data/Null/NullPresenceData.cs index eafde95db2..b85b95e566 100644 --- a/OpenSim/Data/Null/NullPresenceData.cs +++ b/OpenSim/Data/Null/NullPresenceData.cs @@ -222,17 +222,12 @@ namespace OpenSim.Data.Null return true; } - public PresenceData VerifyAgent(UUID secureSessionID) + public bool VerifyAgent(UUID agentId, UUID secureSessionID) { if (Instance != this) - return Instance.VerifyAgent(secureSessionID); + return Instance.VerifyAgent(agentId, secureSessionID); - if (m_presenceData.ContainsKey(secureSessionID)) - { - return m_presenceData[secureSessionID]; - } - - return null; + return false; } }