net.i2p.router.client

## Class SSLClientListenerRunner

- java.lang.Object
- - net.i2p.router.client.ClientListenerRunner
  - - net.i2p.router.client.SSLClientListenerRunner

All Implemented Interfaces:
  Runnable

     class SSLClientListenerRunner
    extends ClientListenerRunner

SSL version of ClientListenerRunner

Since:
  0.8.3
Author:
  zzz

### Field Summary

### Fields inherited from class net.i2p.router.client.ClientListenerRunner

`_bindAllInterfaces, _context, _listening, _log, _manager, _port, _running, _socket, BIND_ALL_INTERFACES, CONNECT_TIMEOUT`

### Constructor Summary

Constructors
Constructor and Description
`SSLClientListenerRunner(RouterContext context, ClientManager manager, int port)`

### Method Summary

Methods
`protected ServerSocket` `getServerSocket()` Get a SSLServerSocket.
`void` `runServer()` Create (if necessary) and load the key store, then run.
`protected boolean` `validate(Socket socket)` Overridden because SSL handshake may need more time, and available() in super doesn't work.

### Methods inherited from class net.i2p.router.client.ClientListenerRunner

`isListening, run, runConnection, stopListening`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Constructor Detail

#### SSLClientListenerRunner

    public SSLClientListenerRunner(RouterContext context,
                           ClientManager manager,
                           int port)

### Method Detail

#### getServerSocket

    protected ServerSocket getServerSocket()
                                    throws IOException

Get a SSLServerSocket.

Overrides:
  `getServerSocket` in class `ClientListenerRunner`
Throws:
  `IOException`

#### runServer

    public void runServer()

Create (if necessary) and load the key store, then run.

Overrides:
  `runServer` in class `ClientListenerRunner`

#### validate

    protected boolean validate(Socket socket)

Overridden because SSL handshake may need more time, and available() in super doesn't work. The handshake doesn't start until a read().

Overrides:
  `validate` in class `ClientListenerRunner`