private void HandleUpdateMuteListEntry(AgentCircuit circuit, Message m) { ViewerAgent agent = circuit.Agent; MuteListServiceInterface muteListService = agent.MuteListService; var req = (UpdateMuteListEntry)m; if (req.AgentID != req.CircuitAgentID || req.SessionID != req.CircuitSessionID) { return; } if (muteListService == null) { return; } muteListService.Store(agent.ID, new MuteListEntry { Flags = req.MuteFlags, MuteID = req.MuteID, MuteName = req.MuteName, Type = req.MuteType }); }
private void HandleRemoveMuteListEntry(AgentCircuit circuit, Message m) { ViewerAgent agent = circuit.Agent; MuteListServiceInterface muteListService = agent.MuteListService; var req = (RemoveMuteListEntry)m; if (req.AgentID != req.CircuitAgentID || req.SessionID != req.CircuitSessionID) { return; } if (muteListService == null) { return; } muteListService.Remove(agent.ID, req.MuteID, req.MuteName); }
private void HandleMuteListRequest(AgentCircuit circuit, Message m) { var req = (MuteListRequest)m; if (req.CircuitAgentID != req.AgentID || req.CircuitSessionID != req.SessionID) { return; } ViewerAgent agent = circuit.Agent; MuteListServiceInterface muteListService = agent.MuteListService; bool useCached = false; bool useEmpty = true; if (muteListService == null) { circuit.SendMessage(new UseCachedMuteList { AgentID = agent.ID }); return; } string filename = $"mutes{agent.ID}"; using (var ms = new MemoryStream()) { try { List <MuteListEntry> list = muteListService.GetList(agent.ID, req.MuteCRC); byte[] data; if (list.Count != 0) { useEmpty = false; data = list.ToBinaryData(); } else { data = new byte[0]; } if (new Crc32().Compute(data) == req.MuteCRC) { useCached = true; } else if (!useEmpty) { agent.AddNewFile(filename, data); } } catch (UseCachedMuteListException) { useCached = true; } } if (useCached) { circuit.SendMessage(new UseCachedMuteList { AgentID = agent.ID }); } else if (useEmpty) { circuit.SendMessage(new GenericMessage { Method = "emptymutelist" }); } else { circuit.SendMessage(new MuteListUpdate { AgentID = agent.ID, Filename = filename }); } }
public void Startup(ConfigurationLoader loader) { IConfig config = loader.Config.Configs[GetType().FullName]; m_MuteListService = loader.GetService <MuteListServiceInterface>(config.GetString("MuteListService", "MuteListService")); }