Mercurial > 510Connectbot
comparison src/ch/ethz/ssh2/LocalStreamForwarder.java @ 308:42b15aaa7ac7 ganymed
merge
author | Carl Byington <carl@five-ten-sg.com> |
---|---|
date | Wed, 30 Jul 2014 14:21:50 -0700 |
parents | 071eccdff8ea |
children |
comparison
equal
deleted
inserted
replaced
306:90e47d99ea54 | 308:42b15aaa7ac7 |
---|---|
18 * to the remote SSH-2 server). | 18 * to the remote SSH-2 server). |
19 * | 19 * |
20 * @author Christian Plattner | 20 * @author Christian Plattner |
21 * @version 2.50, 03/15/10 | 21 * @version 2.50, 03/15/10 |
22 */ | 22 */ |
23 public class LocalStreamForwarder | 23 public class LocalStreamForwarder { |
24 { | 24 private ChannelManager cm; |
25 private ChannelManager cm; | |
26 | 25 |
27 private Channel cn; | 26 private Channel cn; |
28 | 27 |
29 LocalStreamForwarder(ChannelManager cm, String host_to_connect, int port_to_connect) throws IOException | 28 LocalStreamForwarder(ChannelManager cm, String host_to_connect, int port_to_connect) throws IOException { |
30 { | 29 this.cm = cm; |
31 this.cm = cm; | 30 cn = cm.openDirectTCPIPChannel(host_to_connect, port_to_connect, |
32 cn = cm.openDirectTCPIPChannel(host_to_connect, port_to_connect, | 31 InetAddress.getLocalHost().getHostAddress(), 0); |
33 InetAddress.getLocalHost().getHostAddress(), 0); | 32 } |
34 } | |
35 | 33 |
36 /** | 34 /** |
37 * @return An <code>InputStream</code> object. | 35 * @return An <code>InputStream</code> object. |
38 * @throws IOException | 36 * @throws IOException |
39 */ | 37 */ |
40 public InputStream getInputStream() throws IOException | 38 public InputStream getInputStream() throws IOException { |
41 { | 39 return cn.getStdoutStream(); |
42 return cn.getStdoutStream(); | 40 } |
43 } | |
44 | 41 |
45 /** | 42 /** |
46 * Get the OutputStream. Please be aware that the implementation MAY use an | 43 * Get the OutputStream. Please be aware that the implementation MAY use an |
47 * internal buffer. To make sure that the buffered data is sent over the | 44 * internal buffer. To make sure that the buffered data is sent over the |
48 * tunnel, you have to call the <code>flush</code> method of the | 45 * tunnel, you have to call the <code>flush</code> method of the |
49 * <code>OutputStream</code>. To signal EOF, please use the | 46 * <code>OutputStream</code>. To signal EOF, please use the |
50 * <code>close</code> method of the <code>OutputStream</code>. | 47 * <code>close</code> method of the <code>OutputStream</code>. |
51 * | 48 * |
52 * @return An <code>OutputStream</code> object. | 49 * @return An <code>OutputStream</code> object. |
53 * @throws IOException | 50 * @throws IOException |
54 */ | 51 */ |
55 public OutputStream getOutputStream() throws IOException | 52 public OutputStream getOutputStream() throws IOException { |
56 { | 53 return cn.getStdinStream(); |
57 return cn.getStdinStream(); | 54 } |
58 } | |
59 | 55 |
60 /** | 56 /** |
61 * Close the underlying SSH forwarding channel and free up resources. | 57 * Close the underlying SSH forwarding channel and free up resources. |
62 * You can also use this method to force the shutdown of the underlying | 58 * You can also use this method to force the shutdown of the underlying |
63 * forwarding channel. Pending output (OutputStream not flushed) will NOT | 59 * forwarding channel. Pending output (OutputStream not flushed) will NOT |
64 * be sent. Pending input (InputStream) can still be read. If the shutdown | 60 * be sent. Pending input (InputStream) can still be read. If the shutdown |
65 * operation is already in progress (initiated from either side), then this | 61 * operation is already in progress (initiated from either side), then this |
66 * call is a no-op. | 62 * call is a no-op. |
67 * | 63 * |
68 * @throws IOException | 64 * @throws IOException |
69 */ | 65 */ |
70 public void close() throws IOException | 66 public void close() throws IOException { |
71 { | 67 cm.closeChannel(cn, "Closed due to user request.", true); |
72 cm.closeChannel(cn, "Closed due to user request.", true); | 68 } |
73 } | |
74 } | 69 } |