From 342ce128402b9e0dc155e76fa99a62267a279232 Mon Sep 17 00:00:00 2001 From: Avery Pennarun Date: Tue, 18 Jan 2011 19:47:59 -0800 Subject: [PATCH] ui-macos: Don't enable connecting for hosts with Custom but zero subnets. That would cause the sshuttle client to die. --- ui-macos/MainMenu.xib | 47 +++++++++++++++++++++++++++++-------------- ui-macos/main.py | 3 +++ ui-macos/models.py | 7 +++++++ 3 files changed, 42 insertions(+), 15 deletions(-) diff --git a/ui-macos/MainMenu.xib b/ui-macos/MainMenu.xib index 3414b17..5ba7fa5 100644 --- a/ui-macos/MainMenu.xib +++ b/ui-macos/MainMenu.xib @@ -12,7 +12,7 @@ YES - + YES @@ -157,7 +157,7 @@ 75628096 2048 - Connected + Connect LucidaGrande 11 @@ -742,19 +742,19 @@ 25 - + 268 {{189, 225}, {270, 29}} 2 YES - + 67239424 0 Send debug information to log - + 1211912703 2 @@ -999,6 +999,7 @@ wantConnect statusMsg status + isValid SshuttleServer YES @@ -1416,10 +1417,10 @@ value: values.debug - + - + value: values.debug value @@ -1433,10 +1434,26 @@ debugField - + 556 + + + enabled: arrangedObjects.isValid + + + + + + enabled: arrangedObjects.isValid + enabled + arrangedObjects.isValid + 2 + + + 557 + @@ -1526,7 +1543,7 @@ YES - + @@ -1933,17 +1950,17 @@ 552 - + YES - + 553 - - + + @@ -2209,7 +2226,7 @@ ToolTip ToolTip - + If your connection to the server dies, do you want Sshuttle to retry the connection right away? @@ -2233,7 +2250,7 @@ - 556 + 557 diff --git a/ui-macos/main.py b/ui-macos/main.py index 7e8eab8..3a9780d 100644 --- a/ui-macos/main.py +++ b/ui-macos/main.py @@ -215,8 +215,11 @@ class SshuttleController(NSObject): host = i.host() want = i.wantConnect() connected = i.connected() + numnets = len(list(i.nets())) if not host: additem('Connect Untitled', None, i) + elif i.autoNets() == models.NET_MANUAL and not numnets: + additem('Connect %s (no routes)' % host, None, i) elif want: any_conn = i additem('Disconnect %s' % host, self.cmd_disconnect, i) diff --git a/ui-macos/models.py b/ui-macos/models.py index b5554d3..858975e 100644 --- a/ui-macos/models.py +++ b/ui-macos/models.py @@ -85,6 +85,13 @@ class SshuttleServer(NSObject): def setError_(self, v): self._k_error = v config_changed() + + def isValid(self): + if not self.host(): + return False + if self.autoNets() == NET_MANUAL and not len(list(self.nets())): + return False + return True def host(self): return getattr(self, '_k_host', None)