Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## net.sourceforge.jtds.ssl
Class TdsTlsOutputStream

    java.lang.Object
      |
      +--java.io.OutputStream
            |
            +--java.io.FilterOutputStream
                  |
                  +--net.sourceforge.jtds.ssl.TdsTlsOutputStream

class TdsTlsOutputStream
extends java.io.FilterOutputStream

An 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
  `private java.util.List` | `bufferedRecords` Used for holding back CKE, CCS and FIN records.
  `private int` | `totalSize`

  Fields inherited from class java.io.FilterOutputStream
  `out`

  Constructor Summary
  `(package private)` | `TdsTlsOutputStream(java.io.OutputStream out)` Constructs a TdsTlsOutputStream based on an underlying output stream.

  Method Summary
  `private void` | `deferRecord(byte[] record, int len)` Holds back a record for batched transmission.
  `void` | `flush()`
  `private void` | `flushBufferedRecords()` Transmits the buffered batch of records.
  `(package private) void` | `putTdsPacket(byte[] b, int len)` Write a TDS packet containing the TLS record(s).
  `void` | `write(byte[] b, int off, int len)`

  Methods inherited from class java.io.FilterOutputStream
  `close, write, write`

  Methods inherited from class java.lang.Object
  `, clone, equals, finalize, getClass, hashCode, notify, notifyAll, registerNatives, toString, wait, wait, wait`

  Field Detail

  ### bufferedRecords

      private final java.util.List bufferedRecords

    Used for holding back CKE, CCS and FIN records.

  ### totalSize

      private int totalSize

  Constructor Detail

  ### TdsTlsOutputStream

      TdsTlsOutputStream(java.io.OutputStream out)

    Constructs a TdsTlsOutputStream based on an underlying output stream.
    Parameters:
      `out` - the underlying output stream

  Method Detail

  ### deferRecord

      private void deferRecord(byte[] record,
                               int len)

    Holds back a record for batched transmission.
    Parameters:
      `record` - the TLS record to buffer
      `len` - the length of the TLS record to buffer

  ### flushBufferedRecords

      private void flushBufferedRecords()
                                 throws java.io.IOException

    Transmits the buffered batch of records.

  ### write

      public void write(byte[] b,
                        int off,
                        int len)
                 throws java.io.IOException

    Overrides:
      `write` in class `java.io.FilterOutputStream`

  ### putTdsPacket

      void putTdsPacket(byte[] b,
                        int len)
                  throws java.io.IOException

    Write a TDS packet containing the TLS record(s).
    Parameters:
      `b` - the TLS record
      `len` - the length of the TLS record

  ### flush

      public void flush()
                 throws java.io.IOException

    Overrides:
      `flush` in class `java.io.FilterOutputStream`

  Overview | Package | Class | Use | Tree | Deprecated | Index | Help
  PREV CLASS NEXT CLASS | FRAMES NO FRAMES
  SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

  Generated on August 22 2007