Package net.sourceforge.jtds.ssl
Class TdsTlsOutputStream
- java.lang.Object
-
- java.io.OutputStream
-
- java.io.FilterOutputStream
-
- net.sourceforge.jtds.ssl.TdsTlsOutputStream
-
- All Implemented Interfaces:
java.io.Closeable,java.io.Flushable,java.lang.AutoCloseable
class TdsTlsOutputStream extends java.io.FilterOutputStreamAn output stream that mediates between JSSE and the DB server. SQL Server 2000 has the following requirements:- All handshake records are delivered in TDS packets.
- The "Client Key Exchange" (CKE), "Change Cipher Spec" (CCS) and "Finished" (FIN) messages are to be submitted in the delivered in both the same TDS packet and the same TCP packet.
- From then on TLS/SSL records should be transmitted as normal -- the TDS packet is part of the encrypted application data.
- Version:
- $Id: TdsTlsOutputStream.java,v 1.4 2005-04-28 14:29:31 alin_sinpalean Exp $
- Author:
- Rob Worsnop, Mike Hutchinson
-
-
Field Summary
Fields Modifier and Type Field Description private java.util.ListbufferedRecordsUsed for holding back CKE, CCS and FIN records.private inttotalSize
-
Constructor Summary
Constructors Constructor Description TdsTlsOutputStream(java.io.OutputStream out)Constructs a TdsTlsOutputStream based on an underlying output stream.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description private voiddeferRecord(byte[] record, int len)Holds back a record for batched transmission.voidflush()private voidflushBufferedRecords()Transmits the buffered batch of records.(package private) voidputTdsPacket(byte[] b, int len)Write a TDS packet containing the TLS record(s).voidwrite(byte[] b, int off, int len)
-
-
-
Method Detail
-
deferRecord
private void deferRecord(byte[] record, int len)Holds back a record for batched transmission.- Parameters:
record- the TLS record to bufferlen- the length of the TLS record to buffer
-
flushBufferedRecords
private void flushBufferedRecords() throws java.io.IOExceptionTransmits the buffered batch of records.- Throws:
java.io.IOException
-
write
public void write(byte[] b, int off, int len) throws java.io.IOException- Overrides:
writein classjava.io.FilterOutputStream- Throws:
java.io.IOException
-
putTdsPacket
void putTdsPacket(byte[] b, int len) throws java.io.IOExceptionWrite a TDS packet containing the TLS record(s).- Parameters:
b- the TLS recordlen- the length of the TLS record- Throws:
java.io.IOException
-
flush
public void flush() throws java.io.IOException- Specified by:
flushin interfacejava.io.Flushable- Overrides:
flushin classjava.io.FilterOutputStream- Throws:
java.io.IOException
-
-