|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectorg.mpisws.p2p.transport.ssl.SSLSocketManager<Identifier>
public class SSLSocketManager<Identifier>
| Field Summary | |
|---|---|
protected int |
appBufferMax
|
protected ByteBuffer |
bogusEncryptMe
|
protected Continuation<SSLSocketManager<Identifier>,Exception> |
c
|
protected boolean |
closed
|
protected boolean |
doneHandshaking
|
protected SSLEngine |
engine
|
protected boolean |
handshaking
|
protected Logger |
logger
|
protected String |
name
|
protected int |
netBufferMax
|
protected Map<String,Object> |
options
|
protected X509Certificate |
peerCert
The cert of the remote node. |
protected LinkedList<ByteBuffer> |
readMe
|
protected SSLEngineResult |
result
|
protected boolean |
server
|
protected P2PSocket<Identifier> |
socket
|
protected SSLTransportLayerImpl<Identifier,?> |
sslTL
|
protected SSLEngineResult.HandshakeStatus |
status
|
protected LinkedList<ByteBuffer> |
unwrapMe
|
protected boolean |
useClientAuth
|
protected LinkedList<ByteBuffer> |
writeMe
|
| Constructor Summary | |
|---|---|
SSLSocketManager(SSLTransportLayerImpl<Identifier,?> sslTL,
P2PSocket<Identifier> s,
Continuation<SSLSocketManager<Identifier>,Exception> c,
boolean server,
boolean useClientAuth)
Called on incoming side |
|
| Method Summary | |
|---|---|
protected boolean |
checkDone()
Return true when done. |
void |
close()
Closes this socket. |
protected void |
continueHandshaking()
|
protected void |
fail(Exception e)
|
X509Certificate |
getCert()
|
Identifier |
getIdentifier()
The identification of the node at the other end of the socket. |
Map<String,Object> |
getOptions()
Details on the connectivity of the socket (encrypted, source-routed etc) |
protected void |
handleResult(SSLEngineResult result)
|
protected void |
handshakeUnwrap()
|
protected void |
handshakeWrap()
|
protected boolean |
read()
|
long |
read(ByteBuffer dsts)
Reads a sequence of bytes from this channel into a subsequence of the given buffer. |
void |
receiveException(P2PSocket<Identifier> socket,
Exception ioe)
Called when there is an error |
void |
receiveSelectResult(P2PSocket<Identifier> socket,
boolean canRead,
boolean canWrite)
Called when a socket is available for read/write |
void |
register(boolean wantToRead,
boolean wantToWrite,
P2PSocketReceiver<Identifier> receiver)
Must be called every time a Read/Write occurs to continue operation. |
void |
shutdownOutput()
Disables the output stream for this socket. |
String |
toString()
|
protected void |
unwrap()
|
long |
write(ByteBuffer srcs)
Writes a sequence of bytes to this channel from a subsequence of the given buffers. |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
| Field Detail |
|---|
protected X509Certificate peerCert
protected P2PSocket<Identifier> socket
protected SSLEngine engine
protected SSLTransportLayerImpl<Identifier,?> sslTL
protected Logger logger
protected boolean handshaking
protected boolean closed
protected SSLEngineResult result
protected SSLEngineResult.HandshakeStatus status
protected LinkedList<ByteBuffer> writeMe
protected LinkedList<ByteBuffer> unwrapMe
protected LinkedList<ByteBuffer> readMe
protected ByteBuffer bogusEncryptMe
protected int appBufferMax
protected int netBufferMax
protected Continuation<SSLSocketManager<Identifier>,Exception> c
protected boolean doneHandshaking
protected Map<String,Object> options
protected boolean useClientAuth
protected boolean server
protected String name
| Constructor Detail |
|---|
public SSLSocketManager(SSLTransportLayerImpl<Identifier,?> sslTL,
P2PSocket<Identifier> s,
Continuation<SSLSocketManager<Identifier>,Exception> c,
boolean server,
boolean useClientAuth)
transportLayerImpl - s - | Method Detail |
|---|
public String toString()
toString in class Objectprotected void handleResult(SSLEngineResult result)
public void receiveSelectResult(P2PSocket<Identifier> socket,
boolean canRead,
boolean canWrite)
throws IOException
P2PSocketReceiver
receiveSelectResult in interface P2PSocketReceiver<Identifier>IOException
protected boolean read()
throws IOException
IOExceptionprotected void handshakeWrap()
protected void unwrap()
throws SSLException
SSLExceptionprotected void handshakeUnwrap()
protected void fail(Exception e)
protected void continueHandshaking()
protected boolean checkDone()
public X509Certificate getCert()
public void register(boolean wantToRead,
boolean wantToWrite,
P2PSocketReceiver<Identifier> receiver)
P2PSocket
register in interface P2PSocket<Identifier>wantToRead - if you want to read from this socketwantToWrite - if you want to write to this socketreceiver - will have receiveSelectResult() called on it
note that you must call select() each time receiveSelectResult() is called. This is so
your application can properly handle flow control
public long read(ByteBuffer dsts)
throws IOException
P2PSocket
read in interface P2PSocket<Identifier>IOException
public long write(ByteBuffer srcs)
throws IOException
P2PSocket
write in interface P2PSocket<Identifier>IOExceptionpublic void close()
P2PSocket
close in interface P2PSocket<Identifier>public Identifier getIdentifier()
P2PSocket
getIdentifier in interface P2PSocket<Identifier>public Map<String,Object> getOptions()
P2PSocket
getOptions in interface P2PSocket<Identifier>public void shutdownOutput()
P2PSocket
shutdownOutput in interface P2PSocket<Identifier>
public void receiveException(P2PSocket<Identifier> socket,
Exception ioe)
P2PSocketReceiver
receiveException in interface P2PSocketReceiver<Identifier>
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||