From a5a5f7dbde1c7224cefc4d80de33cb2ae223ffc0 Mon Sep 17 00:00:00 2001 From: zzz <zzz@mail.i2p> Date: Sat, 4 Aug 2018 14:50:33 +0000 Subject: [PATCH] I2NP: Don't call toLong() for 1 byte --- .../net/i2p/data/i2np/DatabaseSearchReplyMessage.java | 3 +-- .../java/src/net/i2p/data/i2np/DeliveryInstructions.java | 3 +-- .../java/src/net/i2p/data/i2np/FastI2NPMessageImpl.java | 3 +-- router/java/src/net/i2p/data/i2np/I2NPMessageImpl.java | 9 +++------ .../net/i2p/data/i2np/VariableTunnelBuildMessage.java | 3 +-- .../i2p/data/i2np/VariableTunnelBuildReplyMessage.java | 2 +- 6 files changed, 8 insertions(+), 15 deletions(-) diff --git a/router/java/src/net/i2p/data/i2np/DatabaseSearchReplyMessage.java b/router/java/src/net/i2p/data/i2np/DatabaseSearchReplyMessage.java index 1df280349e..5ea08428a9 100644 --- a/router/java/src/net/i2p/data/i2np/DatabaseSearchReplyMessage.java +++ b/router/java/src/net/i2p/data/i2np/DatabaseSearchReplyMessage.java @@ -103,8 +103,7 @@ public class DatabaseSearchReplyMessage extends FastI2NPMessageImpl { System.arraycopy(_key.getData(), 0, out, curIndex, Hash.HASH_LENGTH); curIndex += Hash.HASH_LENGTH; - DataHelper.toLong(out, curIndex, 1, _peerHashes.size()); - curIndex++; + out[curIndex++] = (byte) _peerHashes.size(); for (int i = 0; i < getNumReplies(); i++) { System.arraycopy(getReply(i).getData(), 0, out, curIndex, Hash.HASH_LENGTH); curIndex += Hash.HASH_LENGTH; diff --git a/router/java/src/net/i2p/data/i2np/DeliveryInstructions.java b/router/java/src/net/i2p/data/i2np/DeliveryInstructions.java index 703f43ef29..83a1ac39b2 100644 --- a/router/java/src/net/i2p/data/i2np/DeliveryInstructions.java +++ b/router/java/src/net/i2p/data/i2np/DeliveryInstructions.java @@ -411,8 +411,7 @@ public class DeliveryInstructions extends DataStructureImpl { // _log.debug("Write flags: " + flags + " mode: " + getDeliveryMode() // + " =?= " + flagMode(flags)); int origOffset = offset; - DataHelper.toLong(target, offset, 1, flags); - offset++; + target[offset++] = (byte) flags; offset += getAdditionalInfo(target, offset); return offset - origOffset; } diff --git a/router/java/src/net/i2p/data/i2np/FastI2NPMessageImpl.java b/router/java/src/net/i2p/data/i2np/FastI2NPMessageImpl.java index 63e64fa65c..bbf6f78fa1 100644 --- a/router/java/src/net/i2p/data/i2np/FastI2NPMessageImpl.java +++ b/router/java/src/net/i2p/data/i2np/FastI2NPMessageImpl.java @@ -150,8 +150,7 @@ public abstract class FastI2NPMessageImpl extends I2NPMessageImpl { } int payloadLen = writtenLen - HEADER_LENGTH; int off = 0; - DataHelper.toLong(buffer, off, 1, getType()); - off += 1; + buffer[off++] = (byte) getType(); DataHelper.toLong(buffer, off, 4, _uniqueId); off += 4; DataHelper.toLong(buffer, off, DataHelper.DATE_LENGTH, _expiration); diff --git a/router/java/src/net/i2p/data/i2np/I2NPMessageImpl.java b/router/java/src/net/i2p/data/i2np/I2NPMessageImpl.java index ba20bf2715..fa6fe8784c 100644 --- a/router/java/src/net/i2p/data/i2np/I2NPMessageImpl.java +++ b/router/java/src/net/i2p/data/i2np/I2NPMessageImpl.java @@ -257,8 +257,7 @@ public abstract class I2NPMessageImpl extends DataStructureImpl implements I2NPM byte[] h = SimpleByteCache.acquire(Hash.HASH_LENGTH); _context.sha().calculateHash(buffer, off + HEADER_LENGTH, payloadLen, h, 0); - DataHelper.toLong(buffer, off, 1, getType()); - off++; + buffer[off++] = (byte) getType(); // Lazy initialization of value if (_uniqueId < 0) { @@ -300,8 +299,7 @@ public abstract class I2NPMessageImpl extends DataStructureImpl implements I2NPM public int toRawByteArray(byte buffer[]) { try { int off = 0; - DataHelper.toLong(buffer, off, 1, getType()); - off += 1; + buffer[off++] = (byte) getType(); // January 19 2038? No, unsigned, good until Feb. 7 2106 // in seconds, round up so we don't lose time every hop DataHelper.toLong(buffer, off, 4, (_expiration + 500) / 1000); @@ -325,8 +323,7 @@ public abstract class I2NPMessageImpl extends DataStructureImpl implements I2NPM */ public int toRawByteArrayNTCP2(byte buffer[], int off) { try { - DataHelper.toLong(buffer, off, 1, getType()); - off += 1; + buffer[off++] = (byte) getType(); // Lazy initialization of value if (_uniqueId < 0) { _uniqueId = _context.random().nextLong(MAX_ID_VALUE); diff --git a/router/java/src/net/i2p/data/i2np/VariableTunnelBuildMessage.java b/router/java/src/net/i2p/data/i2np/VariableTunnelBuildMessage.java index 52aa565de7..3682a986e3 100644 --- a/router/java/src/net/i2p/data/i2np/VariableTunnelBuildMessage.java +++ b/router/java/src/net/i2p/data/i2np/VariableTunnelBuildMessage.java @@ -1,7 +1,6 @@ package net.i2p.data.i2np; import net.i2p.I2PAppContext; -import net.i2p.data.DataHelper; /** * Variable number of records. @@ -46,7 +45,7 @@ public class VariableTunnelBuildMessage extends TunnelBuildMessage { throw new I2NPMessageException("Not large enough (too short by " + remaining + ")"); if (RECORD_COUNT <= 0 || RECORD_COUNT > MAX_RECORD_COUNT) throw new I2NPMessageException("Bad record count " + RECORD_COUNT); - DataHelper.toLong(out, curIndex++, 1, RECORD_COUNT); + out[curIndex++] = (byte) RECORD_COUNT; // can't call super, written length check will fail //return super.writeMessageBody(out, curIndex + 1); for (int i = 0; i < RECORD_COUNT; i++) { diff --git a/router/java/src/net/i2p/data/i2np/VariableTunnelBuildReplyMessage.java b/router/java/src/net/i2p/data/i2np/VariableTunnelBuildReplyMessage.java index 575f556300..32b4385531 100644 --- a/router/java/src/net/i2p/data/i2np/VariableTunnelBuildReplyMessage.java +++ b/router/java/src/net/i2p/data/i2np/VariableTunnelBuildReplyMessage.java @@ -48,7 +48,7 @@ public class VariableTunnelBuildReplyMessage extends TunnelBuildReplyMessage { throw new I2NPMessageException("Not large enough (too short by " + remaining + ")"); if (RECORD_COUNT <= 0 || RECORD_COUNT > MAX_RECORD_COUNT) throw new I2NPMessageException("Bad record count " + RECORD_COUNT); - DataHelper.toLong(out, curIndex++, 1, RECORD_COUNT); + out[curIndex++] = (byte) RECORD_COUNT; // can't call super, written length check will fail //return super.writeMessageBody(out, curIndex + 1); for (int i = 0; i < RECORD_COUNT; i++) { -- GitLab