aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region
diff options
context:
space:
mode:
Diffstat (limited to 'OpenSim/Region')
-rw-r--r--OpenSim/Region/Application/OpenSim.cs51
-rw-r--r--OpenSim/Region/ClientStack/Linden/UDP/LLUDPServer.cs59
-rw-r--r--OpenSim/Region/Framework/Scenes/SceneManager.cs23
3 files changed, 59 insertions, 74 deletions
diff --git a/OpenSim/Region/Application/OpenSim.cs b/OpenSim/Region/Application/OpenSim.cs
index 9325b12..6ff7f01 100644
--- a/OpenSim/Region/Application/OpenSim.cs
+++ b/OpenSim/Region/Application/OpenSim.cs
@@ -226,18 +226,6 @@ namespace OpenSim
226 "Force the update of all objects on clients", 226 "Force the update of all objects on clients",
227 HandleForceUpdate); 227 HandleForceUpdate);
228 228
229 m_console.Commands.AddCommand("Debug", false, "debug packet",
230 "debug packet <level> [<avatar-first-name> <avatar-last-name>]",
231 "Turn on packet debugging",
232 "If level > 255 then all incoming and outgoing packets are logged.\n"
233 + "If level <= 255 then incoming AgentUpdate and outgoing SimStats and SimulatorViewerTimeMessage packets are not logged.\n"
234 + "If level <= 200 then incoming RequestImage and outgoing ImagePacket, ImageData, LayerData and CoarseLocationUpdate packets are not logged.\n"
235 + "If level <= 100 then incoming ViewerEffect and AgentAnimation and outgoing ViewerEffect and AvatarAnimation packets are not logged.\n"
236 + "If level <= 50 then outgoing ImprovedTerseObjectUpdate packets are not logged.\n"
237 + "If level <= 0 then no packets are logged.\n"
238 + "If an avatar name is given then only packets from that avatar are logged",
239 Debug);
240
241 m_console.Commands.AddCommand("General", false, "change region", 229 m_console.Commands.AddCommand("General", false, "change region",
242 "change region <region name>", 230 "change region <region name>",
243 "Change current console region", ChangeSelectedRegion); 231 "Change current console region", ChangeSelectedRegion);
@@ -701,45 +689,6 @@ namespace OpenSim
701 RefreshPrompt(); 689 RefreshPrompt();
702 } 690 }
703 691
704 /// <summary>
705 /// Turn on some debugging values for OpenSim.
706 /// </summary>
707 /// <param name="args"></param>
708 protected void Debug(string module, string[] args)
709 {
710 if (args.Length == 1)
711 return;
712
713 switch (args[1])
714 {
715 case "packet":
716 string name = null;
717 if (args.Length == 5)
718 name = string.Format("{0} {1}", args[3], args[4]);
719
720 if (args.Length > 2)
721 {
722 int newDebug;
723 if (int.TryParse(args[2], out newDebug))
724 {
725 SceneManager.SetDebugPacketLevelOnCurrentScene(newDebug, name);
726 // We provide user information elsewhere if any clients had their debug level set.
727// MainConsole.Instance.OutputFormat("Debug packet level set to {0}", newDebug);
728 }
729 else
730 {
731 MainConsole.Instance.Output("Usage: debug packet 0..255");
732 }
733 }
734
735 break;
736
737 default:
738 MainConsole.Instance.Output("Unknown debug command");
739 break;
740 }
741 }
742
743 // see BaseOpenSimServer 692 // see BaseOpenSimServer
744 /// <summary> 693 /// <summary>
745 /// Many commands list objects for debugging. Some of the types are listed here 694 /// Many commands list objects for debugging. Some of the types are listed here
diff --git a/OpenSim/Region/ClientStack/Linden/UDP/LLUDPServer.cs b/OpenSim/Region/ClientStack/Linden/UDP/LLUDPServer.cs
index 8eb2e06..ff31ef5 100644
--- a/OpenSim/Region/ClientStack/Linden/UDP/LLUDPServer.cs
+++ b/OpenSim/Region/ClientStack/Linden/UDP/LLUDPServer.cs
@@ -513,6 +513,19 @@ namespace OpenSim.Region.ClientStack.LindenUDP
513 EnablePoolStats(); 513 EnablePoolStats();
514 514
515 MainConsole.Instance.Commands.AddCommand( 515 MainConsole.Instance.Commands.AddCommand(
516 "Debug", false, "debug lludp packet",
517 "debug lludp packet <level> [<avatar-first-name> <avatar-last-name>]",
518 "Turn on packet debugging",
519 "If level > 255 then all incoming and outgoing packets are logged.\n"
520 + "If level <= 255 then incoming AgentUpdate and outgoing SimStats and SimulatorViewerTimeMessage packets are not logged.\n"
521 + "If level <= 200 then incoming RequestImage and outgoing ImagePacket, ImageData, LayerData and CoarseLocationUpdate packets are not logged.\n"
522 + "If level <= 100 then incoming ViewerEffect and AgentAnimation and outgoing ViewerEffect and AvatarAnimation packets are not logged.\n"
523 + "If level <= 50 then outgoing ImprovedTerseObjectUpdate packets are not logged.\n"
524 + "If level <= 0 then no packets are logged.\n"
525 + "If an avatar name is given then only packets from that avatar are logged",
526 HandlePacketCommand);
527
528 MainConsole.Instance.Commands.AddCommand(
516 "Debug", 529 "Debug",
517 false, 530 false,
518 "debug lludp start", 531 "debug lludp start",
@@ -553,8 +566,45 @@ namespace OpenSim.Region.ClientStack.LindenUDP
553 HandleStatusCommand); 566 HandleStatusCommand);
554 } 567 }
555 568
569 private void HandlePacketCommand(string module, string[] args)
570 {
571 if (SceneManager.Instance.CurrentScene != null && SceneManager.Instance.CurrentScene != m_scene)
572 return;
573
574 string name = null;
575
576 if (args.Length == 6)
577 name = string.Format("{0} {1}", args[4], args[5]);
578
579 if (args.Length > 3)
580 {
581 int newDebug;
582 if (int.TryParse(args[3], out newDebug))
583 {
584 m_scene.ForEachScenePresence(sp =>
585 {
586 if (name == null || sp.Name == name)
587 {
588 m_log.DebugFormat(
589 "Packet debug for {0} ({1}) set to {2} in {3}",
590 sp.Name, sp.IsChildAgent ? "child" : "root", newDebug, m_scene.Name);
591
592 sp.ControllingClient.DebugPacketLevel = newDebug;
593 }
594 });
595 }
596 else
597 {
598 MainConsole.Instance.Output("Usage: debug lludp packet 0..255 [<first-name> <last-name>]");
599 }
600 }
601 }
602
556 private void HandleStartCommand(string module, string[] args) 603 private void HandleStartCommand(string module, string[] args)
557 { 604 {
605 if (SceneManager.Instance.CurrentScene != null && SceneManager.Instance.CurrentScene != m_scene)
606 return;
607
558 if (args.Length != 4) 608 if (args.Length != 4)
559 { 609 {
560 MainConsole.Instance.Output("Usage: debug lludp start <in|out|all>"); 610 MainConsole.Instance.Output("Usage: debug lludp start <in|out|all>");
@@ -572,6 +622,9 @@ namespace OpenSim.Region.ClientStack.LindenUDP
572 622
573 private void HandleStopCommand(string module, string[] args) 623 private void HandleStopCommand(string module, string[] args)
574 { 624 {
625 if (SceneManager.Instance.CurrentScene != null && SceneManager.Instance.CurrentScene != m_scene)
626 return;
627
575 if (args.Length != 4) 628 if (args.Length != 4)
576 { 629 {
577 MainConsole.Instance.Output("Usage: debug lludp stop <in|out|all>"); 630 MainConsole.Instance.Output("Usage: debug lludp stop <in|out|all>");
@@ -589,6 +642,9 @@ namespace OpenSim.Region.ClientStack.LindenUDP
589 642
590 private void HandlePoolCommand(string module, string[] args) 643 private void HandlePoolCommand(string module, string[] args)
591 { 644 {
645 if (SceneManager.Instance.CurrentScene != null && SceneManager.Instance.CurrentScene != m_scene)
646 return;
647
592 if (args.Length != 4) 648 if (args.Length != 4)
593 { 649 {
594 MainConsole.Instance.Output("Usage: debug lludp pool <on|off>"); 650 MainConsole.Instance.Output("Usage: debug lludp pool <on|off>");
@@ -621,6 +677,9 @@ namespace OpenSim.Region.ClientStack.LindenUDP
621 677
622 private void HandleStatusCommand(string module, string[] args) 678 private void HandleStatusCommand(string module, string[] args)
623 { 679 {
680 if (SceneManager.Instance.CurrentScene != null && SceneManager.Instance.CurrentScene != m_scene)
681 return;
682
624 MainConsole.Instance.OutputFormat( 683 MainConsole.Instance.OutputFormat(
625 "IN LLUDP packet processing for {0} is {1}", m_scene.Name, IsRunningInbound ? "enabled" : "disabled"); 684 "IN LLUDP packet processing for {0} is {1}", m_scene.Name, IsRunningInbound ? "enabled" : "disabled");
626 685
diff --git a/OpenSim/Region/Framework/Scenes/SceneManager.cs b/OpenSim/Region/Framework/Scenes/SceneManager.cs
index 780bd01..28f7896 100644
--- a/OpenSim/Region/Framework/Scenes/SceneManager.cs
+++ b/OpenSim/Region/Framework/Scenes/SceneManager.cs
@@ -477,29 +477,6 @@ namespace OpenSim.Region.Framework.Scenes
477 return false; 477 return false;
478 } 478 }
479 479
480 /// <summary>
481 /// Set the debug packet level on each current scene. This level governs which packets are printed out to the
482 /// console.
483 /// </summary>
484 /// <param name="newDebug"></param>
485 /// <param name="name">Name of avatar to debug</param>
486 public void SetDebugPacketLevelOnCurrentScene(int newDebug, string name)
487 {
488 ForEachSelectedScene(scene =>
489 scene.ForEachScenePresence(sp =>
490 {
491 if (name == null || sp.Name == name)
492 {
493 m_log.DebugFormat(
494 "Packet debug for {0} ({1}) set to {2}",
495 sp.Name, sp.IsChildAgent ? "child" : "root", newDebug);
496
497 sp.ControllingClient.DebugPacketLevel = newDebug;
498 }
499 })
500 );
501 }
502
503 public List<ScenePresence> GetCurrentSceneAvatars() 480 public List<ScenePresence> GetCurrentSceneAvatars()
504 { 481 {
505 List<ScenePresence> avatars = new List<ScenePresence>(); 482 List<ScenePresence> avatars = new List<ScenePresence>();