Forráskód Böngészése

remove the temporary Xmutes module, replace MuteListModule byt the new one, previusly named MuteListModuleTst

UbitUmarov 6 éve
szülő
commit
41633de8cb

+ 123 - 39
OpenSim/Region/CoreModules/Avatar/InstantMessage/MuteListModule.cs

@@ -27,86 +27,95 @@
 using System;
 using System.Collections.Generic;
 using System.Reflection;
+using System.Text;
 using log4net;
 using Nini.Config;
-using Mono.Addins;
 using OpenMetaverse;
 using OpenSim.Framework;
 using OpenSim.Framework.Servers;
 using OpenSim.Framework.Client;
 using OpenSim.Region.Framework.Interfaces;
 using OpenSim.Region.Framework.Scenes;
+using Mono.Addins;
+
+using OpenSim.Server.Base;
+using OpenSim.Services.Interfaces;
 
 namespace OpenSim.Region.CoreModules.Avatar.InstantMessage
 {
     [Extension(Path = "/OpenSim/RegionModules", NodeName = "RegionModule", Id = "MuteListModule")]
     public class MuteListModule : ISharedRegionModule
     {
-        private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
+        private static readonly ILog m_log = LogManager.GetLogger(
+                MethodBase.GetCurrentMethod().DeclaringType);
 
-        private bool enabled = true;
-        private List<Scene> m_SceneList = new List<Scene>();
-        private string m_RestURL = String.Empty;
+        protected bool m_Enabled = false;
+        protected List<Scene> m_SceneList = new List<Scene>();
+        protected IMuteListService m_service = null;
 
         public void Initialise(IConfigSource config)
         {
             IConfig cnf = config.Configs["Messaging"];
             if (cnf == null)
-            {
-                enabled = false;
                 return;
-            }
 
-            if (cnf != null && cnf.GetString("MuteListModule", "None") !=
-                    "MuteListModule")
-            {
-                enabled = false;
+            if (cnf.GetString("MuteListModule", "None") != "MuteListModule")
                 return;
-            }
 
-            m_RestURL = cnf.GetString("MuteListURL", "");
-            if (m_RestURL == "")
-            {
-                m_log.Error("[MUTE LIST] Module was enabled, but no URL is given, disabling");
-                enabled = false;
-                return;
-            }
+            m_Enabled = true;
         }
 
         public void AddRegion(Scene scene)
         {
-            if (!enabled)
+        }
+
+        public void RegionLoaded(Scene scene)
+        {
+            if (!m_Enabled)
+                return;
+
+            IXfer xfer = scene.RequestModuleInterface<IXfer>();
+            if (xfer == null)
+            {
+                m_log.ErrorFormat("[MuteListModule]: Xfer not availble in region {0}. Module Disabled", scene.Name);
+                m_Enabled = false;
                 return;
+            }
 
+            IMuteListService srv = scene.RequestModuleInterface<IMuteListService>();
+            if(srv == null)
+            {
+                m_log.ErrorFormat("[MuteListModule]: MuteListService not availble in region {0}. Module Disabled", scene.Name);
+                m_Enabled = false;
+                return;
+            }
             lock (m_SceneList)
             {
+                if(m_service == null)
+                    m_service = srv;
                 m_SceneList.Add(scene);
-
                 scene.EventManager.OnNewClient += OnNewClient;
             }
         }
 
-        public void RegionLoaded(Scene scene)
-        {
-        }
-
         public void RemoveRegion(Scene scene)
         {
-            if (!enabled)
-                return;
-
             lock (m_SceneList)
             {
-                m_SceneList.Remove(scene);
+                if(m_SceneList.Contains(scene))
+                {
+                    m_SceneList.Remove(scene);
+                    scene.EventManager.OnNewClient -= OnNewClient;
+                }
             }
         }
 
         public void PostInitialise()
         {
-            if (!enabled)
+            if (!m_Enabled)
                 return;
 
-            m_log.Debug("[MUTE LIST] Mute list enabled");
+            m_log.Debug("[MuteListModule]: enabled");
         }
 
         public string Name
@@ -118,27 +127,102 @@ namespace OpenSim.Region.CoreModules.Avatar.InstantMessage
         {
             get { return null; }
         }
-
+        
         public void Close()
         {
         }
-
+       
         private void OnNewClient(IClientAPI client)
         {
             client.OnMuteListRequest += OnMuteListRequest;
+            client.OnUpdateMuteListEntry += OnUpdateMuteListEntry;
+            client.OnRemoveMuteListEntry += OnRemoveMuteListEntry;
         }
 
         private void OnMuteListRequest(IClientAPI client, uint crc)
         {
-            m_log.DebugFormat("[MUTE LIST] Got mute list request for crc {0}", crc);
-            string filename = "mutes"+client.AgentId.ToString();
+            if (!m_Enabled)
+            {
+                if(crc == 0)
+                    client.SendEmpytMuteList();
+                else
+                    client.SendUseCachedMuteList();
+                return;
+            }
 
             IXfer xfer = client.Scene.RequestModuleInterface<IXfer>();
-            if (xfer != null)
+            if (xfer == null)
+            {
+                if(crc == 0)
+                    client.SendEmpytMuteList();
+                else
+                    client.SendUseCachedMuteList();
+                return;
+            }
+
+            Byte[] data = m_service.MuteListRequest(client.AgentId, crc);
+            if (data == null)
+            {
+                if(crc == 0)
+                    client.SendEmpytMuteList();
+                else
+                    client.SendUseCachedMuteList();
+                return;
+            }
+
+            if (data.Length == 0)
+            {
+                client.SendEmpytMuteList();
+                return;
+            }
+
+            if (data.Length == 1)
             {
-                xfer.AddNewFile(filename, new Byte[0]);
-                client.SendMuteListUpdate(filename);
+                if(crc == 0)
+                    client.SendEmpytMuteList();
+                else
+                    client.SendUseCachedMuteList();
+                return;
             }
+
+            string filename = "mutes" + client.AgentId.ToString();
+            xfer.AddNewFile(filename, data);
+            client.SendMuteListUpdate(filename);
+        }
+
+        private void OnUpdateMuteListEntry(IClientAPI client, UUID muteID, string muteName, int muteType, uint muteFlags)
+        {
+            if (!m_Enabled)
+                return;
+
+            UUID agentID = client.AgentId;
+            if(muteType == 1) // agent
+            {
+                if(agentID == muteID)
+                    return;
+                if(m_SceneList[0].Permissions.IsAdministrator(muteID))
+                {
+                    OnMuteListRequest(client, 0);
+                    return;
+                }
+            }
+
+            MuteData mute = new MuteData();
+            mute.AgentID = agentID;
+            mute.MuteID = muteID;
+            mute.MuteName = muteName;
+            mute.MuteType = muteType;
+            mute.MuteFlags = (int)muteFlags;
+            mute.Stamp = Util.UnixTimeSinceEpoch();
+
+            m_service.UpdateMute(mute);
+        }
+
+        private void OnRemoveMuteListEntry(IClientAPI client, UUID muteID, string muteName)
+        {
+            if (!m_Enabled)
+                return;
+            m_service.RemoveMute(client.AgentId, muteID, muteName);
         }
     }
 }

