diff --git a/apps/streaming/java/src/net/i2p/client/streaming/impl/Packet.java b/apps/streaming/java/src/net/i2p/client/streaming/impl/Packet.java index a872b2d77d0d7ccd534bcb2d218210cde985db07..a887dc3d2ba54496d91459733c3faf9a893ee816 100644 --- a/apps/streaming/java/src/net/i2p/client/streaming/impl/Packet.java +++ b/apps/streaming/java/src/net/i2p/client/streaming/impl/Packet.java @@ -585,7 +585,7 @@ class Packet { cur += 4; setAckThrough(DataHelper.fromLong(buffer, cur, 4)); cur += 4; - int numNacks = (int)DataHelper.fromLong(buffer, cur, 1); + int numNacks = buffer[cur] & 0xff; cur++; if (length < 22 + numNacks*4) throw new IllegalArgumentException("Too small with " + numNacks + " nacks: " + length); @@ -599,7 +599,7 @@ class Packet { } else { setNacks(null); } - setResendDelay((int)DataHelper.fromLong(buffer, cur, 1)); + setResendDelay(buffer[cur] & 0xff); cur++; setFlags((int)DataHelper.fromLong(buffer, cur, 2)); cur += 2; diff --git a/core/java/src/net/i2p/data/Certificate.java b/core/java/src/net/i2p/data/Certificate.java index aa2624b8af8f1637698f42d165c3d2761da862c8..aefc34ce61f1ae5ba836bfedae2eb142f979f359 100644 --- a/core/java/src/net/i2p/data/Certificate.java +++ b/core/java/src/net/i2p/data/Certificate.java @@ -215,7 +215,7 @@ public class Certificate extends DataStructureImpl { throw new DataFormatException("Cert is too small [" + source.length + " off=" + offset + "]"); int cur = offset; - _type = (int)DataHelper.fromLong(source, cur, 1); + _type = source[cur] & 0xff; cur++; int length = (int)DataHelper.fromLong(source, cur, 2); cur += 2; diff --git a/router/java/src/net/i2p/data/i2np/DatabaseSearchReplyMessage.java b/router/java/src/net/i2p/data/i2np/DatabaseSearchReplyMessage.java index 4a5c946385772afd169e6ff7f19f3e8d161034c4..1df280349ef78e11a141b438257f815ef1e02ab1 100644 --- a/router/java/src/net/i2p/data/i2np/DatabaseSearchReplyMessage.java +++ b/router/java/src/net/i2p/data/i2np/DatabaseSearchReplyMessage.java @@ -68,7 +68,7 @@ public class DatabaseSearchReplyMessage extends FastI2NPMessageImpl { curIndex += Hash.HASH_LENGTH; //_key = new Hash(keyData); - int num = (int)DataHelper.fromLong(data, curIndex, 1); + int num = data[curIndex] & 0xff; curIndex++; _peerHashes.clear(); diff --git a/router/java/src/net/i2p/data/i2np/DeliveryInstructions.java b/router/java/src/net/i2p/data/i2np/DeliveryInstructions.java index 9669d6f91fa5f176dffaf2049bfb9a56ac1345a6..5f59415124134a6511efdfd22dee7ebd35324a12 100644 --- a/router/java/src/net/i2p/data/i2np/DeliveryInstructions.java +++ b/router/java/src/net/i2p/data/i2np/DeliveryInstructions.java @@ -209,7 +209,7 @@ public class DeliveryInstructions extends DataStructureImpl { public int readBytes(byte data[], int offset) throws DataFormatException { int cur = offset; - long flags = DataHelper.fromLong(data, cur, 1); + int flags = data[cur] & 0xff; cur++; //if (_log.shouldLog(Log.DEBUG)) // _log.debug("Read flags: " + flags + " mode: " + flagMode(flags)); diff --git a/router/java/src/net/i2p/data/i2np/FastI2NPMessageImpl.java b/router/java/src/net/i2p/data/i2np/FastI2NPMessageImpl.java index 564d0f7262bf2ecb2a1c253079bb0f0e2833eda1..912a9e2b9eff5dda42d0a2c3bb93c154b559e163 100644 --- a/router/java/src/net/i2p/data/i2np/FastI2NPMessageImpl.java +++ b/router/java/src/net/i2p/data/i2np/FastI2NPMessageImpl.java @@ -85,7 +85,7 @@ public abstract class FastI2NPMessageImpl extends I2NPMessageImpl { throw new I2NPMessageException("Payload is too short " + maxLen); int cur = offset; if (type < 0) { - type = (int)DataHelper.fromLong(data, cur, 1); + type = data[cur] & 0xff; cur++; } _uniqueId = DataHelper.fromLong(data, cur, 4); diff --git a/router/java/src/net/i2p/data/i2np/I2NPMessageHandler.java b/router/java/src/net/i2p/data/i2np/I2NPMessageHandler.java index fe1225f74fca8cda0b3038fbfdd533414bd851a7..f1ea685f93a726e3c2477072d529d106341e0d62 100644 --- a/router/java/src/net/i2p/data/i2np/I2NPMessageHandler.java +++ b/router/java/src/net/i2p/data/i2np/I2NPMessageHandler.java @@ -109,7 +109,7 @@ public class I2NPMessageHandler { public int readMessage(byte data[], int offset, int maxLen) throws I2NPMessageException { int cur = offset; // we will assume that maxLen is >= 1 here. It's checked to be >= 16 in readBytes() - int type = (int)DataHelper.fromLong(data, cur, 1); + int type = data[cur] & 0xff; cur++; _lastReadBegin = System.currentTimeMillis(); I2NPMessage msg = I2NPMessageImpl.createMessage(_context, type); diff --git a/router/java/src/net/i2p/data/i2np/I2NPMessageImpl.java b/router/java/src/net/i2p/data/i2np/I2NPMessageImpl.java index 5f14c3fef71738f0c3a931c49739d5c69fe664a6..062e310b12dbef001379b990b49289a7a8169025 100644 --- a/router/java/src/net/i2p/data/i2np/I2NPMessageImpl.java +++ b/router/java/src/net/i2p/data/i2np/I2NPMessageImpl.java @@ -197,7 +197,7 @@ public abstract class I2NPMessageImpl extends DataStructureImpl implements I2NPM throw new I2NPMessageException("Payload is too short " + maxLen); int cur = offset; if (type < 0) { - type = (int)DataHelper.fromLong(data, cur, 1); + type = data[cur] & 0xff; cur++; } _uniqueId = DataHelper.fromLong(data, cur, 4); @@ -413,7 +413,7 @@ public abstract class I2NPMessageImpl extends DataStructureImpl implements I2NPM */ public static I2NPMessage fromRawByteArray(I2PAppContext ctx, byte buffer[], int offset, int len, I2NPMessageHandler handler) throws I2NPMessageException { - int type = (int)DataHelper.fromLong(buffer, offset, 1); + int type = buffer[offset] & 0xff; offset++; I2NPMessage msg = createMessage(ctx, type); if (msg == null) diff --git a/router/java/src/net/i2p/data/i2np/VariableTunnelBuildMessage.java b/router/java/src/net/i2p/data/i2np/VariableTunnelBuildMessage.java index b33cba76147a962916f89804c27f3e77961ab85b..52aa565de7262ad973a84e44b24def0c247aac34 100644 --- a/router/java/src/net/i2p/data/i2np/VariableTunnelBuildMessage.java +++ b/router/java/src/net/i2p/data/i2np/VariableTunnelBuildMessage.java @@ -29,7 +29,7 @@ public class VariableTunnelBuildMessage extends TunnelBuildMessage { @Override public void readMessage(byte[] data, int offset, int dataSize, int type) throws I2NPMessageException { // message type will be checked in super() - int r = (int)DataHelper.fromLong(data, offset, 1); + int r = data[offset] & 0xff; if (r <= 0 || r > MAX_RECORD_COUNT) throw new I2NPMessageException("Bad record count " + r); RECORD_COUNT = r; diff --git a/router/java/src/net/i2p/data/i2np/VariableTunnelBuildReplyMessage.java b/router/java/src/net/i2p/data/i2np/VariableTunnelBuildReplyMessage.java index 368104a2adc9df4a34f8730ab24766964ee89c3c..575f5563002a1a424713537d96a27549e5382a62 100644 --- a/router/java/src/net/i2p/data/i2np/VariableTunnelBuildReplyMessage.java +++ b/router/java/src/net/i2p/data/i2np/VariableTunnelBuildReplyMessage.java @@ -31,7 +31,7 @@ public class VariableTunnelBuildReplyMessage extends TunnelBuildReplyMessage { @Override public void readMessage(byte[] data, int offset, int dataSize, int type) throws I2NPMessageException { // message type will be checked in super() - int r = (int)DataHelper.fromLong(data, offset, 1); + int r = data[offset] & 0xff; if (r <= 0 || r > MAX_RECORD_COUNT) throw new I2NPMessageException("Bad record count " + r); RECORD_COUNT = r; diff --git a/router/java/src/net/i2p/router/message/GarlicMessageParser.java b/router/java/src/net/i2p/router/message/GarlicMessageParser.java index df83702a28780516928043e53b87530db4aea483..ef0e5f0b7afe7f41ea3556eddafa2d1d6da46f64 100644 --- a/router/java/src/net/i2p/router/message/GarlicMessageParser.java +++ b/router/java/src/net/i2p/router/message/GarlicMessageParser.java @@ -75,7 +75,7 @@ public class GarlicMessageParser { private CloveSet readCloveSet(byte data[]) throws DataFormatException { int offset = 0; - int numCloves = (int)DataHelper.fromLong(data, offset, 1); + int numCloves = data[offset] & 0xff; offset++; if (_log.shouldLog(Log.DEBUG)) _log.debug("# cloves to read: " + numCloves); diff --git a/router/java/src/net/i2p/router/tunnel/BuildReplyHandler.java b/router/java/src/net/i2p/router/tunnel/BuildReplyHandler.java index 2196a851e6e543256b1af596b4e31e09e76e2e0c..8514d6db1ac0c7444617ce0453a2671f8c7a6041 100644 --- a/router/java/src/net/i2p/router/tunnel/BuildReplyHandler.java +++ b/router/java/src/net/i2p/router/tunnel/BuildReplyHandler.java @@ -120,7 +120,7 @@ public class BuildReplyHandler { return -1; } else { SimpleByteCache.release(h); - int rv = (int)DataHelper.fromLong(data, TunnelBuildReplyMessage.RECORD_SIZE - 1, 1); + int rv = data[TunnelBuildReplyMessage.RECORD_SIZE - 1] & 0xff; if (log.shouldLog(Log.DEBUG)) log.debug(reply.getUniqueId() + ": Verified: " + rv + " for record " + recordNum + "/" + hop); return rv; diff --git a/router/java/src/net/i2p/router/tunnel/FragmentHandler.java b/router/java/src/net/i2p/router/tunnel/FragmentHandler.java index 6e0d0675fcbd0740534edb0924b743570f4d33d2..eef1327123e575ac198e1d2bf46cd27539afceef 100644 --- a/router/java/src/net/i2p/router/tunnel/FragmentHandler.java +++ b/router/java/src/net/i2p/router/tunnel/FragmentHandler.java @@ -340,7 +340,7 @@ class FragmentHandler { offset += 4; } if (extended) { - int extendedSize = (int)DataHelper.fromLong(preprocessed, offset, 1); + int extendedSize = preprocessed[offset] & 0xff; offset++; offset += extendedSize; // we don't interpret these yet, but skip them for now }