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

net.sourceforge.jtds.ssl.TdsTlsSocket Maven / Gradle / Ivy

Go to download

jTDS is an open source 100% pure Java (type 4) JDBC 3.0 driver for Microsoft SQL Server (6.5, 7, 2000, 2005, 2008, 2012) and Sybase ASE (10, 11, 12, 15). jTDS is based on FreeTDS and is currently the fastest production-ready JDBC driver for SQL Server and Sybase. jTDS is 100% JDBC 3.0 compatible, supporting forward-only and scrollable/updateable ResultSets and implementing all the DatabaseMetaData and ResultSetMetaData methods.

There is a newer version: 1.3.1
Show newest version
//jTDS JDBC Driver for Microsoft SQL Server and Sybase
//Copyright (C) 2004 The jTDS Project
//
//This library is free software; you can redistribute it and/or
//modify it under the terms of the GNU Lesser General Public
//License as published by the Free Software Foundation; either
//version 2.1 of the License, or (at your option) any later version.
//
//This library is distributed in the hope that it will be useful,
//but WITHOUT ANY WARRANTY; without even the implied warranty of
//MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
//Lesser General Public License for more details.
//
//You should have received a copy of the GNU Lesser General Public
//License along with this library; if not, write to the Free Software
//Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
//
package net.sourceforge.jtds.ssl;

import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.Socket;
import java.net.SocketException;

/**
 * A socket that mediates between JSSE and the DB server.
 *
 * @author Rob Worsnop
 * @author Mike Hutchinson
 * @version $Id: TdsTlsSocket.java,v 1.3.2.1 2009-08-07 14:02:11 ickzon Exp $
 */
class TdsTlsSocket extends Socket {
    private final Socket delegate;
    private final InputStream istm;
    private final OutputStream ostm;

    /**
     * Constructs a TdsTlsSocket around an underlying socket.
     *
     * @param delegate the underlying socket
     */
    TdsTlsSocket(Socket delegate) throws IOException {
        this.delegate = delegate;
        istm = new TdsTlsInputStream(delegate.getInputStream());
        ostm = new TdsTlsOutputStream(delegate.getOutputStream());
    }

    /*
     * (non-Javadoc)
     *
     * @see java.net.Socket#close()
     */
    public synchronized void close() throws IOException {
        // Do nothing. Underlying socket closed elsewhere
    }

    /*
     * (non-Javadoc)
     *
     * @see java.net.Socket#getInputStream()
     */
    public InputStream getInputStream() throws IOException {
        return istm;
    }

    /*
     * (non-Javadoc)
     *
     * @see java.net.Socket#getOutputStream()
     */
    public OutputStream getOutputStream() throws IOException {
        return ostm;
    }

    /*
     * (non-Javadoc)
     *
     * @see java.net.Socket#isConnected()
     */
    public boolean isConnected() {
        return true;
    }

    /*
     * (non-Javadoc)
     *
     * @see java.net.Socket#setSoTimeout(int)
     */
    public synchronized void setSoTimeout(int timeout) throws SocketException {
        delegate.setSoTimeout(timeout);
    }

    /*
     * (non-Javadoc)
     *
     * @see java.net.Socket#setKeepAlive(boolean)
     */
    public synchronized void setKeepAlive(boolean keepAlive) throws SocketException {
        delegate.setKeepAlive(keepAlive);
    }

    /*
     * (non-Javadoc)
     *
     * @see java.net.Socket#setTcpNoDelay(boolean)
     */
    public void setTcpNoDelay(boolean on) throws SocketException {
        delegate.setTcpNoDelay(on);
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy