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);