More progress

This commit is contained in:
Latif Khalifa
2013-12-01 23:02:34 +01:00
parent daf8decdb1
commit 6047cccca9
4 changed files with 403 additions and 21 deletions

View File

@@ -5,6 +5,7 @@ using Gtk;
using GridProxyGUI;
using OpenMetaverse.Packets;
using System.Timers;
using Nwc.XmlRpc;
public partial class MainWindow : Gtk.Window
{
@@ -37,13 +38,14 @@ public partial class MainWindow : Gtk.Window
mainSplit.Position = 600;
txtSummary.ModifyFont(Pango.FontDescription.FromString("monospace bold 9"));
sessionLogScroller.Add(messages = new MessageScroller());
messages.CursorChanged += messages_CursorChanged;
StatsTimer = new Timer(1000.0);
StatsTimer.Elapsed += StatsTimer_Elapsed;
StatsTimer.Enabled = true;
ProxyLogger.Init();
ProxyManager.OnLoginResponse += ProxyManager_OnLoginResponse;
ProxyManager.OnPacketLog += ProxyManager_OnPacketLog;
ProxyManager.OnCapabilityAdded += new ProxyManager.CapsAddedHandler(ProxyManager_OnCapabilityAdded);
ProxyManager.OnEventMessageLog += new ProxyManager.EventQueueMessageHandler(ProxyManager_OnEventMessageLog);
@@ -65,6 +67,36 @@ public partial class MainWindow : Gtk.Window
});
}
void ProxyManager_OnLoginResponse(object request, GridProxy.Direction direction)
{
Application.Invoke((xsender, xe) =>
{
string loginType;
if (request is XmlRpcRequest)
{
loginType = "Login Request";
}
else
{
loginType = "Login Response";
}
if (UDPFilterItems.ContainsKey(loginType) && UDPFilterItems[loginType].Enabled)
{
PacketCounter++;
SessionLogin sessionLogin = new SessionLogin(request, direction, cbLoginURL.ActiveText, request.GetType().Name + " " + loginType);
sessionLogin.Columns = new string[] { PacketCounter.ToString(), sessionLogin.TimeStamp.ToString("HH:mm:ss.fff"),
sessionLogin.Protocol, sessionLogin.Name, sessionLogin.Length.ToString(), sessionLogin.Host, sessionLogin.ContentType };
messages.AddSession(sessionLogin);
}
});
}
void ProxyManager_OnPacketLog(Packet packet, GridProxy.Direction direction, System.Net.IPEndPoint endpoint)
{
Application.Invoke((xsender, xe) =>
@@ -279,7 +311,7 @@ public partial class MainWindow : Gtk.Window
if (UDPFilterItems.Count > 0) return;
UDPFilterItems["Login Request"] = new FilterItem() { Enabled = false, Name = "Login Request", Type = ItemType.Login };
UDPFilterItems["Login Response"] = new FilterItem() { Enabled = true, Name = "Login Response", Type = ItemType.Login};
UDPFilterItems["Login Response"] = new FilterItem() { Enabled = true, Name = "Login Response", Type = ItemType.Login };
foreach (string name in Enum.GetNames(typeof(PacketType)))
{
if (!string.IsNullOrEmpty(name))
@@ -338,8 +370,25 @@ public partial class MainWindow : Gtk.Window
SetAllToggles(cbSelectAllCap.Active, capStore);
}
protected void OnCbAutoScrollToggled (object sender, EventArgs e)
{
protected void OnCbAutoScrollToggled(object sender, EventArgs e)
{
messages.AutoScroll = cbAutoScroll.Active;
}
}
void messages_CursorChanged(object sender, EventArgs e)
{
TreeSelection selection = (sender as TreeView).Selection;
TreeModel model;
TreeIter iter;
if (selection.GetSelected(out model, out iter))
{
var item = model.GetValue(iter, 0) as Session;
if (item != null)
{
OpenMetaverse.Logger.Log("Selected: " + item.Name, OpenMetaverse.Helpers.LogLevel.Info);
}
}
}
}