## org.eclipse.jetty.io.nio
Class SslSelectChannelEndPoint

    java.lang.Object
      org.eclipse.jetty.io.nio.ChannelEndPoint
          org.eclipse.jetty.io.nio.SelectChannelEndPoint
              org.eclipse.jetty.io.nio.SslSelectChannelEndPoint

All Implemented Interfaces:
  AsyncEndPoint, ConnectedEndPoint, EndPoint

    public class SslSelectChannelEndPoint

extends SelectChannelEndPoint

SslSelectChannelEndPoint

A SelectChannelEndPoint that uses an `SSLEngine` to handle an SSL connection.

There is a named logger "org.eclipse.jetty.http.ssl"

Field Summary

Fields inherited from class org.eclipse.jetty.io.nio.ChannelEndPoint
`_channel, _gather2, _local, _maxIdleTime, _remote, _socket`

Constructor Summary
`SslSelectChannelEndPoint(Buffers buffers, SocketChannel channel, SelectorManager.SelectSet selectSet, SelectionKey key, SSLEngine engine)`
`SslSelectChannelEndPoint(Buffers buffers, SocketChannel channel, SelectorManager.SelectSet selectSet, SelectionKey key, SSLEngine engine, int maxIdleTime)`

Method Summary
`void` `close()` Close any backing stream associated with the endpoint
`void` `dump()`
`int` `fill(Buffer buffer)` Fill the buffer with unencrypted bytes.
`void` `flush()` Flush any buffered output.
`int` `flush(Buffer buffer)` Flush the buffer from the current getIndex to it's putIndex using whatever byte sink is backing the buffer.
`int` `flush(Buffer header, Buffer buffer, Buffer trailer)` Flush the buffer from the current getIndex to it's putIndex using whatever byte sink is backing the buffer.
`SSLEngine` `getSSLEngine()`
`boolean` `isAllowRenegotiate()`
`boolean` `isBufferingInput()`
`boolean` `isBufferingOutput()`
`boolean` `isBufferred()`
`void` `setAllowRenegotiate(boolean allowRenegotiate)` Set if SSL re-negotiation is allowed.
`void` `shutdownOutput()` Shutdown any backing output stream associated with the endpoint
`String` `toString()`

Methods inherited from class org.eclipse.jetty.io.nio.SelectChannelEndPoint
`blockReadable, blockWritable, cancelIdle, checkIdleTimestamp, dispatch, getConnection, getSelectionKey, getSelectManager, getSelectSet, idleExpired, isReadyForDispatch, schedule, scheduleIdle, scheduleWrite, setConnection, setMaxIdleTime, setWritable`

Methods inherited from class org.eclipse.jetty.io.nio.ChannelEndPoint
`getChannel, getLocalAddr, getLocalHost, getLocalPort, getMaxIdleTime, getRemoteAddr, getRemoteHost, getRemotePort, getTransport, isBlocking, isOpen`

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

Methods inherited from interface org.eclipse.jetty.io.EndPoint
`getLocalAddr, getLocalHost, getLocalPort, getMaxIdleTime, getRemoteAddr, getRemoteHost, getRemotePort, getTransport, isBlocking, isOpen`

Constructor Detail

### SslSelectChannelEndPoint

    public SslSelectChannelEndPoint(Buffers buffers,
                                    SocketChannel channel,
                                    SelectorManager.SelectSet selectSet,
                                    SelectionKey key,
                                    SSLEngine engine,
                                    int maxIdleTime)
                             throws IOException

Throws:
  `IOException`

### SslSelectChannelEndPoint

    public SslSelectChannelEndPoint(Buffers buffers,
                                    SocketChannel channel,
                                    SelectorManager.SelectSet selectSet,
                                    SelectionKey key,
                                    SSLEngine engine)
                             throws IOException

Throws:
  `IOException`

Method Detail

### isAllowRenegotiate

    public boolean isAllowRenegotiate()

  Returns:
    True if SSL re-negotiation is allowed (default false)

### setAllowRenegotiate

    public void setAllowRenegotiate(boolean allowRenegotiate)

  Set if SSL re-negotiation is allowed. CVE-2009-3555 discovered a vulnerability in SSL/TLS with re-negotiation. If your JVM does not have CVE-2009-3555 fixed, then re-negotiation should not be allowed.

  Parameters:
    `allowRenegotiate` - true if re-negotiation is allowed (default false)

