summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAvery Pennarun <apenwarr@gmail.com>2011-01-18 19:47:59 -0800
committerAvery Pennarun <apenwarr@gmail.com>2011-01-22 16:44:05 -0800
commit342ce128402b9e0dc155e76fa99a62267a279232 (patch)
tree958ff2873bf2cc0e677e3d3f571e4b6256264246
parent701f59a5b86ef35b3c2e30badc95846937da9c24 (diff)
ui-macos: Don't enable connecting for hosts with Custom but zero subnets.
That would cause the sshuttle client to die.
-rw-r--r--ui-macos/MainMenu.xib47
-rw-r--r--ui-macos/main.py3
-rw-r--r--ui-macos/models.py7
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 @@
</object>
<object class="NSMutableArray" key="IBDocument.EditedObjectIDs">
<bool key="EncodedWithXMLCoder">YES</bool>
- <integer value="236"/>
+ <integer value="233"/>
</object>
<object class="NSArray" key="IBDocument.PluginDependencies">
<bool key="EncodedWithXMLCoder">YES</bool>
@@ -157,7 +157,7 @@
<object class="NSTableHeaderCell" key="NSHeaderCell">
<int key="NSCellFlags">75628096</int>
<int key="NSCellFlags2">2048</int>
- <string key="NSContents">Connected</string>
+ <string key="NSContents">Connect</string>
<object class="NSFont" key="NSSupport" id="26">
<string key="NSName">LucidaGrande</string>
<double key="NSSize">11</double>
@@ -742,19 +742,19 @@
<int key="NSPeriodicInterval">25</int>
</object>
</object>
- <object class="NSButton" id="47326841">
+ <object class="NSButton" id="625121428">
<reference key="NSNextResponder" ref="187214803"/>
<int key="NSvFlags">268</int>
<string key="NSFrame">{{189, 225}, {270, 29}}</string>
<reference key="NSSuperview" ref="187214803"/>
<int key="NSViewLayerContentsRedrawPolicy">2</int>
<bool key="NSEnabled">YES</bool>
- <object class="NSButtonCell" key="NSCell" id="817782448">
+ <object class="NSButtonCell" key="NSCell" id="132399775">
<int key="NSCellFlags">67239424</int>
<int key="NSCellFlags2">0</int>
<string key="NSContents">Send debug information to log</string>
<reference key="NSSupport" ref="696441443"/>
- <reference key="NSControlView" ref="47326841"/>
+ <reference key="NSControlView" ref="625121428"/>
<int key="NSButtonFlags">1211912703</int>
<int key="NSButtonFlags2">2</int>
<reference key="NSNormalImage" ref="581816235"/>
@@ -999,6 +999,7 @@
<string>wantConnect</string>
<string>statusMsg</string>
<string>status</string>
+ <string>isValid</string>
</object>
<string key="NSObjectClassName">SshuttleServer</string>
<bool key="NSEditable">YES</bool>
@@ -1416,10 +1417,10 @@
<object class="IBConnectionRecord">
<object class="IBBindingConnection" key="connection">
<string key="label">value: values.debug</string>
- <reference key="source" ref="47326841"/>
+ <reference key="source" ref="625121428"/>
<reference key="destination" ref="582889489"/>
<object class="NSNibBindingConnector" key="connector">
- <reference key="NSSource" ref="47326841"/>
+ <reference key="NSSource" ref="625121428"/>
<reference key="NSDestination" ref="582889489"/>
<string key="NSLabel">value: values.debug</string>
<string key="NSBinding">value</string>
@@ -1433,10 +1434,26 @@
<object class="IBOutletConnection" key="connection">
<string key="label">debugField</string>
<reference key="source" ref="307402018"/>
- <reference key="destination" ref="47326841"/>
+ <reference key="destination" ref="625121428"/>
</object>
<int key="connectionID">556</int>
</object>
+ <object class="IBConnectionRecord">
+ <object class="IBBindingConnection" key="connection">
+ <string key="label">enabled: arrangedObjects.isValid</string>
+ <reference key="source" ref="401421410"/>
+ <reference key="destination" ref="59237012"/>
+ <object class="NSNibBindingConnector" key="connector">
+ <reference key="NSSource" ref="401421410"/>
+ <reference key="NSDestination" ref="59237012"/>
+ <string key="NSLabel">enabled: arrangedObjects.isValid</string>
+ <string key="NSBinding">enabled</string>
+ <string key="NSKeyPath">arrangedObjects.isValid</string>
+ <int key="NSNibBindingConnectorVersion">2</int>
+ </object>
+ </object>
+ <int key="connectionID">557</int>
+ </object>
</object>
<object class="IBMutableOrderedSet" key="objectRecords">
<object class="NSArray" key="orderedObjects">
@@ -1526,7 +1543,7 @@
<bool key="EncodedWithXMLCoder">YES</bool>
<reference ref="625816566"/>
<reference ref="633518934"/>
- <reference ref="47326841"/>
+ <reference ref="625121428"/>
</object>
<reference key="parent" ref="740075218"/>
</object>
@@ -1933,17 +1950,17 @@
</object>
<object class="IBObjectRecord">
<int key="objectID">552</int>
- <reference key="object" ref="47326841"/>
+ <reference key="object" ref="625121428"/>
<object class="NSMutableArray" key="children">
<bool key="EncodedWithXMLCoder">YES</bool>
- <reference ref="817782448"/>
+ <reference ref="132399775"/>
</object>
<reference key="parent" ref="187214803"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">553</int>
- <reference key="object" ref="817782448"/>
- <reference key="parent" ref="47326841"/>
+ <reference key="object" ref="132399775"/>
+ <reference key="parent" ref="625121428"/>
</object>
</object>
</object>
@@ -2209,7 +2226,7 @@
<string key="NS.key.0">ToolTip</string>
<object class="IBToolTipAttribute" key="NS.object.0">
<string key="name">ToolTip</string>
- <reference key="object" ref="47326841"/>
+ <reference key="object" ref="625121428"/>
<string key="toolTip">If your connection to the server dies, do you want Sshuttle to retry the connection right away?</string>
</object>
</object>
@@ -2233,7 +2250,7 @@
</object>
</object>
<nil key="sourceID"/>
- <int key="maxID">556</int>
+ <int key="maxID">557</int>
</object>
<object class="IBClassDescriber" key="IBDocument.Classes">
<object class="NSMutableArray" key="referencedPartialClassDescriptions">
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)