Package net.sourceforge.jtds.ssl
Class TdsTlsInputStream
- java.lang.Object
-
- java.io.InputStream
-
- java.io.FilterInputStream
-
- net.sourceforge.jtds.ssl.TdsTlsInputStream
-
- All Implemented Interfaces:
java.io.Closeable
,java.lang.AutoCloseable
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
Fields Modifier and Type Field Description (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.
-
Constructor Summary
Constructors Constructor Description TdsTlsInputStream(java.io.InputStream in)
Constructs a TdsTlsInputStream and bases it on an underlying stream.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description 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)
Readslen
bytes or throws anIOException
if there aren't that many bytes available.-
Methods inherited from class java.io.FilterInputStream
available, close, mark, markSupported, read, read, reset, skip
-
-
-
-
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.
-
-
Method Detail
-
read
public int read(byte[] b, int off, int len) throws java.io.IOException
- Overrides:
read
in classjava.io.FilterInputStream
- 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
Readslen
bytes or throws anIOException
if there aren't that many bytes available.- Parameters:
b
- buffer to read intooff
- offset in the buffer where to start storinglen
- amount of data to read- Throws:
java.io.IOException
- if an I/O error occurs or not enough data is available
-
-