diff options
author | Melanie Thielker | 2008-11-23 05:16:07 +0000 |
---|---|---|
committer | Melanie Thielker | 2008-11-23 05:16:07 +0000 |
commit | cbd02218704287640ba5c7b564440a6590e038cf (patch) | |
tree | e600fd4868bce3e3d007d6d1894dd814d948692a /OpenSim/Data | |
parent | Mantis#2660. Thank you kindly, Ruud Lathrop for a patch that: (diff) | |
download | opensim-SC-cbd02218704287640ba5c7b564440a6590e038cf.zip opensim-SC-cbd02218704287640ba5c7b564440a6590e038cf.tar.gz opensim-SC-cbd02218704287640ba5c7b564440a6590e038cf.tar.bz2 opensim-SC-cbd02218704287640ba5c7b564440a6590e038cf.tar.xz |
Plumb in the presence notifications and region shutdown/restart messages
from the presence module to the message server, through the user server
and on into the database. This should fix the "Already logged in" issue
that grids see after a sim crashes, or a user crashes out of a sim.
Not yet a 100% solution for friends, but getting there.
Diffstat (limited to 'OpenSim/Data')
-rw-r--r-- | OpenSim/Data/MSSQL/MSSQLUserData.cs | 4 | ||||
-rw-r--r-- | OpenSim/Data/MySQL/MySQLUserData.cs | 26 | ||||
-rw-r--r-- | OpenSim/Data/NHibernate/NHibernateUserData.cs | 4 | ||||
-rw-r--r-- | OpenSim/Data/SQLite/SQLiteUserData.cs | 4 | ||||
-rw-r--r-- | OpenSim/Data/UserDataBase.cs | 2 |
5 files changed, 40 insertions, 0 deletions
diff --git a/OpenSim/Data/MSSQL/MSSQLUserData.cs b/OpenSim/Data/MSSQL/MSSQLUserData.cs index 0afe47c..5185659 100644 --- a/OpenSim/Data/MSSQL/MSSQLUserData.cs +++ b/OpenSim/Data/MSSQL/MSSQLUserData.cs | |||
@@ -732,6 +732,10 @@ namespace OpenSim.Data.MSSQL | |||
732 | } | 732 | } |
733 | } | 733 | } |
734 | 734 | ||
735 | override public void LogoutUsers(UUID regionID) | ||
736 | { | ||
737 | } | ||
738 | |||
735 | #endregion | 739 | #endregion |
736 | 740 | ||
737 | #region Other public methods | 741 | #region Other public methods |
diff --git a/OpenSim/Data/MySQL/MySQLUserData.cs b/OpenSim/Data/MySQL/MySQLUserData.cs index 288ca86..f203a66 100644 --- a/OpenSim/Data/MySQL/MySQLUserData.cs +++ b/OpenSim/Data/MySQL/MySQLUserData.cs | |||
@@ -891,5 +891,31 @@ namespace OpenSim.Data.MySQL | |||
891 | dbm.Release(); | 891 | dbm.Release(); |
892 | } | 892 | } |
893 | } | 893 | } |
894 | |||
895 | public override void LogoutUsers(UUID regionID) | ||
896 | { | ||
897 | Dictionary<string, string> param = new Dictionary<string, string>(); | ||
898 | param["?regionID"] = regionID.ToString(); | ||
899 | |||
900 | MySQLSuperManager dbm = GetLockedConnection("LogoutUsers"); | ||
901 | |||
902 | try | ||
903 | { | ||
904 | dbm.Manager.ExecuteParameterizedSql( | ||
905 | "update " + m_agentsTableName + " SET agentOnline = 0 " + | ||
906 | "where currentRegion = ?regionID", | ||
907 | param); | ||
908 | } | ||
909 | catch (Exception e) | ||
910 | { | ||
911 | dbm.Manager.Reconnect(); | ||
912 | m_log.Error(e.ToString()); | ||
913 | return; | ||
914 | } | ||
915 | finally | ||
916 | { | ||
917 | dbm.Release(); | ||
918 | } | ||
919 | } | ||
894 | } | 920 | } |
895 | } | 921 | } |
diff --git a/OpenSim/Data/NHibernate/NHibernateUserData.cs b/OpenSim/Data/NHibernate/NHibernateUserData.cs index 5ef48c8..1bb2b14 100644 --- a/OpenSim/Data/NHibernate/NHibernateUserData.cs +++ b/OpenSim/Data/NHibernate/NHibernateUserData.cs | |||
@@ -308,6 +308,10 @@ namespace OpenSim.Data.NHibernate | |||
308 | { | 308 | { |
309 | } | 309 | } |
310 | 310 | ||
311 | public override void LogoutUsers(UUID regionID) | ||
312 | { | ||
313 | } | ||
314 | |||
311 | public override string Name { | 315 | public override string Name { |
312 | get { return "NHibernate"; } | 316 | get { return "NHibernate"; } |
313 | } | 317 | } |
diff --git a/OpenSim/Data/SQLite/SQLiteUserData.cs b/OpenSim/Data/SQLite/SQLiteUserData.cs index 369fc51..b8f1a68 100644 --- a/OpenSim/Data/SQLite/SQLiteUserData.cs +++ b/OpenSim/Data/SQLite/SQLiteUserData.cs | |||
@@ -1037,5 +1037,9 @@ namespace OpenSim.Data.SQLite | |||
1037 | override public void ResetAttachments(UUID userID) | 1037 | override public void ResetAttachments(UUID userID) |
1038 | { | 1038 | { |
1039 | } | 1039 | } |
1040 | |||
1041 | override public void LogoutUsers(UUID regionID) | ||
1042 | { | ||
1043 | } | ||
1040 | } | 1044 | } |
1041 | } | 1045 | } |
diff --git a/OpenSim/Data/UserDataBase.cs b/OpenSim/Data/UserDataBase.cs index a5fc8c8..c1b320b 100644 --- a/OpenSim/Data/UserDataBase.cs +++ b/OpenSim/Data/UserDataBase.cs | |||
@@ -75,6 +75,8 @@ namespace OpenSim.Data | |||
75 | // } | 75 | // } |
76 | public abstract void ResetAttachments(UUID userID); | 76 | public abstract void ResetAttachments(UUID userID); |
77 | 77 | ||
78 | public abstract void LogoutUsers(UUID regionID); | ||
79 | |||
78 | public abstract string Version {get;} | 80 | public abstract string Version {get;} |
79 | public abstract string Name {get;} | 81 | public abstract string Name {get;} |
80 | public abstract void Initialise(string connect); | 82 | public abstract void Initialise(string connect); |