Class TdsTlsInputStream

java.lang.Object
java.io.InputStream
java.io.FilterInputStream
net.sourceforge.jtds.ssl.TdsTlsInputStream
All Implemented Interfaces:
Closeable, AutoCloseable

class TdsTlsInputStream extends FilterInputStream
An input stream that filters out TDS headers so they are not returned to JSSE (which will not recognize them).
Version:
$Id: TdsTlsInputStream.java,v 1.5 2005-10-20 09:46:38 alin_sinpalean Exp $
Author:
Rob Worsnop, Mike Hutchinson
  • Field Details

    • bytesOutstanding

      int bytesOutstanding
    • readBuffer

      final byte[] readBuffer
      Temporary buffer used to de-encapsulate inital TLS packets. Initial size should be enough for login phase after which no buffering is required.
    • bufferStream

      InputStream bufferStream
    • pureSSL

      boolean pureSSL
      False if TLS packets are encapsulated in TDS packets.
  • Constructor Details

    • TdsTlsInputStream

      public TdsTlsInputStream(InputStream in)
      Constructs a TdsTlsInputStream and bases it on an underlying stream.
      Parameters:
      in - the underlying stream
  • Method Details

    • read

      public int read(byte[] b, int off, int len) throws IOException
      Overrides:
      read in class FilterInputStream
      Throws:
      IOException
    • primeBuffer

      private void primeBuffer() throws IOException
      Read in entire TLS record or TDS packet and store the TLS record in the buffer. (TDS packets will always contain a TLS record.)
      Throws:
      IOException
    • readFully

      private void readFully(byte[] b, int off, int len) throws IOException
      Reads len bytes or throws an IOException if there aren't that many bytes available.
      Parameters:
      b - buffer to read into
      off - offset in the buffer where to start storing
      len - amount of data to read
      Throws:
      IOException - if an I/O error occurs or not enough data is available