Package net.i2p.data.i2np
Class DatabaseLookupMessage
java.lang.Object
net.i2p.data.i2np.I2NPMessageImpl
net.i2p.data.i2np.FastI2NPMessageImpl
net.i2p.data.i2np.DatabaseLookupMessage
- All Implemented Interfaces:
I2NPMessage
Defines the message a router sends to another router to search for a
key in the network database.
- Author:
- jrandom
-
Nested Class Summary
Nested classes/interfaces inherited from class net.i2p.data.i2np.I2NPMessageImpl
I2NPMessageImpl.Builder
-
Field Summary
Fields inherited from class net.i2p.data.i2np.FastI2NPMessageImpl
_checksum, _hasChecksum
Fields inherited from class net.i2p.data.i2np.I2NPMessageImpl
_context, _expiration, _log, CHECKSUM_LENGTH, DEFAULT_EXPIRATION_MS, HEADER_LENGTH
Fields inherited from interface net.i2p.data.i2np.I2NPMessage
MAX_ID_VALUE, MAX_SIZE
-
Constructor Summary
ConstructorDescriptionDatabaseLookupMessage
(I2PAppContext context) DatabaseLookupMessage
(I2PAppContext context, boolean locallyCreated) -
Method Summary
Modifier and TypeMethodDescriptionvoid
addDontIncludePeer
(Hash peer) Add to the set.void
addDontIncludePeers
(Collection<Hash> peers) Add to the set.protected int
calculate the message body's length (not including the header and footerboolean
Set of peers that a lookup reply should NOT include.getFrom()
Contains the router who requested this lookupThe included session key or null if unset.The included session tag or null if unsetThe included session key or null if unset.The included session tag or null if unsetContains the tunnel ID a reply should be sent toDefines the key being searched forDefines the type of data being searched for.int
getType()
Return the unique identifier for this type of I2NP message, as defined in the I2NP specint
hashCode()
void
readMessage
(byte[] data, int offset, int dataSize, int type) Read the body into the data structures, after the initial type byte and the uniqueId / expiration, using the current class's format as defined by the I2NP specificationvoid
setDontIncludePeers
(Collection<Hash> peers) Replace the dontInclude set with this set.void
void
setReplySession
(PublicKey pubKey) Ratchet.void
setReplySession
(SessionKey encryptKey, SessionTag encryptTag) Only worthwhile if sending reply via tunnelvoid
setReplySession
(SessionKey encryptKey, RatchetSessionTag encryptTag) Ratchetvoid
setReplyTunnel
(TunnelId replyTunnel) void
setSearchKey
(Hash key) void
Defines the type of data being searched for.static boolean
Does this router support encrypted replies?static boolean
Does this router support ratchet replies?toString()
protected int
writeMessageBody
(byte[] out, int curIndex) write the message body to the output array, starting at the given index.Methods inherited from class net.i2p.data.i2np.FastI2NPMessageImpl
readBytes, toByteArray, toByteArrayWithSavedChecksum
Methods inherited from class net.i2p.data.i2np.I2NPMessageImpl
createMessage, fromRawByteArray, fromRawByteArrayNTCP2, getMessageExpiration, getMessageSize, getRawMessageSize, getUniqueId, readBytes, readBytes, readMessage, registerBuilder, setMessageExpiration, setUniqueId, toByteArray, toByteArray, toRawByteArray, toRawByteArrayNTCP2, writeBytes
-
Field Details
-
MESSAGE_TYPE
public static final int MESSAGE_TYPE- See Also:
-
USE_ECIES_FF
public static final boolean USE_ECIES_FF- See Also:
-
-
Constructor Details
-
DatabaseLookupMessage
-
DatabaseLookupMessage
- Parameters:
locallyCreated
- ignored
-
-
Method Details
-
getSearchKey
Defines the key being searched for -
setSearchKey
- Throws:
IllegalStateException
- if key previously set, to protect saved checksum
-
getSearchType
Defines the type of data being searched for. Default ANY.- Returns:
- non-null
- Since:
- 0.9.16
-
setSearchType
Defines the type of data being searched for. Default ANY. Must be ANY for queried routers 0.9.5 or lower, but there are few if any floodfills that old left, so not even worth checking.- Parameters:
type
- non-null- Since:
- 0.9.16
-
getFrom
Contains the router who requested this lookup -
setFrom
- Throws:
IllegalStateException
- if from previously set, to protect saved checksum
-
getReplyTunnel
Contains the tunnel ID a reply should be sent to -
setReplyTunnel
- Throws:
IllegalStateException
- if tunnel previously set, to protect saved checksum
-
supportsEncryptedReplies
Does this router support encrypted replies?- Parameters:
to
- null OK- Since:
- 0.9.7
-
supportsRatchetReplies
Does this router support ratchet replies?- Parameters:
to
- null OK- Since:
- 0.9.46
-
getReplyKey
The included session key or null if unset. If non-null, either getReplyTag() or getRatchetReplyTag() is non-null.- Since:
- 0.9.7
-
getReplyTag
The included session tag or null if unset- Since:
- 0.9.7
-
setReplySession
Only worthwhile if sending reply via tunnel- Parameters:
encryptKey
- non-nullencryptTag
- non-null- Throws:
IllegalStateException
- if key or tag previously set, to protect saved checksum- Since:
- 0.9.7
-
getRatchetReplyTag
The included session tag or null if unset- Since:
- 0.9.46
-
setReplySession
Ratchet- Parameters:
encryptKey
- non-nullencryptTag
- non-null- Throws:
IllegalStateException
- if key or tag previously set, to protect saved checksum- Since:
- 0.9.46
-
getRatchetPublicKey
The included session key or null if unset. Preliminary, not fully supported, see proposal 154.- Since:
- 0.9.46
-
setReplySession
Ratchet. Preliminary, not fully supported, see proposal 154.- Parameters:
pubKey
- non-null- Throws:
IllegalStateException
- if key or tag previously set, to protect saved checksum- Since:
- 0.9.46
-
getDontIncludePeers
Set of peers that a lookup reply should NOT include. WARNING - returns a copy.- Returns:
- Set of Hash objects, each of which is the H(routerIdentity) to skip, or null
-
setDontIncludePeers
Replace the dontInclude set with this set. WARNING - makes a copy. Invalidates the checksum.- Parameters:
peers
- may be null
-
addDontIncludePeer
Add to the set. Invalidates the checksum.- Parameters:
peer
- non-null- Since:
- 0.8.12
-
addDontIncludePeers
Add to the set. Invalidates the checksum.- Parameters:
peers
- non-null- Since:
- 0.8.12
-
readMessage
public void readMessage(byte[] data, int offset, int dataSize, int type) throws I2NPMessageException Description copied from interface:I2NPMessage
Read the body into the data structures, after the initial type byte and the uniqueId / expiration, using the current class's format as defined by the I2NP specification- Parameters:
data
- data to read fromoffset
- where to start in the data arraydataSize
- how long into the data to readtype
- I2NP message type- Throws:
I2NPMessageException
- if the stream doesn't contain a valid message that this class can read.
-
calculateWrittenLength
protected int calculateWrittenLength()Description copied from class:I2NPMessageImpl
calculate the message body's length (not including the header and footer- Specified by:
calculateWrittenLength
in classI2NPMessageImpl
-
writeMessageBody
Description copied from class:I2NPMessageImpl
write the message body to the output array, starting at the given index.- Specified by:
writeMessageBody
in classI2NPMessageImpl
- Returns:
- the index into the array after the last byte written (NOT the length)
- Throws:
I2NPMessageException
-
getType
public int getType()Description copied from interface:I2NPMessage
Return the unique identifier for this type of I2NP message, as defined in the I2NP spec -
hashCode
public int hashCode() -
equals
-
toString
-