/** * Cancels the remote port forwarding assigned at remote TCP port <code>rport</code>. * * @param rport remote TCP port */ public void delPortForwardingR(int rport) throws JSchException{ this.delPortForwardingR(null, rport); }
/** * Cancels the remote port forwarding assigned at remote TCP port <code>rport</code>. * * @param rport remote TCP port */ public void delPortForwardingR(int rport) throws JSchException { this.delPortForwardingR(null, rport); }
/** * Cancels the remote port forwarding assigned at remote TCP port <code>rport</code>. * * @param rport remote TCP port */ public void delPortForwardingR(int rport) throws JSchException{ this.delPortForwardingR(null, rport); }
/** * Cancels the remote port forwarding assigned at remote TCP port <code>rport</code>. * * @param rport remote TCP port */ public void delPortForwardingR(int rport) throws JSchException{ this.delPortForwardingR(null, rport); }
protected void onClose() throws SshException { try { session.delPortForwardingR(remotePort); } catch (JSchException e) { throw new SshException("Failed to configure remote port forward"); } finally { channelCount--; } } };
@Test public void testRemoteForwarding() throws Exception { Session session = createSession(); try { int forwardedPort = Utils.getFreePort(); session.setPortForwardingR(forwardedPort, TEST_LOCALHOST, echoPort); waitForForwardingRequest(TcpipForwardHandler.REQUEST, TimeUnit.SECONDS.toMillis(5L)); try (Socket s = new Socket(TEST_LOCALHOST, forwardedPort); OutputStream output = s.getOutputStream(); InputStream input = s.getInputStream()) { s.setSoTimeout((int) TimeUnit.SECONDS.toMillis(10L)); String expected = getCurrentTestName(); byte[] bytes = expected.getBytes(StandardCharsets.UTF_8); output.write(bytes); output.flush(); byte[] buf = new byte[bytes.length + Long.SIZE]; int n = input.read(buf); String res = new String(buf, 0, n, StandardCharsets.UTF_8); assertEquals("Mismatched data", expected, res); } finally { session.delPortForwardingR(forwardedPort); } } finally { session.disconnect(); } }
@Test public void testRemoteForwarding() throws Exception { Session session = createSession(); try { int forwardedPort = Utils.getFreePort(); session.setPortForwardingR(forwardedPort, TEST_LOCALHOST, echoPort); waitForForwardingRequest(TcpipForwardHandler.REQUEST, TimeUnit.SECONDS.toMillis(5L)); try (Socket s = new Socket(TEST_LOCALHOST, forwardedPort); OutputStream output = s.getOutputStream(); InputStream input = s.getInputStream()) { s.setSoTimeout((int) TimeUnit.SECONDS.toMillis(10L)); String expected = getCurrentTestName(); byte[] bytes = expected.getBytes(StandardCharsets.UTF_8); output.write(bytes); output.flush(); byte[] buf = new byte[bytes.length + Long.SIZE]; int n = input.read(buf); String res = new String(buf, 0, n, StandardCharsets.UTF_8); assertEquals("Mismatched data", expected, res); } finally { session.delPortForwardingR(forwardedPort); } } finally { session.disconnect(); } }
@Test public void testRemoteForwarding() throws Exception { Session session = createSession(); try { int forwardedPort = Utils.getFreePort(); session.setPortForwardingR(forwardedPort, TEST_LOCALHOST, echoPort); waitForForwardingRequest(TcpipForwardHandler.REQUEST, TimeUnit.SECONDS.toMillis(5L)); try (Socket s = new Socket(TEST_LOCALHOST, forwardedPort); OutputStream output = s.getOutputStream(); InputStream input = s.getInputStream()) { s.setSoTimeout((int) TimeUnit.SECONDS.toMillis(10L)); String expected = getCurrentTestName(); byte[] bytes = expected.getBytes(StandardCharsets.UTF_8); output.write(bytes); output.flush(); byte[] buf = new byte[bytes.length + Long.SIZE]; int n = input.read(buf); String res = new String(buf, 0, n, StandardCharsets.UTF_8); assertEquals("Mismatched data", expected, res); } finally { session.delPortForwardingR(forwardedPort); } } finally { session.disconnect(); } }
@Test public void testRemoteForwardingSecondTimeInSameSession() throws Exception { Session session = createSession(); try { int forwardedPort = Utils.getFreePort(); session.setPortForwardingR(forwardedPort, TEST_LOCALHOST, echoPort); waitForForwardingRequest(TcpipForwardHandler.REQUEST, TimeUnit.SECONDS.toMillis(5L)); session.delPortForwardingR(TEST_LOCALHOST, forwardedPort); waitForForwardingRequest(CancelTcpipForwardHandler.REQUEST, TimeUnit.SECONDS.toMillis(5L)); session.setPortForwardingR(forwardedPort, TEST_LOCALHOST, echoPort); waitForForwardingRequest(TcpipForwardHandler.REQUEST, TimeUnit.SECONDS.toMillis(5L)); try (Socket s = new Socket(TEST_LOCALHOST, forwardedPort); OutputStream output = s.getOutputStream(); InputStream input = s.getInputStream()) { s.setSoTimeout((int) TimeUnit.SECONDS.toMillis(10L)); String expected = getCurrentTestName(); byte[] bytes = expected.getBytes(StandardCharsets.UTF_8); output.write(bytes); output.flush(); byte[] buf = new byte[bytes.length + Long.SIZE]; int n = input.read(buf); String res = new String(buf, 0, n, StandardCharsets.UTF_8); assertEquals("Mismatched data", expected, res); } finally { session.delPortForwardingR(TEST_LOCALHOST, forwardedPort); } } finally { session.disconnect(); } }
@Test public void testRemoteForwardingSecondTimeInSameSession() throws Exception { Session session = createSession(); try { int forwardedPort = Utils.getFreePort(); session.setPortForwardingR(forwardedPort, TEST_LOCALHOST, echoPort); waitForForwardingRequest(TcpipForwardHandler.REQUEST, TimeUnit.SECONDS.toMillis(5L)); session.delPortForwardingR(TEST_LOCALHOST, forwardedPort); waitForForwardingRequest(CancelTcpipForwardHandler.REQUEST, TimeUnit.SECONDS.toMillis(5L)); session.setPortForwardingR(forwardedPort, TEST_LOCALHOST, echoPort); waitForForwardingRequest(TcpipForwardHandler.REQUEST, TimeUnit.SECONDS.toMillis(5L)); try (Socket s = new Socket(TEST_LOCALHOST, forwardedPort); OutputStream output = s.getOutputStream(); InputStream input = s.getInputStream()) { s.setSoTimeout((int) TimeUnit.SECONDS.toMillis(10L)); String expected = getCurrentTestName(); byte[] bytes = expected.getBytes(StandardCharsets.UTF_8); output.write(bytes); output.flush(); byte[] buf = new byte[bytes.length + Long.SIZE]; int n = input.read(buf); String res = new String(buf, 0, n, StandardCharsets.UTF_8); assertEquals("Mismatched data", expected, res); } finally { session.delPortForwardingR(TEST_LOCALHOST, forwardedPort); } } finally { session.disconnect(); } }
@Test public void testRemoteForwardingSecondTimeInSameSession() throws Exception { Session session = createSession(); try { int forwardedPort = Utils.getFreePort(); session.setPortForwardingR(forwardedPort, TEST_LOCALHOST, echoPort); waitForForwardingRequest(TcpipForwardHandler.REQUEST, TimeUnit.SECONDS.toMillis(5L)); session.delPortForwardingR(TEST_LOCALHOST, forwardedPort); waitForForwardingRequest(CancelTcpipForwardHandler.REQUEST, TimeUnit.SECONDS.toMillis(5L)); session.setPortForwardingR(forwardedPort, TEST_LOCALHOST, echoPort); waitForForwardingRequest(TcpipForwardHandler.REQUEST, TimeUnit.SECONDS.toMillis(5L)); try (Socket s = new Socket(TEST_LOCALHOST, forwardedPort); OutputStream output = s.getOutputStream(); InputStream input = s.getInputStream()) { s.setSoTimeout((int) TimeUnit.SECONDS.toMillis(10L)); String expected = getCurrentTestName(); byte[] bytes = expected.getBytes(StandardCharsets.UTF_8); output.write(bytes); output.flush(); byte[] buf = new byte[bytes.length + Long.SIZE]; int n = input.read(buf); String res = new String(buf, 0, n, StandardCharsets.UTF_8); assertEquals("Mismatched data", expected, res); } finally { session.delPortForwardingR(TEST_LOCALHOST, forwardedPort); } } finally { session.disconnect(); } }
session.delPortForwardingR(forwardedPort);
session.delPortForwardingR(forwardedPort);
session.delPortForwardingR(forwardedPort);