diff options
author | Kenny Root <kenny@the-b.org> | 2009-06-17 05:56:07 +0000 |
---|---|---|
committer | Kenny Root <kenny@the-b.org> | 2009-06-17 05:56:07 +0000 |
commit | e77f48d5bc1dab117b7aaca4bb967a3c9f473b45 (patch) | |
tree | 6d3fc2f6313ea1c8fea31d14bff73749b9c9ac94 /src/org | |
parent | 1df928d3911ecfef47573cc9f2ac74e10beb0e39 (diff) | |
download | connectbot-e77f48d5bc1dab117b7aaca4bb967a3c9f473b45.tar.gz connectbot-e77f48d5bc1dab117b7aaca4bb967a3c9f473b45.tar.bz2 connectbot-e77f48d5bc1dab117b7aaca4bb967a3c9f473b45.zip |
Do not allow people to open Port Forwards on transports that do not support it
git-svn-id: https://connectbot.googlecode.com/svn/trunk/connectbot@318 df292f66-193f-0410-a5fc-6d59da041ff2
Diffstat (limited to 'src/org')
-rw-r--r-- | src/org/connectbot/ConsoleActivity.java | 19 | ||||
-rw-r--r-- | src/org/connectbot/service/TerminalBridge.java | 7 |
2 files changed, 20 insertions, 6 deletions
diff --git a/src/org/connectbot/ConsoleActivity.java b/src/org/connectbot/ConsoleActivity.java index e8ec572..bd66b3b 100644 --- a/src/org/connectbot/ConsoleActivity.java +++ b/src/org/connectbot/ConsoleActivity.java @@ -578,10 +578,13 @@ public class ConsoleActivity extends Activity { final boolean activeTerminal = (view instanceof TerminalView); boolean sessionOpen = false; boolean disconnected = false; + boolean canForwardPorts = false; if (activeTerminal) { - sessionOpen = ((TerminalView) view).bridge.isSessionOpen(); - disconnected = ((TerminalView) view).bridge.isDisconnected(); + TerminalBridge bridge = ((TerminalView) view).bridge; + sessionOpen = bridge.isSessionOpen(); + disconnected = bridge.isDisconnected(); + canForwardPorts = bridge.canFowardPorts(); } menu.setQwertyMode(true); @@ -648,7 +651,7 @@ public class ConsoleActivity extends Activity { portForward = menu.add(R.string.console_menu_portforwards); portForward.setAlphabeticShortcut('f'); portForward.setIcon(android.R.drawable.ic_menu_manage); - portForward.setEnabled(sessionOpen); + portForward.setEnabled(sessionOpen && canForwardPorts); portForward.setOnMenuItemClickListener(new OnMenuItemClickListener() { public boolean onMenuItemClick(MenuItem item) { TerminalView terminalView = (TerminalView) findCurrentView(R.id.console_flip); @@ -698,9 +701,13 @@ public class ConsoleActivity extends Activity { boolean activeTerminal = (view instanceof TerminalView); boolean sessionOpen = false; boolean disconnected = false; + boolean canForwardPorts = false; + if (activeTerminal) { - sessionOpen = ((TerminalView)view).bridge.isSessionOpen(); - disconnected = ((TerminalView)view).bridge.isDisconnected(); + TerminalBridge bridge = ((TerminalView) view).bridge; + sessionOpen = bridge.isSessionOpen(); + disconnected = bridge.isDisconnected(); + canForwardPorts = bridge.canFowardPorts(); } disconnect.setEnabled(activeTerminal); @@ -710,7 +717,7 @@ public class ConsoleActivity extends Activity { disconnect.setTitle(R.string.console_menu_close); copy.setEnabled(activeTerminal); paste.setEnabled(clipboard.hasText() && sessionOpen); - portForward.setEnabled(sessionOpen); + portForward.setEnabled(sessionOpen && canForwardPorts); resize.setEnabled(sessionOpen); return true; diff --git a/src/org/connectbot/service/TerminalBridge.java b/src/org/connectbot/service/TerminalBridge.java index 8538257..9e8d4be 100644 --- a/src/org/connectbot/service/TerminalBridge.java +++ b/src/org/connectbot/service/TerminalBridge.java @@ -1117,6 +1117,13 @@ public class TerminalBridge implements VDUDisplay, OnKeyListener { } /** + * @return whether underlying transport can forward ports + */ + public boolean canFowardPorts() { + return transport.canForwardPorts(); + } + + /** * Adds the {@link PortForwardBean} to the list. * @param portForward the port forward bean to add * @return true on successful addition |