diff options
Diffstat (limited to 'OpenSim/Region/ClientStack')
-rw-r--r-- | OpenSim/Region/ClientStack/Linden/UDP/LLUDPServer.cs | 34 |
1 files changed, 26 insertions, 8 deletions
diff --git a/OpenSim/Region/ClientStack/Linden/UDP/LLUDPServer.cs b/OpenSim/Region/ClientStack/Linden/UDP/LLUDPServer.cs index 2577a77..f52401a 100644 --- a/OpenSim/Region/ClientStack/Linden/UDP/LLUDPServer.cs +++ b/OpenSim/Region/ClientStack/Linden/UDP/LLUDPServer.cs | |||
@@ -674,7 +674,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
674 | 674 | ||
675 | MainConsole.Instance.Commands.AddCommand( | 675 | MainConsole.Instance.Commands.AddCommand( |
676 | "Debug", false, "debug lludp packet", | 676 | "Debug", false, "debug lludp packet", |
677 | "debug lludp packet [--default] <level> [<avatar-first-name> <avatar-last-name>]", | 677 | "debug lludp packet [--default | --all] <level> [<avatar-first-name> <avatar-last-name>]", |
678 | "Turn on packet debugging", | 678 | "Turn on packet debugging", |
679 | "If level > 255 then all incoming and outgoing packets are logged.\n" | 679 | "If level > 255 then all incoming and outgoing packets are logged.\n" |
680 | + "If level <= 255 then incoming AgentUpdate and outgoing SimStats and SimulatorViewerTimeMessage packets are not logged.\n" | 680 | + "If level <= 255 then incoming AgentUpdate and outgoing SimStats and SimulatorViewerTimeMessage packets are not logged.\n" |
@@ -683,7 +683,8 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
683 | + "If level <= 50 then outgoing ImprovedTerseObjectUpdate packets are not logged.\n" | 683 | + "If level <= 50 then outgoing ImprovedTerseObjectUpdate packets are not logged.\n" |
684 | + "If level <= 0 then no packets are logged.\n" | 684 | + "If level <= 0 then no packets are logged.\n" |
685 | + "If --default is specified then the level becomes the default logging level for all subsequent agents.\n" | 685 | + "If --default is specified then the level becomes the default logging level for all subsequent agents.\n" |
686 | + "In this case, you cannot also specify an avatar name.\n" | 686 | + "If --all is specified then the level becomes the default logging level for all current and subsequent agents.\n" |
687 | + "In these cases, you cannot also specify an avatar name.\n" | ||
687 | + "If an avatar name is given then only packets from that avatar are logged.", | 688 | + "If an avatar name is given then only packets from that avatar are logged.", |
688 | HandlePacketCommand); | 689 | HandlePacketCommand); |
689 | 690 | ||
@@ -742,20 +743,23 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
742 | return; | 743 | return; |
743 | 744 | ||
744 | bool setAsDefaultLevel = false; | 745 | bool setAsDefaultLevel = false; |
745 | OptionSet optionSet = new OptionSet().Add("default", o => setAsDefaultLevel = o != null); | 746 | bool setAll = false; |
747 | OptionSet optionSet = new OptionSet() | ||
748 | .Add("default", o => setAsDefaultLevel = (o != null)) | ||
749 | .Add("all", o => setAll = (o != null)); | ||
746 | List<string> filteredArgs = optionSet.Parse(args); | 750 | List<string> filteredArgs = optionSet.Parse(args); |
747 | 751 | ||
748 | string name = null; | 752 | string name = null; |
749 | 753 | ||
750 | if (filteredArgs.Count == 6) | 754 | if (filteredArgs.Count == 6) |
751 | { | 755 | { |
752 | if (!setAsDefaultLevel) | 756 | if (!(setAsDefaultLevel || setAll)) |
753 | { | 757 | { |
754 | name = string.Format("{0} {1}", filteredArgs[4], filteredArgs[5]); | 758 | name = string.Format("{0} {1}", filteredArgs[4], filteredArgs[5]); |
755 | } | 759 | } |
756 | else | 760 | else |
757 | { | 761 | { |
758 | MainConsole.Instance.OutputFormat("ERROR: Cannot specify a user name when setting default logging level"); | 762 | MainConsole.Instance.OutputFormat("ERROR: Cannot specify a user name when setting default/all logging level"); |
759 | return; | 763 | return; |
760 | } | 764 | } |
761 | } | 765 | } |
@@ -765,11 +769,25 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
765 | int newDebug; | 769 | int newDebug; |
766 | if (int.TryParse(filteredArgs[3], out newDebug)) | 770 | if (int.TryParse(filteredArgs[3], out newDebug)) |
767 | { | 771 | { |
768 | if (setAsDefaultLevel) | 772 | if (setAsDefaultLevel || setAll) |
769 | { | 773 | { |
770 | DefaultClientPacketDebugLevel = newDebug; | 774 | DefaultClientPacketDebugLevel = newDebug; |
775 | |||
771 | MainConsole.Instance.OutputFormat( | 776 | MainConsole.Instance.OutputFormat( |
772 | "Debug packet debug for new clients set to {0} in {1}", DefaultClientPacketDebugLevel, m_scene.Name); | 777 | "Packet debug for {0} clients set to {1} in {2}", |
778 | (setAll ? "all" : "future"), DefaultClientPacketDebugLevel, m_scene.Name); | ||
779 | |||
780 | if (setAll) | ||
781 | { | ||
782 | m_scene.ForEachScenePresence(sp => | ||
783 | { | ||
784 | MainConsole.Instance.OutputFormat( | ||
785 | "Packet debug for {0} ({1}) set to {2} in {3}", | ||
786 | sp.Name, sp.IsChildAgent ? "child" : "root", newDebug, m_scene.Name); | ||
787 | |||
788 | sp.ControllingClient.DebugPacketLevel = newDebug; | ||
789 | }); | ||
790 | } | ||
773 | } | 791 | } |
774 | else | 792 | else |
775 | { | 793 | { |
@@ -788,7 +806,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
788 | } | 806 | } |
789 | else | 807 | else |
790 | { | 808 | { |
791 | MainConsole.Instance.Output("Usage: debug lludp packet [--default] 0..255 [<first-name> <last-name>]"); | 809 | MainConsole.Instance.Output("Usage: debug lludp packet [--default | --all] 0..255 [<first-name> <last-name>]"); |
792 | } | 810 | } |
793 | } | 811 | } |
794 | } | 812 | } |