+ 0 - 229
OpenSim/Region/CoreModules/Avatar/InstantMessage/MuteListModuleTst.cs

@@ -1,229 +0,0 @@
-/*
- * Copyright (c) Contributors, http://opensimulator.org/
- * See CONTRIBUTORS.TXT for a full list of copyright holders.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *     * Redistributions of source code must retain the above copyright
- *       notice, this list of conditions and the following disclaimer.
- *     * Redistributions in binary form must reproduce the above copyright
- *       notice, this list of conditions and the following disclaimer in the
- *       documentation and/or other materials provided with the distribution.
- *     * Neither the name of the OpenSimulator Project nor the
- *       names of its contributors may be used to endorse or promote products
- *       derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-using System;
-using System.Collections.Generic;
-using System.Reflection;
-using System.Text;
-using log4net;
-using Nini.Config;
-using OpenMetaverse;
-using OpenSim.Framework;
-using OpenSim.Framework.Servers;
-using OpenSim.Framework.Client;
-using OpenSim.Region.Framework.Interfaces;
-using OpenSim.Region.Framework.Scenes;
-using Mono.Addins;
-
-using OpenSim.Server.Base;
-using OpenSim.Services.Interfaces;
-
-namespace OpenSim.Region.CoreModules.Avatar.InstantMessage
-{
-    [Extension(Path = "/OpenSim/RegionModules", NodeName = "RegionModule", Id = "MuteListModuleTst")]
-    public class MuteListModuleTst : ISharedRegionModule
-    {
-        private static readonly ILog m_log = LogManager.GetLogger(
-                MethodBase.GetCurrentMethod().DeclaringType);
-
-        protected bool m_Enabled = false;
-        protected List<Scene> m_SceneList = new List<Scene>();
-        protected IMuteListService m_service = null;
-
-        public void Initialise(IConfigSource config)
-        {
-            IConfig cnf = config.Configs["Messaging"];
-            if (cnf == null)
-                return;
-
-            if (cnf.GetString("MuteListModule", "None") != "MuteListModuleTst")
-                return;
-
-            m_Enabled = true;
-        }
-
-        public void AddRegion(Scene scene)
-        {
-        }
-
-        public void RegionLoaded(Scene scene)
-        {
-            if (!m_Enabled)
-                return;
-
-            IXfer xfer = scene.RequestModuleInterface<IXfer>();
-            if (xfer == null)
-            {
-                m_log.ErrorFormat("[MuteListModuleTst]: Xfer not availble in region {0}. Module Disabled", scene.Name);
-                m_Enabled = false;
-                return;
-            }
-
-            IMuteListService srv = scene.RequestModuleInterface<IMuteListService>();
-            if(srv == null)
-            {
-                m_log.ErrorFormat("[MuteListModuleTst]: MuteListService not availble in region {0}. Module Disabled", scene.Name);
-                m_Enabled = false;
-                return;
-            }
-            lock (m_SceneList)
-            {
-                if(m_service == null)
-                    m_service = srv;
-                m_SceneList.Add(scene);
-                scene.EventManager.OnNewClient += OnNewClient;
-            }
-        }
-
-        public void RemoveRegion(Scene scene)
-        {
-            lock (m_SceneList)
-            {
-                if(m_SceneList.Contains(scene))
-                {
-                    m_SceneList.Remove(scene);
-                    scene.EventManager.OnNewClient -= OnNewClient;
-                }
-            }
-        }
-
-        public void PostInitialise()
-        {
-            if (!m_Enabled)
-                return;
-
-            m_log.Debug("[MuteListModuleTst]: enabled");
-        }
-
-        public string Name
-        {
-            get { return "MuteListModuleTst"; }
-        }
-
-        public Type ReplaceableInterface
-        {
-            get { return null; }
-        }
-        
-        public void Close()
-        {
-        }
-       
-        private void OnNewClient(IClientAPI client)
-        {
-            client.OnMuteListRequest += OnMuteListRequest;
-            client.OnUpdateMuteListEntry += OnUpdateMuteListEntry;
-            client.OnRemoveMuteListEntry += OnRemoveMuteListEntry;
-        }
-
-        private void OnMuteListRequest(IClientAPI client, uint crc)
-        {
-            if (!m_Enabled)
-            {
-                if(crc == 0)
-                    client.SendEmpytMuteList();
-                else
-                    client.SendUseCachedMuteList();
-                return;
-            }
-
-            IXfer xfer = client.Scene.RequestModuleInterface<IXfer>();
-            if (xfer == null)
-            {
-                if(crc == 0)
-                    client.SendEmpytMuteList();
-                else
-                    client.SendUseCachedMuteList();
-                return;
-            }
-
-            Byte[] data = m_service.MuteListRequest(client.AgentId, crc);
-            if (data == null)
-            {
-                if(crc == 0)
-                    client.SendEmpytMuteList();
-                else
-                    client.SendUseCachedMuteList();
-                return;
-            }
-
-            if (data.Length == 0)
-            {
-                client.SendEmpytMuteList();
-                return;
-            }
-
-            if (data.Length == 1)
-            {
-                if(crc == 0)
-                    client.SendEmpytMuteList();
-                else
-                    client.SendUseCachedMuteList();
-                return;
-            }
-
-            string filename = "mutes" + client.AgentId.ToString();
-            xfer.AddNewFile(filename, data);
-            client.SendMuteListUpdate(filename);
-        }
-
-        private void OnUpdateMuteListEntry(IClientAPI client, UUID muteID, string muteName, int muteType, uint muteFlags)
-        {
-            if (!m_Enabled)
-                return;
-
-            UUID agentID = client.AgentId;
-            if(muteType == 1) // agent
-            {
-                if(agentID == muteID)
-                    return;
-                if(m_SceneList[0].Permissions.IsAdministrator(muteID))
-                {
-                    OnMuteListRequest(client, 0);
-                    return;
-                }
-            }
-
-            MuteData mute = new MuteData();
-            mute.AgentID = agentID;
-            mute.MuteID = muteID;
-            mute.MuteName = muteName;
-            mute.MuteType = muteType;
-            mute.MuteFlags = (int)muteFlags;
-            mute.Stamp = Util.UnixTimeSinceEpoch();
-
-            m_service.UpdateMute(mute);
-        }
-
-        private void OnRemoveMuteListEntry(IClientAPI client, UUID muteID, string muteName)
-        {
-            if (!m_Enabled)
-                return;
-            m_service.RemoveMute(client.AgentId, muteID, muteName);
-        }
-    }
-}
-

+ 0 - 239
OpenSim/Region/CoreModules/Avatar/InstantMessage/XMuteModule.cs

@@ -1,239 +0,0 @@
-/*
- * Copyright (c) Contributors, http://opensimulator.org/
- * See CONTRIBUTORS.TXT for a full list of copyright holders.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *     * Redistributions of source code must retain the above copyright
- *       notice, this list of conditions and the following disclaimer.
- *     * Redistributions in binary form must reproduce the above copyright
- *       notice, this list of conditions and the following disclaimer in the
- *       documentation and/or other materials provided with the distribution.
- *     * Neither the name of the OpenSimulator Project nor the
- *       names of its contributors may be used to endorse or promote products
- *       derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-using System;
-using System.Collections.Generic;
-using System.Reflection;
-using System.Text;
-using log4net;
-using Nini.Config;
-using OpenMetaverse;
-using OpenSim.Framework;
-using OpenSim.Region.Framework.Interfaces;
-using OpenSim.Region.Framework.Scenes;
-using Mono.Addins;
-using OpenSim.Data.MySQL;
-using MySql.Data.MySqlClient;
-
-
-namespace OpenSim.Region.CoreModules.Avatar.InstantMessage
-{
-    [Extension(Path = "/OpenSim/RegionModules", NodeName = "RegionModule", Id = "XMute")]
-    public class XMuteModule : ISharedRegionModule
-    {
-        private static readonly ILog m_log = LogManager.GetLogger(
-                MethodBase.GetCurrentMethod().DeclaringType);
-
-        protected bool m_Enabled = true;
-        protected List<Scene> m_SceneList = new List<Scene>();
-        protected MuteTableHandler m_MuteTable;
-        protected string m_DatabaseConnect;
-
-        public void Initialise(IConfigSource config)
-        {
-            IConfig cnf = config.Configs["Messaging"];
-            if (cnf == null)
-            {
-                m_Enabled = false;
-                return;
-            }
-
-            if (cnf.GetString("MuteListModule", "None") !=
-                    "XMute")
-            {
-                m_Enabled = false;
-                return;
-            }
-
-            m_DatabaseConnect = cnf.GetString("MuteDatabaseConnect", String.Empty);
-            if (m_DatabaseConnect == String.Empty)
-            {
-                m_log.Debug("[XMute]: MuteDatabaseConnect missing or empty");
-                m_Enabled = false;
-                return;
-            }
-
-            m_MuteTable = new MuteTableHandler(
-                    m_DatabaseConnect, "XMute", String.Empty);
-        }
-
-        public void AddRegion(Scene scene)
-        {
-            if (!m_Enabled)
-                return;
-
-            lock (m_SceneList)
-            {
-                m_SceneList.Add(scene);
-
-                scene.EventManager.OnNewClient += OnNewClient;
-            }
-        }
-
-        public void RegionLoaded(Scene scene)
-        {
-        }
-
-        public void RemoveRegion(Scene scene)
-        {
-            if (!m_Enabled)
-                return;
-
-            lock (m_SceneList)
-            {
-                m_SceneList.Remove(scene);
-            }
-        }
-
-        public void PostInitialise()
-        {
-            if (!m_Enabled)
-                return;
-
-            m_log.Debug("[XMute]: Mute list enabled");
-        }
-
-        public string Name
-        {
-            get { return "XMuteModule"; }
-        }
-
-        public Type ReplaceableInterface
-        {
-            get { return null; }
-        }
-        
-        public void Close()
-        {
-        }
-       
-        private void OnNewClient(IClientAPI client)
-        {
-            client.OnMuteListRequest += OnMuteListRequest;
-            client.OnUpdateMuteListEntry += OnUpdateMuteListEntry;
-            client.OnRemoveMuteListEntry += OnRemoveMuteListEntry;
-        }
-
-        private void OnMuteListRequest(IClientAPI client, uint crc)
-        {
-            string filename = "mutes"+client.AgentId.ToString();
-
-            IXfer xfer = client.Scene.RequestModuleInterface<IXfer>();
-            if (xfer != null)
-            {
-                MuteData[] data = m_MuteTable.Get("AgentID", client.AgentId.ToString());
-                if (data == null || data.Length == 0)
-                {
-                    xfer.AddNewFile(filename, new Byte[0]);
-                }
-                else
-                {
-                    StringBuilder sb = new StringBuilder(1024);
-
-                    foreach (MuteData d in data)
-                        sb.AppendFormat("{0} {1} {2}|{3}\n",
-                                d.MuteType,
-                                d.MuteID.ToString(),
-                                d.MuteName,
-                                d.MuteFlags);
-
-                    Byte[] filedata = Util.UTF8.GetBytes(sb.ToString());
-
-                    uint dataCrc = Crc32.Compute(filedata);
-
-                    if (dataCrc == crc)
-                    {
-                        client.SendUseCachedMuteList();
-                        return;
-                    }
-
-                    xfer.AddNewFile(filename, filedata);
-                }
-
-                client.SendMuteListUpdate(filename);
-            }
-        }
-
-        private void OnUpdateMuteListEntry(IClientAPI client, UUID muteID, string muteName, int muteType, uint muteFlags)
-        {
-            MuteData mute = new MuteData();
-
-            mute.AgentID = client.AgentId;
-            mute.MuteID = muteID;
-            mute.MuteName = muteName;
-            mute.MuteType = muteType;
-            mute.MuteFlags = (int)muteFlags;
-            mute.Stamp = Util.UnixTimeSinceEpoch();
-
-            m_MuteTable.Store(mute);
-        }
-
-        private void OnRemoveMuteListEntry(IClientAPI client, UUID muteID, string muteName)
-        {
-            m_MuteTable.Delete(new string[] { "AgentID",
-                                              "MuteID",
-                                              "MuteName" },
-                               new string[] { client.AgentId.ToString(),
-                                              muteID.ToString(),
-                                              muteName });
-        }
-    }
-
-    public class MuteTableHandler : MySQLGenericTableHandler<MuteData>
-    {
-        public MuteTableHandler(string conn, string realm, string m) : base(conn, realm, m)
-        {
-        }
-
-        public bool Delete(string[] fields, string[] val)
-        {
-            if (fields.Length != val.Length)
-                return false;
-
-            using (MySqlCommand cmd = new MySqlCommand())
-            {
-                string text = String.Format("delete from {0} where ", m_Realm);
-
-                List<string> terms = new List<string>();
-
-                for (int i = 0 ; i < fields.Length ; i++)
-                {
-                    terms.Add(String.Format("{0} = ?{0}", fields[i]));
-                    cmd.Parameters.AddWithValue("?" + fields[i], val[i]);
-                }
-
-                text += string.Join(" and ", terms.ToArray());
-
-                cmd.CommandText = text;
-
-                if (ExecuteNonQuery(cmd) > 0)
-                    return true;
-                return false;
-            }
-        }
-    }
-}
-

+ 1 - 1
OpenSim/Region/CoreModules/ServiceConnectorsOut/MuteList/LocalMuteListServiceConnector.cs

@@ -71,7 +71,7 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.MuteList
             if (moduleConfig == null)
                 return;
 
-            if (moduleConfig.GetString("MuteListModule", "None") != "MuteListModuleTst")
+            if (moduleConfig.GetString("MuteListModule", "None") != "MuteListModule")
                 return;
 
             moduleConfig = source.Configs["Modules"];

+ 1 - 1
OpenSim/Region/CoreModules/ServiceConnectorsOut/MuteList/RemoteMuteListServiceConnector.cs

@@ -69,7 +69,7 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.MuteList
             if (moduleConfig == null)
                 return;
 
-            if (moduleConfig.GetString("MuteListModule", "None") != "MuteListModuleTst")
+            if (moduleConfig.GetString("MuteListModule", "None") != "MuteListModule")
                 return;
             
             moduleConfig = source.Configs["Modules"];