diff --git a/router/java/src/net/i2p/data/i2np/UnknownI2NPMessage.java b/router/java/src/net/i2p/data/i2np/UnknownI2NPMessage.java index ee3e3d3bf06653b5a84e945ded037b48d606de4d..cfd0d414d0636c961f2657bb8cfd3061f6251fd5 100644 --- a/router/java/src/net/i2p/data/i2np/UnknownI2NPMessage.java +++ b/router/java/src/net/i2p/data/i2np/UnknownI2NPMessage.java @@ -16,15 +16,20 @@ import net.i2p.data.Hash; import net.i2p.util.SimpleByteCache; /** - * This is the same as DataMessage but with a variable message type. + * This is similar to DataMessage or GarlicMessage but with a variable message type. * This is defined so routers can route messages they don't know about. - * We don't extend DataMessage so that any code that does (instanceof DataMessage) + * We don't extend those classes so that any code that does (instanceof foo) * won't return true for this type. Load tests use DataMessage, for example. + * Also, those classes include an additional length field that we can't use here. * See InboundMessageDistributor. * * There is no setData() method, the only way to create one of these is to * read it with readMessage() (i.e., it came from some other router) * + * As of 0.8.12 this class is working. It is used at the IBGW to reduce the processing + * required. For zero-hop IB tunnels, the convert() method is used to reconstitute + * a standard message class. + * * @since 0.7.12 but broken before 0.8.12 */ public class UnknownI2NPMessage extends I2NPMessageImpl { @@ -64,7 +69,12 @@ public class UnknownI2NPMessage extends I2NPMessageImpl { return curIndex; } - /** @return 0-255 */ + /** + * Note that this returns the "true" type, so that + * the IBGW can correctly make drop decisions. + * + * @return 0-255 + */ public int getType() { return _type; } @@ -85,7 +95,6 @@ public class UnknownI2NPMessage extends I2NPMessageImpl { *</pre> * * @param offset starting at the ID (must skip the type) - * @return total length of the message * @since 0.8.12 */ public void readBytesIgnoreChecksum(byte data[], int offset) throws I2NPMessageException, IOException {