net.sourceforge.jtds.ssl
Class TdsTlsInputStream

java.lang.Object
  extended byjava.io.InputStream
      extended byjava.io.FilterInputStream
          extended bynet.sourceforge.jtds.ssl.TdsTlsInputStream

class TdsTlsInputStream
extends java.io.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 Summary
(package private)  java.io.InputStream bufferStream
           
(package private)  int bytesOutstanding
           
(package private)  boolean pureSSL
          False if TLS packets are encapsulated in TDS packets.
(package private)  byte[] readBuffer
          Temporary buffer used to de-encapsulate inital TLS packets.
 
Fields inherited from class java.io.FilterInputStream
in
 
Fields inherited from class java.io.InputStream
 
Constructor Summary
TdsTlsInputStream(java.io.InputStream in)
          Constructs a TdsTlsInputStream and bases it on an underlying stream.
 
Method Summary
private  void primeBuffer()
          Read in entire TLS record or TDS packet and store the TLS record in the buffer.
 int read(byte[] b, int off, int len)
           
private  void readFully(byte[] b, int off, int len)
          Reads len bytes or throws an IOException if there aren't that many bytes available.
 
Methods inherited from class java.io.FilterInputStream
available, close, mark, markSupported, read, read, reset, skip
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

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

java.io.InputStream bufferStream

pureSSL

boolean pureSSL
False if TLS packets are encapsulated in TDS packets.

Constructor Detail

TdsTlsInputStream

public TdsTlsInputStream(java.io.InputStream in)
Constructs a TdsTlsInputStream and bases it on an underlying stream.

Parameters:
in - the underlying stream
Method Detail

read

public int read(byte[] b,
                int off,
                int len)
         throws java.io.IOException
Throws:
java.io.IOException

primeBuffer

private void primeBuffer()
                  throws java.io.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:
java.io.IOException

readFully

private void readFully(byte[] b,
                       int off,
                       int len)
                throws java.io.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:
java.io.IOException - if an I/O error occurs or not enough data is available


Generated on October 27 2012