diff options
author | Justin Clark-Casey (justincc) | 2015-01-21 20:31:42 +0000 |
---|---|---|
committer | Justin Clark-Casey (justincc) | 2015-01-21 20:31:42 +0000 |
commit | 155da5aad2dc0bb6d88d7276e9e3a12639cf9ead (patch) | |
tree | f636762ca16f14c1941f53abf3285200dc583413 /OpenSim/Region/ClientStack/Linden/UDP/LLUDPServerCommands.cs | |
parent | Fix OfflineIMEmail value overwriting every time its called. The request was r... (diff) | |
download | opensim-SC_OLD-155da5aad2dc0bb6d88d7276e9e3a12639cf9ead.zip opensim-SC_OLD-155da5aad2dc0bb6d88d7276e9e3a12639cf9ead.tar.gz opensim-SC_OLD-155da5aad2dc0bb6d88d7276e9e3a12639cf9ead.tar.bz2 opensim-SC_OLD-155da5aad2dc0bb6d88d7276e9e3a12639cf9ead.tar.xz |
Add debug ability to ignore reliably sent packets that are not acknowledged.
This is controlled via the console command "debug lludp client set process-unacked-sends true [<avatar-first-name> <avatar-last-name>]"
For debug purposes to see if this process for very bad connections is causing general outbound udp processing delays.
Relates to http://opensimulator.org/mantis/view.php?id=7393
Diffstat (limited to '')
-rw-r--r-- | OpenSim/Region/ClientStack/Linden/UDP/LLUDPServerCommands.cs | 93 |
1 files changed, 93 insertions, 0 deletions
diff --git a/OpenSim/Region/ClientStack/Linden/UDP/LLUDPServerCommands.cs b/OpenSim/Region/ClientStack/Linden/UDP/LLUDPServerCommands.cs index 17a394d..ac6c0b4 100644 --- a/OpenSim/Region/ClientStack/Linden/UDP/LLUDPServerCommands.cs +++ b/OpenSim/Region/ClientStack/Linden/UDP/LLUDPServerCommands.cs | |||
@@ -195,6 +195,24 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
195 | "Start, stop or get status of OutgoingQueueRefillEngine.", | 195 | "Start, stop or get status of OutgoingQueueRefillEngine.", |
196 | "If stopped then refill requests are processed directly via the threadpool.", | 196 | "If stopped then refill requests are processed directly via the threadpool.", |
197 | HandleOqreCommand); | 197 | HandleOqreCommand); |
198 | |||
199 | m_console.Commands.AddCommand( | ||
200 | "Debug", | ||
201 | false, | ||
202 | "debug lludp client get", | ||
203 | "debug lludp client get [<avatar-first-name> <avatar-last-name>]", | ||
204 | "Get debug parameters for the client. If no name is given then all client information is returned.", | ||
205 | "process-unacked-sends - Do we take action if a sent reliable packet has not been acked.", | ||
206 | HandleClientGetCommand); | ||
207 | |||
208 | m_console.Commands.AddCommand( | ||
209 | "Debug", | ||
210 | false, | ||
211 | "debug lludp client set", | ||
212 | "debug lludp client set <param> <value> [<avatar-first-name> <avatar-last-name>]", | ||
213 | "Set a debug parameter for a particular client. If no name is given then the value is set on all clients.", | ||
214 | "process-unacked-sends - Do we take action if a sent reliable packet has not been acked.", | ||
215 | HandleClientSetCommand); | ||
198 | } | 216 | } |
199 | 217 | ||
200 | private void HandleShowServerThrottlesCommand(string module, string[] args) | 218 | private void HandleShowServerThrottlesCommand(string module, string[] args) |
@@ -538,6 +556,81 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
538 | m_console.OutputFormat("{0} set to {1} in {2}", param, rawValue, m_udpServer.Scene.Name); | 556 | m_console.OutputFormat("{0} set to {1} in {2}", param, rawValue, m_udpServer.Scene.Name); |
539 | } | 557 | } |
540 | 558 | ||
559 | private void HandleClientGetCommand(string module, string[] args) | ||
560 | { | ||
561 | if (SceneManager.Instance.CurrentScene != null && SceneManager.Instance.CurrentScene != m_udpServer.Scene) | ||
562 | return; | ||
563 | |||
564 | if (args.Length != 4 && args.Length != 6) | ||
565 | { | ||
566 | MainConsole.Instance.OutputFormat("Usage: debug lludp client get [<avatar-first-name> <avatar-last-name>]"); | ||
567 | return; | ||
568 | } | ||
569 | |||
570 | string name = null; | ||
571 | |||
572 | if (args.Length == 6) | ||
573 | name = string.Format("{0} {1}", args[4], args[5]); | ||
574 | |||
575 | m_udpServer.Scene.ForEachScenePresence( | ||
576 | sp => | ||
577 | { | ||
578 | if ((name == null || sp.Name == name) && sp.ControllingClient is LLClientView) | ||
579 | { | ||
580 | LLUDPClient udpClient = ((LLClientView)sp.ControllingClient).UDPClient; | ||
581 | |||
582 | m_console.OutputFormat( | ||
583 | "Client debug parameters for {0} ({1}) in {2}", | ||
584 | sp.Name, sp.IsChildAgent ? "child" : "root", m_udpServer.Scene.Name); | ||
585 | |||
586 | ConsoleDisplayList cdl = new ConsoleDisplayList(); | ||
587 | cdl.AddRow("process-unacked-sends", udpClient.ProcessUnackedSends); | ||
588 | |||
589 | m_console.Output(cdl.ToString()); | ||
590 | } | ||
591 | }); | ||
592 | } | ||
593 | |||
594 | private void HandleClientSetCommand(string module, string[] args) | ||
595 | { | ||
596 | if (SceneManager.Instance.CurrentScene != null && SceneManager.Instance.CurrentScene != m_udpServer.Scene) | ||
597 | return; | ||
598 | |||
599 | if (args.Length != 6 && args.Length != 8) | ||
600 | { | ||
601 | MainConsole.Instance.OutputFormat("Usage: debug lludp client set <param> <value> [<avatar-first-name> <avatar-last-name>]"); | ||
602 | return; | ||
603 | } | ||
604 | |||
605 | string param = args[4]; | ||
606 | string rawValue = args[5]; | ||
607 | |||
608 | string name = null; | ||
609 | |||
610 | if (args.Length == 8) | ||
611 | name = string.Format("{0} {1}", args[6], args[7]); | ||
612 | |||
613 | if (param == "process-unacked-sends") | ||
614 | { | ||
615 | bool newValue; | ||
616 | |||
617 | if (!ConsoleUtil.TryParseConsoleBool(MainConsole.Instance, rawValue, out newValue)) | ||
618 | return; | ||
619 | |||
620 | m_udpServer.Scene.ForEachScenePresence( | ||
621 | sp => | ||
622 | { | ||
623 | if ((name == null || sp.Name == name) && sp.ControllingClient is LLClientView) | ||
624 | { | ||
625 | LLUDPClient udpClient = ((LLClientView)sp.ControllingClient).UDPClient; | ||
626 | udpClient.ProcessUnackedSends = newValue; | ||
627 | |||
628 | m_console.OutputFormat("{0} set to {1} for {2} in {3}", param, newValue, sp.Name, m_udpServer.Scene.Name); | ||
629 | } | ||
630 | }); | ||
631 | } | ||
632 | } | ||
633 | |||
541 | private void HandlePacketCommand(string module, string[] args) | 634 | private void HandlePacketCommand(string module, string[] args) |
542 | { | 635 | { |
543 | if (SceneManager.Instance.CurrentScene != null && SceneManager.Instance.CurrentScene != m_udpServer.Scene) | 636 | if (SceneManager.Instance.CurrentScene != null && SceneManager.Instance.CurrentScene != m_udpServer.Scene) |