public class DatabaseLookupMessage extends FastI2NPMessageImpl
| Modifier and Type | Class and Description |
|---|---|
static class | DatabaseLookupMessage.TypeDatabase lookup type enumeration. |
I2NPMessageImpl.Builder| Modifier and Type | Field and Description |
|---|---|
static int | MESSAGE_TYPEMESSAGE_TYPE. |
static boolean | USE_ECIES_FFUSE_ECIES_FF. |
_checksum, _hasChecksum_context, _expiration, CHECKSUM_LENGTH, DEFAULT_EXPIRATION_MS, HEADER_LENGTHMAX_ID_VALUE, MAX_SIZE| Constructor and Description |
|---|
DatabaseLookupMessage(I2PAppContext context)DatabaseLookupMessage. |
DatabaseLookupMessage(I2PAppContext context,
boolean locallyCreated) |
| Modifier and Type | Method and Description |
|---|---|
void | addDontIncludePeer(Hash peer)Add to the set. |
void | addDontIncludePeers(Collection<Hash> peers)Add to the set. |
protected int | calculateWrittenLength()calculateWrittenLength. |
boolean | equals(Object object)equals. |
Set<Hash> | getDontIncludePeers()Set of peers that a lookup reply should NOT include. |
Hash | getFrom()Contains the router who requested this lookup |
PublicKey | getRatchetPublicKey()The included session key or null if unset. |
RatchetSessionTag | getRatchetReplyTag()The included session tag or null if unset |
SessionKey | getReplyKey()The included session key or null if unset. |
SessionTag | getReplyTag()The included session tag or null if unset |
TunnelId | getReplyTunnel()Contains the tunnel ID a reply should be sent to |
Hash | getSearchKey()Defines the key being searched for |
DatabaseLookupMessage.Type | getSearchType()Defines the type of data being searched for. |
int | getType()Return the unique identifier for this type of I2NP message, as defined in
the I2NP spec |
int | hashCode() |
void | readMessage(byte[] data,
int offset,
int dataSize,
int type)readMessage. |
void | setDontIncludePeers(Collection<Hash> peers)Replace the dontInclude set with this set. |
void | setFrom(Hash from) |
void | setReplySession(PublicKey pubKey)Ratchet. |
void | setReplySession(SessionKey encryptKey,
RatchetSessionTag encryptTag)Ratchet |
void | setReplySession(SessionKey encryptKey,
SessionTag encryptTag)Only worthwhile if sending reply via tunnel |
void | setReplyTunnel(TunnelId replyTunnel) |
void | setSearchKey(Hash key) |
void | setSearchType(DatabaseLookupMessage.Type type)Defines the type of data being searched for. |
static boolean | supportsEncryptedReplies(RouterInfo to)Does this router support encrypted replies? |
static boolean | supportsRatchetReplies(RouterInfo to)Does this router support ratchet replies? |
String | toString()toString. |
protected int | writeMessageBody(byte[] out,
int curIndex)writeMessageBody. |
readBytes, toByteArray, toByteArrayWithSavedChecksumcreateMessage, fromRawByteArray, fromRawByteArrayNTCP2, getMessageExpiration, getMessageSize, getRawMessageSize, getUniqueId, getUniqueId, readBytes, readMessage, setMessageExpiration, setUniqueId, toByteArray, toByteArray, toRawByteArray, toRawByteArrayNTCP2public static final int MESSAGE_TYPE
public static final boolean USE_ECIES_FF
public DatabaseLookupMessage(I2PAppContext context)
public DatabaseLookupMessage(I2PAppContext context, boolean locallyCreated)
locallyCreated - ignoredpublic void addDontIncludePeer(Hash peer)
peer - non-nullpublic void addDontIncludePeers(Collection<Hash> peers)
peers - non-nullprotected int calculateWrittenLength()
calculateWrittenLength in class I2NPMessageImplpublic Set<Hash> getDontIncludePeers()
public Hash getFrom()
public PublicKey getRatchetPublicKey()
public RatchetSessionTag getRatchetReplyTag()
public SessionKey getReplyKey()
public SessionTag getReplyTag()
public TunnelId getReplyTunnel()
public Hash getSearchKey()
public DatabaseLookupMessage.Type getSearchType()
public int getType()
I2NPMessagepublic void readMessage(byte[] data,
int offset,
int dataSize,
int type)
throws I2NPMessageExceptiondata - data to read fromoffset - where to start in the data arraydataSize - how long into the data to readtype - I2NP message typeI2NPMessageException - if the stream doesn't contain a valid message
that this class can read.public void setDontIncludePeers(Collection<Hash> peers)
peers - may be nullpublic void setFrom(Hash from)
IllegalStateException - if from previously set, to protect saved checksumpublic void setReplySession(PublicKey pubKey)
pubKey - non-nullIllegalStateException - if key or tag previously set, to protect saved checksumpublic void setReplySession(SessionKey encryptKey, RatchetSessionTag encryptTag)
encryptKey - non-nullencryptTag - non-nullIllegalStateException - if key or tag previously set, to protect saved checksumpublic void setReplySession(SessionKey encryptKey, SessionTag encryptTag)
encryptKey - non-nullencryptTag - non-nullIllegalStateException - if key or tag previously set, to protect saved checksumpublic void setReplyTunnel(TunnelId replyTunnel)
IllegalStateException - if tunnel previously set, to protect saved checksumpublic void setSearchKey(Hash key)
IllegalStateException - if key previously set, to protect saved checksumpublic void setSearchType(DatabaseLookupMessage.Type type)
type - non-nullpublic static boolean supportsEncryptedReplies(RouterInfo to)
to - null OK returns true as of 0.9.69public static boolean supportsRatchetReplies(RouterInfo to)
to - null OK returns true as of 0.9.69protected int writeMessageBody(byte[] out,
int curIndex)
throws I2NPMessageExceptionwriteMessageBody in class I2NPMessageImplI2NPMessageException