diff --git a/OpenSim/Region/ClientStack/Linden/UDP/LLUDPServer.cs b/OpenSim/Region/ClientStack/Linden/UDP/LLUDPServer.cs
index 9dfe0e98b5..8ca0b1fd5e 100644
--- a/OpenSim/Region/ClientStack/Linden/UDP/LLUDPServer.cs
+++ b/OpenSim/Region/ClientStack/Linden/UDP/LLUDPServer.cs
@@ -243,15 +243,13 @@ namespace OpenSim.Region.ClientStack.LindenUDP
/// Incoming packets that are awaiting handling
private OpenMetaverse.BlockingQueue packetInbox = new OpenMetaverse.BlockingQueue();
- ///
- //private UDPClientCollection m_clients = new UDPClientCollection();
/// Bandwidth throttle for this UDP server
- protected TokenBucket m_throttle;
+ public TokenBucket Throttle { get; private set; }
///
/// Gets the maximum total drip rate allowed to all clients.
///
- public long MaxTotalDripRate { get { return m_throttle.RequestedDripRate; } }
+ public long MaxTotalDripRate { get { return Throttle.RequestedDripRate; } }
/// Bandwidth throttle rates for this UDP server
public ThrottleRates ThrottleRates { get; private set; }
@@ -449,7 +447,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP
// = new TokenBucket(
// string.Format("server throttle bucket for {0}", Scene.Name), null, sceneThrottleBps);
- m_throttle = new TokenBucket("server throttle bucket", null, sceneThrottleBps);
+ Throttle = new TokenBucket("server throttle bucket", null, sceneThrottleBps);
ThrottleRates = new ThrottleRates(configSource);
@@ -1761,7 +1759,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP
{
if (!Scene.TryGetClient(agentID, out client))
{
- LLUDPClient udpClient = new LLUDPClient(this, ThrottleRates, m_throttle, circuitCode, agentID, remoteEndPoint, m_defaultRTO, m_maxRTO);
+ LLUDPClient udpClient = new LLUDPClient(this, ThrottleRates, Throttle, circuitCode, agentID, remoteEndPoint, m_defaultRTO, m_maxRTO);
client = new LLClientView(Scene, this, udpClient, sessionInfo, agentID, sessionID, circuitCode);
client.OnLogout += LogoutHandler;
diff --git a/OpenSim/Region/ClientStack/Linden/UDP/LLUDPServerCommands.cs b/OpenSim/Region/ClientStack/Linden/UDP/LLUDPServerCommands.cs
index 438331a8a7..f0f186a3d0 100644
--- a/OpenSim/Region/ClientStack/Linden/UDP/LLUDPServerCommands.cs
+++ b/OpenSim/Region/ClientStack/Linden/UDP/LLUDPServerCommands.cs
@@ -153,6 +153,15 @@ namespace OpenSim.Region.ClientStack.LindenUDP
"Only current setting is 'adaptive' which must be 'true' or 'false'",
HandleThrottleSetCommand);
+ m_console.Commands.AddCommand(
+ "Debug",
+ false,
+ "debug lludp set",
+ "debug lludp set ",
+ "Set a parameter for the server.",
+ "Only current setting is 'scene-throttle-max' which sets the current max cumulative kbit/s provided for this scene to clients",
+ HandleSetCommand);
+
m_console.Commands.AddCommand(
"Debug",
false,
@@ -363,6 +372,33 @@ namespace OpenSim.Region.ClientStack.LindenUDP
});
}
+ private void HandleSetCommand(string module, string[] args)
+ {
+ if (SceneManager.Instance.CurrentScene != null && SceneManager.Instance.CurrentScene != m_udpServer.Scene)
+ return;
+
+ if (args.Length != 5)
+ {
+ MainConsole.Instance.OutputFormat("Usage: debug lludp set ");
+ return;
+ }
+
+ string param = args[3];
+ string rawValue = args[4];
+
+ int newValue;
+
+ if (param == "scene-throttle-max")
+ {
+ if (!ConsoleUtil.TryParseConsoleInt(MainConsole.Instance, rawValue, out newValue))
+ return;
+
+ m_udpServer.Throttle.RequestedDripRate = newValue * 8 * 1000;
+ }
+
+ m_console.OutputFormat("{0} set to {1} in {2}", param, rawValue, m_udpServer.Scene.Name);
+ }
+
private void HandlePacketCommand(string module, string[] args)
{
if (SceneManager.Instance.CurrentScene != null && SceneManager.Instance.CurrentScene != m_udpServer.Scene)