aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorKenny Root <kenny@the-b.org>2009-06-16 05:45:51 +0000
committerKenny Root <kenny@the-b.org>2009-06-16 05:45:51 +0000
commit8af5aff550d4749d860618d09568c25898d1161a (patch)
tree3f474ef97c229ddead410f50a297d0e4fc4885bb /src
parentc4c00813d713c7e431b01fb522087fbac22cdf56 (diff)
downloadconnectbot-8af5aff550d4749d860618d09568c25898d1161a.tar.gz
connectbot-8af5aff550d4749d860618d09568c25898d1161a.tar.bz2
connectbot-8af5aff550d4749d860618d09568c25898d1161a.zip
Detect SocketExceptions when communicating via Telnet
git-svn-id: https://connectbot.googlecode.com/svn/trunk/connectbot@309 df292f66-193f-0410-a5fc-6d59da041ff2
Diffstat (limited to 'src')
-rw-r--r--src/org/connectbot/transport/Telnet.java20
1 files changed, 15 insertions, 5 deletions
diff --git a/src/org/connectbot/transport/Telnet.java b/src/org/connectbot/transport/Telnet.java
index 597ac1b..613e1de 100644
--- a/src/org/connectbot/transport/Telnet.java
+++ b/src/org/connectbot/transport/Telnet.java
@@ -22,6 +22,7 @@ import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.Socket;
+import java.net.SocketException;
import java.net.UnknownHostException;
import java.util.Map;
import java.util.regex.Matcher;
@@ -89,7 +90,8 @@ public class Telnet extends AbsTransport {
/** write data to our back end */
@Override
public void write(byte[] b) throws IOException {
- os.write(b);
+ if (os != null)
+ os.write(b);
}
/** sent on IAC EOR (prompt terminator for remote access systems). */
@@ -193,14 +195,22 @@ public class Telnet extends AbsTransport {
@Override
public void write(byte[] buffer) throws IOException {
- if (os != null)
- os.write(buffer);
+ try {
+ if (os != null)
+ os.write(buffer);
+ } catch (SocketException e) {
+ bridge.dispatchDisconnect(false);
+ }
}
@Override
public void write(int c) throws IOException {
- if (os != null)
- os.write(c);
+ try {
+ if (os != null)
+ os.write(c);
+ } catch (SocketException e) {
+ bridge.dispatchDisconnect(false);
+ }
}
@Override