|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectnet.i2p.client.I2PSessionImpl
net.i2p.client.I2PSessionImpl2
class I2PSessionImpl2
Thread safe implementation of an I2P session running over TCP. Unused directly, see I2PSessionMuxedImpl extension.
| Nested Class Summary |
|---|
| Nested classes/interfaces inherited from class net.i2p.client.I2PSessionImpl |
|---|
I2PSessionImpl.AvailabilityNotifier |
| Field Summary | |
|---|---|
protected boolean |
_noEffort
Don't expect any MSMs from the router for outbound traffic @since 0.8.1 |
| Fields inherited from class net.i2p.client.I2PSessionImpl |
|---|
_availabilityNotifier, _availableMessages, _bwLimits, _bwReceivedLock, _closed, _closing, _context, _handlerMap, _hostname, _log, _opening, _out, _pendingLookups, _portNum, _producer, _queue, _reader, _sessionListener, _socket, _writer, LISTEN_PORT, PROP_ENABLE_SSL |
| Fields inherited from interface net.i2p.client.I2PSession |
|---|
PORT_ANY, PORT_UNSPECIFIED, PROTO_ANY, PROTO_DATAGRAM, PROTO_DATAGRAM_RAW, PROTO_STREAMING, PROTO_UNSPECIFIED |
| Constructor Summary | |
|---|---|
|
I2PSessionImpl2(I2PAppContext ctx,
InputStream destKeyStream,
Properties options)
Create a new session, reading the Destination, PrivateKey, and SigningPrivateKey from the destKeyStream, and using the specified options to connect to the router |
protected |
I2PSessionImpl2(I2PAppContext context,
Properties options)
for extension |
| Method Summary | |
|---|---|
void |
addMuxedSessionListener(I2PSessionMuxedListener l,
int proto,
int port)
Listen on specified protocol and port, and receive notification of proto, fromPort, and toPort for every message. |
void |
addSessionListener(I2PSessionListener lsnr,
int proto,
int port)
Listen on specified protocol and port. |
void |
destroySession(boolean sendDisconnect)
Tear down the session, and do NOT reconnect. |
protected long |
getTimeout()
|
byte[] |
receiveMessage(int msgId)
pull the unencrypted AND DECOMPRESSED data |
void |
receiveStatus(int msgId,
long nonce,
int status)
Only call this with nonzero status, i.e. |
protected boolean |
reconnect()
Called whenever we want to reconnect (used only in the superclass). |
void |
removeListener(int proto,
int port)
removes the specified listener (only) |
protected boolean |
sendBestEffort(Destination dest,
byte[] payload,
long expires,
int flags)
TODO - Don't need to save MessageState since actuallyWait is false... |
protected boolean |
sendBestEffort(Destination dest,
byte[] payload,
SessionKey keyUsed,
Set tagsSent,
long expires)
|
boolean |
sendMessage(Destination dest,
byte[] payload)
unused, see MuxedImpl override |
boolean |
sendMessage(Destination dest,
byte[] payload,
int offset,
int size)
|
boolean |
sendMessage(Destination dest,
byte[] payload,
int proto,
int fromport,
int toport)
See I2PSessionMuxedImpl for proto/port details. |
boolean |
sendMessage(Destination dest,
byte[] payload,
int offset,
int size,
int proto,
int fromport,
int toport,
SendMessageOptions options)
See I2PSessionMuxedImpl for proto/port details. |
boolean |
sendMessage(Destination dest,
byte[] payload,
int offset,
int size,
SessionKey keyUsed,
Set tagsSent)
End-to-End Crypto is disabled, tags and keys are ignored. |
boolean |
sendMessage(Destination dest,
byte[] payload,
int offset,
int size,
SessionKey keyUsed,
Set tagsSent,
int proto,
int fromport,
int toport)
See I2PSessionMuxedImpl for proto/port details. |
boolean |
sendMessage(Destination dest,
byte[] payload,
int offset,
int size,
SessionKey keyUsed,
Set tagsSent,
long expires)
Unused? see MuxedImpl override |
boolean |
sendMessage(Destination dest,
byte[] payload,
int offset,
int size,
SessionKey keyUsed,
Set tagsSent,
long expire,
int proto,
int fromport,
int toport)
See I2PSessionMuxedImpl for proto/port details. |
boolean |
sendMessage(Destination dest,
byte[] payload,
int offset,
int size,
SessionKey keyUsed,
Set tagsSent,
long expire,
int proto,
int fromport,
int toport,
int flags)
See I2PSessionMuxedImpl for proto/port details. |
boolean |
sendMessage(Destination dest,
byte[] payload,
SessionKey keyUsed,
Set tagsSent)
End-to-End Crypto is disabled, tags and keys are ignored! Like sendMessage above, except the key used and the tags sent are exposed to the application. |
protected boolean |
sendNoEffort(Destination dest,
byte[] payload,
long expires,
int flags)
Same as sendBestEffort(), except we do not expect any MessageStatusMessage responses - not for accepted, or success, or failure. |
protected boolean |
shouldCompress(int size)
|
| Methods inherited from class net.i2p.client.I2PSessionImpl |
|---|
addNewMessage, bandwidthLimits, bwReceived, connect, dateUpdated, destLookupFailed, destReceived, destroySession, disconnect, disconnected, getDecryptionKey, getFastReceive, getLeaseSet, getMyDestination, getOpening, getOptions, getPrefix, getPrivateKey, getProducer, getSessionId, isClosed, lastActivity, lookupDest, lookupDest, messageReceived, propogateError, readError, reportAbuse, sendMessage, setLeaseSet, setOpening, setReduced, setSessionId, setSessionListener, shouldReconnect, toString, updateActivity, updateOptions |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
| Field Detail |
|---|
protected boolean _noEffort
| Constructor Detail |
|---|
protected I2PSessionImpl2(I2PAppContext context,
Properties options)
public I2PSessionImpl2(I2PAppContext ctx,
InputStream destKeyStream,
Properties options)
throws I2PSessionException
destKeyStream - stream containing the private key data,
format is specified in PrivateKeyFileoptions - set of options to configure the router with, if null will use System properties
I2PSessionException - if there is a problem loading the private keys or| Method Detail |
|---|
protected long getTimeout()
public void destroySession(boolean sendDisconnect)
I2PSessionImpl
destroySession in class I2PSessionImplprotected boolean shouldCompress(int size)
public void addSessionListener(I2PSessionListener lsnr,
int proto,
int port)
I2PSession
proto - 1-254 or PROTO_ANY (0) for all; recommended:
I2PSession.PROTO_STREAMING
I2PSession.PROTO_DATAGRAM
255 disallowedport - 1-65535 or PORT_ANY (0) for all
public void addMuxedSessionListener(I2PSessionMuxedListener l,
int proto,
int port)
I2PSession
proto - 1-254 or PROTO_ANY (0) for all; 255 disallowedport - 1-65535 or PORT_ANY (0) for all
public void removeListener(int proto,
int port)
I2PSession
public boolean sendMessage(Destination dest,
byte[] payload,
int proto,
int fromport,
int toport)
throws I2PSessionException
I2PSession
I2PSessionException
public boolean sendMessage(Destination dest,
byte[] payload,
int offset,
int size,
SessionKey keyUsed,
Set tagsSent,
int proto,
int fromport,
int toport)
throws I2PSessionException
I2PSession
keyUsed - UNUSED, IGNORED.tagsSent - UNUSED, IGNORED.
I2PSessionException
public boolean sendMessage(Destination dest,
byte[] payload,
int offset,
int size,
SessionKey keyUsed,
Set tagsSent,
long expire,
int proto,
int fromport,
int toport)
throws I2PSessionException
I2PSession
keyUsed - UNUSED, IGNORED.tagsSent - UNUSED, IGNORED.expire - absolute expiration timestamp, NOT interval from now
I2PSessionException
public boolean sendMessage(Destination dest,
byte[] payload,
int offset,
int size,
SessionKey keyUsed,
Set tagsSent,
long expire,
int proto,
int fromport,
int toport,
int flags)
throws I2PSessionException
I2PSession
keyUsed - UNUSED, IGNORED.tagsSent - UNUSED, IGNORED.expire - absolute expiration timestamp, NOT interval from now
I2PSessionException
public boolean sendMessage(Destination dest,
byte[] payload,
int offset,
int size,
int proto,
int fromport,
int toport,
SendMessageOptions options)
throws I2PSessionException
I2PSession
I2PSessionException
public boolean sendMessage(Destination dest,
byte[] payload)
throws I2PSessionException
dest - location to send the messagepayload - body of the message to be sent (unencrypted)
I2PSessionException
public boolean sendMessage(Destination dest,
byte[] payload,
int offset,
int size)
throws I2PSessionException
I2PSessionException
public boolean sendMessage(Destination dest,
byte[] payload,
SessionKey keyUsed,
Set tagsSent)
throws I2PSessionException
I2PSessionSessionKeyManager.getInstance().tagsDelivered(dest.getPublicKey(), keyUsed, tagsSent);If an application is using guaranteed delivery mode, this is not useful, but for applications using best effort delivery mode, if they can know with certainty that a message was delivered and can update the SessionKeyManager appropriately, a significant performance boost will occur (subsequent message encryption and decryption will be done via AES and a SessionTag, rather than ElGamal+AES, which is 1000x slower).
keyUsed - unused - no end-to-end cryptotagsSent - unused - no end-to-end cryptodest - location to send the messagepayload - body of the message to be sent (unencrypted)
I2PSessionException
public boolean sendMessage(Destination dest,
byte[] payload,
int offset,
int size,
SessionKey keyUsed,
Set tagsSent)
throws I2PSessionException
I2PSession
keyUsed - unused - no end-to-end cryptotagsSent - unused - no end-to-end crypto
I2PSessionException
public boolean sendMessage(Destination dest,
byte[] payload,
int offset,
int size,
SessionKey keyUsed,
Set tagsSent,
long expires)
throws I2PSessionException
keyUsed - unused - no end-to-end cryptotagsSent - unused - no end-to-end cryptoexpires - absolute expiration timestamp, NOT interval from now
I2PSessionException
public byte[] receiveMessage(int msgId)
throws I2PSessionException
receiveMessage in interface I2PSessionreceiveMessage in class I2PSessionImplmsgId - message to fetch
I2PSessionException
protected boolean sendBestEffort(Destination dest,
byte[] payload,
SessionKey keyUsed,
Set tagsSent,
long expires)
throws I2PSessionException
keyUsed - unused - no end-to-end cryptotagsSent - unused - no end-to-end crypto
I2PSessionException
protected boolean sendBestEffort(Destination dest,
byte[] payload,
long expires,
int flags)
throws I2PSessionException
flags - to be passed to the router
I2PSessionException
protected boolean sendNoEffort(Destination dest,
byte[] payload,
long expires,
int flags)
throws I2PSessionException
I2PSessionException
public void receiveStatus(int msgId,
long nonce,
int status)
receiveStatus in class I2PSessionImplstatus - != 0protected boolean reconnect()
reconnect in class I2PSessionImpl
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||