### dump

    public void dump()

### shutdownOutput

    public void shutdownOutput()
                        throws IOException

  Description copied from interface: `EndPoint`
  Shutdown any backing output stream associated with the endpoint

  Specified by:
    `shutdownOutput` in interface `EndPoint`
  Overrides:
    `shutdownOutput` in class `ChannelEndPoint`
  Throws:
    `IOException`

### close

    public void close()
               throws IOException

  Description copied from interface: `EndPoint`
  Close any backing stream associated with the endpoint

  Specified by:
    `close` in interface `EndPoint`
  Overrides:
    `close` in class `SelectChannelEndPoint`
  Throws:
    `IOException`

### fill

    public int fill(Buffer buffer)
             throws IOException

  Fill the buffer with unencrypted bytes. Called by a Http Parser when more data is needed to continue parsing a request or a response.

  Specified by:
    `fill` in interface `EndPoint`
  Overrides:
    `fill` in class `ChannelEndPoint`
  Returns:
    an `int` value indicating the number of bytes filled or -1 if EOF is reached.
  Throws:
    `IOException`

### flush

    public int flush(Buffer buffer)
              throws IOException

  Description copied from interface: `EndPoint`
  Flush the buffer from the current getIndex to it's putIndex using whatever byte sink is backing the buffer. The getIndex is updated with the number of bytes flushed. Any mark set is cleared. If the entire contents of the buffer are flushed, then an implicit empty() is done.

  Specified by:
    `flush` in interface `EndPoint`
  Overrides:
    `flush` in class `SelectChannelEndPoint`
  Parameters:
    `buffer` - The buffer to flush. This buffers getIndex is updated.
  Returns:
    the number of bytes written
  Throws:
    `IOException`

### flush

    public int flush(Buffer header,
                     Buffer buffer,
                     Buffer trailer)
              throws IOException

  Description copied from interface: `EndPoint`
  Flush the buffer from the current getIndex to it's putIndex using whatever byte sink is backing the buffer. The getIndex is updated with the number of bytes flushed. Any mark set is cleared. If the entire contents of the buffer are flushed, then an implicit empty() is done. The passed header/trailer buffers are written before/after the contents of this buffer. This may be done either as gather writes, as a poke into this buffer or as several writes. The implementation is free to select the optimal mechanism.

  Specified by:
    `flush` in interface `EndPoint`
  Overrides:
    `flush` in class `SelectChannelEndPoint`
  Parameters:
    `header` - A buffer to write before flushing this buffer. This buffers getIndex is updated.
    `buffer` - The buffer to flush. This buffers getIndex is updated.
    `trailer` - A buffer to write after flushing this buffer. This buffers getIndex is updated.
  Returns:
    the total number of bytes written.
  Throws:
    `IOException`

### flush

    public void flush()
               throws IOException

  Description copied from interface: `EndPoint`
  Flush any buffered output. May fail to write all data if endpoint is non-blocking

  Specified by:
    `flush` in interface `EndPoint`
  Overrides:
    `flush` in class `ChannelEndPoint`
  Throws:
    `IOException`

### isBufferingInput

    public boolean isBufferingInput()

  Specified by:
    `isBufferingInput` in interface `EndPoint`
  Overrides:
    `isBufferingInput` in class `ChannelEndPoint`
  Returns:
    True if the endpoint has some buffered input data

### isBufferingOutput

    public boolean isBufferingOutput()

  Specified by:
    `isBufferingOutput` in interface `EndPoint`
  Overrides:
    `isBufferingOutput` in class `ChannelEndPoint`
  Returns:
    True if the endpoint has some buffered output data

### isBufferred

    public boolean isBufferred()

  Specified by:
    `isBufferred` in interface `EndPoint`
  Overrides:
    `isBufferred` in class `ChannelEndPoint`

### getSSLEngine

    public SSLEngine getSSLEngine()

### toString

    public String toString()

  Overrides:
    `toString` in class `SelectChannelEndPoint`

Copyright © 1995-2010 Mort Bay Consulting. All Rights Reserved.