From e144958e03a5c2bd723b43db75a926452af60e43 Mon Sep 17 00:00:00 2001
From: Justin Clark-Casey (justincc)
Date: Tue, 30 Sep 2014 18:41:04 +0100
Subject: Add "debug lludp throttle set" command to allow setting of parameters
at runtime
Can currently only set adaptive true|false, where adaptive = false
---
.../Region/ClientStack/Linden/UDP/LLUDPServer.cs | 51 +++++++++++++++++++++-
.../Region/ClientStack/Linden/UDP/TokenBucket.cs | 4 +-
2 files changed, 52 insertions(+), 3 deletions(-)
(limited to 'OpenSim/Region/ClientStack/Linden/UDP')
diff --git a/OpenSim/Region/ClientStack/Linden/UDP/LLUDPServer.cs b/OpenSim/Region/ClientStack/Linden/UDP/LLUDPServer.cs
index 6e31322..259e1ba 100644
--- a/OpenSim/Region/ClientStack/Linden/UDP/LLUDPServer.cs
+++ b/OpenSim/Region/ClientStack/Linden/UDP/LLUDPServer.cs
@@ -782,6 +782,15 @@ namespace OpenSim.Region.ClientStack.LindenUDP
MainConsole.Instance.Commands.AddCommand(
"Debug",
false,
+ "debug lludp throttle set",
+ "debug lludp throttle set ",
+ "Set a throttle parameter for the given client.",
+ "Only current setting is 'adaptive' which must be 'true' or 'false'",
+ HandleThrottleSetCommand);
+
+ MainConsole.Instance.Commands.AddCommand(
+ "Debug",
+ false,
"debug lludp toggle agentupdate",
"debug lludp toggle agentupdate",
"Toggle whether agentupdate packets are processed or simply discarded.",
@@ -850,6 +859,46 @@ namespace OpenSim.Region.ClientStack.LindenUDP
});
}
+ private void HandleThrottleSetCommand(string module, string[] args)
+ {
+ if (SceneManager.Instance.CurrentScene != null && SceneManager.Instance.CurrentScene != Scene)
+ return;
+
+ if (args.Length != 8)
+ {
+ MainConsole.Instance.OutputFormat(
+ "Usage: debug lludp throttle set ");
+ return;
+ }
+
+ string param = args[4];
+ string rawValue = args[5];
+ string firstName = args[6];
+ string lastName = args[7];
+
+ if (param == "adaptive")
+ {
+ bool newValue;
+ if (!ConsoleUtil.TryParseConsoleBool(MainConsole.Instance, rawValue, out newValue))
+ return;
+
+ Scene.ForEachScenePresence(sp =>
+ {
+ if (sp.Firstname == firstName && sp.Lastname == lastName)
+ {
+ MainConsole.Instance.OutputFormat(
+ "Setting param {0} to {1} for {2} ({3}) in {4}",
+ param, newValue, sp.Name, sp.IsChildAgent ? "child" : "root", Scene.Name);
+
+ LLUDPClient udpClient = ((LLClientView)sp.ControllingClient).UDPClient;
+ udpClient.FlowThrottle.Enabled = newValue;
+// udpClient.FlowThrottle.MaxDripRate = 0;
+// udpClient.FlowThrottle.AdjustedDripRate = 0;
+ }
+ });
+ }
+ }
+
private void HandleThrottleStatusCommand(string module, string[] args)
{
if (SceneManager.Instance.CurrentScene != null && SceneManager.Instance.CurrentScene != Scene)
@@ -865,7 +914,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP
string lastName = args[5];
Scene.ForEachScenePresence(sp =>
- {
+ {
if (sp.Firstname == firstName && sp.Lastname == lastName)
{
MainConsole.Instance.OutputFormat(
diff --git a/OpenSim/Region/ClientStack/Linden/UDP/TokenBucket.cs b/OpenSim/Region/ClientStack/Linden/UDP/TokenBucket.cs
index 658d9bb..e4a12bd 100644
--- a/OpenSim/Region/ClientStack/Linden/UDP/TokenBucket.cs
+++ b/OpenSim/Region/ClientStack/Linden/UDP/TokenBucket.cs
@@ -340,10 +340,10 @@ namespace OpenSim.Region.ClientStack.LindenUDP
public Int64 MaxDripRate
{
get { return (m_maxDripRate == 0 ? m_totalDripRequest : m_maxDripRate); }
- protected set { m_maxDripRate = (value == 0 ? 0 : Math.Max(value,m_minimumFlow)); }
+ set { m_maxDripRate = (value == 0 ? 0 : Math.Max(value,m_minimumFlow)); }
}
- public bool Enabled { get; private set; }
+ public bool Enabled { get; set; }
//
//
--
cgit v1.1