From 61db5d1b0484d41d51a4aa8f762440160b157b67 Mon Sep 17 00:00:00 2001 From: akwizgran Date: Wed, 19 Feb 2020 09:52:13 +0000 Subject: [PATCH] Make bit-twiddling code more readable. --- .../org/briarproject/bramble/plugin/tcp/LanTcpPlugin.java | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/bramble-core/src/main/java/org/briarproject/bramble/plugin/tcp/LanTcpPlugin.java b/bramble-core/src/main/java/org/briarproject/bramble/plugin/tcp/LanTcpPlugin.java index afa8dfcf6..e955e871c 100644 --- a/bramble-core/src/main/java/org/briarproject/bramble/plugin/tcp/LanTcpPlugin.java +++ b/bramble-core/src/main/java/org/briarproject/bramble/plugin/tcp/LanTcpPlugin.java @@ -241,9 +241,12 @@ class LanTcpPlugin extends TcpPlugin { static boolean areAddressesInSameNetwork(byte[] localIp, byte[] remoteIp, int prefixLength) { if (localIp.length != remoteIp.length) return false; + // Compare the first prefixLength bits of the addresses for (int i = 0; i < prefixLength; i++) { - int mask = 128 >> (i & 7); - if ((localIp[i >> 3] & mask) != (remoteIp[i >> 3] & mask)) { + int byteIndex = i >> 3; + int bitIndex = i & 7; // 0 to 7 + int mask = 128 >> bitIndex; // Select the bit at bitIndex + if ((localIp[byteIndex] & mask) != (remoteIp[byteIndex] & mask)) { return false; // Addresses differ at bit i } }