diff --git a/OpenMetaverse/AgentManager.cs b/OpenMetaverse/AgentManager.cs
index 6e5f9e0a..346a4d57 100644
--- a/OpenMetaverse/AgentManager.cs
+++ b/OpenMetaverse/AgentManager.cs
@@ -2107,7 +2107,7 @@ namespace OpenMetaverse
/// Grabs an object
///
/// an unsigned integer of the objects ID within the simulator
- ///
+ ///
public void Grab(uint objectLocalID)
{
Grab(objectLocalID, Vector3.Zero, Vector3.Zero, Vector3.Zero, 0, Vector3.Zero, Vector3.Zero, Vector3.Zero);
@@ -2118,12 +2118,13 @@ namespace OpenMetaverse
///
/// an unsigned integer of the objects ID within the simulator
///
- ///
- ///
- ///
- ///
- ///
- ///
+ /// The texture coordinates to grab
+ /// The surface coordinates to grab
+ /// The face of the position to grab
+ /// The region coordinates of the position to grab
+ /// The surface normal of the position to grab (A normal is a vector perpindicular to the surface)
+ /// The surface binormal of the position to grab (A binormal is a vector tangen to the surface
+ /// pointing along the U direction of the tangent space
public void Grab(uint objectLocalID, Vector3 grabOffset, Vector3 uvCoord, Vector3 stCoord, int faceIndex, Vector3 position,
Vector3 normal, Vector3 binormal)
{
@@ -2163,12 +2164,13 @@ namespace OpenMetaverse
/// of the object to drag
/// Drag target in region coordinates
///
- ///
- ///
- ///
- ///
- ///
- ///
+ /// The texture coordinates to grab
+ /// The surface coordinates to grab
+ /// The face of the position to grab
+ /// The region coordinates of the position to grab
+ /// The surface normal of the position to grab (A normal is a vector perpindicular to the surface)
+ /// The surface binormal of the position to grab (A binormal is a vector tangen to the surface
+ /// pointing along the U direction of the tangent space
public void GrabUpdate(UUID objectID, Vector3 grabPosition, Vector3 grabOffset, Vector3 uvCoord, Vector3 stCoord, int faceIndex, Vector3 position,
Vector3 normal, Vector3 binormal)
{
@@ -2197,7 +2199,7 @@ namespace OpenMetaverse
/// Release a grabbed object
///
/// The Objects Simulator Local ID
- ///
+ ///
///
///
public void DeGrab(uint objectLocalID)
@@ -2209,12 +2211,13 @@ namespace OpenMetaverse
/// Release a grabbed object
///
/// The Objects Simulator Local ID
- ///
- ///
- ///
- ///
- ///
- ///
+ /// The texture coordinates to grab
+ /// The surface coordinates to grab
+ /// The face of the position to grab
+ /// The region coordinates of the position to grab
+ /// The surface normal of the position to grab (A normal is a vector perpindicular to the surface)
+ /// The surface binormal of the position to grab (A binormal is a vector tangen to the surface
+ /// pointing along the U direction of the tangent space
public void DeGrab(uint objectLocalID, Vector3 uvCoord, Vector3 stCoord, int faceIndex, Vector3 position,
Vector3 normal, Vector3 binormal)
{
@@ -2240,7 +2243,7 @@ namespace OpenMetaverse
/// Touches an object
///
/// an unsigned integer of the objects ID within the simulator
- ///
+ ///
public void Touch(uint objectLocalID)
{
Client.Self.Grab(objectLocalID);
diff --git a/OpenMetaverse/Messages/MessageEventDecoder.cs b/OpenMetaverse/Messages/MessageEventDecoder.cs
index ec79d774..73770d6a 100644
--- a/OpenMetaverse/Messages/MessageEventDecoder.cs
+++ b/OpenMetaverse/Messages/MessageEventDecoder.cs
@@ -48,6 +48,7 @@ namespace OpenMetaverse.Messages
switch (eventName)
{
case "AgentGroupDataUpdate": message = new AgentGroupDataUpdateMessage(); break;
+ case "AvatarGroupsReply": message = new AgentGroupDataUpdateMessage(); break; // OpenSim sends the above with the wrong? key
case "ParcelProperties": message = new ParcelPropertiesMessage(); break;
case "ParcelObjectOwnersReply": message = new ParcelObjectOwnersReplyMessage(); break;
case "TeleportFinish": message = new TeleportFinishMessage(); break;
diff --git a/OpenMetaverse/ObjectManager.cs b/OpenMetaverse/ObjectManager.cs
index c3ad9d02..74b3bf5e 100644
--- a/OpenMetaverse/ObjectManager.cs
+++ b/OpenMetaverse/ObjectManager.cs
@@ -765,12 +765,13 @@ namespace OpenMetaverse
///
/// The the object is located
/// The Local ID of the object
- ///
- ///
- ///
- ///
- ///
- ///
+ /// The texture coordinates to touch
+ /// The surface coordinates to touch
+ /// The face of the position to touch
+ /// The region coordinates of the position to touch
+ /// The surface normal of the position to touch (A normal is a vector perpindicular to the surface)
+ /// The surface binormal of the position to touch (A binormal is a vector tangen to the surface
+ /// pointing along the U direction of the tangent space
public void ClickObject(Simulator simulator, uint localID, Vector3 uvCoord, Vector3 stCoord, int faceIndex, Vector3 position,
Vector3 normal, Vector3 binormal)
{
@@ -835,7 +836,7 @@ namespace OpenMetaverse
///
/// Create (rez) a new prim object in a simulator
///
- /// A reference to the object to place the object in
+ /// A reference to the object to place the object in
/// Data describing the prim object to rez
/// Group ID that this prim will be set to, or UUID.Zero if you
/// do not want the object to be associated with a specific group
@@ -2314,10 +2315,12 @@ namespace OpenMetaverse
if ((flags & CompressedFlags.HasNameValues) != 0 && prim.ParentID != 0)
{
+ // This is an attachment
OnObjectUpdate(new PrimEventArgs(simulator, prim, update.RegionData.TimeDilation, true));
}
else
{
+ // This is a primitive
OnObjectUpdate(new PrimEventArgs(simulator, prim, update.RegionData.TimeDilation, false));
}
@@ -2959,7 +2962,7 @@ namespace OpenMetaverse
/// The event occurs when the simulator sends
/// an containing a Primitive, Foliage or Attachment data
/// Note 1: The event will not be raised when the object is an Avatar
- /// Note 2: It is possible for the or to be
+ /// Note 2: It is possible for the to be
/// raised twice for the same object if for example the primitive moved to a new simulator, then returned to the current simulator or
/// if an Avatar crosses the border into a new simulator and returns to the current simulator
///
@@ -2967,7 +2970,7 @@ namespace OpenMetaverse
/// The following code example uses the , , and
/// properties to display new Primitives and Attachments on the window.
///
- /// // Subscribe to the event that gives us new prims and foliage
+ /// // Subscribe to the event that gives us prim and foliage information
/// Client.Objects.ObjectUpdate += Objects_ObjectUpdate;
///
///
@@ -2977,6 +2980,7 @@ namespace OpenMetaverse
/// }
///
///
+ ///
///
///
public class PrimEventArgs : EventArgs
@@ -2986,10 +2990,11 @@ namespace OpenMetaverse
private readonly Primitive m_Prim;
private readonly ushort m_TimeDilation;
- /// Get the simulator the object originated from
+ /// Get the simulator the originated from
public Simulator Simulator { get { return m_Simulator; } }
- /// Get the primitive details
+ /// Get the details
public Primitive Prim { get { return m_Prim; } }
+ /// true if the is attached to an
public bool IsAttachment { get { return m_IsAttachment; } }
/// Get the simulator Time Dilation
public ushort TimeDilation { get { return m_TimeDilation; } }
@@ -2999,7 +3004,7 @@ namespace OpenMetaverse
///
/// The simulator the object originated from
/// The Primitive
- /// true of the primitive represents an attachment to an agent
+ /// true if the primitive represents an attachment to an agent
/// The simulator time dilation
public PrimEventArgs(Simulator simulator, Primitive prim, ushort timeDilation, bool isAttachment)
{
@@ -3052,7 +3057,6 @@ namespace OpenMetaverse
/// }
///
///
- ///
///
///
public class AvatarUpdateEventArgs : EventArgs
@@ -3093,21 +3097,10 @@ namespace OpenMetaverse
///
/// properties to display new attachments and send a request for additional properties containing the name of the
/// attachment then display it on the window.
- ///
- /// // Subscribe to the event that gives us new Attachments worn
- /// // by yours or another agent
- /// Client.Objects.AttachmentUpdate += Objects_AttachmentUpdate;
+ ///
/// // Subscribe to the event that provides additional primitive details
/// Client.Objects.ObjectProperties += Objects_ObjectProperties;
///
- /// private void Objects_AttachmentUpdate(object sender, PrimEventArgs e)
- /// {
- /// Console.WriteLine("New Attachment {0} {1} in {2}", e.Prim.ID, e.Prim.LocalID, e.Simulator.Name);
- /// // send a request that causes the simulator to send us back the ObjectProperties
- /// Client.Objects.SelectObject(e.Simulator, e.Prim.LocalID);
- ///
- /// }
- ///
/// // handle the properties data that arrives
/// private void Objects_ObjectProperties(object sender, ObjectPropertiesEventArgs e)
/// {
diff --git a/OpenMetaverse/PacketDecoder.cs b/OpenMetaverse/PacketDecoder.cs
index 22d1dee7..418fb4e0 100644
--- a/OpenMetaverse/PacketDecoder.cs
+++ b/OpenMetaverse/PacketDecoder.cs
@@ -6,7 +6,7 @@ using System.Text;
namespace OpenMetaverse.Packets
{
- public class PacketDecoder
+ public static class PacketDecoder
{
///
/// A custom decoder callback
@@ -17,8 +17,9 @@ namespace OpenMetaverse.Packets
public delegate string CustomPacketDecoder(string fieldName, object fieldData);
private static Dictionary> Callbacks = new Dictionary>();
-
- public PacketDecoder()
+
+
+ public static void InitializeDecoder()
{
AddCallback("Color", DecodeColorField);
AddCallback("TextColor", DecodeColorField);
@@ -94,10 +95,6 @@ namespace OpenMetaverse.Packets
AddCallback("EstateOwnerMessage.ParamList.Parameter", DecodeEstateParameter);
- //AddCallback("ScriptDialog.Buttons.ButtonLabel", DecodeGenericByteArrayToFormattedString);
- //AddCallback("FirstName", DecodeGenericByteArrayToFormattedString);
- //AddCallback("LastName", DecodeGenericByteArrayToFormattedString);
- //AddCallback("GroupData.Title", DecodeGenericByteArrayToFormattedString);
AddCallback("Codec", DecodeImageCodec);
AddCallback("Info.TeleportFlags", DecodeTeleportFlags);
@@ -114,6 +111,8 @@ namespace OpenMetaverse.Packets
AddCallback("TransferInfo.SourceType", DecodeTransferSourceType);
AddCallback("TransferInfo.TargetType", DecodeTransferTargetType);
AddCallback("TransferData.ChannelType", DecodeTransferChannelType);
+ // SendXferPacket
+ AddCallback("DataPacket.Data", DecodeBinaryToHexString);
// Directory Manager
AddCallback("DirClassifiedQuery.QueryData.QueryFlags", DecodeDirClassifiedQueryFlags);
AddCallback("QueryData.QueryFlags", DecodeDirQueryFlags);
@@ -126,6 +125,13 @@ namespace OpenMetaverse.Packets
AddCallback("ParcelAccessListRequest.Data.Flags", DecodeParcelACL);
AddCallback("ParcelAccessListReply.Data.Flags", DecodeParcelACL);
//AddCallback("ParcelAccessListReply.List.Flags", DecodeParcelACLReply);
+
+ // AgentAnimation
+ AddCallback("AnimID", DecodeAnimToConst);
+
+ AddCallback("LayerData.LayerID.Type", DecodeLayerDataType);
+
+ AddCallback("GroupPowers", DecodeGroupPowers);
}
///
@@ -133,7 +139,7 @@ namespace OpenMetaverse.Packets
///
/// The key of the field to decode
/// The custom decode handler
- public void AddCallback(string key, CustomPacketDecoder customPacketHandler)
+ public static void AddCallback(string key, CustomPacketDecoder customPacketHandler)
{
if (Callbacks.ContainsKey(key))
{
@@ -152,7 +158,7 @@ namespace OpenMetaverse.Packets
///
/// The key of the field to decode
/// The custom decode handler
- public void RemoveCustomHandler(string key, CustomPacketDecoder customPacketHandler)
+ public static void RemoveCustomHandler(string key, CustomPacketDecoder customPacketHandler)
{
if (Callbacks.ContainsKey(key))
lock (Callbacks)
@@ -793,7 +799,7 @@ namespace OpenMetaverse.Packets
}
else
{
- result.AppendFormat("{0,30}: {1,-40} [{2}]" + System.Environment.NewLine,
+ result.AppendFormat("{0,30}: {1,-40} [{2}]" + Environment.NewLine,
field.Name,
field.GetValue(obj),
field.FieldType.Name);
@@ -803,7 +809,7 @@ namespace OpenMetaverse.Packets
private static string DecodeObjectPCode(string fieldName, object fieldData)
{
- return String.Format("{0,30}: {1,2} {2,-37} [PCode]",
+ return String.Format("{0,30}: {1,-2} {2,-37} [PCode]",
fieldName,
fieldData,
"(" + (PCode)(byte)fieldData + ")");
@@ -873,6 +879,14 @@ namespace OpenMetaverse.Packets
"(" + (DirectoryManager.ClassifiedFlags)(byte)fieldData + ")");
}
+ private static string DecodeGroupPowers(string fieldName, object fieldData)
+ {
+ return String.Format("{0,30}: {1,-20} {2,-19} [GroupPowers]",
+ fieldName,
+ fieldData,
+ "(" + (GroupPowers)(ulong)fieldData + ")");
+ }
+
private static string DecodeParcelACL(string fieldName, object fieldData)
{
return String.Format("{0,30}: {1,-10} {2,-29} [AccessList]",
@@ -1040,7 +1054,6 @@ namespace OpenMetaverse.Packets
fieldName,
fieldData,
"(" + (RegionFlags)(uint)fieldData + ")");
-
}
private static string DecodeTransferParams(string fieldName, object fieldData)
@@ -1095,7 +1108,7 @@ namespace OpenMetaverse.Packets
}
else
{
- Console.WriteLine("Oh Shit!");
+ Console.WriteLine("Oh Poop!");
}
result.Append("");
@@ -1144,6 +1157,14 @@ namespace OpenMetaverse.Packets
}
+ private static string DecodeLayerDataType(string fieldName, object fieldData)
+ {
+ return String.Format("{0,30}: {1,-2} {2,-37} [LayerType]",
+ fieldName,
+ fieldData,
+ "(" + (TerrainPatch.LayerType)(byte)fieldData + ")");
+ }
+
private static string DecodeMapAccess(string fieldName, object fieldData)
{
return String.Format("{0,30}: {1,-2} {2,-37} [SimAccess]",
@@ -1200,7 +1221,7 @@ namespace OpenMetaverse.Packets
String.Format("{0,30}", fieldName)));
}
- private string DecodeTerseTextureEntry(string fieldName, object fieldData)
+ private static string DecodeTerseTextureEntry(string fieldName, object fieldData)
{
byte[] block = (byte[]) fieldData;
@@ -1340,7 +1361,7 @@ namespace OpenMetaverse.Packets
fieldData.GetType().Name);
}
- public static string DecodeViewerEffectTypeData(string fieldName, object fieldData)
+ private static string DecodeViewerEffectTypeData(string fieldName, object fieldData)
{
byte[] data = (byte[])fieldData;
StringBuilder sb = new StringBuilder();
@@ -1369,11 +1390,11 @@ namespace OpenMetaverse.Packets
}
else
{
- return String.Format("{0,30}: (No Decoder) Length={1}" + System.Environment.NewLine, fieldName, data.Length) + Utils.BytesToHexString(data, String.Format("{0,30}", ""));
+ return String.Format("{0,30}: (No Decoder) Length={1}" + Environment.NewLine, fieldName, data.Length) + Utils.BytesToHexString(data, String.Format("{0,30}", ""));
}
}
- public static string DecodeViewerEffectType(string fieldName, object fieldData)
+ private static string DecodeViewerEffectType(string fieldName, object fieldData)
{
return String.Format("{0,30}: {1,-2} {2,-37} [{3}]",
fieldName,
@@ -1381,6 +1402,18 @@ namespace OpenMetaverse.Packets
"(" + (EffectType)(byte)fieldData + ")",
fieldData.GetType().Name);
}
+
+ private static string DecodeAnimToConst(string fieldName, object fieldData)
+ {
+ string animConst = "UUID";
+ Dictionary animsDict = Animations.ToDictionary();
+ if (animsDict.ContainsKey((UUID)fieldData))
+ animConst = animsDict[(UUID)fieldData];
+ return String.Format("{0,30}: {1,-40} [{2}]",
+ fieldName,
+ fieldData,
+ animConst);
+ }
#endregion
///
@@ -1388,15 +1421,15 @@ namespace OpenMetaverse.Packets
///
/// The Packet
/// A formatted string of values of the nested items in the Packet object
- public string PacketToString(Packet packet)
+ public static string PacketToString(Packet packet)
{
StringBuilder result = new StringBuilder();
- result.AppendFormat("Packet Type: {0}" + System.Environment.NewLine, packet.Type);
+ result.AppendFormat("Packet Type: {0} http://lib.openmetaverse.org/wiki/{0} http://wiki.secondlife.com/wiki/{0}" + Environment.NewLine, packet.Type);
result.AppendLine("[Packet Header]");
// payload
- result.AppendFormat("Sequence: {0}" + System.Environment.NewLine, packet.Header.Sequence);
- result.AppendFormat(" Options: {0}" + System.Environment.NewLine, InterpretOptions(packet.Header));
+ result.AppendFormat("Sequence: {0}" + Environment.NewLine, packet.Header.Sequence);
+ result.AppendFormat(" Options: {0}" + Environment.NewLine, InterpretOptions(packet.Header));
result.AppendLine();
result.AppendLine("[Packet Payload]");
@@ -1422,8 +1455,8 @@ namespace OpenMetaverse.Packets
}
return result.ToString();
}
-
- private static string InterpretOptions(Header header)
+
+ public static string InterpretOptions(Header header)
{
return "["
+ (header.AppendedAcks ? "Ack" : " ")
@@ -1455,14 +1488,14 @@ namespace OpenMetaverse.Packets
}
else if (fields[i].FieldType.IsArray) // default for an array (probably a byte[])
{
- result.AppendFormat("{0,30}: {1,-40} [{2}]" + System.Environment.NewLine,
+ result.AppendFormat("{0,30}: {1,-40} [{2}]" + Environment.NewLine,
fields[i].Name,
- fields[i].GetValue(nestedArrayRecord),
- fields[i].GetValue(nestedArrayRecord).GetType().Name);
+ Utils.BytesToString((byte[])fields[i].GetValue(nestedArrayRecord)),
+ /*fields[i].GetValue(nestedArrayRecord).GetType().Name*/ "String");
}
else // default for a field
{
- result.AppendFormat("{0,30}: {1,-40} [{2}]" + System.Environment.NewLine,
+ result.AppendFormat("{0,30}: {1,-40} [{2}]" + Environment.NewLine,
fields[i].Name,
fields[i].GetValue(nestedArrayRecord),
fields[i].GetValue(nestedArrayRecord).GetType().Name);
@@ -1485,7 +1518,7 @@ namespace OpenMetaverse.Packets
else
{
var p = propertyInfo.GetValue(nestedArrayRecord, null);
- /* Leave the c for now at the end, it signifies something useful that still needs to be done */
+ /* Leave the c for now at the end, it signifies something useful that still needs to be done i.e. a decoder written */
result.AppendFormat("{0, 30}: {1,-40} [{2}]c" + Environment.NewLine,
propertyInfo.Name,
Utils.BytesToString((byte[])propertyInfo.GetValue(nestedArrayRecord, null)),
@@ -1510,10 +1543,18 @@ namespace OpenMetaverse.Packets
{
result.AppendLine(special);
}
+ else if (packetValueField.FieldType.IsArray)
+ {
+ result.AppendFormat("{0,30}: {1,-40} [{2}]" + Environment.NewLine,
+ packetValueField.Name,
+ Utils.BytesToString((byte[])packetValueField.GetValue(packetDataObject)),
+ /*packetValueField.FieldType.Name*/ "String");
+ }
else
{
result.AppendFormat("{0,30}: {1,-40} [{2}]" + Environment.NewLine,
packetValueField.Name, packetValueField.GetValue(packetDataObject), packetValueField.FieldType.Name);
+
}
}
@@ -1577,5 +1618,106 @@ namespace OpenMetaverse.Packets
}
return false;
}
+
+ ///
+ /// Decode an IMessage object into a beautifully formatted string
+ ///
+ /// The IMessage object
+ /// A formatted string containing the names and values of the source object
+ public static string MessageToString(object message, int recurseLevel)
+ {
+ if (message == null)
+ return String.Empty;
+
+ StringBuilder result = new StringBuilder();
+ // common/custom types
+ if (recurseLevel <= 0)
+ {
+ result.AppendFormat("Message Type: {0} http://lib.openmetaverse.org/wiki/{0}" + Environment.NewLine, message.GetType().Name);
+ }
+ else
+ {
+ string pad = " +--".PadLeft(recurseLevel + 3);
+ result.AppendFormat("{0} {1}" + Environment.NewLine, pad, message.GetType().Name);
+ }
+
+ recurseLevel++;
+
+ foreach (FieldInfo messageField in message.GetType().GetFields())
+ {
+ // an abstract message class
+ if (messageField.FieldType.IsAbstract)
+ {
+ result.AppendLine(MessageToString(messageField.GetValue(message), recurseLevel));
+ }
+ // a byte array
+ else if (messageField.GetValue(message) != null && messageField.GetValue(message).GetType() == typeof(Byte[]))
+ {
+ result.AppendFormat("{0, 30}:" + Environment.NewLine, messageField.Name);
+
+ result.AppendFormat("{0}" + Environment.NewLine,
+ Utils.BytesToHexString((byte[])messageField.GetValue(message),
+ String.Format("{0,30}", "")));
+ }
+
+ // an array of class objects
+ else if (messageField.FieldType.IsArray)
+ {
+ var messageObjectData = messageField.GetValue(message);
+ result.AppendFormat("-- {0} --" + Environment.NewLine, messageField.FieldType.Name);
+ foreach (object nestedArrayObject in messageObjectData as Array)
+ {
+ result.AppendFormat("{0,30}" + Environment.NewLine, "-- " + nestedArrayObject.GetType().Name + " --");
+
+ foreach (FieldInfo nestedField in nestedArrayObject.GetType().GetFields())
+ {
+ if (nestedField.FieldType.IsEnum)
+ {
+ result.AppendFormat("{0,30}: {1,-10} {2,-29} [{3}]" + Environment.NewLine,
+ nestedField.Name,
+ Enum.Format(nestedField.GetValue(nestedArrayObject).GetType(),
+ nestedField.GetValue(nestedArrayObject), "D"),
+ "(" + nestedField.GetValue(nestedArrayObject) + ")",
+ nestedField.GetValue(nestedArrayObject).GetType().Name);
+ }
+ else if (nestedField.FieldType.IsInterface)
+ {
+ result.AppendLine(MessageToString(nestedField.GetValue(nestedArrayObject), recurseLevel));
+ }
+ else
+ {
+ result.AppendFormat("{0, 30}: {1,-40} [{2}]" + Environment.NewLine,
+ nestedField.Name,
+ nestedField.GetValue(nestedArrayObject),
+ nestedField.GetValue(nestedArrayObject).GetType().Name);
+ }
+ }
+ }
+ }
+ else
+ {
+ if (messageField.FieldType.IsEnum)
+ {
+ result.AppendFormat("{0,30}: {1,-2} {2,-37} [{3}]" + Environment.NewLine,
+ messageField.Name,
+ Enum.Format(messageField.GetValue(message).GetType(),
+ messageField.GetValue(message), "D"),
+ "(" + messageField.GetValue(message) + ")",
+ messageField.FieldType.Name);
+ }
+ else if (messageField.FieldType.IsInterface)
+ {
+ result.AppendLine(MessageToString(messageField.GetValue(message), recurseLevel));
+ }
+ else
+ {
+ result.AppendFormat("{0, 30}: {1,-40} [{2}]" + Environment.NewLine,
+ messageField.Name, messageField.GetValue(message), messageField.FieldType.Name);
+ }
+ }
+ }
+
+ return result.ToString();
+ }
}
}
diff --git a/OpenMetaverse/Simulator.cs b/OpenMetaverse/Simulator.cs
index 66c2b301..c373829a 100644
--- a/OpenMetaverse/Simulator.cs
+++ b/OpenMetaverse/Simulator.cs
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007-2008, openmetaverse.org
+ * Copyright (c) 2007-2009, openmetaverse.org
* All rights reserved.
*
* - Redistribution and use in source and binary forms, with or without
@@ -62,11 +62,11 @@ namespace OpenMetaverse
BlockLandResell = 1 << 7,
/// All content is wiped nightly
Sandbox = 1 << 8,
- ///
+ /// Unknown: Related to the availability of an overview world map tile.(Think mainland images when zoomed out.)
NullLayer = 1 << 9,
- ///
+ /// Unknown: Related to region debug flags. Possibly to skip processing of agent interaction with world.
SkipAgentAction = 1 << 10,
- ///
+ /// Region does not update agent prim interest lists. Internal debugging option.
SkipUpdateInterestList = 1 << 11,
/// No collision detection for non-agent objects
SkipCollisions = 1 << 12,
@@ -74,13 +74,13 @@ namespace OpenMetaverse
SkipScripts = 1 << 13,
/// All physics processing is turned off
SkipPhysics = 1 << 14,
- ///
+ /// Region can be seen from other regions on world map. (Legacy world map option?)
ExternallyVisible = 1 << 15,
- ///
+ /// Region can be seen from mainland on world map. (Legacy world map option?)
MainlandVisible = 1 << 16,
- ///
+ /// Agents not explicitly on the access list can visit the region.
PublicAllowed = 1 << 17,
- ///
+ /// Traffic calculations are not run across entire region, overrides parcel settings.
BlockDwell = 1 << 18,
/// Flight is disabled (not currently enforced by the sim)
NoFly = 1 << 19,
@@ -88,7 +88,7 @@ namespace OpenMetaverse
AllowDirectTeleport = 1 << 20,
/// Estate owner has temporarily disabled scripting
EstateSkipScripts = 1 << 21,
- ///
+ /// Restricts the usage of the LSL llPushObject function, applies to whole region.
RestrictPushObject = 1 << 22,
/// Deny agents with no payment info on file
DenyAnonymous = 1 << 23,
@@ -96,12 +96,17 @@ namespace OpenMetaverse
DenyIdentified = 1 << 24,
/// Deny agents who have made a monetary transaction
DenyTransacted = 1 << 25,
- ///
+ /// Parcels within the region may be joined or divided by anyone, not just estate owners/managers.
AllowParcelChanges = 1 << 26,
- ///
+ /// Abuse reports sent from within this region are sent to the estate owner defined email.
AbuseEmailToEstateOwner = 1 << 27,
/// Region is Voice Enabled
- AllowVoice = 1 << 28
+ AllowVoice = 1 << 28,
+ /// Removes the ability from parcel owners to set their parcels to show in search.
+ BlockParcelSearch = 1 << 29,
+ /// Deny agents who have not been age verified from entering the region.
+ DenyAgeUnverified = 1 << 30
+
}
///
diff --git a/Programs/GridProxy/GridProxy.cs b/Programs/GridProxy/GridProxy.cs
index eed5124a..16d000ce 100644
--- a/Programs/GridProxy/GridProxy.cs
+++ b/Programs/GridProxy/GridProxy.cs
@@ -611,8 +611,7 @@ namespace GridProxy
CapsRequest capReq = null; bool shortCircuit = false; bool requestFailed = false;
if (cap != null)
- {
-
+ {
capReq = new CapsRequest(cap);
if (cap.ReqFmt == CapsDataFormat.OSD)
@@ -669,7 +668,12 @@ namespace GridProxy
req.Headers[header] = headers[header];
}
}
-
+ if (capReq == null)
+ {
+ // this probably occured when we shut down the proxy and restarted it and are receiving
+ // data from a dead connection
+ return;
+ }
capReq.RequestHeaders = req.Headers;
req.Method = meth;
@@ -1018,6 +1022,10 @@ namespace GridProxy
{
lock (this)
{
+ // incase some silly person tries to access with their web browser
+ if (content.Length <= 0)
+ return;
+
// convert the body into an XML-RPC request
XmlRpcRequest request = (XmlRpcRequest)(new XmlRpcRequestDeserializer()).Deserialize(Encoding.UTF8.GetString(content));
diff --git a/Programs/GridProxy/Plugins/Analyst.cs b/Programs/GridProxy/Plugins/Analyst.cs
index 393d9767..9629461a 100644
--- a/Programs/GridProxy/Plugins/Analyst.cs
+++ b/Programs/GridProxy/Plugins/Analyst.cs
@@ -53,10 +53,11 @@ public class Analyst : ProxyPlugin
private Assembly openmvAssembly;
private StreamWriter output;
- private PacketDecoder DecodePacket = new PacketDecoder();
-
+ //private PacketDecoder DecodePacket = new PacketDecoder();
+
public Analyst(ProxyFrame frame)
{
+ PacketDecoder.InitializeDecoder();
this.frame = frame;
this.proxy = frame.proxy;
}
@@ -829,8 +830,9 @@ public class Analyst : ProxyPlugin
// LogPacket: dump a packet to the console
private void LogPacket(Packet packet, IPEndPoint endPoint, Direction direction)
{
- string packetText = DecodePacket.PacketToString(packet);
-
+
+ //string packetText = DecodePacket.PacketToString(packet);
+ string packetText = PacketDecoder.PacketToString(packet);
if (logGrep == null || (logGrep != null && Regex.IsMatch(packetText, logGrep)))
{
string line = String.Format("{0}\n{1} {2,21} {3,5} {4}{5}{6}"
diff --git a/Programs/WinGridProxy/AboutBox1.Designer.cs b/Programs/WinGridProxy/AboutBox1.Designer.cs
index 0d44ce3f..fb83e9ae 100644
--- a/Programs/WinGridProxy/AboutBox1.Designer.cs
+++ b/Programs/WinGridProxy/AboutBox1.Designer.cs
@@ -160,8 +160,8 @@
this.richTextBox1.Name = "richTextBox1";
this.richTextBox1.Size = new System.Drawing.Size(274, 79);
this.richTextBox1.TabIndex = 25;
- this.richTextBox1.Text = "Icons Courtesy of http://www.famfamfam.com/lab/icons/silk/\n\nHexbox Control \nhttp:" +
- "//sourceforge.net/projects/hexbox/";
+ this.richTextBox1.Text = "Written by Jim Radford \n\nIcons Courtesy of http://www.famfamfam" +
+ ".com/lab/icons/silk/\n\nHexbox Control \nhttp://sourceforge.net/projects/hexbox/";
//
// AboutBox1
//
diff --git a/Programs/WinGridProxy/FormWinGridProxy.Designer.cs b/Programs/WinGridProxy/FormWinGridProxy.Designer.cs
index 977ebb10..ffa45a50 100644
--- a/Programs/WinGridProxy/FormWinGridProxy.Designer.cs
+++ b/Programs/WinGridProxy/FormWinGridProxy.Designer.cs
@@ -30,26 +30,13 @@
{
this.components = new System.ComponentModel.Container();
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(FormWinGridProxy));
- this.panelProxyConfig = new System.Windows.Forms.Panel();
- this.comboBoxListenAddress = new System.Windows.Forms.ComboBox();
- this.comboBoxLoginURL = new System.Windows.Forms.ComboBox();
- this.label3 = new System.Windows.Forms.Label();
- this.label2 = new System.Windows.Forms.Label();
- this.textBoxProxyPort = new System.Windows.Forms.TextBox();
- this.button1 = new System.Windows.Forms.Button();
- this.label1 = new System.Windows.Forms.Label();
+ System.Windows.Forms.ListViewGroup listViewGroup1 = new System.Windows.Forms.ListViewGroup("Login", System.Windows.Forms.HorizontalAlignment.Left);
+ System.Windows.Forms.ListViewGroup listViewGroup2 = new System.Windows.Forms.ListViewGroup("Packets", System.Windows.Forms.HorizontalAlignment.Left);
+ System.Windows.Forms.ListViewGroup listViewGroup3 = new System.Windows.Forms.ListViewGroup("Capabilities", System.Windows.Forms.HorizontalAlignment.Left);
+ System.Windows.Forms.ListViewGroup listViewGroup4 = new System.Windows.Forms.ListViewGroup("EventQueue Messages", System.Windows.Forms.HorizontalAlignment.Left);
this.panelMainWindow = new System.Windows.Forms.Panel();
this.splitContainerSessionsTabs = new System.Windows.Forms.SplitContainer();
- this.listViewSessions = new WinGridProxy.ListViewNoFlicker();
- this.columnHeaderCounter = new System.Windows.Forms.ColumnHeader();
- this.columnHeaderProtocol = new System.Windows.Forms.ColumnHeader();
- this.columnHeaderType = new System.Windows.Forms.ColumnHeader();
- this.columnHeaderSize = new System.Windows.Forms.ColumnHeader();
- this.columnHeaderUrl = new System.Windows.Forms.ColumnHeader();
- this.columnHeaderContentType = new System.Windows.Forms.ColumnHeader();
this.contextMenuStripSessions = new System.Windows.Forms.ContextMenuStrip(this.components);
- this.toolStripMenuItemAutoScroll = new System.Windows.Forms.ToolStripMenuItem();
- this.toolStripSeparator13 = new System.Windows.Forms.ToolStripSeparator();
this.toolStripMenuSessionsRemove = new System.Windows.Forms.ToolStripMenuItem();
this.contextMenuStripRemove = new System.Windows.Forms.ContextMenuStrip(this.components);
this.toolStripMenuItemRemoveAll = new System.Windows.Forms.ToolStripMenuItem();
@@ -63,7 +50,6 @@
this.noneToolStripMenuItem2 = new System.Windows.Forms.ToolStripMenuItem();
this.toolStripSeparatorSelectPacketProto = new System.Windows.Forms.ToolStripSeparator();
this.toolStripMenuItemSelectPacketName = new System.Windows.Forms.ToolStripMenuItem();
- this.selectToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem();
this.toolStripSeparatorFilterPacketByName = new System.Windows.Forms.ToolStripSeparator();
this.enableDisableFilterByNameToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.toolStripSeparator15 = new System.Windows.Forms.ToolStripSeparator();
@@ -76,10 +62,11 @@
this.orangeToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem();
this.toolStripSeparator17 = new System.Windows.Forms.ToolStripSeparator();
this.unmarkToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.markToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem();
this.toolStripSeparator16 = new System.Windows.Forms.ToolStripSeparator();
this.findToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem();
this.imageList1 = new System.Windows.Forms.ImageList(this.components);
- this.tabControl1 = new System.Windows.Forms.TabControl();
+ this.tabControlMain = new System.Windows.Forms.TabControl();
this.tabPageSummary = new System.Windows.Forms.TabPage();
this.richTextBoxDebugLog = new System.Windows.Forms.RichTextBox();
this.panelStats = new System.Windows.Forms.Panel();
@@ -98,17 +85,17 @@
this.label5 = new System.Windows.Forms.Label();
this.label7 = new System.Windows.Forms.Label();
this.tabPageFilters = new System.Windows.Forms.TabPage();
+ this.toolStripFilters = new System.Windows.Forms.ToolStrip();
+ this.loadFilterSelectionsToolStripMenuItem = new System.Windows.Forms.ToolStripButton();
+ this.saveFilterSelectionsToolStripMenuItem = new System.Windows.Forms.ToolStripButton();
+ this.toolStripSeparator7 = new System.Windows.Forms.ToolStripSeparator();
+ this.toolStripSplitButton1 = new System.Windows.Forms.ToolStripSplitButton();
+ this.autoAddNewDiscoveredMessagesToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.splitContainerFilters = new System.Windows.Forms.SplitContainer();
this.checkBoxCheckAllPackets = new System.Windows.Forms.CheckBox();
this.grpUDPFilters = new System.Windows.Forms.GroupBox();
- this.listViewPacketFilters = new WinGridProxy.ListViewNoFlicker();
- this.columnHeaderPacketName = new System.Windows.Forms.ColumnHeader();
- this.columnHeaderPacketType = new System.Windows.Forms.ColumnHeader();
this.checkBoxCheckAllMessages = new System.Windows.Forms.CheckBox();
this.grpCapsFilters = new System.Windows.Forms.GroupBox();
- this.listViewMessageFilters = new WinGridProxy.ListViewNoFlicker();
- this.columnHeaderName = new System.Windows.Forms.ColumnHeader();
- this.columnHeaderMessageType = new System.Windows.Forms.ColumnHeader();
this.tabPageInspect = new System.Windows.Forms.TabPage();
this.splitContainerInspectorTab = new System.Windows.Forms.SplitContainer();
this.tabControlInspectorRequest = new System.Windows.Forms.TabControl();
@@ -121,8 +108,8 @@
this.tabPageRequestJson = new System.Windows.Forms.TabPage();
this.richTextBoxNotationRequest = new System.Windows.Forms.RichTextBox();
this.tabPageHexRequest = new System.Windows.Forms.TabPage();
- this.statusStrip2 = new System.Windows.Forms.StatusStrip();
- this.labelRequestHex = new System.Windows.Forms.ToolStripStatusLabel();
+ this.buttonSaveRequestHex = new System.Windows.Forms.Button();
+ this.labelHexRequestStatus = new System.Windows.Forms.Label();
this.hexBoxRequest = new Be.Windows.Forms.HexBox();
this.tabControlInspectorResponse = new System.Windows.Forms.TabControl();
this.tabPageDecodeResponse = new System.Windows.Forms.TabPage();
@@ -134,30 +121,29 @@
this.tabPageResponseJson = new System.Windows.Forms.TabPage();
this.richTextBoxNotationResponse = new System.Windows.Forms.RichTextBox();
this.tabPageHexViewResponse = new System.Windows.Forms.TabPage();
- this.statusStrip1 = new System.Windows.Forms.StatusStrip();
- this.labelResponseHex = new System.Windows.Forms.ToolStripStatusLabel();
+ this.buttonExportRawHex = new System.Windows.Forms.Button();
+ this.labelHexBoxResponseStatus = new System.Windows.Forms.Label();
this.hexBoxResponse = new Be.Windows.Forms.HexBox();
this.tabPageInject = new System.Windows.Forms.TabPage();
- this.radioButtonViewer = new System.Windows.Forms.RadioButton();
- this.radioButtonSimulator = new System.Windows.Forms.RadioButton();
- this.button3 = new System.Windows.Forms.Button();
this.buttonInjectPacket = new System.Windows.Forms.Button();
this.richTextBoxInject = new System.Windows.Forms.RichTextBox();
- this.markToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem();
+ this.selectToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem();
this.toolStripLabelHexEditorRequest = new System.Windows.Forms.ToolStripStatusLabel();
this.toolStripStatusLabel1 = new System.Windows.Forms.ToolStripStatusLabel();
- this.toolStrip1 = new System.Windows.Forms.ToolStrip();
+ this.toolStripMenu = new System.Windows.Forms.ToolStrip();
this.toolStripFileMenu = new System.Windows.Forms.ToolStripDropDownButton();
- this.captureToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
- this.toolStripSeparator7 = new System.Windows.Forms.ToolStripSeparator();
this.saveSessionArchiveToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.loadSessionArchiveToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.toolStripSeparator18 = new System.Windows.Forms.ToolStripSeparator();
+ this.exportToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.asDecodedTextToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.toolStripSeparator8 = new System.Windows.Forms.ToolStripSeparator();
this.settingsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
- this.autoScrollSessionsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.enableStatisticsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.saveOptionsOnExitToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.startProxyOnStartupToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.toolStripSeparator6 = new System.Windows.Forms.ToolStripSeparator();
+ this.saveSettingsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.toolStripSeparator9 = new System.Windows.Forms.ToolStripSeparator();
this.toolStripMenuItemPlugins = new System.Windows.Forms.ToolStripMenuItem();
this.toolStripSeparator14 = new System.Windows.Forms.ToolStripSeparator();
@@ -172,12 +158,6 @@
this.toolStripSeparator10 = new System.Windows.Forms.ToolStripSeparator();
this.toolStripSeparator12 = new System.Windows.Forms.ToolStripSeparator();
this.findToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
- this.toolStripDropDownButton5 = new System.Windows.Forms.ToolStripDropDownButton();
- this.saveFilterSelectionsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
- this.loadFilterSelectionsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
- this.toolStripSeparator6 = new System.Windows.Forms.ToolStripSeparator();
- this.optionsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
- this.autoAddNewDiscoveredMessagesToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.toolStripDropDownButton4 = new System.Windows.Forms.ToolStripDropDownButton();
this.aboutToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.aboutWinGridProxyToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
@@ -218,18 +198,33 @@
this.openFileDialog1 = new System.Windows.Forms.OpenFileDialog();
this.saveFileDialog2 = new System.Windows.Forms.SaveFileDialog();
this.openFileDialog2 = new System.Windows.Forms.OpenFileDialog();
- this.statusStrip3 = new System.Windows.Forms.StatusStrip();
- this.toolStripMainLabel = new System.Windows.Forms.ToolStripStatusLabel();
this.contextMenuStripFilterOptions = new System.Windows.Forms.ContextMenuStrip(this.components);
this.toolStripMenuItem2 = new System.Windows.Forms.ToolStripMenuItem();
this.uncheckAllToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.toolStripSeparator11 = new System.Windows.Forms.ToolStripSeparator();
this.autoColorizeToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.colorDialog1 = new System.Windows.Forms.ColorDialog();
- this.exportToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
- this.toolStripSeparator18 = new System.Windows.Forms.ToolStripSeparator();
- this.asDecodedTextToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
- this.panelProxyConfig.SuspendLayout();
+ this.toolStripContainer1 = new System.Windows.Forms.ToolStripContainer();
+ this.toolStripLogin = new System.Windows.Forms.ToolStrip();
+ this.toolStripLabel1 = new System.Windows.Forms.ToolStripLabel();
+ this.comboBoxListenAddress = new System.Windows.Forms.ToolStripComboBox();
+ this.toolStripLabel2 = new System.Windows.Forms.ToolStripLabel();
+ this.textBoxProxyPort = new System.Windows.Forms.ToolStripTextBox();
+ this.toolStripLabel3 = new System.Windows.Forms.ToolStripLabel();
+ this.comboBoxLoginURL = new System.Windows.Forms.ToolStripComboBox();
+ this.buttonStartProxy = new System.Windows.Forms.ToolStripButton();
+ this.saveFileDialog3 = new System.Windows.Forms.SaveFileDialog();
+ this.listViewSessions = new WinGridProxy.ListViewNoFlicker();
+ this.columnHeaderCounter = new System.Windows.Forms.ColumnHeader();
+ this.columnHeaderProtocol = new System.Windows.Forms.ColumnHeader();
+ this.columnHeaderType = new System.Windows.Forms.ColumnHeader();
+ this.columnHeaderSize = new System.Windows.Forms.ColumnHeader();
+ this.columnHeaderUrl = new System.Windows.Forms.ColumnHeader();
+ this.columnHeaderContentType = new System.Windows.Forms.ColumnHeader();
+ this.listViewPacketFilters = new WinGridProxy.ListViewNoFlicker();
+ this.columnHeaderPacketName = new System.Windows.Forms.ColumnHeader();
+ this.listViewMessageFilters = new WinGridProxy.ListViewNoFlicker();
+ this.columnHeaderName = new System.Windows.Forms.ColumnHeader();
this.panelMainWindow.SuspendLayout();
this.splitContainerSessionsTabs.Panel1.SuspendLayout();
this.splitContainerSessionsTabs.Panel2.SuspendLayout();
@@ -238,12 +233,13 @@
this.contextMenuStripRemove.SuspendLayout();
this.contextMenuStripSelect.SuspendLayout();
this.contextMenuStripMark.SuspendLayout();
- this.tabControl1.SuspendLayout();
+ this.tabControlMain.SuspendLayout();
this.tabPageSummary.SuspendLayout();
this.panelStats.SuspendLayout();
this.groupBox2.SuspendLayout();
this.groupBox1.SuspendLayout();
this.tabPageFilters.SuspendLayout();
+ this.toolStripFilters.SuspendLayout();
this.splitContainerFilters.Panel1.SuspendLayout();
this.splitContainerFilters.Panel2.SuspendLayout();
this.splitContainerFilters.SuspendLayout();
@@ -259,112 +255,29 @@
this.tabPageXMLRequest.SuspendLayout();
this.tabPageRequestJson.SuspendLayout();
this.tabPageHexRequest.SuspendLayout();
- this.statusStrip2.SuspendLayout();
this.tabControlInspectorResponse.SuspendLayout();
this.tabPageDecodeResponse.SuspendLayout();
this.tabPageInspectorRAWResponse.SuspendLayout();
this.tabPageInspectorXMLResponse.SuspendLayout();
this.tabPageResponseJson.SuspendLayout();
this.tabPageHexViewResponse.SuspendLayout();
- this.statusStrip1.SuspendLayout();
this.tabPageInject.SuspendLayout();
- this.toolStrip1.SuspendLayout();
+ this.toolStripMenu.SuspendLayout();
this.contextMenuStripCopy.SuspendLayout();
- this.statusStrip3.SuspendLayout();
this.contextMenuStripFilterOptions.SuspendLayout();
+ this.toolStripContainer1.ContentPanel.SuspendLayout();
+ this.toolStripContainer1.TopToolStripPanel.SuspendLayout();
+ this.toolStripContainer1.SuspendLayout();
+ this.toolStripLogin.SuspendLayout();
this.SuspendLayout();
//
- // panelProxyConfig
- //
- this.panelProxyConfig.Controls.Add(this.comboBoxListenAddress);
- this.panelProxyConfig.Controls.Add(this.comboBoxLoginURL);
- this.panelProxyConfig.Controls.Add(this.label3);
- this.panelProxyConfig.Controls.Add(this.label2);
- this.panelProxyConfig.Controls.Add(this.textBoxProxyPort);
- this.panelProxyConfig.Controls.Add(this.button1);
- this.panelProxyConfig.Controls.Add(this.label1);
- this.panelProxyConfig.Location = new System.Drawing.Point(12, 28);
- this.panelProxyConfig.Name = "panelProxyConfig";
- this.panelProxyConfig.Size = new System.Drawing.Size(1070, 32);
- this.panelProxyConfig.TabIndex = 0;
- //
- // comboBoxListenAddress
- //
- this.comboBoxListenAddress.FormattingEnabled = true;
- this.comboBoxListenAddress.Location = new System.Drawing.Point(98, 6);
- this.comboBoxListenAddress.Name = "comboBoxListenAddress";
- this.comboBoxListenAddress.Size = new System.Drawing.Size(139, 21);
- this.comboBoxListenAddress.TabIndex = 7;
- this.comboBoxListenAddress.Text = "127.0.0.1";
- //
- // comboBoxLoginURL
- //
- this.comboBoxLoginURL.FormattingEnabled = true;
- this.comboBoxLoginURL.Items.AddRange(new object[] {
- "https://login.agni.lindenlab.com/cgi-bin/login.cgi",
- "https://login.aditi.lindenlab.com/cgi-bin/login.cgi",
- "http://127.0.0.1:8002",
- "http://osgrid.org:8002"});
- this.comboBoxLoginURL.Location = new System.Drawing.Point(393, 6);
- this.comboBoxLoginURL.Name = "comboBoxLoginURL";
- this.comboBoxLoginURL.Size = new System.Drawing.Size(252, 21);
- this.comboBoxLoginURL.TabIndex = 6;
- this.comboBoxLoginURL.Text = "https://login.agni.lindenlab.com/cgi-bin/login.cgi";
- //
- // label3
- //
- this.label3.AutoSize = true;
- this.label3.Location = new System.Drawing.Point(329, 9);
- this.label3.Name = "label3";
- this.label3.Size = new System.Drawing.Size(58, 13);
- this.label3.TabIndex = 5;
- this.label3.Text = "Login URL";
- //
- // label2
- //
- this.label2.AutoSize = true;
- this.label2.Location = new System.Drawing.Point(3, 9);
- this.label2.Name = "label2";
- this.label2.Size = new System.Drawing.Size(89, 13);
- this.label2.TabIndex = 4;
- this.label2.Text = "Listen IP Address";
- //
- // textBoxProxyPort
- //
- this.textBoxProxyPort.Location = new System.Drawing.Point(275, 6);
- this.textBoxProxyPort.Name = "textBoxProxyPort";
- this.textBoxProxyPort.Size = new System.Drawing.Size(48, 20);
- this.textBoxProxyPort.TabIndex = 3;
- this.textBoxProxyPort.Text = "8080";
- //
- // button1
- //
- this.button1.Location = new System.Drawing.Point(651, 4);
- this.button1.Name = "button1";
- this.button1.Size = new System.Drawing.Size(75, 23);
- this.button1.TabIndex = 2;
- this.button1.Text = "Start Proxy";
- this.button1.UseVisualStyleBackColor = true;
- this.button1.Click += new System.EventHandler(this.buttonStartProxy_Click);
- //
- // label1
- //
- this.label1.AutoSize = true;
- this.label1.Location = new System.Drawing.Point(243, 9);
- this.label1.Name = "label1";
- this.label1.Size = new System.Drawing.Size(26, 13);
- this.label1.TabIndex = 1;
- this.label1.Text = "Port";
- //
// panelMainWindow
//
- this.panelMainWindow.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
- | System.Windows.Forms.AnchorStyles.Left)
- | System.Windows.Forms.AnchorStyles.Right)));
this.panelMainWindow.Controls.Add(this.splitContainerSessionsTabs);
- this.panelMainWindow.Location = new System.Drawing.Point(12, 66);
+ this.panelMainWindow.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.panelMainWindow.Location = new System.Drawing.Point(0, 0);
this.panelMainWindow.Name = "panelMainWindow";
- this.panelMainWindow.Size = new System.Drawing.Size(1087, 428);
+ this.panelMainWindow.Size = new System.Drawing.Size(1111, 494);
this.panelMainWindow.TabIndex = 1;
//
// splitContainerSessionsTabs
@@ -380,70 +293,15 @@
//
// splitContainerSessionsTabs.Panel2
//
- this.splitContainerSessionsTabs.Panel2.Controls.Add(this.tabControl1);
- this.splitContainerSessionsTabs.Size = new System.Drawing.Size(1087, 428);
- this.splitContainerSessionsTabs.SplitterDistance = 469;
+ this.splitContainerSessionsTabs.Panel2.Controls.Add(this.tabControlMain);
+ this.splitContainerSessionsTabs.Size = new System.Drawing.Size(1111, 494);
+ this.splitContainerSessionsTabs.SplitterDistance = 479;
this.splitContainerSessionsTabs.SplitterWidth = 5;
this.splitContainerSessionsTabs.TabIndex = 0;
//
- // listViewSessions
- //
- this.listViewSessions.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] {
- this.columnHeaderCounter,
- this.columnHeaderProtocol,
- this.columnHeaderType,
- this.columnHeaderSize,
- this.columnHeaderUrl,
- this.columnHeaderContentType});
- this.listViewSessions.ContextMenuStrip = this.contextMenuStripSessions;
- this.listViewSessions.Dock = System.Windows.Forms.DockStyle.Fill;
- this.listViewSessions.FullRowSelect = true;
- this.listViewSessions.GridLines = true;
- this.listViewSessions.HideSelection = false;
- this.listViewSessions.Location = new System.Drawing.Point(0, 0);
- this.listViewSessions.Name = "listViewSessions";
- this.listViewSessions.Size = new System.Drawing.Size(469, 428);
- this.listViewSessions.SmallImageList = this.imageList1;
- this.listViewSessions.TabIndex = 0;
- this.listViewSessions.UseCompatibleStateImageBehavior = false;
- this.listViewSessions.View = System.Windows.Forms.View.Details;
- this.listViewSessions.ItemSelectionChanged += new System.Windows.Forms.ListViewItemSelectionChangedEventHandler(this.listViewSessions_ItemSelectionChanged);
- //
- // columnHeaderCounter
- //
- this.columnHeaderCounter.Text = "#";
- this.columnHeaderCounter.Width = 54;
- //
- // columnHeaderProtocol
- //
- this.columnHeaderProtocol.Text = "Protocol";
- this.columnHeaderProtocol.Width = 59;
- //
- // columnHeaderType
- //
- this.columnHeaderType.Text = "Packet Type";
- this.columnHeaderType.Width = 151;
- //
- // columnHeaderSize
- //
- this.columnHeaderSize.Text = "Bytes";
- this.columnHeaderSize.Width = 64;
- //
- // columnHeaderUrl
- //
- this.columnHeaderUrl.Text = "Host/Address";
- this.columnHeaderUrl.Width = 312;
- //
- // columnHeaderContentType
- //
- this.columnHeaderContentType.Text = "Content Type";
- this.columnHeaderContentType.Width = 250;
- //
// contextMenuStripSessions
//
this.contextMenuStripSessions.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
- this.toolStripMenuItemAutoScroll,
- this.toolStripSeparator13,
this.toolStripMenuSessionsRemove,
this.selectToolStripMenuItem2,
this.toolStripSeparatorFilterPacketByName,
@@ -453,22 +311,9 @@
this.toolStripSeparator16,
this.findToolStripMenuItem1});
this.contextMenuStripSessions.Name = "contextMenuStripSessions";
- this.contextMenuStripSessions.Size = new System.Drawing.Size(176, 160);
+ this.contextMenuStripSessions.Size = new System.Drawing.Size(176, 132);
this.contextMenuStripSessions.Opening += new System.ComponentModel.CancelEventHandler(this.contextMenuStripSessions_Opening);
//
- // toolStripMenuItemAutoScroll
- //
- this.toolStripMenuItemAutoScroll.CheckOnClick = true;
- this.toolStripMenuItemAutoScroll.Name = "toolStripMenuItemAutoScroll";
- this.toolStripMenuItemAutoScroll.Size = new System.Drawing.Size(175, 22);
- this.toolStripMenuItemAutoScroll.Text = "Auto Scroll";
- this.toolStripMenuItemAutoScroll.CheckedChanged += new System.EventHandler(this.sessionEnableAutoScroll_CheckedChanged);
- //
- // toolStripSeparator13
- //
- this.toolStripSeparator13.Name = "toolStripSeparator13";
- this.toolStripSeparator13.Size = new System.Drawing.Size(172, 6);
- //
// toolStripMenuSessionsRemove
//
this.toolStripMenuSessionsRemove.DropDown = this.contextMenuStripRemove;
@@ -483,7 +328,7 @@
this.toolStripMenuItemRemoveSelected,
this.toolStripMenuItemRemoveUnselected});
this.contextMenuStripRemove.Name = "contextMenuStripRemove";
- this.contextMenuStripRemove.OwnerItem = this.toolStripMenuSessionsRemove;
+ this.contextMenuStripRemove.OwnerItem = this.removeToolStripMenuItem2;
this.contextMenuStripRemove.Size = new System.Drawing.Size(143, 70);
//
// toolStripMenuItemRemoveAll
@@ -568,13 +413,6 @@
this.toolStripMenuItemSelectPacketName.Text = "All (Packet Type)";
this.toolStripMenuItemSelectPacketName.Click += new System.EventHandler(this.sessionSelectAllPacketType_Click);
//
- // selectToolStripMenuItem1
- //
- this.selectToolStripMenuItem1.DropDown = this.contextMenuStripSelect;
- this.selectToolStripMenuItem1.Name = "selectToolStripMenuItem1";
- this.selectToolStripMenuItem1.Size = new System.Drawing.Size(137, 22);
- this.selectToolStripMenuItem1.Text = "Select";
- //
// toolStripSeparatorFilterPacketByName
//
this.toolStripSeparatorFilterPacketByName.Name = "toolStripSeparatorFilterPacketByName";
@@ -663,6 +501,13 @@
this.unmarkToolStripMenuItem.Text = "Unmark";
this.unmarkToolStripMenuItem.Click += new System.EventHandler(this.sessionUnmarkSelected_Click);
//
+ // markToolStripMenuItem1
+ //
+ this.markToolStripMenuItem1.DropDown = this.contextMenuStripMark;
+ this.markToolStripMenuItem1.Name = "markToolStripMenuItem1";
+ this.markToolStripMenuItem1.Size = new System.Drawing.Size(137, 22);
+ this.markToolStripMenuItem1.Text = "Mark";
+ //
// toolStripSeparator16
//
this.toolStripSeparator16.Name = "toolStripSeparator16";
@@ -683,28 +528,33 @@
this.imageList1.Images.SetKeyName(0, "req_in.png");
this.imageList1.Images.SetKeyName(1, "computer_go.png");
//
- // tabControl1
+ // tabControlMain
//
- this.tabControl1.Controls.Add(this.tabPageSummary);
- this.tabControl1.Controls.Add(this.tabPageFilters);
- this.tabControl1.Controls.Add(this.tabPageInspect);
- this.tabControl1.Controls.Add(this.tabPageInject);
- this.tabControl1.Dock = System.Windows.Forms.DockStyle.Fill;
- this.tabControl1.Location = new System.Drawing.Point(0, 0);
- this.tabControl1.Name = "tabControl1";
- this.tabControl1.Padding = new System.Drawing.Point(10, 6);
- this.tabControl1.SelectedIndex = 0;
- this.tabControl1.Size = new System.Drawing.Size(613, 428);
- this.tabControl1.TabIndex = 0;
+ this.tabControlMain.Controls.Add(this.tabPageSummary);
+ this.tabControlMain.Controls.Add(this.tabPageFilters);
+ this.tabControlMain.Controls.Add(this.tabPageInspect);
+ this.tabControlMain.Controls.Add(this.tabPageInject);
+ this.tabControlMain.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.tabControlMain.Font = new System.Drawing.Font("Arial", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.tabControlMain.HotTrack = true;
+ this.tabControlMain.Location = new System.Drawing.Point(0, 0);
+ this.tabControlMain.Multiline = true;
+ this.tabControlMain.Name = "tabControlMain";
+ this.tabControlMain.Padding = new System.Drawing.Point(10, 6);
+ this.tabControlMain.SelectedIndex = 0;
+ this.tabControlMain.Size = new System.Drawing.Size(627, 494);
+ this.tabControlMain.SizeMode = System.Windows.Forms.TabSizeMode.Fixed;
+ this.tabControlMain.TabIndex = 0;
//
// tabPageSummary
//
+ this.tabPageSummary.BackColor = System.Drawing.Color.Transparent;
this.tabPageSummary.Controls.Add(this.richTextBoxDebugLog);
this.tabPageSummary.Controls.Add(this.panelStats);
- this.tabPageSummary.Location = new System.Drawing.Point(4, 28);
+ this.tabPageSummary.Location = new System.Drawing.Point(4, 30);
this.tabPageSummary.Name = "tabPageSummary";
this.tabPageSummary.Padding = new System.Windows.Forms.Padding(3);
- this.tabPageSummary.Size = new System.Drawing.Size(605, 396);
+ this.tabPageSummary.Size = new System.Drawing.Size(619, 460);
this.tabPageSummary.TabIndex = 0;
this.tabPageSummary.Text = "Summary";
this.tabPageSummary.UseVisualStyleBackColor = true;
@@ -715,26 +565,29 @@
| System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.richTextBoxDebugLog.BackColor = System.Drawing.SystemColors.ControlLightLight;
- this.richTextBoxDebugLog.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
+ this.richTextBoxDebugLog.BorderStyle = System.Windows.Forms.BorderStyle.None;
this.richTextBoxDebugLog.Font = new System.Drawing.Font("Consolas", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.richTextBoxDebugLog.Location = new System.Drawing.Point(6, 101);
this.richTextBoxDebugLog.Name = "richTextBoxDebugLog";
this.richTextBoxDebugLog.ReadOnly = true;
this.richTextBoxDebugLog.ShowSelectionMargin = true;
- this.richTextBoxDebugLog.Size = new System.Drawing.Size(592, 289);
+ this.richTextBoxDebugLog.Size = new System.Drawing.Size(606, 352);
this.richTextBoxDebugLog.TabIndex = 3;
this.richTextBoxDebugLog.Text = "";
+ this.richTextBoxDebugLog.LinkClicked += new System.Windows.Forms.LinkClickedEventHandler(this.richTextBoxDecodedRequest_LinkClicked);
//
// panelStats
//
this.panelStats.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
+ this.panelStats.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink;
+ this.panelStats.BackColor = System.Drawing.Color.Transparent;
this.panelStats.Controls.Add(this.groupBox2);
this.panelStats.Controls.Add(this.groupBox1);
this.panelStats.Location = new System.Drawing.Point(6, 6);
this.panelStats.Name = "panelStats";
- this.panelStats.Size = new System.Drawing.Size(592, 89);
+ this.panelStats.Size = new System.Drawing.Size(606, 89);
this.panelStats.TabIndex = 2;
//
// groupBox2
@@ -757,7 +610,7 @@
this.labelPacketsTotal.AutoSize = true;
this.labelPacketsTotal.Location = new System.Drawing.Point(81, 58);
this.labelPacketsTotal.Name = "labelPacketsTotal";
- this.labelPacketsTotal.Size = new System.Drawing.Size(56, 13);
+ this.labelPacketsTotal.Size = new System.Drawing.Size(64, 15);
this.labelPacketsTotal.TabIndex = 8;
this.labelPacketsTotal.Text = "0 (0 bytes)";
//
@@ -766,7 +619,7 @@
this.label1PacketsOut.AutoSize = true;
this.label1PacketsOut.Location = new System.Drawing.Point(81, 37);
this.label1PacketsOut.Name = "label1PacketsOut";
- this.label1PacketsOut.Size = new System.Drawing.Size(56, 13);
+ this.label1PacketsOut.Size = new System.Drawing.Size(64, 15);
this.label1PacketsOut.TabIndex = 7;
this.label1PacketsOut.Text = "0 (0 bytes)";
//
@@ -775,7 +628,7 @@
this.labelPacketsIn.AutoSize = true;
this.labelPacketsIn.Location = new System.Drawing.Point(81, 16);
this.labelPacketsIn.Name = "labelPacketsIn";
- this.labelPacketsIn.Size = new System.Drawing.Size(56, 13);
+ this.labelPacketsIn.Size = new System.Drawing.Size(64, 15);
this.labelPacketsIn.TabIndex = 6;
this.labelPacketsIn.Text = "0 (0 bytes)";
//
@@ -784,7 +637,7 @@
this.label10.AutoSize = true;
this.label10.Location = new System.Drawing.Point(6, 58);
this.label10.Name = "label10";
- this.label10.Size = new System.Drawing.Size(76, 13);
+ this.label10.Size = new System.Drawing.Size(84, 15);
this.label10.TabIndex = 5;
this.label10.Text = "Packets Total:";
//
@@ -793,7 +646,7 @@
this.label9.AutoSize = true;
this.label9.Location = new System.Drawing.Point(13, 37);
this.label9.Name = "label9";
- this.label9.Size = new System.Drawing.Size(69, 13);
+ this.label9.Size = new System.Drawing.Size(76, 15);
this.label9.TabIndex = 4;
this.label9.Text = "Packets Out:";
//
@@ -802,7 +655,7 @@
this.label8.AutoSize = true;
this.label8.Location = new System.Drawing.Point(21, 16);
this.label8.Name = "label8";
- this.label8.Size = new System.Drawing.Size(61, 13);
+ this.label8.Size = new System.Drawing.Size(67, 15);
this.label8.TabIndex = 3;
this.label8.Text = "Packets In:";
//
@@ -815,7 +668,7 @@
this.groupBox1.Controls.Add(this.label6);
this.groupBox1.Controls.Add(this.label5);
this.groupBox1.Controls.Add(this.label7);
- this.groupBox1.Location = new System.Drawing.Point(368, 3);
+ this.groupBox1.Location = new System.Drawing.Point(382, 3);
this.groupBox1.Name = "groupBox1";
this.groupBox1.Size = new System.Drawing.Size(221, 80);
this.groupBox1.TabIndex = 2;
@@ -827,7 +680,7 @@
this.labelCapsTotal.AutoSize = true;
this.labelCapsTotal.Location = new System.Drawing.Point(81, 58);
this.labelCapsTotal.Name = "labelCapsTotal";
- this.labelCapsTotal.Size = new System.Drawing.Size(56, 13);
+ this.labelCapsTotal.Size = new System.Drawing.Size(64, 15);
this.labelCapsTotal.TabIndex = 5;
this.labelCapsTotal.Text = "0 (0 bytes)";
//
@@ -836,7 +689,7 @@
this.labelCapsOut.AutoSize = true;
this.labelCapsOut.Location = new System.Drawing.Point(81, 37);
this.labelCapsOut.Name = "labelCapsOut";
- this.labelCapsOut.Size = new System.Drawing.Size(56, 13);
+ this.labelCapsOut.Size = new System.Drawing.Size(64, 15);
this.labelCapsOut.TabIndex = 4;
this.labelCapsOut.Text = "0 (0 bytes)";
//
@@ -845,7 +698,7 @@
this.labelCapsIn.AutoSize = true;
this.labelCapsIn.Location = new System.Drawing.Point(81, 16);
this.labelCapsIn.Name = "labelCapsIn";
- this.labelCapsIn.Size = new System.Drawing.Size(56, 13);
+ this.labelCapsIn.Size = new System.Drawing.Size(64, 15);
this.labelCapsIn.TabIndex = 3;
this.labelCapsIn.Text = "0 (0 bytes)";
//
@@ -854,7 +707,7 @@
this.label6.AutoSize = true;
this.label6.Location = new System.Drawing.Point(21, 37);
this.label6.Name = "label6";
- this.label6.Size = new System.Drawing.Size(54, 13);
+ this.label6.Size = new System.Drawing.Size(62, 15);
this.label6.TabIndex = 1;
this.label6.Text = "Caps Out:";
//
@@ -863,7 +716,7 @@
this.label5.AutoSize = true;
this.label5.Location = new System.Drawing.Point(29, 16);
this.label5.Name = "label5";
- this.label5.Size = new System.Drawing.Size(46, 13);
+ this.label5.Size = new System.Drawing.Size(53, 15);
this.label5.TabIndex = 0;
this.label5.Text = "Caps In:";
//
@@ -872,25 +725,88 @@
this.label7.AutoSize = true;
this.label7.Location = new System.Drawing.Point(14, 58);
this.label7.Name = "label7";
- this.label7.Size = new System.Drawing.Size(61, 13);
+ this.label7.Size = new System.Drawing.Size(70, 15);
this.label7.TabIndex = 2;
this.label7.Text = "Caps Total:";
//
// tabPageFilters
//
+ this.tabPageFilters.Controls.Add(this.toolStripFilters);
this.tabPageFilters.Controls.Add(this.splitContainerFilters);
- this.tabPageFilters.Location = new System.Drawing.Point(4, 28);
+ this.tabPageFilters.Location = new System.Drawing.Point(4, 30);
this.tabPageFilters.Name = "tabPageFilters";
this.tabPageFilters.Padding = new System.Windows.Forms.Padding(3);
- this.tabPageFilters.Size = new System.Drawing.Size(605, 396);
+ this.tabPageFilters.Size = new System.Drawing.Size(619, 460);
this.tabPageFilters.TabIndex = 1;
this.tabPageFilters.Text = "Filters";
this.tabPageFilters.UseVisualStyleBackColor = true;
//
+ // toolStripFilters
+ //
+ this.toolStripFilters.GripStyle = System.Windows.Forms.ToolStripGripStyle.Hidden;
+ this.toolStripFilters.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
+ this.loadFilterSelectionsToolStripMenuItem,
+ this.saveFilterSelectionsToolStripMenuItem,
+ this.toolStripSeparator7,
+ this.toolStripSplitButton1});
+ this.toolStripFilters.Location = new System.Drawing.Point(3, 3);
+ this.toolStripFilters.Name = "toolStripFilters";
+ this.toolStripFilters.Size = new System.Drawing.Size(613, 25);
+ this.toolStripFilters.Stretch = true;
+ this.toolStripFilters.TabIndex = 1;
+ this.toolStripFilters.Text = "toolStrip1";
+ //
+ // loadFilterSelectionsToolStripMenuItem
+ //
+ this.loadFilterSelectionsToolStripMenuItem.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
+ this.loadFilterSelectionsToolStripMenuItem.Image = ((System.Drawing.Image)(resources.GetObject("loadFilterSelectionsToolStripMenuItem.Image")));
+ this.loadFilterSelectionsToolStripMenuItem.ImageTransparentColor = System.Drawing.Color.Magenta;
+ this.loadFilterSelectionsToolStripMenuItem.Name = "loadFilterSelectionsToolStripMenuItem";
+ this.loadFilterSelectionsToolStripMenuItem.Size = new System.Drawing.Size(23, 22);
+ this.loadFilterSelectionsToolStripMenuItem.Text = "&Open";
+ this.loadFilterSelectionsToolStripMenuItem.Click += new System.EventHandler(this.loadFilterSelectionsToolStripMenuItem_Click);
+ //
+ // saveFilterSelectionsToolStripMenuItem
+ //
+ this.saveFilterSelectionsToolStripMenuItem.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
+ this.saveFilterSelectionsToolStripMenuItem.Image = ((System.Drawing.Image)(resources.GetObject("saveFilterSelectionsToolStripMenuItem.Image")));
+ this.saveFilterSelectionsToolStripMenuItem.ImageTransparentColor = System.Drawing.Color.Magenta;
+ this.saveFilterSelectionsToolStripMenuItem.Name = "saveFilterSelectionsToolStripMenuItem";
+ this.saveFilterSelectionsToolStripMenuItem.Size = new System.Drawing.Size(23, 22);
+ this.saveFilterSelectionsToolStripMenuItem.Text = "&Save";
+ this.saveFilterSelectionsToolStripMenuItem.Click += new System.EventHandler(this.saveFilterSelectionsToolStripMenuItem_Click);
+ //
+ // toolStripSeparator7
+ //
+ this.toolStripSeparator7.Name = "toolStripSeparator7";
+ this.toolStripSeparator7.Size = new System.Drawing.Size(6, 25);
+ //
+ // toolStripSplitButton1
+ //
+ this.toolStripSplitButton1.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Text;
+ this.toolStripSplitButton1.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
+ this.autoAddNewDiscoveredMessagesToolStripMenuItem});
+ this.toolStripSplitButton1.Image = ((System.Drawing.Image)(resources.GetObject("toolStripSplitButton1.Image")));
+ this.toolStripSplitButton1.ImageTransparentColor = System.Drawing.Color.Magenta;
+ this.toolStripSplitButton1.Name = "toolStripSplitButton1";
+ this.toolStripSplitButton1.Size = new System.Drawing.Size(65, 22);
+ this.toolStripSplitButton1.Text = "Options";
+ //
+ // autoAddNewDiscoveredMessagesToolStripMenuItem
+ //
+ this.autoAddNewDiscoveredMessagesToolStripMenuItem.Checked = true;
+ this.autoAddNewDiscoveredMessagesToolStripMenuItem.CheckOnClick = true;
+ this.autoAddNewDiscoveredMessagesToolStripMenuItem.CheckState = System.Windows.Forms.CheckState.Checked;
+ this.autoAddNewDiscoveredMessagesToolStripMenuItem.Name = "autoAddNewDiscoveredMessagesToolStripMenuItem";
+ this.autoAddNewDiscoveredMessagesToolStripMenuItem.Size = new System.Drawing.Size(225, 22);
+ this.autoAddNewDiscoveredMessagesToolStripMenuItem.Text = "Auto Check new Capabilities";
+ //
// splitContainerFilters
//
- this.splitContainerFilters.Dock = System.Windows.Forms.DockStyle.Fill;
- this.splitContainerFilters.Location = new System.Drawing.Point(3, 3);
+ this.splitContainerFilters.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
+ | System.Windows.Forms.AnchorStyles.Left)
+ | System.Windows.Forms.AnchorStyles.Right)));
+ this.splitContainerFilters.Location = new System.Drawing.Point(3, 31);
this.splitContainerFilters.Name = "splitContainerFilters";
//
// splitContainerFilters.Panel1
@@ -902,8 +818,8 @@
//
this.splitContainerFilters.Panel2.Controls.Add(this.checkBoxCheckAllMessages);
this.splitContainerFilters.Panel2.Controls.Add(this.grpCapsFilters);
- this.splitContainerFilters.Size = new System.Drawing.Size(599, 390);
- this.splitContainerFilters.SplitterDistance = 298;
+ this.splitContainerFilters.Size = new System.Drawing.Size(613, 427);
+ this.splitContainerFilters.SplitterDistance = 303;
this.splitContainerFilters.SplitterWidth = 5;
this.splitContainerFilters.TabIndex = 0;
//
@@ -913,9 +829,9 @@
this.checkBoxCheckAllPackets.AutoSize = true;
this.checkBoxCheckAllPackets.Checked = true;
this.checkBoxCheckAllPackets.CheckState = System.Windows.Forms.CheckState.Indeterminate;
- this.checkBoxCheckAllPackets.Location = new System.Drawing.Point(6, 369);
+ this.checkBoxCheckAllPackets.Location = new System.Drawing.Point(6, 404);
this.checkBoxCheckAllPackets.Name = "checkBoxCheckAllPackets";
- this.checkBoxCheckAllPackets.Size = new System.Drawing.Size(120, 17);
+ this.checkBoxCheckAllPackets.Size = new System.Drawing.Size(128, 19);
this.checkBoxCheckAllPackets.TabIndex = 1;
this.checkBoxCheckAllPackets.Text = "Check/Uncheck All";
this.checkBoxCheckAllPackets.UseVisualStyleBackColor = true;
@@ -930,39 +846,10 @@
this.grpUDPFilters.Enabled = false;
this.grpUDPFilters.Location = new System.Drawing.Point(3, 3);
this.grpUDPFilters.Name = "grpUDPFilters";
- this.grpUDPFilters.Size = new System.Drawing.Size(292, 357);
+ this.grpUDPFilters.Size = new System.Drawing.Size(297, 394);
this.grpUDPFilters.TabIndex = 0;
this.grpUDPFilters.TabStop = false;
- this.grpUDPFilters.Text = "UDP Packets";
- //
- // listViewPacketFilters
- //
- this.listViewPacketFilters.CheckBoxes = true;
- this.listViewPacketFilters.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] {
- this.columnHeaderPacketName,
- this.columnHeaderPacketType});
- this.listViewPacketFilters.Dock = System.Windows.Forms.DockStyle.Fill;
- this.listViewPacketFilters.FullRowSelect = true;
- this.listViewPacketFilters.GridLines = true;
- this.listViewPacketFilters.Location = new System.Drawing.Point(3, 16);
- this.listViewPacketFilters.MultiSelect = false;
- this.listViewPacketFilters.Name = "listViewPacketFilters";
- this.listViewPacketFilters.Size = new System.Drawing.Size(286, 338);
- this.listViewPacketFilters.Sorting = System.Windows.Forms.SortOrder.Ascending;
- this.listViewPacketFilters.TabIndex = 0;
- this.listViewPacketFilters.UseCompatibleStateImageBehavior = false;
- this.listViewPacketFilters.View = System.Windows.Forms.View.Details;
- this.listViewPacketFilters.ItemChecked += new System.Windows.Forms.ItemCheckedEventHandler(this.listViewPacketFilters_ItemChecked);
- this.listViewPacketFilters.ColumnClick += new System.Windows.Forms.ColumnClickEventHandler(this.listViewFilterSorter_ColumnClick);
- //
- // columnHeaderPacketName
- //
- this.columnHeaderPacketName.Text = "Packet Name";
- this.columnHeaderPacketName.Width = 215;
- //
- // columnHeaderPacketType
- //
- this.columnHeaderPacketType.Text = "Type";
+ this.grpUDPFilters.Text = "UDP Packets && Login";
//
// checkBoxCheckAllMessages
//
@@ -970,9 +857,9 @@
this.checkBoxCheckAllMessages.AutoSize = true;
this.checkBoxCheckAllMessages.Checked = true;
this.checkBoxCheckAllMessages.CheckState = System.Windows.Forms.CheckState.Indeterminate;
- this.checkBoxCheckAllMessages.Location = new System.Drawing.Point(6, 370);
+ this.checkBoxCheckAllMessages.Location = new System.Drawing.Point(6, 405);
this.checkBoxCheckAllMessages.Name = "checkBoxCheckAllMessages";
- this.checkBoxCheckAllMessages.Size = new System.Drawing.Size(120, 17);
+ this.checkBoxCheckAllMessages.Size = new System.Drawing.Size(128, 19);
this.checkBoxCheckAllMessages.TabIndex = 2;
this.checkBoxCheckAllMessages.Text = "Check/Uncheck All";
this.checkBoxCheckAllMessages.UseVisualStyleBackColor = true;
@@ -987,47 +874,17 @@
this.grpCapsFilters.Enabled = false;
this.grpCapsFilters.Location = new System.Drawing.Point(3, 3);
this.grpCapsFilters.Name = "grpCapsFilters";
- this.grpCapsFilters.Size = new System.Drawing.Size(290, 357);
+ this.grpCapsFilters.Size = new System.Drawing.Size(299, 394);
this.grpCapsFilters.TabIndex = 1;
this.grpCapsFilters.TabStop = false;
- this.grpCapsFilters.Text = "Capabilities Messages";
- //
- // listViewMessageFilters
- //
- this.listViewMessageFilters.CheckBoxes = true;
- this.listViewMessageFilters.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] {
- this.columnHeaderName,
- this.columnHeaderMessageType});
- this.listViewMessageFilters.Dock = System.Windows.Forms.DockStyle.Fill;
- this.listViewMessageFilters.FullRowSelect = true;
- this.listViewMessageFilters.GridLines = true;
- this.listViewMessageFilters.Location = new System.Drawing.Point(3, 16);
- this.listViewMessageFilters.MultiSelect = false;
- this.listViewMessageFilters.Name = "listViewMessageFilters";
- this.listViewMessageFilters.Size = new System.Drawing.Size(284, 338);
- this.listViewMessageFilters.Sorting = System.Windows.Forms.SortOrder.Ascending;
- this.listViewMessageFilters.TabIndex = 1;
- this.listViewMessageFilters.UseCompatibleStateImageBehavior = false;
- this.listViewMessageFilters.View = System.Windows.Forms.View.Details;
- this.listViewMessageFilters.ItemChecked += new System.Windows.Forms.ItemCheckedEventHandler(this.listViewMessageFilters_ItemChecked);
- this.listViewMessageFilters.ColumnClick += new System.Windows.Forms.ColumnClickEventHandler(this.listViewFilterSorter_ColumnClick);
- //
- // columnHeaderName
- //
- this.columnHeaderName.Text = "Message Name";
- this.columnHeaderName.Width = 181;
- //
- // columnHeaderMessageType
- //
- this.columnHeaderMessageType.Text = "Type";
- this.columnHeaderMessageType.Width = 92;
+ this.grpCapsFilters.Text = "Capabilities && EventQueue messages";
//
// tabPageInspect
//
this.tabPageInspect.Controls.Add(this.splitContainerInspectorTab);
- this.tabPageInspect.Location = new System.Drawing.Point(4, 28);
+ this.tabPageInspect.Location = new System.Drawing.Point(4, 30);
this.tabPageInspect.Name = "tabPageInspect";
- this.tabPageInspect.Size = new System.Drawing.Size(605, 396);
+ this.tabPageInspect.Size = new System.Drawing.Size(619, 460);
this.tabPageInspect.TabIndex = 3;
this.tabPageInspect.Text = "Inspector";
this.tabPageInspect.UseVisualStyleBackColor = true;
@@ -1049,71 +906,77 @@
// splitContainerInspectorTab.Panel2
//
this.splitContainerInspectorTab.Panel2.Controls.Add(this.tabControlInspectorResponse);
- this.splitContainerInspectorTab.Size = new System.Drawing.Size(605, 396);
- this.splitContainerInspectorTab.SplitterDistance = 179;
- this.splitContainerInspectorTab.SplitterWidth = 5;
+ this.splitContainerInspectorTab.Size = new System.Drawing.Size(619, 460);
+ this.splitContainerInspectorTab.SplitterDistance = 226;
+ this.splitContainerInspectorTab.SplitterWidth = 6;
this.splitContainerInspectorTab.TabIndex = 1;
//
// tabControlInspectorRequest
//
- this.tabControlInspectorRequest.Appearance = System.Windows.Forms.TabAppearance.FlatButtons;
this.tabControlInspectorRequest.Controls.Add(this.tabPageDecodedRequest);
this.tabControlInspectorRequest.Controls.Add(this.tabPageRawRequest);
this.tabControlInspectorRequest.Controls.Add(this.tabPageXMLRequest);
this.tabControlInspectorRequest.Controls.Add(this.tabPageRequestJson);
this.tabControlInspectorRequest.Controls.Add(this.tabPageHexRequest);
this.tabControlInspectorRequest.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.tabControlInspectorRequest.HotTrack = true;
this.tabControlInspectorRequest.ImageList = this.imageList1;
this.tabControlInspectorRequest.Location = new System.Drawing.Point(0, 0);
this.tabControlInspectorRequest.Name = "tabControlInspectorRequest";
this.tabControlInspectorRequest.SelectedIndex = 0;
- this.tabControlInspectorRequest.Size = new System.Drawing.Size(605, 179);
+ this.tabControlInspectorRequest.Size = new System.Drawing.Size(619, 226);
+ this.tabControlInspectorRequest.SizeMode = System.Windows.Forms.TabSizeMode.Fixed;
this.tabControlInspectorRequest.TabIndex = 0;
//
// tabPageDecodedRequest
//
this.tabPageDecodedRequest.Controls.Add(this.richTextBoxDecodedRequest);
this.tabPageDecodedRequest.ImageIndex = 1;
- this.tabPageDecodedRequest.Location = new System.Drawing.Point(4, 26);
+ this.tabPageDecodedRequest.Location = new System.Drawing.Point(4, 24);
this.tabPageDecodedRequest.Name = "tabPageDecodedRequest";
this.tabPageDecodedRequest.Padding = new System.Windows.Forms.Padding(3);
- this.tabPageDecodedRequest.Size = new System.Drawing.Size(597, 149);
+ this.tabPageDecodedRequest.Size = new System.Drawing.Size(611, 198);
this.tabPageDecodedRequest.TabIndex = 4;
this.tabPageDecodedRequest.Text = "Request";
this.tabPageDecodedRequest.UseVisualStyleBackColor = true;
//
// richTextBoxDecodedRequest
//
+ this.richTextBoxDecodedRequest.BorderStyle = System.Windows.Forms.BorderStyle.None;
this.richTextBoxDecodedRequest.Dock = System.Windows.Forms.DockStyle.Fill;
this.richTextBoxDecodedRequest.Font = new System.Drawing.Font("Consolas", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.richTextBoxDecodedRequest.Location = new System.Drawing.Point(3, 3);
this.richTextBoxDecodedRequest.Name = "richTextBoxDecodedRequest";
this.richTextBoxDecodedRequest.ShowSelectionMargin = true;
- this.richTextBoxDecodedRequest.Size = new System.Drawing.Size(591, 143);
+ this.richTextBoxDecodedRequest.Size = new System.Drawing.Size(605, 192);
this.richTextBoxDecodedRequest.TabIndex = 0;
this.richTextBoxDecodedRequest.Text = "";
+ this.richTextBoxDecodedRequest.WordWrap = false;
+ this.richTextBoxDecodedRequest.LinkClicked += new System.Windows.Forms.LinkClickedEventHandler(this.richTextBoxDecodedRequest_LinkClicked);
this.richTextBoxDecodedRequest.TextChanged += new System.EventHandler(this.richTextBoxDecodedRequest_TextChanged);
//
// tabPageRawRequest
//
this.tabPageRawRequest.Controls.Add(this.richTextBoxRawRequest);
this.tabPageRawRequest.ImageIndex = 1;
- this.tabPageRawRequest.Location = new System.Drawing.Point(4, 26);
+ this.tabPageRawRequest.Location = new System.Drawing.Point(4, 24);
this.tabPageRawRequest.Name = "tabPageRawRequest";
this.tabPageRawRequest.Padding = new System.Windows.Forms.Padding(3);
- this.tabPageRawRequest.Size = new System.Drawing.Size(597, 149);
+ this.tabPageRawRequest.Size = new System.Drawing.Size(611, 198);
this.tabPageRawRequest.TabIndex = 0;
this.tabPageRawRequest.Text = "Raw";
this.tabPageRawRequest.UseVisualStyleBackColor = true;
//
// richTextBoxRawRequest
//
+ this.richTextBoxRawRequest.BorderStyle = System.Windows.Forms.BorderStyle.None;
+ this.richTextBoxRawRequest.DetectUrls = false;
this.richTextBoxRawRequest.Dock = System.Windows.Forms.DockStyle.Fill;
this.richTextBoxRawRequest.Font = new System.Drawing.Font("Consolas", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.richTextBoxRawRequest.Location = new System.Drawing.Point(3, 3);
this.richTextBoxRawRequest.Name = "richTextBoxRawRequest";
this.richTextBoxRawRequest.ShowSelectionMargin = true;
- this.richTextBoxRawRequest.Size = new System.Drawing.Size(591, 143);
+ this.richTextBoxRawRequest.Size = new System.Drawing.Size(605, 193);
this.richTextBoxRawRequest.TabIndex = 1;
this.richTextBoxRawRequest.Text = "";
this.richTextBoxRawRequest.WordWrap = false;
@@ -1122,71 +985,82 @@
//
this.tabPageXMLRequest.Controls.Add(this.treeViewXMLRequest);
this.tabPageXMLRequest.ImageIndex = 1;
- this.tabPageXMLRequest.Location = new System.Drawing.Point(4, 26);
+ this.tabPageXMLRequest.Location = new System.Drawing.Point(4, 24);
this.tabPageXMLRequest.Name = "tabPageXMLRequest";
this.tabPageXMLRequest.Padding = new System.Windows.Forms.Padding(3);
- this.tabPageXMLRequest.Size = new System.Drawing.Size(597, 149);
+ this.tabPageXMLRequest.Size = new System.Drawing.Size(611, 198);
this.tabPageXMLRequest.TabIndex = 1;
this.tabPageXMLRequest.Text = "XML";
this.tabPageXMLRequest.UseVisualStyleBackColor = true;
//
// treeViewXMLRequest
//
+ this.treeViewXMLRequest.BorderStyle = System.Windows.Forms.BorderStyle.None;
this.treeViewXMLRequest.Dock = System.Windows.Forms.DockStyle.Fill;
this.treeViewXMLRequest.Location = new System.Drawing.Point(3, 3);
this.treeViewXMLRequest.Name = "treeViewXMLRequest";
- this.treeViewXMLRequest.Size = new System.Drawing.Size(591, 143);
+ this.treeViewXMLRequest.Size = new System.Drawing.Size(605, 193);
this.treeViewXMLRequest.TabIndex = 1;
//
// tabPageRequestJson
//
this.tabPageRequestJson.Controls.Add(this.richTextBoxNotationRequest);
this.tabPageRequestJson.ImageIndex = 1;
- this.tabPageRequestJson.Location = new System.Drawing.Point(4, 26);
+ this.tabPageRequestJson.Location = new System.Drawing.Point(4, 24);
this.tabPageRequestJson.Name = "tabPageRequestJson";
this.tabPageRequestJson.Padding = new System.Windows.Forms.Padding(3);
- this.tabPageRequestJson.Size = new System.Drawing.Size(597, 149);
+ this.tabPageRequestJson.Size = new System.Drawing.Size(611, 198);
this.tabPageRequestJson.TabIndex = 3;
this.tabPageRequestJson.Text = "Notation";
this.tabPageRequestJson.UseVisualStyleBackColor = true;
//
// richTextBoxNotationRequest
//
+ this.richTextBoxNotationRequest.BorderStyle = System.Windows.Forms.BorderStyle.None;
+ this.richTextBoxNotationRequest.DetectUrls = false;
this.richTextBoxNotationRequest.Dock = System.Windows.Forms.DockStyle.Fill;
this.richTextBoxNotationRequest.Location = new System.Drawing.Point(3, 3);
this.richTextBoxNotationRequest.Name = "richTextBoxNotationRequest";
this.richTextBoxNotationRequest.ShowSelectionMargin = true;
- this.richTextBoxNotationRequest.Size = new System.Drawing.Size(591, 143);
+ this.richTextBoxNotationRequest.Size = new System.Drawing.Size(605, 193);
this.richTextBoxNotationRequest.TabIndex = 0;
this.richTextBoxNotationRequest.Text = "";
//
// tabPageHexRequest
//
- this.tabPageHexRequest.Controls.Add(this.statusStrip2);
+ this.tabPageHexRequest.Controls.Add(this.buttonSaveRequestHex);
+ this.tabPageHexRequest.Controls.Add(this.labelHexRequestStatus);
this.tabPageHexRequest.Controls.Add(this.hexBoxRequest);
this.tabPageHexRequest.ImageIndex = 1;
- this.tabPageHexRequest.Location = new System.Drawing.Point(4, 26);
+ this.tabPageHexRequest.Location = new System.Drawing.Point(4, 24);
this.tabPageHexRequest.Name = "tabPageHexRequest";
- this.tabPageHexRequest.Size = new System.Drawing.Size(597, 149);
+ this.tabPageHexRequest.Size = new System.Drawing.Size(611, 198);
this.tabPageHexRequest.TabIndex = 2;
this.tabPageHexRequest.Text = "Hex";
this.tabPageHexRequest.UseVisualStyleBackColor = true;
//
- // statusStrip2
+ // buttonSaveRequestHex
//
- this.statusStrip2.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
- this.labelRequestHex});
- this.statusStrip2.Location = new System.Drawing.Point(0, 127);
- this.statusStrip2.Name = "statusStrip2";
- this.statusStrip2.Size = new System.Drawing.Size(585, 22);
- this.statusStrip2.TabIndex = 3;
- this.statusStrip2.Text = "statusStrip2";
- this.statusStrip2.Visible = false;
+ this.buttonSaveRequestHex.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
+ this.buttonSaveRequestHex.Font = new System.Drawing.Font("Arial", 3.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.buttonSaveRequestHex.Location = new System.Drawing.Point(594, 185);
+ this.buttonSaveRequestHex.Name = "buttonSaveRequestHex";
+ this.buttonSaveRequestHex.Size = new System.Drawing.Size(13, 13);
+ this.buttonSaveRequestHex.TabIndex = 4;
+ this.buttonSaveRequestHex.UseVisualStyleBackColor = true;
+ this.buttonSaveRequestHex.Visible = false;
+ this.buttonSaveRequestHex.Click += new System.EventHandler(this.buttonSaveRequestHex_Click);
//
- // labelRequestHex
+ // labelHexRequestStatus
//
- this.labelRequestHex.Name = "labelRequestHex";
- this.labelRequestHex.Size = new System.Drawing.Size(0, 17);
+ this.labelHexRequestStatus.AutoSize = true;
+ this.labelHexRequestStatus.Dock = System.Windows.Forms.DockStyle.Bottom;
+ this.labelHexRequestStatus.Font = new System.Drawing.Font("Segoe UI", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.labelHexRequestStatus.Location = new System.Drawing.Point(0, 186);
+ this.labelHexRequestStatus.Name = "labelHexRequestStatus";
+ this.labelHexRequestStatus.Size = new System.Drawing.Size(66, 13);
+ this.labelHexRequestStatus.TabIndex = 3;
+ this.labelHexRequestStatus.Text = "Ln 0 Col 0";
//
// hexBoxRequest
//
@@ -1195,10 +1069,10 @@
| System.Windows.Forms.AnchorStyles.Right)));
this.hexBoxRequest.Font = new System.Drawing.Font("Courier New", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.hexBoxRequest.LineInfoForeColor = System.Drawing.Color.Empty;
- this.hexBoxRequest.Location = new System.Drawing.Point(3, 3);
+ this.hexBoxRequest.Location = new System.Drawing.Point(0, 0);
this.hexBoxRequest.Name = "hexBoxRequest";
this.hexBoxRequest.ShadowSelectionColor = System.Drawing.Color.FromArgb(((int)(((byte)(100)))), ((int)(((byte)(60)))), ((int)(((byte)(188)))), ((int)(((byte)(255)))));
- this.hexBoxRequest.Size = new System.Drawing.Size(591, 120);
+ this.hexBoxRequest.Size = new System.Drawing.Size(611, 182);
this.hexBoxRequest.StringViewVisible = true;
this.hexBoxRequest.TabIndex = 2;
this.hexBoxRequest.UseFixedBytesPerLine = true;
@@ -1208,65 +1082,71 @@
//
// tabControlInspectorResponse
//
- this.tabControlInspectorResponse.Appearance = System.Windows.Forms.TabAppearance.FlatButtons;
this.tabControlInspectorResponse.Controls.Add(this.tabPageDecodeResponse);
this.tabControlInspectorResponse.Controls.Add(this.tabPageInspectorRAWResponse);
this.tabControlInspectorResponse.Controls.Add(this.tabPageInspectorXMLResponse);
this.tabControlInspectorResponse.Controls.Add(this.tabPageResponseJson);
this.tabControlInspectorResponse.Controls.Add(this.tabPageHexViewResponse);
this.tabControlInspectorResponse.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.tabControlInspectorResponse.HotTrack = true;
this.tabControlInspectorResponse.ImageList = this.imageList1;
this.tabControlInspectorResponse.Location = new System.Drawing.Point(0, 0);
this.tabControlInspectorResponse.Multiline = true;
this.tabControlInspectorResponse.Name = "tabControlInspectorResponse";
this.tabControlInspectorResponse.SelectedIndex = 0;
- this.tabControlInspectorResponse.Size = new System.Drawing.Size(605, 212);
+ this.tabControlInspectorResponse.Size = new System.Drawing.Size(619, 228);
+ this.tabControlInspectorResponse.SizeMode = System.Windows.Forms.TabSizeMode.Fixed;
this.tabControlInspectorResponse.TabIndex = 0;
//
// tabPageDecodeResponse
//
this.tabPageDecodeResponse.Controls.Add(this.richTextBoxDecodedResponse);
this.tabPageDecodeResponse.ImageIndex = 0;
- this.tabPageDecodeResponse.Location = new System.Drawing.Point(4, 26);
+ this.tabPageDecodeResponse.Location = new System.Drawing.Point(4, 24);
this.tabPageDecodeResponse.Name = "tabPageDecodeResponse";
this.tabPageDecodeResponse.Padding = new System.Windows.Forms.Padding(3);
- this.tabPageDecodeResponse.Size = new System.Drawing.Size(597, 182);
+ this.tabPageDecodeResponse.Size = new System.Drawing.Size(611, 200);
this.tabPageDecodeResponse.TabIndex = 6;
this.tabPageDecodeResponse.Text = "Response";
this.tabPageDecodeResponse.UseVisualStyleBackColor = true;
//
// richTextBoxDecodedResponse
//
+ this.richTextBoxDecodedResponse.BorderStyle = System.Windows.Forms.BorderStyle.None;
this.richTextBoxDecodedResponse.Dock = System.Windows.Forms.DockStyle.Fill;
this.richTextBoxDecodedResponse.Font = new System.Drawing.Font("Consolas", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.richTextBoxDecodedResponse.Location = new System.Drawing.Point(3, 3);
this.richTextBoxDecodedResponse.Name = "richTextBoxDecodedResponse";
this.richTextBoxDecodedResponse.ShowSelectionMargin = true;
- this.richTextBoxDecodedResponse.Size = new System.Drawing.Size(591, 176);
+ this.richTextBoxDecodedResponse.Size = new System.Drawing.Size(605, 194);
this.richTextBoxDecodedResponse.TabIndex = 0;
this.richTextBoxDecodedResponse.Text = "";
+ this.richTextBoxDecodedResponse.WordWrap = false;
+ this.richTextBoxDecodedResponse.LinkClicked += new System.Windows.Forms.LinkClickedEventHandler(this.richTextBoxDecodedRequest_LinkClicked);
this.richTextBoxDecodedResponse.TextChanged += new System.EventHandler(this.richTextBoxDecodedRequest_TextChanged);
//
// tabPageInspectorRAWResponse
//
this.tabPageInspectorRAWResponse.Controls.Add(this.richTextBoxRawResponse);
this.tabPageInspectorRAWResponse.ImageIndex = 0;
- this.tabPageInspectorRAWResponse.Location = new System.Drawing.Point(4, 26);
+ this.tabPageInspectorRAWResponse.Location = new System.Drawing.Point(4, 24);
this.tabPageInspectorRAWResponse.Name = "tabPageInspectorRAWResponse";
this.tabPageInspectorRAWResponse.Padding = new System.Windows.Forms.Padding(3);
- this.tabPageInspectorRAWResponse.Size = new System.Drawing.Size(597, 182);
+ this.tabPageInspectorRAWResponse.Size = new System.Drawing.Size(611, 200);
this.tabPageInspectorRAWResponse.TabIndex = 0;
this.tabPageInspectorRAWResponse.Text = "Raw";
this.tabPageInspectorRAWResponse.UseVisualStyleBackColor = true;
//
// richTextBoxRawResponse
//
+ this.richTextBoxRawResponse.BorderStyle = System.Windows.Forms.BorderStyle.None;
+ this.richTextBoxRawResponse.DetectUrls = false;
this.richTextBoxRawResponse.Dock = System.Windows.Forms.DockStyle.Fill;
this.richTextBoxRawResponse.Font = new System.Drawing.Font("Consolas", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.richTextBoxRawResponse.Location = new System.Drawing.Point(3, 3);
this.richTextBoxRawResponse.Name = "richTextBoxRawResponse";
this.richTextBoxRawResponse.ShowSelectionMargin = true;
- this.richTextBoxRawResponse.Size = new System.Drawing.Size(591, 176);
+ this.richTextBoxRawResponse.Size = new System.Drawing.Size(605, 195);
this.richTextBoxRawResponse.TabIndex = 0;
this.richTextBoxRawResponse.Text = "";
this.richTextBoxRawResponse.WordWrap = false;
@@ -1275,71 +1155,82 @@
//
this.tabPageInspectorXMLResponse.Controls.Add(this.treeViewXmlResponse);
this.tabPageInspectorXMLResponse.ImageIndex = 0;
- this.tabPageInspectorXMLResponse.Location = new System.Drawing.Point(4, 26);
+ this.tabPageInspectorXMLResponse.Location = new System.Drawing.Point(4, 24);
this.tabPageInspectorXMLResponse.Name = "tabPageInspectorXMLResponse";
this.tabPageInspectorXMLResponse.Padding = new System.Windows.Forms.Padding(3);
- this.tabPageInspectorXMLResponse.Size = new System.Drawing.Size(597, 182);
+ this.tabPageInspectorXMLResponse.Size = new System.Drawing.Size(611, 200);
this.tabPageInspectorXMLResponse.TabIndex = 1;
this.tabPageInspectorXMLResponse.Text = "XML";
this.tabPageInspectorXMLResponse.UseVisualStyleBackColor = true;
//
// treeViewXmlResponse
//
+ this.treeViewXmlResponse.BorderStyle = System.Windows.Forms.BorderStyle.None;
this.treeViewXmlResponse.Dock = System.Windows.Forms.DockStyle.Fill;
this.treeViewXmlResponse.Location = new System.Drawing.Point(3, 3);
this.treeViewXmlResponse.Name = "treeViewXmlResponse";
- this.treeViewXmlResponse.Size = new System.Drawing.Size(591, 176);
+ this.treeViewXmlResponse.Size = new System.Drawing.Size(605, 195);
this.treeViewXmlResponse.TabIndex = 0;
//
// tabPageResponseJson
//
this.tabPageResponseJson.Controls.Add(this.richTextBoxNotationResponse);
this.tabPageResponseJson.ImageIndex = 0;
- this.tabPageResponseJson.Location = new System.Drawing.Point(4, 26);
+ this.tabPageResponseJson.Location = new System.Drawing.Point(4, 24);
this.tabPageResponseJson.Name = "tabPageResponseJson";
this.tabPageResponseJson.Padding = new System.Windows.Forms.Padding(3);
- this.tabPageResponseJson.Size = new System.Drawing.Size(597, 182);
+ this.tabPageResponseJson.Size = new System.Drawing.Size(611, 200);
this.tabPageResponseJson.TabIndex = 5;
this.tabPageResponseJson.Text = "Notation";
this.tabPageResponseJson.UseVisualStyleBackColor = true;
//
// richTextBoxNotationResponse
//
+ this.richTextBoxNotationResponse.BorderStyle = System.Windows.Forms.BorderStyle.None;
+ this.richTextBoxNotationResponse.DetectUrls = false;
this.richTextBoxNotationResponse.Dock = System.Windows.Forms.DockStyle.Fill;
this.richTextBoxNotationResponse.Location = new System.Drawing.Point(3, 3);
this.richTextBoxNotationResponse.Name = "richTextBoxNotationResponse";
this.richTextBoxNotationResponse.ShowSelectionMargin = true;
- this.richTextBoxNotationResponse.Size = new System.Drawing.Size(591, 176);
+ this.richTextBoxNotationResponse.Size = new System.Drawing.Size(605, 195);
this.richTextBoxNotationResponse.TabIndex = 0;
this.richTextBoxNotationResponse.Text = "";
//
// tabPageHexViewResponse
//
- this.tabPageHexViewResponse.Controls.Add(this.statusStrip1);
+ this.tabPageHexViewResponse.Controls.Add(this.buttonExportRawHex);
+ this.tabPageHexViewResponse.Controls.Add(this.labelHexBoxResponseStatus);
this.tabPageHexViewResponse.Controls.Add(this.hexBoxResponse);
this.tabPageHexViewResponse.ImageIndex = 0;
- this.tabPageHexViewResponse.Location = new System.Drawing.Point(4, 26);
+ this.tabPageHexViewResponse.Location = new System.Drawing.Point(4, 24);
this.tabPageHexViewResponse.Name = "tabPageHexViewResponse";
- this.tabPageHexViewResponse.Padding = new System.Windows.Forms.Padding(3);
- this.tabPageHexViewResponse.Size = new System.Drawing.Size(597, 182);
+ this.tabPageHexViewResponse.Size = new System.Drawing.Size(611, 200);
this.tabPageHexViewResponse.TabIndex = 4;
this.tabPageHexViewResponse.Text = "Hex";
this.tabPageHexViewResponse.UseVisualStyleBackColor = true;
//
- // statusStrip1
+ // buttonExportRawHex
//
- this.statusStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
- this.labelResponseHex});
- this.statusStrip1.Location = new System.Drawing.Point(3, 157);
- this.statusStrip1.Name = "statusStrip1";
- this.statusStrip1.Size = new System.Drawing.Size(591, 22);
- this.statusStrip1.TabIndex = 0;
- this.statusStrip1.Text = "statusStrip1";
+ this.buttonExportRawHex.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
+ this.buttonExportRawHex.Font = new System.Drawing.Font("Arial", 3.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.buttonExportRawHex.Location = new System.Drawing.Point(594, 187);
+ this.buttonExportRawHex.Name = "buttonExportRawHex";
+ this.buttonExportRawHex.Size = new System.Drawing.Size(13, 13);
+ this.buttonExportRawHex.TabIndex = 3;
+ this.buttonExportRawHex.UseVisualStyleBackColor = true;
+ this.buttonExportRawHex.Visible = false;
+ this.buttonExportRawHex.Click += new System.EventHandler(this.buttonExportRawHex_Click);
//
- // labelResponseHex
+ // labelHexBoxResponseStatus
//
- this.labelResponseHex.Name = "labelResponseHex";
- this.labelResponseHex.Size = new System.Drawing.Size(0, 17);
+ this.labelHexBoxResponseStatus.AutoSize = true;
+ this.labelHexBoxResponseStatus.Dock = System.Windows.Forms.DockStyle.Bottom;
+ this.labelHexBoxResponseStatus.Font = new System.Drawing.Font("Segoe UI", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.labelHexBoxResponseStatus.Location = new System.Drawing.Point(0, 188);
+ this.labelHexBoxResponseStatus.Name = "labelHexBoxResponseStatus";
+ this.labelHexBoxResponseStatus.Size = new System.Drawing.Size(66, 13);
+ this.labelHexBoxResponseStatus.TabIndex = 2;
+ this.labelHexBoxResponseStatus.Text = "Ln 0 Col 0";
//
// hexBoxResponse
//
@@ -1348,10 +1239,10 @@
| System.Windows.Forms.AnchorStyles.Right)));
this.hexBoxResponse.Font = new System.Drawing.Font("Courier New", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.hexBoxResponse.LineInfoForeColor = System.Drawing.Color.Empty;
- this.hexBoxResponse.Location = new System.Drawing.Point(3, 3);
+ this.hexBoxResponse.Location = new System.Drawing.Point(0, 0);
this.hexBoxResponse.Name = "hexBoxResponse";
this.hexBoxResponse.ShadowSelectionColor = System.Drawing.Color.FromArgb(((int)(((byte)(100)))), ((int)(((byte)(60)))), ((int)(((byte)(188)))), ((int)(((byte)(255)))));
- this.hexBoxResponse.Size = new System.Drawing.Size(591, 152);
+ this.hexBoxResponse.Size = new System.Drawing.Size(611, 184);
this.hexBoxResponse.StringViewVisible = true;
this.hexBoxResponse.TabIndex = 1;
this.hexBoxResponse.UseFixedBytesPerLine = true;
@@ -1361,59 +1252,21 @@
//
// tabPageInject
//
- this.tabPageInject.Controls.Add(this.radioButtonViewer);
- this.tabPageInject.Controls.Add(this.radioButtonSimulator);
- this.tabPageInject.Controls.Add(this.button3);
this.tabPageInject.Controls.Add(this.buttonInjectPacket);
this.tabPageInject.Controls.Add(this.richTextBoxInject);
- this.tabPageInject.Location = new System.Drawing.Point(4, 28);
+ this.tabPageInject.Location = new System.Drawing.Point(4, 30);
this.tabPageInject.Name = "tabPageInject";
this.tabPageInject.Padding = new System.Windows.Forms.Padding(3);
- this.tabPageInject.Size = new System.Drawing.Size(605, 396);
+ this.tabPageInject.Size = new System.Drawing.Size(619, 460);
this.tabPageInject.TabIndex = 2;
this.tabPageInject.Text = "Inject";
this.tabPageInject.UseVisualStyleBackColor = true;
//
- // radioButtonViewer
- //
- this.radioButtonViewer.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
- this.radioButtonViewer.AutoSize = true;
- this.radioButtonViewer.Location = new System.Drawing.Point(397, 370);
- this.radioButtonViewer.Name = "radioButtonViewer";
- this.radioButtonViewer.Size = new System.Drawing.Size(97, 17);
- this.radioButtonViewer.TabIndex = 4;
- this.radioButtonViewer.Text = "Send to Viewer";
- this.radioButtonViewer.UseVisualStyleBackColor = true;
- //
- // radioButtonSimulator
- //
- this.radioButtonSimulator.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
- this.radioButtonSimulator.AutoSize = true;
- this.radioButtonSimulator.Checked = true;
- this.radioButtonSimulator.Location = new System.Drawing.Point(283, 370);
- this.radioButtonSimulator.Name = "radioButtonSimulator";
- this.radioButtonSimulator.Size = new System.Drawing.Size(108, 17);
- this.radioButtonSimulator.TabIndex = 3;
- this.radioButtonSimulator.TabStop = true;
- this.radioButtonSimulator.Text = "Send to Simulator";
- this.radioButtonSimulator.UseVisualStyleBackColor = true;
- //
- // button3
- //
- this.button3.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
- this.button3.Enabled = false;
- this.button3.Location = new System.Drawing.Point(6, 367);
- this.button3.Name = "button3";
- this.button3.Size = new System.Drawing.Size(105, 23);
- this.button3.TabIndex = 2;
- this.button3.Text = "Packet Builder";
- this.button3.UseVisualStyleBackColor = true;
- //
// buttonInjectPacket
//
this.buttonInjectPacket.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
this.buttonInjectPacket.Enabled = false;
- this.buttonInjectPacket.Location = new System.Drawing.Point(522, 367);
+ this.buttonInjectPacket.Location = new System.Drawing.Point(536, 429);
this.buttonInjectPacket.Name = "buttonInjectPacket";
this.buttonInjectPacket.Size = new System.Drawing.Size(75, 23);
this.buttonInjectPacket.TabIndex = 1;
@@ -1426,19 +1279,20 @@
this.richTextBoxInject.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
+ this.richTextBoxInject.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
this.richTextBoxInject.Location = new System.Drawing.Point(6, 6);
this.richTextBoxInject.Name = "richTextBoxInject";
- this.richTextBoxInject.Size = new System.Drawing.Size(591, 355);
+ this.richTextBoxInject.Size = new System.Drawing.Size(605, 417);
this.richTextBoxInject.TabIndex = 0;
this.richTextBoxInject.Text = "";
this.richTextBoxInject.TextChanged += new System.EventHandler(this.richTextBoxInject_TextChanged);
//
- // markToolStripMenuItem1
+ // selectToolStripMenuItem1
//
- this.markToolStripMenuItem1.DropDown = this.contextMenuStripMark;
- this.markToolStripMenuItem1.Name = "markToolStripMenuItem1";
- this.markToolStripMenuItem1.Size = new System.Drawing.Size(137, 22);
- this.markToolStripMenuItem1.Text = "Mark";
+ this.selectToolStripMenuItem1.DropDown = this.contextMenuStripSelect;
+ this.selectToolStripMenuItem1.Name = "selectToolStripMenuItem1";
+ this.selectToolStripMenuItem1.Size = new System.Drawing.Size(137, 22);
+ this.selectToolStripMenuItem1.Text = "Select";
//
// toolStripLabelHexEditorRequest
//
@@ -1450,25 +1304,23 @@
this.toolStripStatusLabel1.Name = "toolStripStatusLabel1";
this.toolStripStatusLabel1.Size = new System.Drawing.Size(0, 17);
//
- // toolStrip1
+ // toolStripMenu
//
- this.toolStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
+ this.toolStripMenu.Dock = System.Windows.Forms.DockStyle.None;
+ this.toolStripMenu.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.toolStripFileMenu,
this.EditToolStripButton,
- this.toolStripDropDownButton5,
this.toolStripDropDownButton4});
- this.toolStrip1.Location = new System.Drawing.Point(0, 0);
- this.toolStrip1.Name = "toolStrip1";
- this.toolStrip1.Size = new System.Drawing.Size(1111, 25);
- this.toolStrip1.TabIndex = 2;
- this.toolStrip1.Text = "toolStrip1";
+ this.toolStripMenu.Location = new System.Drawing.Point(3, 0);
+ this.toolStripMenu.Name = "toolStripMenu";
+ this.toolStripMenu.Size = new System.Drawing.Size(108, 25);
+ this.toolStripMenu.TabIndex = 2;
+ this.toolStripMenu.Text = "toolStrip1";
//
// toolStripFileMenu
//
this.toolStripFileMenu.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Text;
this.toolStripFileMenu.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
- this.captureToolStripMenuItem,
- this.toolStripSeparator7,
this.saveSessionArchiveToolStripMenuItem,
this.loadSessionArchiveToolStripMenuItem,
this.toolStripSeparator18,
@@ -1487,19 +1339,6 @@
this.toolStripFileMenu.Text = "&File";
this.toolStripFileMenu.DropDownOpening += new System.EventHandler(this.EditToolStripButton_DropDownOpening);
//
- // captureToolStripMenuItem
- //
- this.captureToolStripMenuItem.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Text;
- this.captureToolStripMenuItem.Name = "captureToolStripMenuItem";
- this.captureToolStripMenuItem.ShortcutKeys = System.Windows.Forms.Keys.F12;
- this.captureToolStripMenuItem.Size = new System.Drawing.Size(185, 22);
- this.captureToolStripMenuItem.Text = "Capture";
- //
- // toolStripSeparator7
- //
- this.toolStripSeparator7.Name = "toolStripSeparator7";
- this.toolStripSeparator7.Size = new System.Drawing.Size(182, 6);
- //
// saveSessionArchiveToolStripMenuItem
//
this.saveSessionArchiveToolStripMenuItem.Name = "saveSessionArchiveToolStripMenuItem";
@@ -1514,6 +1353,26 @@
this.loadSessionArchiveToolStripMenuItem.Text = "Load Session Archive";
this.loadSessionArchiveToolStripMenuItem.Click += new System.EventHandler(this.loadSessionArchiveToolStripMenuItem_Click);
//
+ // toolStripSeparator18
+ //
+ this.toolStripSeparator18.Name = "toolStripSeparator18";
+ this.toolStripSeparator18.Size = new System.Drawing.Size(182, 6);
+ //
+ // exportToolStripMenuItem
+ //
+ this.exportToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
+ this.asDecodedTextToolStripMenuItem});
+ this.exportToolStripMenuItem.Name = "exportToolStripMenuItem";
+ this.exportToolStripMenuItem.Size = new System.Drawing.Size(185, 22);
+ this.exportToolStripMenuItem.Text = "Export";
+ //
+ // asDecodedTextToolStripMenuItem
+ //
+ this.asDecodedTextToolStripMenuItem.Name = "asDecodedTextToolStripMenuItem";
+ this.asDecodedTextToolStripMenuItem.Size = new System.Drawing.Size(162, 22);
+ this.asDecodedTextToolStripMenuItem.Text = "As Decoded Text";
+ this.asDecodedTextToolStripMenuItem.Click += new System.EventHandler(this.asDecodedTextToolStripMenuItem_Click);
+ //
// toolStripSeparator8
//
this.toolStripSeparator8.Name = "toolStripSeparator8";
@@ -1522,22 +1381,15 @@
// settingsToolStripMenuItem
//
this.settingsToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
- this.autoScrollSessionsToolStripMenuItem,
this.enableStatisticsToolStripMenuItem,
this.saveOptionsOnExitToolStripMenuItem,
- this.startProxyOnStartupToolStripMenuItem});
+ this.startProxyOnStartupToolStripMenuItem,
+ this.toolStripSeparator6,
+ this.saveSettingsToolStripMenuItem});
this.settingsToolStripMenuItem.Name = "settingsToolStripMenuItem";
this.settingsToolStripMenuItem.Size = new System.Drawing.Size(185, 22);
this.settingsToolStripMenuItem.Text = "Settings";
//
- // autoScrollSessionsToolStripMenuItem
- //
- this.autoScrollSessionsToolStripMenuItem.CheckOnClick = true;
- this.autoScrollSessionsToolStripMenuItem.Name = "autoScrollSessionsToolStripMenuItem";
- this.autoScrollSessionsToolStripMenuItem.Size = new System.Drawing.Size(216, 22);
- this.autoScrollSessionsToolStripMenuItem.Text = "Auto Scroll Sessions";
- this.autoScrollSessionsToolStripMenuItem.CheckedChanged += new System.EventHandler(this.sessionEnableAutoScroll_CheckedChanged);
- //
// enableStatisticsToolStripMenuItem
//
this.enableStatisticsToolStripMenuItem.Checked = true;
@@ -1564,7 +1416,19 @@
this.startProxyOnStartupToolStripMenuItem.CheckState = System.Windows.Forms.CheckState.Checked;
this.startProxyOnStartupToolStripMenuItem.Name = "startProxyOnStartupToolStripMenuItem";
this.startProxyOnStartupToolStripMenuItem.Size = new System.Drawing.Size(216, 22);
- this.startProxyOnStartupToolStripMenuItem.Text = "Start Proxy on Startup";
+ this.startProxyOnStartupToolStripMenuItem.Text = "Run Proxy on start";
+ //
+ // toolStripSeparator6
+ //
+ this.toolStripSeparator6.Name = "toolStripSeparator6";
+ this.toolStripSeparator6.Size = new System.Drawing.Size(213, 6);
+ //
+ // saveSettingsToolStripMenuItem
+ //
+ this.saveSettingsToolStripMenuItem.Name = "saveSettingsToolStripMenuItem";
+ this.saveSettingsToolStripMenuItem.Size = new System.Drawing.Size(216, 22);
+ this.saveSettingsToolStripMenuItem.Text = "Save Settings";
+ this.saveSettingsToolStripMenuItem.Click += new System.EventHandler(this.saveSettingsToolStripMenuItem_Click);
//
// toolStripSeparator9
//
@@ -1671,60 +1535,6 @@
this.findToolStripMenuItem.Text = "Find";
this.findToolStripMenuItem.Click += new System.EventHandler(this.findSessions_Click);
//
- // toolStripDropDownButton5
- //
- this.toolStripDropDownButton5.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Text;
- this.toolStripDropDownButton5.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
- this.saveFilterSelectionsToolStripMenuItem,
- this.loadFilterSelectionsToolStripMenuItem,
- this.toolStripSeparator6,
- this.optionsToolStripMenuItem});
- this.toolStripDropDownButton5.Image = ((System.Drawing.Image)(resources.GetObject("toolStripDropDownButton5.Image")));
- this.toolStripDropDownButton5.ImageTransparentColor = System.Drawing.Color.Magenta;
- this.toolStripDropDownButton5.Name = "toolStripDropDownButton5";
- this.toolStripDropDownButton5.ShowDropDownArrow = false;
- this.toolStripDropDownButton5.Size = new System.Drawing.Size(42, 22);
- this.toolStripDropDownButton5.Text = "F&ilters";
- this.toolStripDropDownButton5.DropDownOpening += new System.EventHandler(this.EditToolStripButton_DropDownOpening);
- //
- // saveFilterSelectionsToolStripMenuItem
- //
- this.saveFilterSelectionsToolStripMenuItem.Enabled = false;
- this.saveFilterSelectionsToolStripMenuItem.Name = "saveFilterSelectionsToolStripMenuItem";
- this.saveFilterSelectionsToolStripMenuItem.Size = new System.Drawing.Size(185, 22);
- this.saveFilterSelectionsToolStripMenuItem.Text = "Save Filter Selections";
- this.saveFilterSelectionsToolStripMenuItem.Click += new System.EventHandler(this.saveFilterSelectionsToolStripMenuItem_Click);
- //
- // loadFilterSelectionsToolStripMenuItem
- //
- this.loadFilterSelectionsToolStripMenuItem.Enabled = false;
- this.loadFilterSelectionsToolStripMenuItem.Name = "loadFilterSelectionsToolStripMenuItem";
- this.loadFilterSelectionsToolStripMenuItem.Size = new System.Drawing.Size(185, 22);
- this.loadFilterSelectionsToolStripMenuItem.Text = "Load Filter Selections";
- this.loadFilterSelectionsToolStripMenuItem.Click += new System.EventHandler(this.loadFilterSelectionsToolStripMenuItem_Click);
- //
- // toolStripSeparator6
- //
- this.toolStripSeparator6.Name = "toolStripSeparator6";
- this.toolStripSeparator6.Size = new System.Drawing.Size(182, 6);
- //
- // optionsToolStripMenuItem
- //
- this.optionsToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
- this.autoAddNewDiscoveredMessagesToolStripMenuItem});
- this.optionsToolStripMenuItem.Name = "optionsToolStripMenuItem";
- this.optionsToolStripMenuItem.Size = new System.Drawing.Size(185, 22);
- this.optionsToolStripMenuItem.Text = "Options";
- //
- // autoAddNewDiscoveredMessagesToolStripMenuItem
- //
- this.autoAddNewDiscoveredMessagesToolStripMenuItem.Checked = true;
- this.autoAddNewDiscoveredMessagesToolStripMenuItem.CheckOnClick = true;
- this.autoAddNewDiscoveredMessagesToolStripMenuItem.CheckState = System.Windows.Forms.CheckState.Checked;
- this.autoAddNewDiscoveredMessagesToolStripMenuItem.Name = "autoAddNewDiscoveredMessagesToolStripMenuItem";
- this.autoAddNewDiscoveredMessagesToolStripMenuItem.Size = new System.Drawing.Size(220, 22);
- this.autoAddNewDiscoveredMessagesToolStripMenuItem.Text = "Autocheck new Capabilities";
- //
// toolStripDropDownButton4
//
this.toolStripDropDownButton4.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
@@ -2027,21 +1837,6 @@
this.openFileDialog2.Filter = "Filter Files|*.osd|All Files|*.*";
this.openFileDialog2.Title = "Load Saved Filter Settings";
//
- // statusStrip3
- //
- this.statusStrip3.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
- this.toolStripMainLabel});
- this.statusStrip3.Location = new System.Drawing.Point(0, 497);
- this.statusStrip3.Name = "statusStrip3";
- this.statusStrip3.Size = new System.Drawing.Size(1111, 22);
- this.statusStrip3.TabIndex = 5;
- this.statusStrip3.Text = "statusStrip3";
- //
- // toolStripMainLabel
- //
- this.toolStripMainLabel.Name = "toolStripMainLabel";
- this.toolStripMainLabel.Size = new System.Drawing.Size(0, 17);
- //
// contextMenuStripFilterOptions
//
this.contextMenuStripFilterOptions.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
@@ -2077,40 +1872,238 @@
this.autoColorizeToolStripMenuItem.Text = "Auto Colorize";
this.autoColorizeToolStripMenuItem.Click += new System.EventHandler(this.autoColorizeToolStripMenuItem_Click);
//
- // exportToolStripMenuItem
+ // toolStripContainer1
//
- this.exportToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
- this.asDecodedTextToolStripMenuItem});
- this.exportToolStripMenuItem.Name = "exportToolStripMenuItem";
- this.exportToolStripMenuItem.Size = new System.Drawing.Size(185, 22);
- this.exportToolStripMenuItem.Text = "Export";
//
- // toolStripSeparator18
+ // toolStripContainer1.ContentPanel
//
- this.toolStripSeparator18.Name = "toolStripSeparator18";
- this.toolStripSeparator18.Size = new System.Drawing.Size(182, 6);
+ this.toolStripContainer1.ContentPanel.AutoScroll = true;
+ this.toolStripContainer1.ContentPanel.Controls.Add(this.panelMainWindow);
+ this.toolStripContainer1.ContentPanel.Size = new System.Drawing.Size(1111, 494);
+ this.toolStripContainer1.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.toolStripContainer1.LeftToolStripPanelVisible = false;
+ this.toolStripContainer1.Location = new System.Drawing.Point(0, 0);
+ this.toolStripContainer1.Name = "toolStripContainer1";
+ this.toolStripContainer1.RightToolStripPanelVisible = false;
+ this.toolStripContainer1.Size = new System.Drawing.Size(1111, 519);
+ this.toolStripContainer1.TabIndex = 6;
+ this.toolStripContainer1.Text = "toolStripContainer1";
//
- // asDecodedTextToolStripMenuItem
+ // toolStripContainer1.TopToolStripPanel
//
- this.asDecodedTextToolStripMenuItem.Name = "asDecodedTextToolStripMenuItem";
- this.asDecodedTextToolStripMenuItem.Size = new System.Drawing.Size(162, 22);
- this.asDecodedTextToolStripMenuItem.Text = "As Decoded Text";
- this.asDecodedTextToolStripMenuItem.Click += new System.EventHandler(this.asDecodedTextToolStripMenuItem_Click);
+ this.toolStripContainer1.TopToolStripPanel.Controls.Add(this.toolStripMenu);
+ this.toolStripContainer1.TopToolStripPanel.Controls.Add(this.toolStripLogin);
+ //
+ // toolStripLogin
+ //
+ this.toolStripLogin.Dock = System.Windows.Forms.DockStyle.None;
+ this.toolStripLogin.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
+ this.toolStripLabel1,
+ this.comboBoxListenAddress,
+ this.toolStripLabel2,
+ this.textBoxProxyPort,
+ this.toolStripLabel3,
+ this.comboBoxLoginURL,
+ this.buttonStartProxy});
+ this.toolStripLogin.LayoutStyle = System.Windows.Forms.ToolStripLayoutStyle.HorizontalStackWithOverflow;
+ this.toolStripLogin.Location = new System.Drawing.Point(111, 0);
+ this.toolStripLogin.Name = "toolStripLogin";
+ this.toolStripLogin.Size = new System.Drawing.Size(751, 25);
+ this.toolStripLogin.TabIndex = 3;
+ //
+ // toolStripLabel1
+ //
+ this.toolStripLabel1.Name = "toolStripLabel1";
+ this.toolStripLabel1.Size = new System.Drawing.Size(99, 22);
+ this.toolStripLabel1.Text = "Listen IP Address:";
+ //
+ // comboBoxListenAddress
+ //
+ this.comboBoxListenAddress.Name = "comboBoxListenAddress";
+ this.comboBoxListenAddress.Size = new System.Drawing.Size(121, 25);
+ this.comboBoxListenAddress.Text = "127.0.0.1";
+ //
+ // toolStripLabel2
+ //
+ this.toolStripLabel2.Name = "toolStripLabel2";
+ this.toolStripLabel2.Size = new System.Drawing.Size(32, 22);
+ this.toolStripLabel2.Text = "Port:";
+ //
+ // textBoxProxyPort
+ //
+ this.textBoxProxyPort.Name = "textBoxProxyPort";
+ this.textBoxProxyPort.Size = new System.Drawing.Size(50, 25);
+ this.textBoxProxyPort.Text = "8080";
+ //
+ // toolStripLabel3
+ //
+ this.toolStripLabel3.Name = "toolStripLabel3";
+ this.toolStripLabel3.Size = new System.Drawing.Size(64, 22);
+ this.toolStripLabel3.Text = "Login URL:";
+ //
+ // comboBoxLoginURL
+ //
+ this.comboBoxLoginURL.Items.AddRange(new object[] {
+ "https://login.agni.lindenlab.com/cgi-bin/login.cgi",
+ "https://login.aditi.lindenlab.com/cgi-bin/login.cgi",
+ "http://127.0.0.1:8002",
+ "http://osgrid.org:8002"});
+ this.comboBoxLoginURL.Name = "comboBoxLoginURL";
+ this.comboBoxLoginURL.Size = new System.Drawing.Size(300, 25);
+ this.comboBoxLoginURL.Text = "https://login.agni.lindenlab.com/cgi-bin/login.cgi";
+ //
+ // buttonStartProxy
+ //
+ this.buttonStartProxy.BackColor = System.Drawing.Color.LightGreen;
+ this.buttonStartProxy.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Text;
+ this.buttonStartProxy.Image = global::WinGridProxy.Properties.Resources.accept;
+ this.buttonStartProxy.ImageTransparentColor = System.Drawing.Color.Magenta;
+ this.buttonStartProxy.Name = "buttonStartProxy";
+ this.buttonStartProxy.Size = new System.Drawing.Size(67, 22);
+ this.buttonStartProxy.Text = "Start Proxy";
+ this.buttonStartProxy.Click += new System.EventHandler(this.buttonStartProxy_Click);
+ //
+ // saveFileDialog3
+ //
+ this.saveFileDialog3.DefaultExt = "packet";
+ this.saveFileDialog3.Filter = "Packets|*.packet|All Files|*.*";
+ this.saveFileDialog3.Title = "Export Binary Data to File";
+ //
+ // listViewSessions
+ //
+ this.listViewSessions.AllowColumnReorder = true;
+ this.listViewSessions.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] {
+ this.columnHeaderCounter,
+ this.columnHeaderProtocol,
+ this.columnHeaderType,
+ this.columnHeaderSize,
+ this.columnHeaderUrl,
+ this.columnHeaderContentType});
+ this.listViewSessions.ContextMenuStrip = this.contextMenuStripSessions;
+ this.listViewSessions.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.listViewSessions.Font = new System.Drawing.Font("Consolas", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.listViewSessions.FullRowSelect = true;
+ this.listViewSessions.GridLines = true;
+ this.listViewSessions.HideSelection = false;
+ this.listViewSessions.Location = new System.Drawing.Point(0, 0);
+ this.listViewSessions.Name = "listViewSessions";
+ this.listViewSessions.Size = new System.Drawing.Size(479, 494);
+ this.listViewSessions.SmallImageList = this.imageList1;
+ this.listViewSessions.TabIndex = 0;
+ this.listViewSessions.UseCompatibleStateImageBehavior = false;
+ this.listViewSessions.View = System.Windows.Forms.View.Details;
+ this.listViewSessions.ColumnClick += new System.Windows.Forms.ColumnClickEventHandler(this.listViewSessions_ColumnClick);
+ this.listViewSessions.ItemSelectionChanged += new System.Windows.Forms.ListViewItemSelectionChangedEventHandler(this.listViewSessions_ItemSelectionChanged);
+ //
+ // columnHeaderCounter
+ //
+ this.columnHeaderCounter.Tag = "number";
+ this.columnHeaderCounter.Text = "#";
+ this.columnHeaderCounter.Width = 40;
+ //
+ // columnHeaderProtocol
+ //
+ this.columnHeaderProtocol.Tag = "string";
+ this.columnHeaderProtocol.Text = "Protocol";
+ //
+ // columnHeaderType
+ //
+ this.columnHeaderType.Tag = "string";
+ this.columnHeaderType.Text = "Name";
+ this.columnHeaderType.Width = 151;
+ //
+ // columnHeaderSize
+ //
+ this.columnHeaderSize.Tag = "";
+ this.columnHeaderSize.Text = "Bytes";
+ this.columnHeaderSize.Width = 42;
+ //
+ // columnHeaderUrl
+ //
+ this.columnHeaderUrl.Text = "Host";
+ this.columnHeaderUrl.Width = 312;
+ //
+ // columnHeaderContentType
+ //
+ this.columnHeaderContentType.Text = "Content Type";
+ this.columnHeaderContentType.Width = 250;
+ //
+ // listViewPacketFilters
+ //
+ this.listViewPacketFilters.BorderStyle = System.Windows.Forms.BorderStyle.None;
+ this.listViewPacketFilters.CheckBoxes = true;
+ this.listViewPacketFilters.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] {
+ this.columnHeaderPacketName});
+ this.listViewPacketFilters.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.listViewPacketFilters.FullRowSelect = true;
+ this.listViewPacketFilters.GridLines = true;
+ listViewGroup1.Header = "Login";
+ listViewGroup1.Name = "Login";
+ listViewGroup2.Header = "Packets";
+ listViewGroup2.Name = "Packets";
+ this.listViewPacketFilters.Groups.AddRange(new System.Windows.Forms.ListViewGroup[] {
+ listViewGroup1,
+ listViewGroup2});
+ this.listViewPacketFilters.HeaderStyle = System.Windows.Forms.ColumnHeaderStyle.None;
+ this.listViewPacketFilters.Location = new System.Drawing.Point(3, 17);
+ this.listViewPacketFilters.MultiSelect = false;
+ this.listViewPacketFilters.Name = "listViewPacketFilters";
+ this.listViewPacketFilters.Size = new System.Drawing.Size(291, 374);
+ this.listViewPacketFilters.Sorting = System.Windows.Forms.SortOrder.Ascending;
+ this.listViewPacketFilters.TabIndex = 0;
+ this.listViewPacketFilters.UseCompatibleStateImageBehavior = false;
+ this.listViewPacketFilters.View = System.Windows.Forms.View.Details;
+ this.listViewPacketFilters.ItemChecked += new System.Windows.Forms.ItemCheckedEventHandler(this.listViewPacketFilters_ItemChecked);
+ this.listViewPacketFilters.ColumnClick += new System.Windows.Forms.ColumnClickEventHandler(this.listViewFilterSorter_ColumnClick);
+ //
+ // columnHeaderPacketName
+ //
+ this.columnHeaderPacketName.Text = "Name";
+ this.columnHeaderPacketName.Width = 287;
+ //
+ // listViewMessageFilters
+ //
+ this.listViewMessageFilters.BorderStyle = System.Windows.Forms.BorderStyle.None;
+ this.listViewMessageFilters.CheckBoxes = true;
+ this.listViewMessageFilters.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] {
+ this.columnHeaderName});
+ this.listViewMessageFilters.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.listViewMessageFilters.FullRowSelect = true;
+ this.listViewMessageFilters.GridLines = true;
+ listViewGroup3.Header = "Capabilities";
+ listViewGroup3.Name = "Capabilities";
+ listViewGroup4.Header = "EventQueue Messages";
+ listViewGroup4.Name = "EventQueueMessages";
+ this.listViewMessageFilters.Groups.AddRange(new System.Windows.Forms.ListViewGroup[] {
+ listViewGroup3,
+ listViewGroup4});
+ this.listViewMessageFilters.HeaderStyle = System.Windows.Forms.ColumnHeaderStyle.None;
+ this.listViewMessageFilters.Location = new System.Drawing.Point(3, 17);
+ this.listViewMessageFilters.MultiSelect = false;
+ this.listViewMessageFilters.Name = "listViewMessageFilters";
+ this.listViewMessageFilters.Size = new System.Drawing.Size(293, 374);
+ this.listViewMessageFilters.Sorting = System.Windows.Forms.SortOrder.Ascending;
+ this.listViewMessageFilters.TabIndex = 1;
+ this.listViewMessageFilters.UseCompatibleStateImageBehavior = false;
+ this.listViewMessageFilters.View = System.Windows.Forms.View.Details;
+ this.listViewMessageFilters.ItemChecked += new System.Windows.Forms.ItemCheckedEventHandler(this.listViewMessageFilters_ItemChecked);
+ this.listViewMessageFilters.ColumnClick += new System.Windows.Forms.ColumnClickEventHandler(this.listViewFilterSorter_ColumnClick);
+ //
+ // columnHeaderName
+ //
+ this.columnHeaderName.Text = "Name";
+ this.columnHeaderName.Width = 289;
//
// FormWinGridProxy
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(1111, 519);
- this.Controls.Add(this.statusStrip3);
- this.Controls.Add(this.toolStrip1);
- this.Controls.Add(this.panelMainWindow);
- this.Controls.Add(this.panelProxyConfig);
+ this.Controls.Add(this.toolStripContainer1);
+ this.Font = new System.Drawing.Font("Segoe UI", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.Name = "FormWinGridProxy";
this.Text = "WinGridProxy";
this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.Form1_FormClosing);
- this.panelProxyConfig.ResumeLayout(false);
- this.panelProxyConfig.PerformLayout();
this.panelMainWindow.ResumeLayout(false);
this.splitContainerSessionsTabs.Panel1.ResumeLayout(false);
this.splitContainerSessionsTabs.Panel2.ResumeLayout(false);
@@ -2119,7 +2112,7 @@
this.contextMenuStripRemove.ResumeLayout(false);
this.contextMenuStripSelect.ResumeLayout(false);
this.contextMenuStripMark.ResumeLayout(false);
- this.tabControl1.ResumeLayout(false);
+ this.tabControlMain.ResumeLayout(false);
this.tabPageSummary.ResumeLayout(false);
this.panelStats.ResumeLayout(false);
this.groupBox2.ResumeLayout(false);
@@ -2127,6 +2120,9 @@
this.groupBox1.ResumeLayout(false);
this.groupBox1.PerformLayout();
this.tabPageFilters.ResumeLayout(false);
+ this.tabPageFilters.PerformLayout();
+ this.toolStripFilters.ResumeLayout(false);
+ this.toolStripFilters.PerformLayout();
this.splitContainerFilters.Panel1.ResumeLayout(false);
this.splitContainerFilters.Panel1.PerformLayout();
this.splitContainerFilters.Panel2.ResumeLayout(false);
@@ -2145,8 +2141,6 @@
this.tabPageRequestJson.ResumeLayout(false);
this.tabPageHexRequest.ResumeLayout(false);
this.tabPageHexRequest.PerformLayout();
- this.statusStrip2.ResumeLayout(false);
- this.statusStrip2.PerformLayout();
this.tabControlInspectorResponse.ResumeLayout(false);
this.tabPageDecodeResponse.ResumeLayout(false);
this.tabPageInspectorRAWResponse.ResumeLayout(false);
@@ -2154,33 +2148,28 @@
this.tabPageResponseJson.ResumeLayout(false);
this.tabPageHexViewResponse.ResumeLayout(false);
this.tabPageHexViewResponse.PerformLayout();
- this.statusStrip1.ResumeLayout(false);
- this.statusStrip1.PerformLayout();
this.tabPageInject.ResumeLayout(false);
- this.tabPageInject.PerformLayout();
- this.toolStrip1.ResumeLayout(false);
- this.toolStrip1.PerformLayout();
+ this.toolStripMenu.ResumeLayout(false);
+ this.toolStripMenu.PerformLayout();
this.contextMenuStripCopy.ResumeLayout(false);
- this.statusStrip3.ResumeLayout(false);
- this.statusStrip3.PerformLayout();
this.contextMenuStripFilterOptions.ResumeLayout(false);
+ this.toolStripContainer1.ContentPanel.ResumeLayout(false);
+ this.toolStripContainer1.TopToolStripPanel.ResumeLayout(false);
+ this.toolStripContainer1.TopToolStripPanel.PerformLayout();
+ this.toolStripContainer1.ResumeLayout(false);
+ this.toolStripContainer1.PerformLayout();
+ this.toolStripLogin.ResumeLayout(false);
+ this.toolStripLogin.PerformLayout();
this.ResumeLayout(false);
- this.PerformLayout();
}
#endregion
- private System.Windows.Forms.Panel panelProxyConfig;
- private System.Windows.Forms.Label label3;
- private System.Windows.Forms.Label label2;
- private System.Windows.Forms.TextBox textBoxProxyPort;
- private System.Windows.Forms.Button button1;
- private System.Windows.Forms.Label label1;
private System.Windows.Forms.Panel panelMainWindow;
private System.Windows.Forms.SplitContainer splitContainerSessionsTabs;
private ListViewNoFlicker listViewSessions;
- private System.Windows.Forms.TabControl tabControl1;
+ private System.Windows.Forms.TabControl tabControlMain;
private System.Windows.Forms.TabPage tabPageSummary;
private System.Windows.Forms.TabPage tabPageFilters;
private System.Windows.Forms.SplitContainer splitContainerFilters;
@@ -2192,7 +2181,7 @@
private System.Windows.Forms.ColumnHeader columnHeaderProtocol;
private System.Windows.Forms.ColumnHeader columnHeaderType;
private System.Windows.Forms.ColumnHeader columnHeaderUrl;
- private System.Windows.Forms.ToolStrip toolStrip1;
+ private System.Windows.Forms.ToolStrip toolStripMenu;
private System.Windows.Forms.ToolStripDropDownButton toolStripDropDownButton1;
private System.Windows.Forms.ToolStripMenuItem captureTrafficToolStripMenuItem;
private System.Windows.Forms.ToolStripSeparator toolStripSeparator1;
@@ -2208,7 +2197,6 @@
private System.Windows.Forms.RichTextBox richTextBoxRawResponse;
private System.Windows.Forms.TreeView treeViewXmlResponse;
private System.Windows.Forms.TabPage tabPageHexViewResponse;
- private System.Windows.Forms.StatusStrip statusStrip1;
private Be.Windows.Forms.HexBox hexBoxResponse;
private System.Windows.Forms.ToolStripStatusLabel toolStripStatusLabel1;
private System.Windows.Forms.Button buttonInjectPacket;
@@ -2246,7 +2234,6 @@
private System.Windows.Forms.ToolStripDropDownButton toolStripDropDownButton3;
private System.Windows.Forms.ToolStripMenuItem saveToolStripMenuItem;
private System.Windows.Forms.ToolStripMenuItem loadToolStripMenuItem;
- private System.Windows.Forms.Button button3;
private System.Windows.Forms.SplitContainer splitContainerInspectorTab;
private System.Windows.Forms.TabControl tabControlInspectorRequest;
private System.Windows.Forms.TabPage tabPageRawRequest;
@@ -2254,7 +2241,6 @@
private System.Windows.Forms.TabPage tabPageXMLRequest;
private System.Windows.Forms.TreeView treeViewXMLRequest;
private System.Windows.Forms.TabPage tabPageHexRequest;
- private System.Windows.Forms.StatusStrip statusStrip2;
private System.Windows.Forms.ToolStripStatusLabel toolStripLabelHexEditorRequest;
private Be.Windows.Forms.HexBox hexBoxRequest;
private System.Windows.Forms.ToolStripMenuItem redToolStripMenuItem;
@@ -2268,12 +2254,8 @@
private System.Windows.Forms.ToolStripMenuItem aboutWinGridProxyToolStripMenuItem;
private System.Windows.Forms.CheckBox checkBoxCheckAllMessages;
private System.Windows.Forms.GroupBox grpCapsFilters;
- private System.Windows.Forms.ToolStripStatusLabel labelRequestHex;
- private System.Windows.Forms.ToolStripStatusLabel labelResponseHex;
private System.Windows.Forms.ToolStripDropDownButton toolStripDropDownButton4;
private System.Windows.Forms.ToolStripDropDownButton toolStripFileMenu;
- private System.Windows.Forms.ToolStripMenuItem captureToolStripMenuItem;
- private System.Windows.Forms.ToolStripSeparator toolStripSeparator7;
private System.Windows.Forms.ToolStripMenuItem loadSessionArchiveToolStripMenuItem;
private System.Windows.Forms.ToolStripMenuItem saveSessionArchiveToolStripMenuItem;
private System.Windows.Forms.ToolStripSeparator toolStripSeparator8;
@@ -2290,8 +2272,6 @@
private System.Windows.Forms.ToolStripSeparator toolStripSeparator12;
private System.Windows.Forms.ToolStripMenuItem findToolStripMenuItem;
private System.Windows.Forms.ContextMenuStrip contextMenuStripSessions;
- private System.Windows.Forms.ToolStripMenuItem toolStripMenuItemAutoScroll;
- private System.Windows.Forms.ToolStripSeparator toolStripSeparator13;
private System.Windows.Forms.ToolStripMenuItem toolStripMenuSessionsRemove;
private System.Windows.Forms.ToolStripSeparator toolStripSeparatorFilterPacketByName;
private System.Windows.Forms.ToolStripMenuItem enableDisableFilterByNameToolStripMenuItem;
@@ -2299,7 +2279,6 @@
private System.Windows.Forms.ToolStripMenuItem findToolStripMenuItem1;
private System.Windows.Forms.ToolStripSeparator toolStripSeparator16;
private System.Windows.Forms.ToolStripMenuItem markToolStripMenuItem2;
- private System.Windows.Forms.ToolStripMenuItem autoScrollSessionsToolStripMenuItem;
private System.Windows.Forms.ContextMenuStrip contextMenuStripMark;
private System.Windows.Forms.ToolStripMenuItem redToolStripMenuItem2;
private System.Windows.Forms.ToolStripMenuItem goldToolStripMenuItem2;
@@ -2325,11 +2304,6 @@
private System.Windows.Forms.ToolStripMenuItem toolStripMenuItemRemoveSelected;
private System.Windows.Forms.ToolStripMenuItem toolStripMenuItemRemoveUnselected;
private System.Windows.Forms.ToolStripMenuItem enableStatisticsToolStripMenuItem;
- private System.Windows.Forms.RadioButton radioButtonSimulator;
- private System.Windows.Forms.RadioButton radioButtonViewer;
- private System.Windows.Forms.ToolStripDropDownButton toolStripDropDownButton5;
- private System.Windows.Forms.ToolStripMenuItem saveFilterSelectionsToolStripMenuItem;
- private System.Windows.Forms.ToolStripMenuItem loadFilterSelectionsToolStripMenuItem;
private ListViewNoFlicker listViewPacketFilters;
private System.Windows.Forms.ColumnHeader columnHeaderPacketName;
private ListViewNoFlicker listViewMessageFilters;
@@ -2340,12 +2314,6 @@
private System.Windows.Forms.SaveFileDialog saveFileDialog2;
private System.Windows.Forms.OpenFileDialog openFileDialog2;
private System.Windows.Forms.ToolStripMenuItem startProxyOnStartupToolStripMenuItem;
- private System.Windows.Forms.ToolStripSeparator toolStripSeparator6;
- private System.Windows.Forms.ToolStripMenuItem optionsToolStripMenuItem;
- private System.Windows.Forms.ToolStripMenuItem autoAddNewDiscoveredMessagesToolStripMenuItem;
- private System.Windows.Forms.ComboBox comboBoxLoginURL;
- private System.Windows.Forms.ColumnHeader columnHeaderMessageType;
- private System.Windows.Forms.ColumnHeader columnHeaderPacketType;
private System.Windows.Forms.TabPage tabPageRequestJson;
private System.Windows.Forms.RichTextBox richTextBoxNotationRequest;
private System.Windows.Forms.TabPage tabPageResponseJson;
@@ -2354,8 +2322,6 @@
private System.Windows.Forms.RichTextBox richTextBoxDecodedRequest;
private System.Windows.Forms.TabPage tabPageDecodeResponse;
private System.Windows.Forms.RichTextBox richTextBoxDecodedResponse;
- private System.Windows.Forms.StatusStrip statusStrip3;
- private System.Windows.Forms.ToolStripStatusLabel toolStripMainLabel;
private System.Windows.Forms.ContextMenuStrip contextMenuStripFilterOptions;
private System.Windows.Forms.ToolStripMenuItem toolStripMenuItem2;
private System.Windows.Forms.ToolStripMenuItem uncheckAllToolStripMenuItem;
@@ -2363,13 +2329,34 @@
private System.Windows.Forms.ToolStripMenuItem autoColorizeToolStripMenuItem;
private System.Windows.Forms.ColorDialog colorDialog1;
private System.Windows.Forms.ColumnHeader columnHeaderContentType;
- private System.Windows.Forms.ComboBox comboBoxListenAddress;
private System.Windows.Forms.ToolStripMenuItem toolStripMenuItemPlugins;
private System.Windows.Forms.ToolStripSeparator toolStripSeparator14;
private System.Windows.Forms.RichTextBox richTextBoxDebugLog;
private System.Windows.Forms.ToolStripSeparator toolStripSeparator18;
private System.Windows.Forms.ToolStripMenuItem exportToolStripMenuItem;
private System.Windows.Forms.ToolStripMenuItem asDecodedTextToolStripMenuItem;
+ private System.Windows.Forms.Label labelHexRequestStatus;
+ private System.Windows.Forms.Label labelHexBoxResponseStatus;
+ private System.Windows.Forms.ToolStripContainer toolStripContainer1;
+ private System.Windows.Forms.ToolStrip toolStripLogin;
+ private System.Windows.Forms.ToolStripLabel toolStripLabel1;
+ private System.Windows.Forms.ToolStripComboBox comboBoxListenAddress;
+ private System.Windows.Forms.ToolStripLabel toolStripLabel2;
+ private System.Windows.Forms.ToolStripTextBox textBoxProxyPort;
+ private System.Windows.Forms.ToolStripLabel toolStripLabel3;
+ private System.Windows.Forms.ToolStripComboBox comboBoxLoginURL;
+ private System.Windows.Forms.ToolStripButton buttonStartProxy;
+ private System.Windows.Forms.ToolStrip toolStripFilters;
+ private System.Windows.Forms.ToolStripButton loadFilterSelectionsToolStripMenuItem;
+ private System.Windows.Forms.ToolStripButton saveFilterSelectionsToolStripMenuItem;
+ private System.Windows.Forms.ToolStripSeparator toolStripSeparator7;
+ private System.Windows.Forms.ToolStripSplitButton toolStripSplitButton1;
+ private System.Windows.Forms.ToolStripMenuItem autoAddNewDiscoveredMessagesToolStripMenuItem;
+ private System.Windows.Forms.ToolStripSeparator toolStripSeparator6;
+ private System.Windows.Forms.ToolStripMenuItem saveSettingsToolStripMenuItem;
+ private System.Windows.Forms.Button buttonExportRawHex;
+ private System.Windows.Forms.Button buttonSaveRequestHex;
+ private System.Windows.Forms.SaveFileDialog saveFileDialog3;
}
}
diff --git a/Programs/WinGridProxy/FormWinGridProxy.cs b/Programs/WinGridProxy/FormWinGridProxy.cs
index 1b3fc8b1..cbf8f6d7 100644
--- a/Programs/WinGridProxy/FormWinGridProxy.cs
+++ b/Programs/WinGridProxy/FormWinGridProxy.cs
@@ -51,41 +51,52 @@ namespace WinGridProxy
{
private static SettingsStore Store = new SettingsStore();
- private static bool IsProxyRunning;
-
- private bool AutoScrollSessions;
-
+ private static bool m_ProxyRunning;
+ private Assembly m_CurrentAssembly = Assembly.GetExecutingAssembly();
ProxyManager proxy;
- private PacketDecoder DecodePacket = new PacketDecoder();
+ private FormPluginManager pluginManager;
private int PacketCounter;
+ // stats tracking
private int CapsInCounter;
private int CapsInBytes;
private int CapsOutCounter;
private int CapsOutBytes;
-
private int PacketsInCounter;
private int PacketsInBytes;
private int PacketsOutCounter;
private int PacketsOutBytes;
+
private List QueuedSessions;
private System.Threading.Timer SessionQueue;
private int SessionQueueInterval;
private bool monoRuntime;
+ private const string PROTO_CAPABILITIES = "Cap";
+ private const string PROTO_EVENTMESSAGE = "Event";
+ private const string PROTO_PACKETSTRING = "UDP";
+ private const string PROTO_AUTHENTICATE = "https";
+
+ private readonly Color Color_Login = Color.OldLace;
+ private readonly Color Color_Packet = Color.LightYellow;
+ private readonly Color Color_Cap = Color.Honeydew;
+ private readonly Color Color_Event = Color.AliceBlue;
+
public FormWinGridProxy()
{
InitializeComponent();
Logger.Log("WinGridProxy ready", Helpers.LogLevel.Info);
+ PacketDecoder.InitializeDecoder();
+
if (FireEventAppender.Instance != null)
{
FireEventAppender.Instance.MessageLoggedEvent += new MessageLoggedEventHandler(Instance_MessageLoggedEvent);
}
-
+
// Attempt to work around some mono bugs
monoRuntime = Type.GetType("Mono.Runtime") != null; // Officially supported way of detecting mono
if (monoRuntime)
@@ -102,7 +113,7 @@ namespace WinGridProxy
richTextBoxRawResponse.Font = fixedFont;
}
- // populate the listen box with IPs
+ // populate the listen box with the known IP Addresses of this host
IPHostEntry iphostentry = Dns.GetHostByName(Dns.GetHostName());
foreach (IPAddress address in iphostentry.AddressList)
comboBoxListenAddress.Items.Add(address.ToString());
@@ -115,18 +126,7 @@ namespace WinGridProxy
}
#region Event Handlers for Messages/Packets
-
- public ListViewItem FindListViewItem(ListView listView, string key, bool searchAll)
- {
- foreach (ListViewItem item in listView.Items)
- {
- if (item.Text.Equals(key)
- || (searchAll && item.SubItems.ContainsKey(key)))
- return item;
- }
- return null;
- }
-
+
///
/// Adds a new EventQueue message to the Message Filters listview.
///
@@ -143,14 +143,15 @@ namespace WinGridProxy
}
else
{
-
ListViewItem foundCap = FindListViewItem(listViewMessageFilters, req.Info.CapType, false);
if (foundCap == null)
{
- ListViewItem addedItem = listViewMessageFilters.Items.Add(new ListViewItem(req.Info.CapType, new ListViewGroup("EventQueue Messages")));
- addedItem.SubItems.Add("EventMessage");
- addedItem.BackColor = Color.AliceBlue;
+ ListViewItem addedItem = listViewMessageFilters.Items.Add(new ListViewItem(req.Info.CapType,
+ listViewMessageFilters.Groups["EventQueueMessages"]));
+
+ addedItem.SubItems.Add(PROTO_EVENTMESSAGE);
+ addedItem.BackColor = Color_Event;
if (autoAddNewDiscoveredMessagesToolStripMenuItem.Checked)
addedItem.Checked = true;
@@ -165,8 +166,7 @@ namespace WinGridProxy
///
/// Adds a new Capability message to the message filters listview
///
- ///
- void ProxyManager_OnCapabilityAdded(CapInfo cap)
+ private void ProxyManager_OnCapabilityAdded(CapInfo cap)
{
if (this.InvokeRequired)
{
@@ -180,9 +180,10 @@ namespace WinGridProxy
ListViewItem foundCap = FindListViewItem(listViewMessageFilters, cap.CapType, false);
if (foundCap == null)
{
- ListViewItem addedItem = listViewMessageFilters.Items.Add(new ListViewItem(cap.CapType, new ListViewGroup("Capabilities Messages")));
- addedItem.SubItems.Add("CapMessage");
- addedItem.BackColor = Color.Honeydew;
+ ListViewItem addedItem = listViewMessageFilters.Items.Add(new ListViewItem(cap.CapType,
+ listViewMessageFilters.Groups["Capabilities"]));
+ addedItem.SubItems.Add(PROTO_CAPABILITIES);
+ addedItem.BackColor = Color_Cap;
if (autoAddNewDiscoveredMessagesToolStripMenuItem.Checked)
addedItem.Checked = true;
@@ -190,12 +191,10 @@ namespace WinGridProxy
}
}
- void ProxyManager_OnPacketLog(Packet packet, Direction direction, IPEndPoint endpoint)
- {
- PacketAnalyzer_OnPacketLog(packet, direction, endpoint);
- }
-
- void ProxyManager_OnLoginResponse(object request, Direction direction)
+ ///
+ /// Handle Login Requests/Responses
+ ///
+ private void ProxyManager_OnLoginResponse(object request, Direction direction)
{
if (this.InvokeRequired)
{
@@ -205,19 +204,40 @@ namespace WinGridProxy
}));
}
else
- {
- PacketCounter++;
+ {
+ string loginType;
- string loginType = (request is XmlRpcRequest) ? "Login Request" : "Login Response";
- ListViewItem session = new ListViewItem(new string[] { PacketCounter.ToString(), "HTTPS", loginType, request.ToString().Length.ToString(), comboBoxLoginURL.Text, "xml-rpc" });
- session.Tag = request;
- session.ImageIndex = (request is XmlRpcRequest) ? 1 : 0;
+ if (request is XmlRpcRequest)
+ {
+ loginType = "Login Request";
+ }
+ else
+ {
+ loginType = "Login Response";
+ }
- AddSession(session);
+ ListViewItem foundItem = FindListViewItem(listViewPacketFilters, loginType, false);
+
+ if (foundItem != null && foundItem.Checked == true)
+ {
+ PacketCounter++;
+
+ SessionLogin sessionLogin = new SessionLogin(request, direction, comboBoxLoginURL.Text, request.GetType().Name + " " + loginType);
+
+ ListViewItem sessionEntry = new ListViewItem(new string[] { PacketCounter.ToString(),
+ sessionLogin.Protocol, sessionLogin.Name, sessionLogin.Length.ToString(), sessionLogin.Host, sessionLogin.ContentType });
+
+ sessionEntry.Tag = sessionLogin;
+ sessionEntry.ImageIndex = (int)sessionLogin.Direction;
+ //session.ImageIndex = (request is XmlRpcRequest) ? 1 : 0;
+
+ AddSession(sessionEntry);
+ }
}
}
- void PacketAnalyzer_OnPacketLog(Packet packet, Direction direction, IPEndPoint endpoint)
+ // Only raised when we've told GridProxy we want a specific packet type
+ private void ProxyManager_OnPacketLog(Packet packet, Direction direction, IPEndPoint endpoint)
{
PacketCounter++;
@@ -232,14 +252,20 @@ namespace WinGridProxy
PacketsOutBytes += packet.Length;
}
+ SessionPacket sessionPacket = new SessionPacket(packet, direction, endpoint,
+ PacketDecoder.InterpretOptions(packet.Header) + " Seq: " + packet.Header.Sequence.ToString() + " Freq:" + packet.Header.Frequency.ToString());
- ListViewItem session = new ListViewItem(new string[] { PacketCounter.ToString(), "UDP", packet.Type.ToString(), packet.Length.ToString(), endpoint.ToString(), "binary udp" });
- session.Tag = packet;
- session.ImageIndex = (direction == Direction.Incoming) ? 0 : 1;
- AddSession(session);
+ ListViewItem sessionItem = new ListViewItem(new string[] { PacketCounter.ToString(), sessionPacket.Protocol, sessionPacket.Name, sessionPacket.Length.ToString(), sessionPacket.Host, sessionPacket.ContentType });
+ sessionItem.Tag = sessionPacket;
+ sessionItem.ImageIndex = (int)sessionPacket.Direction;
+
+ AddSession(sessionItem);
}
- void ProxyManager_OnMessageLog(CapsRequest req, CapsStage stage)
+ ///
+ /// Handle Capabilities
+ ///
+ private void ProxyManager_OnMessageLog(CapsRequest req, CapsStage stage)
{
if (this.InvokeRequired)
{
@@ -257,36 +283,53 @@ namespace WinGridProxy
PacketCounter++;
int size = 0;
- string cType = String.Empty;
+ string contentType = String.Empty;
if (req.RawRequest != null)
{
size += req.RawRequest.Length;
- cType = req.RequestHeaders.Get("Content-Type"); //req.RequestHeaders["Content-Type"];
+ contentType = req.RequestHeaders.Get("Content-Type"); //req.RequestHeaders["Content-Type"];
}
if (req.RawResponse != null)
{
size += req.RawResponse.Length;
- cType = req.ResponseHeaders.Get("Content-Type");
+ contentType = req.ResponseHeaders.Get("Content-Type");
}
- string[] s = { PacketCounter.ToString(), found.SubItems[1].Text, req.Info.CapType, size.ToString(), req.Info.URI, cType };
- ListViewItem session = new ListViewItem(s);
- session.BackColor = found.BackColor;
-
- session.Tag = req;
+ Direction direction;
if (stage == CapsStage.Request)
{
CapsOutCounter++;
CapsOutBytes += req.Request.ToString().Length;
- session.ImageIndex = 1;
+ direction = Direction.Outgoing;
}
else
{
CapsInCounter++;
CapsInBytes += req.Response.ToString().Length;
- session.ImageIndex = 0;
+ direction = Direction.Incoming;
}
+ string proto = found.SubItems[1].Text;
+
+ Session capsSession = null;
+ if (found.Group.Header.Equals("Capabilities"))
+ {
+ capsSession = new SessionCaps(req.RawRequest, req.RawResponse, req.RequestHeaders,
+ req.ResponseHeaders, direction, req.Info.URI, req.Info.CapType, proto);
+ }
+ else
+ {
+ capsSession = new SessionEvent(req.RawResponse, req.ResponseHeaders, req.Info.URI, req.Info.CapType, proto);
+ }
+
+ string[] s = { PacketCounter.ToString(),capsSession.Protocol, capsSession.Name, capsSession.Length.ToString(), capsSession.Host, capsSession.ContentType };
+ ListViewItem session = new ListViewItem(s);
+
+ session.ImageIndex = (int)direction;
+ session.Tag = capsSession;
+
+ session.BackColor = found.BackColor;
+
AddSession(session);
}
else
@@ -295,7 +338,7 @@ namespace WinGridProxy
{
// must be a new event not in KnownCaps, lets add it to the listview
ListViewItem addedItem = listViewMessageFilters.Items.Add(new ListViewItem(req.Info.CapType));
- addedItem.BackColor = Color.AliceBlue;
+ addedItem.BackColor = Color_Cap;
if (autoAddNewDiscoveredMessagesToolStripMenuItem.Checked)
addedItem.Checked = true;
@@ -306,12 +349,26 @@ namespace WinGridProxy
#endregion
+ #region Helpers
+
+ private ListViewItem FindListViewItem(ListView listView, string key, bool searchAll)
+ {
+ foreach (ListViewItem item in listView.Items)
+ {
+ if (item.Text.Equals(key)
+ || (searchAll && item.SubItems.ContainsKey(key)))
+ return item;
+ }
+ return null;
+ }
+
+ #endregion
+
#region GUI Event Handlers
private void buttonStartProxy_Click(object sender, EventArgs e)
{
-
- if (button1.Text.StartsWith("Start") && IsProxyRunning.Equals(false))
+ if (buttonStartProxy.Text.StartsWith("Start") && m_ProxyRunning.Equals(false))
{
proxy = new ProxyManager(textBoxProxyPort.Text, comboBoxListenAddress.Text, comboBoxLoginURL.Text);
// disable any gui elements
@@ -320,24 +377,25 @@ namespace WinGridProxy
InitProxyFilters();
proxy.Start();
-
- loadFilterSelectionsToolStripMenuItem.Enabled = saveFilterSelectionsToolStripMenuItem.Enabled = true;
-
- // enable any gui elements
- toolStripDropDownButton5.Enabled =
- toolStripMenuItemPlugins.Enabled = grpUDPFilters.Enabled = grpCapsFilters.Enabled = IsProxyRunning = true;
- button1.Text = "Stop Proxy";
+ loadFilterSelectionsToolStripMenuItem.Enabled = saveFilterSelectionsToolStripMenuItem.Enabled = true;
+
+ // enable any gui elements
+ toolStripSplitButton1.Enabled =
+ toolStripMenuItemPlugins.Enabled = grpUDPFilters.Enabled = grpCapsFilters.Enabled = m_ProxyRunning = true;
+ buttonStartProxy.Text = "Stop Proxy";
+ buttonStartProxy.Checked = true;
if (enableStatisticsToolStripMenuItem.Checked && !timer1.Enabled)
timer1.Enabled = true;
}
- else if (button1.Text.StartsWith("Stop") && IsProxyRunning.Equals(true))
+ else if (buttonStartProxy.Text.StartsWith("Stop") && m_ProxyRunning.Equals(true))
{
loadFilterSelectionsToolStripMenuItem.Enabled = saveFilterSelectionsToolStripMenuItem.Enabled = false;
// stop the proxy
proxy.Stop();
- toolStripMenuItemPlugins.Enabled = grpUDPFilters.Enabled = grpCapsFilters.Enabled = IsProxyRunning = false;
- button1.Text = "Start Proxy";
+ toolStripMenuItemPlugins.Enabled = grpUDPFilters.Enabled = grpCapsFilters.Enabled = m_ProxyRunning = false;
+ buttonStartProxy.Text = "Start Proxy";
+ buttonStartProxy.Checked = false;
comboBoxListenAddress.Enabled = textBoxProxyPort.Enabled = comboBoxLoginURL.Enabled = true;
if (!enableStatisticsToolStripMenuItem.Checked && timer1.Enabled)
@@ -361,203 +419,45 @@ namespace WinGridProxy
// update the context menus
contextMenuStripSessions_Opening(sender, null);
- tabControl1.SelectTab("tabPageInspect");
+ tabControlMain.SelectTab("tabPageInspect");
+
object tag = e.Item.Tag;
- if (tag is string && tag.ToString().StartsWith("Packet Type:"))
+ if (tag is Session)
{
- Be.Windows.Forms.DynamicByteProvider data = new Be.Windows.Forms.DynamicByteProvider(Utils.StringToBytes(tag.ToString()));
- if (e.Item.ImageIndex == 1) // sent item
- {
- richTextBoxDecodedRequest.Text = String.Format("{0}", tag);
- richTextBoxRawRequest.Text = String.Format("{0}", tag);
- richTextBoxNotationRequest.Text = "No Notation decoding for String items";
- treeViewXMLRequest.Nodes.Clear();
- hexBoxRequest.ByteProvider = data;
+ Session session = (Session)tag;
- richTextBoxDecodedResponse.Text = "No Data";
- richTextBoxRawResponse.Text = "No Data";
- richTextBoxNotationResponse.Text = "No Data";
- treeViewXmlResponse.Nodes.Clear();
- hexBoxResponse.ByteProvider = null;
- }
- else
- {
- richTextBoxDecodedRequest.Text = "No Data";
- richTextBoxRawRequest.Text = "No Data";
- richTextBoxNotationRequest.Text = "No Notation decoding for String items";
- treeViewXMLRequest.Nodes.Clear();
- hexBoxRequest.ByteProvider = null;
-
- richTextBoxDecodedResponse.Text = String.Format("{0}", tag);
- richTextBoxRawResponse.Text = String.Format("{0}", tag);
- richTextBoxNotationResponse.Text = "No Notation decoding for String items";
- treeViewXmlResponse.Nodes.Clear();
- hexBoxResponse.ByteProvider = data;
- }
- }
-
- else if (tag is XmlRpcRequest)
- {
- XmlRpcRequest requestData = (XmlRpcRequest)tag;
-
- richTextBoxDecodedRequest.Text = requestData.ToString();
- richTextBoxRawRequest.Text = requestData.ToString();
- richTextBoxNotationRequest.Text = "Notation Not Available for XML Request";
- updateTreeView(requestData.ToString(), treeViewXMLRequest);
- Be.Windows.Forms.DynamicByteProvider data = new Be.Windows.Forms.DynamicByteProvider(Utils.StringToBytes(requestData.ToString()));
- hexBoxRequest.ByteProvider = data;
-
- richTextBoxDecodedResponse.Text = String.Empty;
- richTextBoxRawResponse.Text = String.Empty;
- richTextBoxNotationResponse.Text = String.Empty;
- treeViewXmlResponse.Nodes.Clear();
- hexBoxResponse.ByteProvider = null;
- }
- else if (tag is XmlRpcResponse)
- {
- XmlRpcResponse responseData = (XmlRpcResponse)tag;
-
- richTextBoxDecodedResponse.Text = responseData.ToString();
- richTextBoxRawResponse.Text = responseData.ToString();
- richTextBoxNotationResponse.Text = "Notation Not Available for XML Request";
- updateTreeView(responseData.ToString(), treeViewXmlResponse);
- Be.Windows.Forms.DynamicByteProvider data = new Be.Windows.Forms.DynamicByteProvider(Utils.StringToBytes(responseData.ToString()));
- hexBoxResponse.ByteProvider = data;
-
- richTextBoxDecodedRequest.Text = String.Empty;
- richTextBoxRawRequest.Text = String.Empty;
- richTextBoxNotationRequest.Text = String.Empty;
- treeViewXMLRequest.Nodes.Clear();
- hexBoxRequest.ByteProvider = null;
-
- }
- else if (tag is Packet)
- {
- Packet packet = (Packet)tag;
-
- Be.Windows.Forms.DynamicByteProvider data = new Be.Windows.Forms.DynamicByteProvider(packet.ToBytes());
- // we have no conversion from Packet to xml or notation
- richTextBoxNotationRequest.Text = String.Empty;
- richTextBoxNotationResponse.Text = String.Empty;
treeViewXmlResponse.Nodes.Clear();
treeViewXMLRequest.Nodes.Clear();
- // 0 = incoming, 1 = outgoing
- if (e.Item.ImageIndex == 0)
- {
- richTextBoxDecodedResponse.Text = TagToString(tag, listViewSessions.FocusedItem.SubItems[2].Text);
- richTextBoxRawResponse.Text = TagToString(tag, listViewSessions.FocusedItem.SubItems[2].Text);
- richTextBoxNotationResponse.Text = "Notation Not Available for Packet Types";
- hexBoxResponse.ByteProvider = data;
+ Be.Windows.Forms.DynamicByteProvider responseBytes = new Be.Windows.Forms.DynamicByteProvider(session.ToBytes(Direction.Incoming));
+ richTextBoxDecodedResponse.Text = session.ToPrettyString(Direction.Incoming);
+ richTextBoxRawResponse.Text = session.ToRawString(Direction.Incoming);
+ richTextBoxNotationResponse.Text = session.ToStringNotation(Direction.Incoming);
+ hexBoxResponse.ByteProvider = responseBytes;
+ updateTreeView(session.ToXml(Direction.Incoming), treeViewXmlResponse);
- richTextBoxDecodedRequest.Text = String.Empty;
- richTextBoxRawRequest.Text = String.Empty;
- hexBoxRequest.ByteProvider = null;
- }
- else
- {
- richTextBoxDecodedRequest.Text = TagToString(tag, listViewSessions.FocusedItem.SubItems[2].Text);
- richTextBoxRawRequest.Text = TagToString(tag, listViewSessions.FocusedItem.SubItems[2].Text);
- richTextBoxNotationRequest.Text = "Notation Not Available for Packet Types";
- hexBoxRequest.ByteProvider = data;
-
- richTextBoxDecodedResponse.Text = String.Empty;
- richTextBoxRawResponse.Text = String.Empty;
- hexBoxResponse.ByteProvider = null;
- }
+ Be.Windows.Forms.DynamicByteProvider requestBytes = new Be.Windows.Forms.DynamicByteProvider(session.ToBytes(Direction.Outgoing));
+ richTextBoxDecodedRequest.Text = session.ToPrettyString(Direction.Outgoing);
+ richTextBoxRawRequest.Text = session.ToRawString(Direction.Outgoing);
+ richTextBoxNotationRequest.Text = session.ToStringNotation(Direction.Outgoing);
+ hexBoxRequest.ByteProvider = requestBytes;
+ updateTreeView(session.ToXml(Direction.Outgoing), treeViewXMLRequest);
+ RequestPosition_Changed(this, EventArgs.Empty);
+ ReplyPosition_Changed(this, EventArgs.Empty);
}
- else if (tag is CapsRequest)
+ else
{
- CapsRequest capsData = (CapsRequest)tag;
-
- if (capsData.Request != null)
- {
- StringBuilder rawRequest = new StringBuilder();
-
- if (capsData.RequestHeaders != null)
- {
- foreach (string key in capsData.RequestHeaders.Keys)
- {
- rawRequest.AppendFormat("{0}: {1}" + System.Environment.NewLine, key, capsData.RequestHeaders[key]);
- }
- rawRequest.AppendLine();
- }
-
- string rawCapsData = string.Empty;
- try { rawCapsData = Utils.BytesToString(capsData.RawRequest); }
- catch (Exception) { }
-
- rawRequest.AppendLine(rawCapsData);
-
- if (capsData.RequestHeaders["content-type"].Equals("application/octet-stream"))
- {
- richTextBoxDecodedRequest.Text = rawRequest.ToString();
- treeViewXMLRequest.Nodes.Clear();
- richTextBoxNotationRequest.Text = "Binary data cannot be formatted as notation";
- }
- else
- {
- OSD requestOSD = OSDParser.DeserializeLLSDXml(capsData.RawRequest);
-
- richTextBoxDecodedRequest.Text = TagToString(requestOSD, listViewSessions.FocusedItem.SubItems[2].Text);
- richTextBoxNotationRequest.Text = requestOSD.ToString();
- updateTreeView(rawCapsData, treeViewXMLRequest);
- }
- // these work for both binary and xml+llsd messages
- richTextBoxRawRequest.Text = rawRequest.ToString();
- Be.Windows.Forms.DynamicByteProvider data = new Be.Windows.Forms.DynamicByteProvider(capsData.RawRequest);
- hexBoxRequest.ByteProvider = data;
- }
- else
- {
- richTextBoxDecodedRequest.Text = "No Data";
- richTextBoxRawRequest.Text = "No Data";
- richTextBoxNotationRequest.Text = "No Data";
- treeViewXMLRequest.Nodes.Clear();
- hexBoxRequest.ByteProvider = null;
-
- }
-
- if (capsData.Response != null)
- {
- StringBuilder rawResponse = new StringBuilder();
-
- if (capsData.ResponseHeaders != null)
- {
- foreach (string key in capsData.ResponseHeaders.Keys)
- {
- rawResponse.AppendFormat("{0}: {1}" + System.Environment.NewLine, key, capsData.ResponseHeaders[key]);
- }
- rawResponse.AppendLine();
- }
- rawResponse.AppendLine(Utils.BytesToString(capsData.RawResponse));
-
- OSD responseOSD = OSDParser.DeserializeLLSDXml(capsData.RawResponse);
-
- richTextBoxDecodedResponse.Text = TagToString(responseOSD, listViewSessions.FocusedItem.SubItems[2].Text);//.ToString();
- richTextBoxRawResponse.Text = rawResponse.ToString();
- richTextBoxNotationResponse.Text = responseOSD.ToString();
- updateTreeView(Utils.BytesToString(capsData.RawResponse), treeViewXmlResponse);
- Be.Windows.Forms.DynamicByteProvider data = new Be.Windows.Forms.DynamicByteProvider(capsData.RawResponse);
- hexBoxResponse.ByteProvider = data;
- }
- else
- {
- richTextBoxDecodedResponse.Text = "No Data";
- richTextBoxRawResponse.Text = "No Data";
- richTextBoxNotationResponse.Text = "No Data";
- treeViewXmlResponse.Nodes.Clear();
- hexBoxResponse.ByteProvider = null;
- }
+ richTextBoxDecodedResponse.Text = "Unknown data object encountered: " + tag.GetType().ToString();
}
+
}
}
private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
- if (IsProxyRunning)
+ if (m_ProxyRunning)
proxy.Stop();
if (saveOptionsOnExitToolStripMenuItem.Checked)
@@ -652,9 +552,11 @@ namespace WinGridProxy
{
if (hexBoxRequest.ByteProvider != null)
{
- labelRequestHex.Text = string.Format("Ln {0} Col {1} bytes {2}",
+ labelHexRequestStatus.Text = String.Format("Ln {0} Col {1} bytes {2}",
hexBoxRequest.CurrentLine, hexBoxRequest.CurrentPositionInLine, hexBoxRequest.ByteProvider.Length);
+ buttonSaveRequestHex.Visible = (hexBoxRequest.ByteProvider.Length > 0);
}
+ buttonSaveRequestHex.Visible = (hexBoxRequest.ByteProvider != null && hexBoxRequest.ByteProvider.Length > 0);
}
// Update Response Hexbox status bar with current cursor location
@@ -662,20 +564,12 @@ namespace WinGridProxy
{
if (hexBoxResponse.ByteProvider != null)
{
- labelResponseHex.Text = string.Format("Ln {0} Col {1} bytes {2}",
+ labelHexBoxResponseStatus.Text = String.Format("Ln {0} Col {1} bytes {2}",
hexBoxResponse.CurrentLine, hexBoxResponse.CurrentPositionInLine, hexBoxResponse.ByteProvider.Length);
}
+ buttonExportRawHex.Visible = (hexBoxResponse.ByteProvider != null && hexBoxResponse.ByteProvider.Length > 0);
}
-
- /// Enable or Disable Autoscrolling of the session list, Updates the Preferences and context menus
- /// The ToolStripMenuItem sending the event
- ///
- private void sessionEnableAutoScroll_CheckedChanged(object sender, EventArgs e)
- {
- ToolStripMenuItem autoscroll = (ToolStripMenuItem)sender;
- AutoScrollSessions = autoScrollSessionsToolStripMenuItem.Checked = toolStripMenuItemAutoScroll.Checked = autoscroll.Checked;
- }
-
+
// select all specified sessions by packet name
private void sessionSelectAllPacketType_Click(object sender, EventArgs e)
{
@@ -716,7 +610,7 @@ namespace WinGridProxy
{
if (listViewSessions.FocusedItem != null)
{
- string strPacketOrMessage = (listViewSessions.FocusedItem.SubItems[1].Text.Equals("UDP")) ? "Packets" : "Messages";
+ string strPacketOrMessage = (listViewSessions.FocusedItem.SubItems[1].Text.Equals(PROTO_PACKETSTRING)) ? "Packets" : "Messages";
enableDisableFilterByNameToolStripMenuItem.Text = String.Format("Capture {0} {1}", listViewSessions.FocusedItem.SubItems[2].Text, strPacketOrMessage);
toolStripMenuItemSelectPacketName.Tag = enableDisableFilterByNameToolStripMenuItem.Tag = listViewSessions.FocusedItem.SubItems[2].Text;
@@ -813,7 +707,8 @@ namespace WinGridProxy
RestoreSavedSettings(openFileDialog2.FileName);
if (listViewSessions.Items.Count > 0)
{
- if (MessageBox.Show("Would you like to apply these settings to the currention session list?", "Apply Filter", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == System.Windows.Forms.DialogResult.Yes)
+ if (MessageBox.Show("Would you like to apply these settings to the current session list?",
+ "Apply Filter", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == System.Windows.Forms.DialogResult.Yes)
{
listViewSessions.BeginUpdate();
foreach (ListViewItem item in listViewSessions.Items)
@@ -838,7 +733,8 @@ namespace WinGridProxy
private void listViewPacketFilters_ItemChecked(object sender, ItemCheckedEventArgs e)
{
- proxy.AddUDPDelegate(packetTypeFromName(e.Item.Text), e.Item.Checked);
+ if(e.Item.Group.Name.Equals("Packets"))
+ proxy.AddUDPDelegate(PacketTypeFromName(e.Item.Text), e.Item.Checked);
}
private void checkBoxCheckallCaps_CheckedChanged(object sender, EventArgs e)
@@ -872,36 +768,43 @@ namespace WinGridProxy
OSDArray sessionArray = new OSDArray();
foreach (ListViewItem item in listViewSessions.Items)
{
- if (item.Tag is Packet || item.Tag is IMessage || item.Tag is String || item.Tag is CapsRequest)
+ if (item.Tag is Session)
{
- OSDMap session = new OSDMap();
- session["name"] = OSD.FromString(item.Name);
- session["image_index"] = OSD.FromInteger(item.ImageIndex);
- session["id"] = OSD.FromString(item.SubItems[0].Text);
- session["protocol"] = OSD.FromString(item.SubItems[1].Text);
- session["packet"] = OSD.FromString(item.SubItems[2].Text);
- session["size"] = OSD.FromString(item.SubItems[3].Text);
- session["host"] = OSD.FromString(item.SubItems[4].Text);
-
- if (item.Tag is Packet)
+ Session data = null;
+ if (item.Tag is SessionCaps)
{
- session["tag"] = OSD.FromBinary(Utils.StringToBytes(DecodePacket.PacketToString((Packet)item.Tag)));
+ data = (SessionCaps)item.Tag;
}
- else if (item.Tag is IMessage)
+ else if (item.Tag is SessionEvent)
{
- IMessage m = (IMessage)item.Tag;
- session["tag"] = OSD.FromBinary(Utils.StringToBytes(m.Serialize().ToString()));
+ data = (SessionEvent)item.Tag;
}
- else if (item.Tag is System.String)
+ else if (item.Tag is SessionLogin)
{
- session["tag"] = OSD.FromBinary(Utils.StringToBytes(Tag.ToString()));
+ data = (SessionLogin)item.Tag;
+ }
+ else if (item.Tag is SessionPacket)
+ {
+ data = (SessionPacket)item.Tag;
}
else
{
- // we intentionally don't save login requests or responses
- session["tag"] = OSD.FromBinary(Utils.StringToBytes("Encoding disabled for this item type"));
+ Console.WriteLine("Not a valid session type?");
+ continue;
}
-
+ //Type t = item.Tag.GetType();
+
+ //Session data = (SessionCaps)item.Tag;
+ OSDMap session = new OSDMap();
+ //session["name"] = OSD.FromString(item.Name);
+ //session["image_index"] = OSD.FromInteger(item.ImageIndex);
+ session["id"] = OSD.FromString(item.SubItems[0].Text);
+ //session["protocol"] = OSD.FromString(item.SubItems[1].Text);
+ //session["packet"] = OSD.FromString(item.SubItems[2].Text);
+ //session["size"] = OSD.FromString(item.SubItems[3].Text);
+ //session["host"] = OSD.FromString(item.SubItems[4].Text);
+ session["type"] = OSD.FromString(data.GetType().ToString());
+ session["tag"] = OSD.FromBinary(data.Serialize());
sessionArray.Add(session);
}
}
@@ -923,25 +826,31 @@ namespace WinGridProxy
{
if (openFileDialog1.ShowDialog() == DialogResult.OK)
{
- OSD osd = OSDParser.DeserializeLLSDNotation(File.ReadAllText(openFileDialog1.FileName));
- OSDMap map = (OSDMap)osd;
+ OSDMap map = (OSDMap)OSDParser.DeserializeLLSDNotation(File.ReadAllText(openFileDialog1.FileName));
+
OSDArray sessionsArray = (OSDArray)map["sessions"];
-
+
listViewSessions.Items.Clear();
listViewSessions.BeginUpdate();
for (int i = 0; i < sessionsArray.Count; i++)
- {
+ {
OSDMap session = (OSDMap)sessionsArray[i];
+
+ Session importedSession = (Session)m_CurrentAssembly.CreateInstance(session["type"].AsString());
+ importedSession.Deserialize(session["tag"].AsBinary());
+
ListViewItem addedItem = new ListViewItem(new string[] {
session["id"].AsString(),
- session["protocol"].AsString(),
- session["packet"].AsString(),
- session["size"].AsString(),
- session["host"].AsString()});
+ importedSession.Protocol,
+ importedSession.Name,
+ importedSession.Length.ToString(),
+ importedSession.Host,
+ importedSession.ContentType});
AddSession(addedItem);
- addedItem.ImageIndex = session["image_index"].AsInteger();
+ //addedItem.ImageIndex = session["image_index"].AsInteger();
+ addedItem.ImageIndex = (int)importedSession.Direction;
addedItem.BackColor = Color.GhostWhite; // give imported items a different color
- addedItem.Tag = Utils.BytesToString(session["tag"].AsBinary());
+ addedItem.Tag = importedSession;
}
listViewSessions.EndUpdate();
@@ -966,113 +875,12 @@ namespace WinGridProxy
private void exitToolStripMenuItem1_Click(object sender, EventArgs e)
{
// TODO: warn if client is connected!
+
this.Close();
}
#region Helpers
- ///
- /// Decode an IMessage object into a string of key/value pairs
- ///
- /// The IMessage object
- /// A formatted string containing the names and values of the source object
- public static string IMessageToString(object message, int recurseLevel)
- {
- if (message == null)
- return String.Empty;
-
- StringBuilder result = new StringBuilder();
- // common/custom types
- if (recurseLevel <= 0)
- {
- result.AppendFormat("Message Type: {0}" + System.Environment.NewLine, message.GetType().Name);
- }
- else
- {
- string pad = " +--".PadLeft(recurseLevel + 3);
- result.AppendFormat("{0} {1}" + System.Environment.NewLine, pad, message.GetType().Name);
- }
-
- recurseLevel++;
-
- foreach (FieldInfo messageField in message.GetType().GetFields())
- {
- // an abstract message class
- if (messageField.FieldType.IsAbstract)
- {
- result.AppendLine(IMessageToString(messageField.GetValue(message), recurseLevel));
- }
- // a byte array
- else if (messageField.GetValue(message) != null && messageField.GetValue(message).GetType() == typeof(Byte[]))
- {
- result.AppendFormat("{0, 30}:" + System.Environment.NewLine,
- messageField.Name);
-
- result.AppendFormat("{0}" + System.Environment.NewLine,
- Utils.BytesToHexString((byte[])messageField.GetValue(message),
- string.Format("{0,30}", "")));
- }
-
- // an array of class objects
- else if (messageField.FieldType.IsArray)
- {
- var messageObjectData = messageField.GetValue(message);
- result.AppendFormat("-- {0} --" + System.Environment.NewLine, messageField.FieldType.Name);
- foreach (object nestedArrayObject in messageObjectData as Array)
- {
- result.AppendFormat("{0,30}" + System.Environment.NewLine, "-- " + nestedArrayObject.GetType().Name + " --");
-
- foreach (FieldInfo nestedField in nestedArrayObject.GetType().GetFields())
- {
- if (nestedField.FieldType.IsEnum)
- {
- result.AppendFormat("{0,30}: {1,-10} {2,-29} [{3}]" + System.Environment.NewLine,
- nestedField.Name,
- Enum.Format(nestedField.GetValue(nestedArrayObject).GetType(),
- nestedField.GetValue(nestedArrayObject), "D"),
- "(" + nestedField.GetValue(nestedArrayObject) + ")",
- nestedField.GetValue(nestedArrayObject).GetType().Name);
- }
- else if (nestedField.FieldType.IsInterface)
- {
- result.AppendLine(IMessageToString(nestedField.GetValue(nestedArrayObject), recurseLevel));
- }
- else
- {
- result.AppendFormat("{0, 30}: {1,-40} [{2}]" + Environment.NewLine,
- nestedField.Name,
- nestedField.GetValue(nestedArrayObject),
- nestedField.GetValue(nestedArrayObject).GetType().Name);
- }
- }
- }
- }
- else
- {
- if (messageField.FieldType.IsEnum)
- {
- result.AppendFormat("{0,30}: {1,-2} {2,-37} [{3}]" + Environment.NewLine,
- messageField.Name,
- Enum.Format(messageField.GetValue(message).GetType(),
- messageField.GetValue(message), "D"),
- "(" + messageField.GetValue(message) + ")",
- messageField.FieldType.Name);
- }
- else if (messageField.FieldType.IsInterface)
- {
- result.AppendLine(IMessageToString(messageField.GetValue(message), recurseLevel));
- }
- else
- {
- result.AppendFormat("{0, 30}: {1,-40} [{2}]" + System.Environment.NewLine,
- messageField.Name, messageField.GetValue(message), messageField.FieldType.Name);
- }
- }
- }
-
- return result.ToString();
- }
-
private void SaveAllSettings(string fileName)
{
Store.MessageSessions.Clear();
@@ -1080,25 +888,27 @@ namespace WinGridProxy
foreach (ListViewItem item in listViewPacketFilters.Items)
{
- FilterEntry entry = new FilterEntry();
+ FilterEntryOptions entry = new FilterEntryOptions();
entry.Checked = item.Checked;
- entry.pType = item.SubItems[1].Text;
+ entry.Type = item.SubItems[1].Text;
+ entry.Group = item.Group.Name;
- if(!Store.PacketSessions.ContainsKey(item.Text))
+ if (!Store.PacketSessions.ContainsKey(item.Text))
Store.PacketSessions.Add(item.Text, entry);
}
foreach (ListViewItem item in listViewMessageFilters.Items)
{
- FilterEntry entry = new FilterEntry();
+ FilterEntryOptions entry = new FilterEntryOptions();
entry.Checked = item.Checked;
- entry.pType = item.SubItems[1].Text;
- if(!Store.MessageSessions.ContainsKey(item.Text))
+ entry.Type = item.SubItems[1].Text;
+ entry.Group = item.Group.Name;
+
+ if (!Store.MessageSessions.ContainsKey(item.Text))
Store.MessageSessions.Add(item.Text, entry);
}
Store.StatisticsEnabled = enableStatisticsToolStripMenuItem.Checked;
- Store.AutoScrollEnabled = autoScrollSessionsToolStripMenuItem.Checked;
Store.SaveSessionOnExit = saveOptionsOnExitToolStripMenuItem.Checked;
Store.AutoCheckNewCaps = autoAddNewDiscoveredMessagesToolStripMenuItem.Checked;
@@ -1110,29 +920,32 @@ namespace WinGridProxy
// load saved settings from OSD Formatted file
if (Store.DeserializeFromFile(fileName))
- {
- autoScrollSessionsToolStripMenuItem.Checked = Store.AutoScrollEnabled;
+ {
enableStatisticsToolStripMenuItem.Checked = Store.StatisticsEnabled;
saveOptionsOnExitToolStripMenuItem.Checked = Store.SaveSessionOnExit;
autoAddNewDiscoveredMessagesToolStripMenuItem.Checked = Store.AutoCheckNewCaps;
// Update message filter listview
listViewMessageFilters.BeginUpdate();
- foreach (KeyValuePair kvp in Store.MessageSessions)
+ foreach (KeyValuePair kvp in Store.MessageSessions)
{
ListViewItem foundMessage = FindListViewItem(listViewPacketFilters, kvp.Key, false);
if (foundMessage == null)
{
- ListViewItem addedItem = listViewMessageFilters.Items.Add(kvp.Key);
+ ListViewItem addedItem = listViewMessageFilters.Items.Add(
+ new ListViewItem(kvp.Key, listViewMessageFilters.Groups[kvp.Value.Group]));
+ addedItem.Name = kvp.Key;
addedItem.Checked = kvp.Value.Checked;
- addedItem.SubItems.Add(kvp.Value.pType);
- addedItem.BackColor = (kvp.Value.pType.Equals("CapMessage")) ? Color.Honeydew : Color.AliceBlue;
+ addedItem.SubItems.Add(kvp.Value.Type);
+ //addedItem.Group = listViewMessageFilters.Groups[kvp.Value.Group];
+
+ addedItem.BackColor = (kvp.Value.Type.Equals(PROTO_CAPABILITIES)) ? Color_Cap : Color_Event;
}
else
{
foundMessage.Checked = kvp.Value.Checked;
}
- if (kvp.Value.pType.Equals("CapMessage"))
+ if (kvp.Value.Type.Equals(PROTO_CAPABILITIES))
{
proxy.AddCapsDelegate(kvp.Key, kvp.Value.Checked);
}
@@ -1141,73 +954,80 @@ namespace WinGridProxy
// updateTreeView packet filter listview
listViewPacketFilters.BeginUpdate();
- foreach (KeyValuePair kvp in Store.PacketSessions)
+ foreach (KeyValuePair kvp in Store.PacketSessions)
{
ListViewItem foundPacket = FindListViewItem(listViewPacketFilters, kvp.Key, false);
if (foundPacket == null)
{
- ListViewItem addedItem = listViewPacketFilters.Items.Add(new ListViewItem(kvp.Key));
- addedItem.Checked = kvp.Value.Checked;
- addedItem.SubItems.Add(kvp.Value.pType);
+ ListViewItem addedItem = listViewPacketFilters.Items.Add(
+ new ListViewItem(kvp.Key, listViewPacketFilters.Groups[kvp.Value.Group]));
+
+ addedItem.Name = kvp.Key;
+ addedItem.Checked = kvp.Value.Checked;
+ addedItem.SubItems.Add(kvp.Value.Type);
+
+ addedItem.BackColor = (kvp.Value.Type.Equals(PROTO_AUTHENTICATE)) ? Color_Login : Color_Packet;
}
else
{
foundPacket.Checked = kvp.Value.Checked;
}
- if (kvp.Value.pType.Equals("UDP"))
+ if (kvp.Value.Type.Equals(PROTO_PACKETSTRING))
{
- proxy.AddUDPDelegate(packetTypeFromName(kvp.Key), kvp.Value.Checked);
+ proxy.AddUDPDelegate(PacketTypeFromName(kvp.Key), kvp.Value.Checked);
}
}
listViewPacketFilters.EndUpdate();
}
}
+
private void InitProxyFilters()
{
RestoreSavedSettings("settings.osd");
- Type packetTypeType = typeof(PacketType);
- System.Reflection.MemberInfo[] packetTypes = packetTypeType.GetMembers();
-
listViewPacketFilters.BeginUpdate();
- for (int i = 0; i < packetTypes.Length; i++)
+ foreach (string name in Enum.GetNames(typeof(PacketType)))
{
- if (packetTypes[i].MemberType == System.Reflection.MemberTypes.Field
- && packetTypes[i].DeclaringType == packetTypeType)
+ ListViewItem found = FindListViewItem(listViewPacketFilters, name, false);
+ if (!String.IsNullOrEmpty(name) && found == null)
{
-
- string name = packetTypes[i].Name;
-
- // warning CS0219: The variable `pType' is assigned but its value is never used
- // this is used to check for valid names.
- PacketType pType;
-
- try
- {
- pType = packetTypeFromName(name);
-
- ListViewItem found = FindListViewItem(listViewPacketFilters, name, false);
- if (!String.IsNullOrEmpty(name) && found == null)
- {
- ListViewItem addedItem = listViewPacketFilters.Items.Add(new ListViewItem(name));
- addedItem.SubItems.Add("UDP");
- }
- }
- catch (Exception)
- {
- continue;
- }
+ ListViewItem addedItem = listViewPacketFilters.Items.Add(new ListViewItem(name, listViewPacketFilters.Groups["Packets"]));
+ addedItem.Name = name;
+ addedItem.SubItems.Add(PROTO_PACKETSTRING);
}
+
}
+
+ ListViewItem tmp;
+ if (!listViewPacketFilters.Items.ContainsKey("Login Request"))
+ {
+ tmp = listViewPacketFilters.Items.Add(new ListViewItem("Login Request", listViewPacketFilters.Groups["Login"]));
+ tmp.Name = "Login Request";
+ tmp.BackColor = Color_Login;
+ tmp.SubItems.Add("Login");
+ }
+
+ if (!listViewPacketFilters.Items.ContainsKey("Login Response"))
+ {
+ tmp = listViewPacketFilters.Items.Add(new ListViewItem("Login Response", listViewPacketFilters.Groups["Login"]));
+ tmp.Name = "Login Response";
+ tmp.BackColor = Color_Login;
+ tmp.SubItems.Add("Login");
+ }
+
listViewPacketFilters.EndUpdate();
+
}
- private static PacketType packetTypeFromName(string name)
+ private static PacketType PacketTypeFromName(string name)
{
Type packetTypeType = typeof(PacketType);
System.Reflection.FieldInfo f = packetTypeType.GetField(name);
- if (f == null) throw new ArgumentException("Bad packet type");
+ if (f == null)
+ {//throw new ArgumentException("Bad packet type");
+ return PacketType.Error;
+ }
return (PacketType)Enum.ToObject(packetTypeType, (int)f.GetValue(packetTypeType));
}
@@ -1238,10 +1058,10 @@ namespace WinGridProxy
if (
(opts.MatchCase
&& (item.SubItems[2].Text.Contains(opts.SearchText)
- || TagToString(item.Tag, item.SubItems[2].Text).Contains(opts.SearchText))
+ /*|| TagToString(item.Tag, item.SubItems[2].Text).Contains(opts.SearchText)*/)
) // no case matching
|| ((item.SubItems[2].Text.ToLower().Contains(opts.SearchText.ToLower())
- || TagToString(item.Tag, item.SubItems[2].Text).ToLower().Contains(opts.SearchText.ToLower())
+ /*|| TagToString(item.Tag, item.SubItems[2].Text).ToLower().Contains(opts.SearchText.ToLower())*/
))
)
{
@@ -1257,71 +1077,72 @@ namespace WinGridProxy
}
}
- toolStripMainLabel.Text = String.Format("Search found {0} Matches", resultCount);
+ //toolStripMainLabel.Text = String.Format("Search found {0} Matches", resultCount);
}
}
- private string TagToString(object tag, string key)
- {
- if (tag is XmlRpcRequest)
- {
- XmlRpcRequest requestData = (XmlRpcRequest)tag;
- return requestData.ToString();
- }
- else if (tag is XmlRpcResponse)
- {
- XmlRpcResponse responseData = (XmlRpcResponse)tag;
+ //private string TagToString(object tag, string key)
+ //{
+ // if (tag is XmlRpcRequest)
+ // {
+ // XmlRpcRequest requestData = (XmlRpcRequest)tag;
+ // return requestData.ToString();
+ // }
+ // else if (tag is XmlRpcResponse)
+ // {
+ // XmlRpcResponse responseData = (XmlRpcResponse)tag;
- return responseData.ToString();
- }
- else if (tag is Packet)
- {
- Packet packet = (Packet)tag;
- return DecodePacket.PacketToString(packet);
- }
- else if (tag is CapsRequest)
- {
- CapsRequest capsData = (CapsRequest)tag;
+ // return responseData.ToString();
+ // }
+ // else if (tag is Packet)
+ // {
+ // Packet packet = (Packet)tag;
+ // return PacketDecoder.PacketToString(packet);
+ // //return DecodePacket.PacketToString(packet);
+ // }
+ // else if (tag is CapsRequest)
+ // {
+ // CapsRequest capsData = (CapsRequest)tag;
- if (capsData.Request != null)
- {
- return capsData.Request.ToString();
- }
+ // if (capsData.Request != null)
+ // {
+ // return capsData.Request.ToString();
+ // }
- if (capsData.Response != null)
- {
- return capsData.Response.ToString();
- }
- return "Unable to decode CapsRequest";
- }
- else if (tag is OSD)
- {
- OSD osd = (OSD)tag;
- if (osd.Type == OSDType.Map)
- {
- OSDMap data = (OSDMap)osd;
- IMessage message;
- if (data.ContainsKey("body"))
- message = OpenMetaverse.Messages.MessageUtils.DecodeEvent(key, (OSDMap)data["body"]);
- else
- message = OpenMetaverse.Messages.MessageUtils.DecodeEvent(key, data);
+ // if (capsData.Response != null)
+ // {
+ // return capsData.Response.ToString();
+ // }
+ // return "Unable to decode CapsRequest";
+ // }
+ // else if (tag is OSD)
+ // {
+ // OSD osd = (OSD)tag;
+ // if (osd.Type == OSDType.Map)
+ // {
+ // OSDMap data = (OSDMap)osd;
+ // IMessage message;
+ // if (data.ContainsKey("body"))
+ // message = OpenMetaverse.Messages.MessageUtils.DecodeEvent(key, (OSDMap)data["body"]);
+ // else
+ // message = OpenMetaverse.Messages.MessageUtils.DecodeEvent(key, data);
- if (message != null)
- return IMessageToString(message, 0);
- else
- return "No Decoder for " + key + System.Environment.NewLine
- + osd.ToString();
- }
- else
- {
- return osd.ToString();
- }
- }
- else
- {
- return "Could not decode object type: " + tag.GetType().ToString();
- }
- }
+ // if (message != null)
+ // return IMessageToString(message, 0);
+ // else
+ // return "No Decoder for " + key + System.Environment.NewLine
+ // + osd.ToString();
+ // }
+ // else
+ // {
+ // return osd.ToString();
+ // }
+ // }
+ // else
+ // {
+ // return "Could not decode object type: " + tag.GetType().ToString();
+ // }
+ //}
#endregion
@@ -1508,7 +1329,9 @@ namespace WinGridProxy
private void toolStripMenuItem1_Click(object sender, EventArgs e)
{
- FormPluginManager pluginManager = new FormPluginManager(proxy.Proxy);
+ if (pluginManager == null)
+ pluginManager = new FormPluginManager(proxy.Proxy);
+
pluginManager.ShowDialog();
}
@@ -1535,6 +1358,11 @@ namespace WinGridProxy
private void richTextBoxDecodedRequest_TextChanged(object sender, EventArgs e)
{
RichTextBox m_rtb = (RichTextBox)sender;
+
+ // don't colorize xml!
+ if (m_rtb.Lines.Length <= 0 || m_rtb.Lines[0].StartsWith("\w+|\w+\[\])\]|\((?.*)\)|\s-- (?\w+|\w+ \[\]) --\s|(?\s\*\*\*\s)|(?\s<\w+>\s|\s<\/\w+>\s)|(?\s\w+\[\d+\]\s)", RegexOptions.ExplicitCapture);
MatchCollection matches = typesRegex.Matches(m_rtb.Text);
@@ -1545,7 +1373,7 @@ namespace WinGridProxy
m_rtb.SelectionFont = new Font(m_rtb.Font.FontFamily, m_rtb.Font.Size, FontStyle.Bold);
if (!String.IsNullOrEmpty(match.Groups["Type"].Value))
- m_rtb.SelectionColor = Color.Blue;
+ m_rtb.SelectionColor = Color.FromArgb(43, 145, 175);
else if (!String.IsNullOrEmpty(match.Groups["Enum"].Value))
m_rtb.SelectionColor = Color.FromArgb(43, 145, 175);
else if (!String.IsNullOrEmpty(match.Groups["Header"].Value))
@@ -1580,10 +1408,6 @@ namespace WinGridProxy
{
listViewSessions.BeginUpdate();
listViewSessions.Items.AddRange(QueuedSessions.ToArray());
-
- if (AutoScrollSessions)
- listViewSessions.EnsureVisible(listViewSessions.Items.Count - 1);
-
listViewSessions.EndUpdate();
QueuedSessions.Clear();
}
@@ -1598,9 +1422,7 @@ namespace WinGridProxy
}
else
{
- listViewSessions.Items.Add(item);
- if (AutoScrollSessions)
- listViewSessions.EnsureVisible(listViewSessions.Items.Count - 1);
+ listViewSessions.Items.Add(item);
}
}
@@ -1628,7 +1450,8 @@ namespace WinGridProxy
{
if (item.Tag is Packet)
{
- outString.AppendLine(DecodePacket.PacketToString((Packet)item.Tag));
+ //outString.AppendLine(DecodePacket.PacketToString((Packet)item.Tag));
+ outString.AppendLine(PacketDecoder.PacketToString((Packet)item.Tag));
}
if (item.Tag is IMessage)
@@ -1648,5 +1471,152 @@ namespace WinGridProxy
}
}
}
+
+ private void richTextBoxDecodedRequest_LinkClicked(object sender, LinkClickedEventArgs e)
+ {
+ System.Diagnostics.Process.Start(e.LinkText);
+ }
+
+ private void saveSettingsToolStripMenuItem_Click(object sender, EventArgs e)
+ {
+ SaveAllSettings("settings.osd");
+ }
+ // Column sorter
+ private void listViewSessions_ColumnClick(object sender, ColumnClickEventArgs e)
+ {
+ ListView listView1 = (ListView)sender;
+
+ ListViewSorter Sorter = new ListViewSorter();
+ listView1.ListViewItemSorter = Sorter;
+ if (!(listView1.ListViewItemSorter is ListViewSorter))
+ return;
+
+ Sorter = (ListViewSorter)listView1.ListViewItemSorter;
+
+ if (Sorter.LastSort == e.Column)
+ {
+ if (listView1.Sorting == SortOrder.Ascending)
+ listView1.Sorting = SortOrder.Descending;
+ else
+ listView1.Sorting = SortOrder.Ascending;
+ }
+ else
+ {
+ listView1.Sorting = SortOrder.Descending;
+ }
+ Sorter.ByColumn = e.Column;
+
+ listView1.Sort();
+
+ listView1.Columns[e.Column].Width = -2;// = listView1.Columns[e.Column].Text + " " + '\u23BC';
+ }
+
+ private void buttonSaveRequestHex_Click(object sender, EventArgs e)
+ {
+ if (hexBoxRequest.ByteProvider != null && hexBoxRequest.ByteProvider.Length > 0)
+ {
+ saveFileDialog3.FileName = listViewSessions.SelectedItems[0].Name;
+ if (saveFileDialog3.ShowDialog() == DialogResult.OK)
+ {
+ byte[] bytes = new byte[hexBoxRequest.ByteProvider.Length];
+ for (int i = 0; i < hexBoxRequest.ByteProvider.Length; i++)
+ {
+ bytes[i] = hexBoxRequest.ByteProvider.ReadByte(i);
+ }
+ File.WriteAllBytes(saveFileDialog3.FileName, bytes);
+ }
+ }
+ else
+ {
+ // no bytes to read!
+ }
+ }
+
+ private void buttonExportRawHex_Click(object sender, EventArgs e)
+ {
+ if (hexBoxResponse.ByteProvider != null && hexBoxResponse.ByteProvider.Length > 0)
+ {
+ saveFileDialog3.FileName = listViewSessions.SelectedItems[0].Name;
+ if (saveFileDialog3.ShowDialog() == DialogResult.OK)
+ {
+ byte[] bytes = new byte[hexBoxResponse.ByteProvider.Length];
+ for (int i = 0; i < hexBoxResponse.ByteProvider.Length; i++)
+ {
+ bytes[i] = hexBoxResponse.ByteProvider.ReadByte(i);
+ }
+ File.WriteAllBytes(saveFileDialog3.FileName, bytes);
+ }
+ }
+ else
+ {
+ // no bytes to read!
+ }
+ }
}
+
+ public class ListViewSorter : System.Collections.IComparer
+ {
+ public int Compare(object o1, object o2)
+ {
+ if (!(o1 is ListViewItem))
+ return 0;
+ if (!(o2 is ListViewItem))
+ return 0;
+
+ int result;
+
+ ListViewItem lvi1 = (ListViewItem)o2;
+ ListViewItem lvi2 = (ListViewItem)o1;
+
+ if (lvi1.ListView.Columns[ByColumn].Tag == null
+ || lvi1.ListView.Columns[ByColumn].Tag == null)
+ {
+ return 0;
+ }
+
+ if (lvi1.ListView.Columns[ByColumn].Tag.ToString().ToLower().Equals("number"))
+ {
+ float fl1 = float.Parse(lvi1.SubItems[ByColumn].Text);
+ float fl2 = float.Parse(lvi2.SubItems[ByColumn].Text);
+
+ if (lvi1.ListView.Sorting == SortOrder.Ascending)
+ result = fl1.CompareTo(fl2);
+ else
+ result = fl2.CompareTo(fl1);
+ }
+ else if (lvi1.ListView.Columns[ByColumn].Tag.ToString().ToLower().Equals("string"))
+ {
+ string str1 = lvi1.SubItems[ByColumn].Text;
+ string str2 = lvi2.SubItems[ByColumn].Text;
+
+ if (lvi1.ListView.Sorting == SortOrder.Ascending)
+ result = String.Compare(str1, str2);
+ else
+ result = String.Compare(str2, str1);
+ }
+ else
+ {
+ return 0;
+ }
+
+ LastSort = ByColumn;
+
+ return (result);
+ }
+
+
+ public int ByColumn
+ {
+ get { return Column; }
+ set { Column = value; }
+ }
+ int Column = 0;
+
+ public int LastSort
+ {
+ get { return LastColumn; }
+ set { LastColumn = value; }
+ }
+ int LastColumn = 0;
+ }
}
diff --git a/Programs/WinGridProxy/FormWinGridProxy.resx b/Programs/WinGridProxy/FormWinGridProxy.resx
index f6029e13..8a87a876 100644
--- a/Programs/WinGridProxy/FormWinGridProxy.resx
+++ b/Programs/WinGridProxy/FormWinGridProxy.resx
@@ -118,7 +118,16 @@
System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
- 524, 17
+ 555, 17
+
+
+ 17, 56
+
+
+ 1104, 17
+
+
+ 750, 17
309, 17
@@ -172,31 +181,61 @@
BQAD/wUACw==
-
- 185, 54
-
-
- 17, 54
-
-
- 705, 17
-
-
- 414, 17
-
-
- 116, 17
-
-
- 414, 17
-
-
- 116, 17
-
-
- 17, 17
+
+ 339, 56
+
+
+ iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
+ YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAlpJREFUOE+tk21I
+ k1EYhif0oyA0sqIQCix/+GcQFFH9CCmiUBTLLEjShJofVBgL2fxoU9Pp5ubUlS5rU9f8rCyjsA+pUCRC
+ TR1ppmVFUSlmhq78unrnQF1KGHTg/nEOz30993PO+7qJFrmUeiv2n+Mij+XLRLLYULdF2pxlEVIDcw0p
+ AsyxD5fmI/rQ94pqi26eOlsfuZj+7BgSm01QdA4ih7m73Yx9qGpavwatjPebqCzOprPt8YKQgzFagqL0
+ BEjyEFWVaBkdLHMxT34uYNwWR9nVTEoL0zHlp2DMSeaSRk6eKt4VWm5WM/rVPNN5SjDTLQebZEHNA1wr
+ UvHjk3E6tsNcV62e1r3KLGqtKm6WplNpSsVqVFJsOM8VfSKFWjkGtcyZptSYzvC7XByx3zQoqCnTMvlG
+ CX1prnornPUmQJcUXsbSVhGK5bIOkcmQyveeTHiv4VZ5Nk33Nc6iuSO8CIfmECYa/bE/8ON1iRipJNh5
+ F0V6Bd86lfQ1JlFj1TDVq4COKCegLVIwHmGiKRB7/V6G7+5koHozymgfYRy5E1CgTWKgXcZ1i5qWp0KS
+ rjgBcAJawph6FszYk/2M1O1isGYLX8p9ab6wgqP+3rMvYciS01GfzA1LFvQkQ6sQ9/khxhoCGHnox1Dt
+ NvorxXw0b8Km8UQh2cip6GOzgNyMeKqKM7HdjqFZJ5pRk2YJ9aql3EnxoCJxNaZ4Ly6e3UDY3O6OEXRp
+ 59ApTpIhiyDh9GHORAZyPHQPB/ZtZ/cOMVvFPvh6e7F+3SrWrHRnraf7Xz/xf/rJ/kvxb84I3U1y+9/W
+ AAAAAElFTkSuQmCC
+
+
+
+
+ iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
+ YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAixJREFUOE+tk91L
+ k3EUx/cvdN9N0EW3NTWGa7EaPOUcyqphWBG9PZEv5dJlmqhYmUYtXyBb4dJJy+kknFT4BqZIjaFMJUsz
+ V7TEoabYRDD49ju/6Pm1Mi+iH5zLz+c855zvo1L9j/fsaRRUvvZltHmX8Ni9gMaGCO47ZlBb8wn22yHc
+ KJ9CackECgteIy93FBfOB6H0JrC3B6ipXsVGb2V1Dca0XhxOe8JLEXhbF7mgsuLLX3mCIwsr2G1+DrVa
+ huWQRwjcj+a5oLTk87qCn/D78CLiTD4UXJ7GAXOTEDjrZ7ngku3dH4Jf4ZHJCLZJXlhzxpGa4hSCurth
+ LsjOGo0R/A4PBsPYrHdDlgMwmRxCUF31kQvkMwFFsB7c4/+ATYkNOHL0BZKSaoXgZuU0urvATgkcP/kK
+ lmMDfNu0MJqZPps6/4D7cNDSCUmyC8HVskl0+MAyADS5vrG7f0X59Tm+VFoYzZyZEVTg5NR2GAwVQnCl
+ cByeZuChc40FJwpjek5MmU/YkH6uiHdOTmHwfg/0+jIhsOWNMRiouhPlnUnAQoI4rYSht7MYm5qDnHsN
+ e41tHNbucUGnKxICiqXjHpTPJgHBZ/Nv4U1oHqGZJVwstiNe72JwI+J3PYA2MV8IMjOG2dzLfOatBg+2
+ 7JDQ0tEPX9cguvv8GHg5hH0mC9S6eiQweLumDhqNVQgo06dP9fN4UsIoJHRnOhVtmxZGM1NXKoJ3JmTH
+ Cv71r/4OTrQ4xWMwWlcAAAAASUVORK5CYII=
+
+
+
+
+ iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
+ YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAgxJREFUOE+lkvtL
+ U2EYx+0PEbtpFwnBKPGKiJImGP0gYhIYs1E5GF5gIxkpA00JRSmMEF0ohMh+GaRWYlqabMVcNdS2QpaI
+ VqiDIYhk397vA6fXhCjyhYdzeM/5fp7vczkAdeL2cwho7v/wWzT1zcN+Pwhr51uY2/y41PQaF+wzKKiZ
+ QvaN58g0jyLd5KEUcQbg+84P/Cm2tncQjW3j68YWIqubCC3FcOJc478BAuGoZM6zvoRnakXEruEIjhc4
+ /g5gZop9c+voGAyLbQIfeBZxLL9BA1jzXvuGbWamuKh+GmmVbswE19A59FEBbmoAG7YbsLtm2mZmiml9
+ cvabNDwpz6YB7LYBoMXCumkJr7LOmnnHzBQ/9X2Bo2cOibm1GsBREbAQiYmw/8lnuCeWkVzcgnZlnw1j
+ 3HV/wuNXK6i/9x5Hc6wawDlTXHbLJ+LZUBQPRyKwdQdxutwl1h+NLXHh5Ht1ewBHsiwawCW57HyDAfWR
+ dvl0uhZQ1eqX8aVc7EKLqrum651ATLf9OJx5XQM4KmY0xPzZ0hFAiQJnXB0WwME0E3IsL5B17ZlADqWb
+ NYDrOepdlcysmTWWOrxqbceRWtaLk0VO1XW72D5Vckd2gMBfq8zdpmUG62NJvKM4+XyziDk24xmfWoGE
+ s1c0gHPmbrPTpHNJKOCo2G1mZs20zcwUJ5yp1AB5+8/zEwgF5GMVDxh4AAAAAElFTkSuQmCC
+
+
+
+ 17, 0
+
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
@@ -212,6 +251,9 @@
s1c0gHPmbrPTpHNJKOCo2G1mZs20zcwUJ5yp1AB5+8/zEwgF5GMVDxh4AAAAAElFTkSuQmCC
+
+ 927, 17
+
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
@@ -229,24 +271,6 @@
AAAAAElFTkSuQmCC
-
-
- iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
- YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAgxJREFUOE+lkvtL
- U2EYx+0PEbtpFwnBKPGKiJImGP0gYhIYs1E5GF5gIxkpA00JRSmMEF0ohMh+GaRWYlqabMVcNdS2QpaI
- VqiDIYhk397vA6fXhCjyhYdzeM/5fp7vczkAdeL2cwho7v/wWzT1zcN+Pwhr51uY2/y41PQaF+wzKKiZ
- QvaN58g0jyLd5KEUcQbg+84P/Cm2tncQjW3j68YWIqubCC3FcOJc478BAuGoZM6zvoRnakXEruEIjhc4
- /g5gZop9c+voGAyLbQIfeBZxLL9BA1jzXvuGbWamuKh+GmmVbswE19A59FEBbmoAG7YbsLtm2mZmiml9
- cvabNDwpz6YB7LYBoMXCumkJr7LOmnnHzBQ/9X2Bo2cOibm1GsBREbAQiYmw/8lnuCeWkVzcgnZlnw1j
- 3HV/wuNXK6i/9x5Hc6wawDlTXHbLJ+LZUBQPRyKwdQdxutwl1h+NLXHh5Ht1ewBHsiwawCW57HyDAfWR
- dvl0uhZQ1eqX8aVc7EKLqrum651ATLf9OJx5XQM4KmY0xPzZ0hFAiQJnXB0WwME0E3IsL5B17ZlADqWb
- NYDrOepdlcysmTWWOrxqbceRWtaLk0VO1XW72D5Vckd2gMBfq8zdpmUG62NJvKM4+XyziDk24xmfWoGE
- s1c0gHPmbrPTpHNJKOCo2G1mZs20zcwUJ5yp1AB5+8/zEwgF5GMVDxh4AAAAAElFTkSuQmCC
-
-
-
- 919, 17
-
226, 17
@@ -296,24 +320,27 @@
- 364, 54
+ 470, 56
- 492, 54
+ 606, 56
- 622, 54
+ 746, 56
- 750, 54
-
-
- 880, 54
+ 882, 56
- 17, 91
+ 17, 95
- 990, 54
+ 1022, 56
+
+
+ 210, 56
+
+
+ 419, 17
\ No newline at end of file
diff --git a/Programs/WinGridProxy/SessionTypes.cs b/Programs/WinGridProxy/SessionTypes.cs
new file mode 100644
index 00000000..6c919179
--- /dev/null
+++ b/Programs/WinGridProxy/SessionTypes.cs
@@ -0,0 +1,711 @@
+/*
+ * Copyright (c) 2009, openmetaverse.org
+ * All rights reserved.
+ *
+ * - Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * - Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ * - Neither the name of the openmetaverse.org nor the names
+ * of its contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+using System;
+using System.Net;
+using System.Text;
+using System.Reflection;
+using OpenMetaverse;
+using OpenMetaverse.Packets;
+using OpenMetaverse.Messages;
+using OpenMetaverse.StructuredData;
+using OpenMetaverse.Interfaces;
+using GridProxy;
+
+namespace WinGridProxy
+{
+ #region Base Class
+ internal abstract class Session
+ {
+ private const string EmptyXml = "XML representation of this item is not available.";
+ private const string EmptyString = "String representation of this item is not available.";
+ private const string EmptyNotation = "Notation representation of this item is not available.";
+
+ public Direction Direction { get; set; }
+ public String Host { get; set; }
+ public String Protocol { get; set; }
+ public String Name { get; set; }
+ public String ContentType { get; set; }
+
+ public int Length { get; set; }
+
+ public Session()
+ {
+ this.Host = this.Protocol = this.Name = String.Empty;
+ this.Length = 0;
+ this.ContentType = String.Empty;
+ }
+
+ public virtual string ToRawString(Direction direction)
+ {
+ return EmptyString;
+ }
+
+ public virtual byte[] ToBytes(Direction direction)
+ {
+ return OpenMetaverse.Utils.EmptyBytes;
+ }
+
+ public virtual string ToXml(Direction direction)
+ {
+ return EmptyXml;
+ }
+
+ public virtual string ToStringNotation(Direction direction)
+ {
+ return EmptyNotation;
+ }
+
+ public abstract string ToPrettyString(Direction direction);
+ public abstract byte[] Serialize();
+ public abstract Session Deserialize(byte[] bytes);
+ }
+ #endregion
+
+ #region Packets
+ internal sealed class SessionPacket : Session
+ {
+ public Packet Packet { get; set; }
+
+ public SessionPacket() : base() { this.Protocol = "UDP"; }
+ public SessionPacket(Packet packet, Direction direction, IPEndPoint endpoint, String contentType)
+ : base()
+ {
+ this.Packet = packet;
+ this.Name = packet.Type.ToString();
+ this.Direction = direction;
+ this.Host = String.Format("{0}:{1}", endpoint.Address, endpoint.Port);
+ this.ContentType = contentType;
+ this.Length = packet.Length;
+ this.Protocol = "UDP";
+ }
+
+ public override string ToPrettyString(Direction direction)
+ {
+ if (direction == this.Direction)
+ return PacketDecoder.PacketToString(this.Packet);
+ else
+ return String.Empty;
+ }
+
+ public override string ToRawString(Direction direction)
+ {
+ if (direction == this.Direction)
+ return PacketDecoder.PacketToString(this.Packet);
+ else
+ return String.Empty;
+ }
+
+ public override byte[] ToBytes(Direction direction)
+ {
+ if (direction == this.Direction)
+ return Packet.ToBytes();
+ else
+ return base.ToBytes(direction);
+ }
+
+ //public override string ToXml(Direction direction)
+ //{
+ // if (direction == this.Direction)
+ // return Packet.ToXmlString(this.Packet);
+ // else
+ // return base.ToXml(direction);
+ //}
+
+ //public override string ToStringNotation(Direction direction)
+ //{
+ // if (direction == this.Direction)
+ // return Packet.GetLLSD(this.Packet).ToString();
+ // else
+ // return base.ToStringNotation(direction);
+ //}
+
+ public override byte[] Serialize()
+ {
+ OSDMap map = new OSDMap(5);
+ map["Name"] = OSD.FromString(this.Name);
+ map["Host"] = OSD.FromString(this.Host);
+ map["PacketBytes"] = OSD.FromBinary(this.Packet.ToBytes());
+ map["Direction"] = OSD.FromInteger((int)this.Direction);
+ map["ContentType"] = OSD.FromString(this.ContentType);
+
+ return OpenMetaverse.Utils.StringToBytes(map.ToString());
+ }
+
+ public override Session Deserialize(byte[] bytes)
+ {
+ OSDMap map = (OSDMap)OSDParser.DeserializeLLSDNotation(OpenMetaverse.Utils.BytesToString(bytes));
+
+ this.Host = map["Host"].AsString();
+ this.Direction = (Direction)map["Direction"].AsInteger();
+ this.ContentType = map["ContentType"].AsString();
+
+ byte[] packetData = map["PacketBytes"].AsBinary();
+ this.Length = packetData.Length;
+
+ int packetEnd = packetData.Length - 1;
+ this.Packet = Packet.BuildPacket(packetData, ref packetEnd, null);
+ this.Name = this.Packet.Type.ToString();
+ return this;
+ }
+ }
+ #endregion Packets
+
+ #region Capabilities
+ internal sealed class SessionCaps : Session
+ {
+ byte[] RequestBytes { get; set; }
+ byte[] ResponseBytes { get; set; }
+ WebHeaderCollection RequestHeaders { get; set; }
+ WebHeaderCollection ResponseHeaders { get; set; }
+
+ public SessionCaps() : base() { /*this.Protocol = "Caps";*/ }
+ public SessionCaps(byte[] requestBytes, byte[] responseBytes,
+ WebHeaderCollection requestHeaders, WebHeaderCollection responseHeaders,
+ Direction direction, string uri, string capsKey, String proto)
+ : base()
+ {
+ this.RequestBytes = requestBytes;
+ this.ResponseBytes = responseBytes;
+ this.RequestHeaders = requestHeaders;
+ this.ResponseHeaders = responseHeaders;
+ this.Protocol = proto;
+
+ this.Name = capsKey;
+ this.Direction = direction;
+ this.Host = uri;
+ this.ContentType = (direction == Direction.Incoming) ? this.ResponseHeaders.Get("Content-Type") : this.RequestHeaders.Get("Content-Type");
+ this.Length = (requestBytes != null) ? requestBytes.Length : 0;
+ this.Length += (responseBytes != null) ? responseBytes.Length : 0;
+ }
+
+ public override string ToPrettyString(Direction direction)
+ {
+ if (direction == Direction.Incoming)
+ {
+ if (this.ResponseBytes != null && this.ResponseBytes.Length > 0)
+ {
+ IMessage message = null;
+ OSD osd = OSDParser.Deserialize(this.ResponseBytes);
+
+ OSDMap data = (OSDMap)osd;
+
+ if (data.ContainsKey("body"))
+ message = OpenMetaverse.Messages.MessageUtils.DecodeEvent(this.Name, (OSDMap)data["body"]);
+ else
+ message = OpenMetaverse.Messages.MessageUtils.DecodeEvent(this.Name, data);
+
+ if (message != null)
+ return PacketDecoder.MessageToString(message, 0);
+ else
+ return "No Decoder for " + this.Name + Environment.NewLine + data.ToString() + Environment.NewLine +
+ "Please report this at http://jira.openmv.org Be sure to include the entire message.";
+ }
+ }
+ else
+ {
+ if (this.RequestBytes != null && this.RequestBytes.Length > 0)
+ {
+ if (this.RequestBytes[0] == 60)
+ {
+ OSD osd = OSDParser.Deserialize(this.RequestBytes);
+ if (osd is OSDMap)
+ {
+ IMessage message = null;
+ OSDMap data = (OSDMap)osd;
+
+ if (data.ContainsKey("body"))
+ message = MessageUtils.DecodeEvent(this.Name, (OSDMap)data["body"]);
+ else
+ message = MessageUtils.DecodeEvent(this.Name, data);
+
+ if (message != null)
+ return PacketDecoder.MessageToString(message, 0);
+ else
+ return "No Decoder for " + this.Name + Environment.NewLine + data.ToString() + Environment.NewLine +
+ "Please report this at http://jira.openmv.org Be sure to include the entire message.";
+ }
+ else
+ {
+ return osd.ToString();
+ }
+ }
+ else
+ {
+ // this means its probably a script or asset using the uploader capability
+ // so we'll just return the raw bytes as a string
+ //if (this.RequestBytes[0] == 100)
+ //{
+ return Utils.BytesToString(this.RequestBytes);
+ //}
+ }
+ }
+ else
+ {
+ return String.Empty;
+ }
+ }
+ return String.Empty;
+ }
+
+ public override string ToRawString(Direction direction)
+ {
+ if (direction == Direction.Incoming)
+ {
+ if (this.ResponseBytes != null)
+ {
+ StringBuilder result = new StringBuilder();
+ foreach (String key in ResponseHeaders.Keys)
+ {
+ result.AppendFormat("{0} {1}" + Environment.NewLine, key, ResponseHeaders[key]);
+ }
+ result.AppendLine();
+ result.AppendLine(OpenMetaverse.Utils.BytesToString(this.ResponseBytes));
+ return result.ToString();
+ }
+ else
+ return String.Empty;
+ }
+ else
+ {
+ if (this.RequestBytes != null)
+ {
+ StringBuilder result = new StringBuilder();
+ foreach (String key in RequestHeaders.Keys)
+ {
+ result.AppendFormat("{0} {1}" + Environment.NewLine, key, RequestHeaders[key]);
+ }
+ result.AppendLine();
+ result.AppendLine(OpenMetaverse.Utils.BytesToString(this.RequestBytes));
+ return result.ToString();
+ }
+ else
+ return String.Empty;
+ }
+ }
+
+ public override byte[] ToBytes(Direction direction)
+ {
+ if (direction == Direction.Incoming)
+ {
+ if (this.ResponseBytes != null)
+ return this.ResponseBytes;
+ else
+ return base.ToBytes(direction);
+ }
+ else
+ {
+ if (this.RequestBytes != null)
+ return this.RequestBytes;
+ else
+ return base.ToBytes(direction);
+ }
+ }
+
+ public override string ToStringNotation(Direction direction)
+ {
+ if (direction == Direction.Incoming)
+ {
+ if (this.ResponseBytes != null)
+ return BytesToOsd(this.ResponseBytes);
+ //return this.ResponseBytes;
+ else
+ return base.ToStringNotation(direction);
+ }
+ else
+ {
+ if (this.RequestBytes != null)
+ {
+ return BytesToOsd(this.RequestBytes);
+ }
+ else
+ return base.ToStringNotation(direction);
+ }
+ }
+
+ public override string ToXml(Direction direction)
+ {
+ if (direction == Direction.Incoming)
+ {
+ if (this.ResponseBytes != null)
+ return BytesToXml(this.ResponseBytes);
+ else
+ return base.ToXml(direction);
+ }
+ else
+ {
+ if (this.RequestBytes != null)
+ return BytesToXml(this.RequestBytes);
+ else
+ return base.ToXml(direction);
+ }
+ }
+
+ // Sanity check the bytes are infact OSD
+ private string BytesToOsd(byte[] bytes)
+ {
+ try
+ {
+ OSD osd = OSDParser.Deserialize(bytes);
+ return osd.ToString();
+ }
+ catch (LitJson.JsonException)
+ {
+ // unable to decode as notation format
+ return base.ToStringNotation(this.Direction);
+ }
+ }
+
+ // Sanity check the bytes are infact an XML
+ private string BytesToXml(byte[] bytes)
+ {
+ String result = Utils.BytesToString(bytes);
+ if (result.StartsWith(" MessageSessions;
- public Dictionary PacketSessions;
- public bool AutoScrollEnabled;
+ private const int FileVersion = 1;
+
+ public Dictionary MessageSessions;
+ public Dictionary PacketSessions;
public bool StatisticsEnabled;
public bool SaveSessionOnExit;
public bool AutoCheckNewCaps;
public SettingsStore()
{
- MessageSessions = new Dictionary();
- PacketSessions = new Dictionary();
+ MessageSessions = new Dictionary();
+ PacketSessions = new Dictionary();
}
public OSDMap Serialize()
@@ -59,12 +61,13 @@ namespace WinGridProxy
if (MessageSessions.Count > 0)
{
OSDArray messageArray = new OSDArray(MessageSessions.Count);
- foreach (KeyValuePair kvp in MessageSessions)
+ foreach (KeyValuePair kvp in MessageSessions)
{
- OSDMap sessionMap = new OSDMap(3);
- sessionMap["Capability"] = OSD.FromString(kvp.Key);
+ OSDMap sessionMap = new OSDMap(4);
+ sessionMap["Name"] = OSD.FromString(kvp.Key);
+ sessionMap["Type"] = OSD.FromString(kvp.Value.Type);
sessionMap["Capture"] = OSD.FromBoolean(kvp.Value.Checked);
- sessionMap["Type"] = OSD.FromString(kvp.Value.pType);
+ sessionMap["Group"] = OSD.FromString(kvp.Value.Group);
messageArray.Add(sessionMap);
}
map.Add("message_sessions", messageArray);
@@ -73,76 +76,78 @@ namespace WinGridProxy
if (PacketSessions.Count > 0)
{
OSDArray packetArray = new OSDArray(PacketSessions.Count);
- foreach (KeyValuePair kvp in PacketSessions)
+ foreach (KeyValuePair kvp in PacketSessions)
{
- OSDMap sessionMap = new OSDMap(3);
- sessionMap["PacketName"] = OSD.FromString(kvp.Key);
+ OSDMap sessionMap = new OSDMap(4);
+ sessionMap["Name"] = OSD.FromString(kvp.Key);
+ sessionMap["Type"] = OSD.FromString(kvp.Value.Type);
sessionMap["Capture"] = OSD.FromBoolean(kvp.Value.Checked);
- sessionMap["Type"] = OSD.FromString(kvp.Value.pType);
+ sessionMap["Group"] = OSD.FromString(kvp.Value.Group);
packetArray.Add(sessionMap);
}
map.Add("packet_sessions", packetArray);
}
- map.Add("AutoScrollSessions", OSD.FromBoolean(AutoScrollEnabled));
map.Add("CaptureStatistics", OSD.FromBoolean(StatisticsEnabled));
map.Add("SaveProfileOnExit", OSD.FromBoolean(SaveSessionOnExit));
map.Add("AutoCheckNewCaps", OSD.FromBoolean(AutoCheckNewCaps));
-
+ map.Add("FileVersion", OSD.FromInteger(FileVersion));
return map;
}
public void Deserialize(OSDMap map)
{
+ MessageSessions.Clear();
+ PacketSessions.Clear();
- if (map.ContainsKey("message_sessions"))
+ if (map.ContainsKey("FileVersion") && map["FileVersion"].AsInteger() == FileVersion)
{
-
- AutoScrollEnabled = map["AutoScrollSessions"].AsBoolean();
StatisticsEnabled = map["CaptureStatistics"].AsBoolean();
SaveSessionOnExit = map["SaveProfileOnExit"].AsBoolean();
AutoCheckNewCaps = map["AutoCheckNewCaps"].AsBoolean();
-
- OSDArray messageArray = (OSDArray)map["message_sessions"];
-
- MessageSessions = new Dictionary(messageArray.Count);
-
- for (int i = 0; i < messageArray.Count; i++)
- {
- OSDMap m = (OSDMap)messageArray[i];
- FilterEntry entry = new FilterEntry();
- entry.Checked = m["Capture"].AsBoolean();
- entry.pType = m["Type"].AsString();
- MessageSessions.Add(m["Capability"].AsString(), entry);
-
- }
}
else
{
- //MessageSessions = new Dictionary();
+ Console.WriteLine("Error loading saved settings, FileVersion is null or out of date.");
+ StatisticsEnabled = true;
+ AutoCheckNewCaps = true;
+ SaveSessionOnExit = true;
+ return;
}
+ if (map.ContainsKey("message_sessions"))
+ {
+ OSDArray messageArray = (OSDArray)map["message_sessions"];
+
+ //MessageSessions = new Dictionary(messageArray.Count);
+
+ for (int i = 0; i < messageArray.Count; i++)
+ {
+ OSDMap sessionsMap = (OSDMap)messageArray[i];
+ FilterEntryOptions entry = new FilterEntryOptions();
+ entry.Checked = sessionsMap["Capture"].AsBoolean();
+ entry.Group = sessionsMap["Group"].AsString();
+ entry.Type = sessionsMap["Type"].AsString();
+ MessageSessions.Add(sessionsMap["Name"].AsString(), entry);
+ }
+ }
if (map.ContainsKey("packet_sessions"))
{
OSDArray packetArray = (OSDArray)map["packet_sessions"];
- PacketSessions = new Dictionary(packetArray.Count);
+ //PacketSessions = new Dictionary(packetArray.Count);
for (int i = 0; i < packetArray.Count; i++)
{
OSDMap packetMap = (OSDMap)packetArray[i];
- FilterEntry entry = new FilterEntry();
+ FilterEntryOptions entry = new FilterEntryOptions();
entry.Checked = packetMap["Capture"].AsBoolean();
- entry.pType = packetMap["Type"].AsString();
- PacketSessions.Add(packetMap["PacketName"].AsString(), entry);
+ entry.Group = packetMap["Group"].AsString();
+ entry.Type = packetMap["Type"].AsString();
+ PacketSessions.Add(packetMap["Name"].AsString(), entry);
}
}
- else
- {
- //PacketSessions = new Dictionary();
- }
-
}
public bool DeserializeFromFile(string fileName)
@@ -167,6 +172,5 @@ namespace WinGridProxy
{
File.WriteAllText(fileName, this.Serialize().ToString());
}
-
}
}