diff --git a/Programs/GridProxy/GridProxy.cs b/Programs/GridProxy/GridProxy.cs index f7e8e85a..d414b153 100644 --- a/Programs/GridProxy/GridProxy.cs +++ b/Programs/GridProxy/GridProxy.cs @@ -97,7 +97,7 @@ namespace GridProxy /// Email address of the proxy application's author /// An array containing the parameters to use to override the proxy /// servers default settings - public ProxyConfig(string userAgent, string author, string[] args) + public ProxyConfig(string userAgent, string author, string[] args, bool exitOnError) : this(userAgent, author) { Dictionary argumentParsers = new Dictionary(); @@ -127,7 +127,14 @@ namespace GridProxy catch { Console.WriteLine("invalid value for --" + argument); - ParseHelp(null); + if (exitOnError) + { + ParseHelp(null); + } + else + { + throw; + } } } } diff --git a/Programs/GridProxy/GridProxyLoader.cs b/Programs/GridProxy/GridProxyLoader.cs index 7fc58c06..66d30df5 100644 --- a/Programs/GridProxy/GridProxyLoader.cs +++ b/Programs/GridProxy/GridProxyLoader.cs @@ -75,7 +75,7 @@ namespace GridProxy if (proxyConfig == null) { - proxyConfig = new ProxyConfig("GridProxy", "Austin Jennings / Andrew Ortman", args); + proxyConfig = new ProxyConfig("GridProxy", "Austin Jennings / Andrew Ortman", args, true); } proxy = new Proxy(proxyConfig); diff --git a/Programs/GridProxyGUI/MainWindow.Persistance.cs b/Programs/GridProxyGUI/MainWindow.Persistance.cs index 0d26ff40..b96f1122 100755 --- a/Programs/GridProxyGUI/MainWindow.Persistance.cs +++ b/Programs/GridProxyGUI/MainWindow.Persistance.cs @@ -75,10 +75,21 @@ public partial class MainWindow cbLoginURL.Active = selected; } + int port = 8080; + if (Options.Instance.ContainsKey("listen_port")) + { + port = Options.Instance["listen_port"]; + } + txtPort.Text = port.ToString(); + } void SaveSettings() { + int port = 8080; + int.TryParse(txtPort.Text, out port); + Options.Instance["listen_port"] = port; + var currentServer = cbLoginURL.ActiveText.Trim(); Uri uriResult; if (Uri.TryCreate(currentServer, UriKind.Absolute, out uriResult) diff --git a/Programs/GridProxyGUI/MainWindow.cs b/Programs/GridProxyGUI/MainWindow.cs index b2092c0f..98beef4a 100755 --- a/Programs/GridProxyGUI/MainWindow.cs +++ b/Programs/GridProxyGUI/MainWindow.cs @@ -61,6 +61,16 @@ public partial class MainWindow : Gtk.Window font = "monospace 9"; } + btnLoadPlugin.Sensitive = false; + txtPort.TextInserted += (object o, TextInsertedArgs args) => + { + if (args.Length != 1) return; + if (!char.IsDigit(args.Text[0])) + { + txtPort.DeleteText(args.Position - 1, args.Position); + } + }; + txtRequest.ModifyFont(Pango.FontDescription.FromString(font)); CreateTags(txtRequest.Buffer); txtRequestRaw.ModifyFont(Pango.FontDescription.FromString(font)); @@ -297,10 +307,11 @@ public partial class MainWindow : Gtk.Window { proxy = new ProxyManager(txtPort.Text, cbListen.ActiveText, cbLoginURL.ActiveText); proxy.Start(); + btnLoadPlugin.Sensitive = true; } - catch + catch (Exception ex) { - Logger.Log("Failed to start proxy", OpenMetaverse.Helpers.LogLevel.Error); + Logger.Log("Failed to start proxy: " + ex.Message, OpenMetaverse.Helpers.LogLevel.Error); try { proxy.Stop(); @@ -321,6 +332,7 @@ public partial class MainWindow : Gtk.Window containerFilterUDP.Remove(child); } plugins.Store.Clear(); + btnLoadPlugin.Sensitive = false; } protected void OnDeleteEvent(object sender, DeleteEventArgs a) diff --git a/Programs/GridProxyGUI/ProxyManager.cs b/Programs/GridProxyGUI/ProxyManager.cs index 83cc9f16..4a12200e 100644 --- a/Programs/GridProxyGUI/ProxyManager.cs +++ b/Programs/GridProxyGUI/ProxyManager.cs @@ -99,7 +99,7 @@ namespace GridProxyGUI quiet */ - ProxyConfig pc = new ProxyConfig("WinGridProxy", "Jim Radford", args); + ProxyConfig pc = new ProxyConfig("WinGridProxy", "Jim Radford", args, false); Proxy = new ProxyFrame(args, pc);