All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.hierynomus.smbj.transport.tcp.tunnel.TunnelTransport Maven / Gradle / Ivy

There is a newer version: 0.13.0
Show newest version
/*
 * Copyright (C)2016 - SMBJ Contributors
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package com.hierynomus.smbj.transport.tcp.tunnel;

import com.hierynomus.protocol.Packet;
import com.hierynomus.protocol.transport.TransportException;
import com.hierynomus.protocol.transport.TransportLayer;

import java.io.IOException;
import java.net.InetSocketAddress;

/**
 * A Transport that translates the actual remote address to a connection on 'localhost' on the specified port.
 *
 * This is useful for when using an SSH tunnel.
 *
 * @param 

*/ public class TunnelTransport

> implements TransportLayer

{ private TransportLayer

tunnel; private String tunnelHost; private int tunnelPort; public TunnelTransport(TransportLayer

tunnel, String tunnelHost, int tunnelPort) { this.tunnel = tunnel; this.tunnelHost = tunnelHost; this.tunnelPort = tunnelPort; } @Override public void write(P packet) throws TransportException { tunnel.write(packet); } @Override public void connect(InetSocketAddress remoteAddress) throws IOException { InetSocketAddress localAddress = new InetSocketAddress(tunnelHost, tunnelPort); tunnel.connect(localAddress); } @Override public void disconnect() throws IOException { tunnel.disconnect(); } @Override public boolean isConnected() { return tunnel.isConnected(); } }





© 2015 - 2024 Weber Informatics LLC | Privacy Policy