private int calcChecksum() { byte[] data = new byte[length()]; // If call getRawData() here, rawData will be cached with // an invalid checksum in some cases. // To avoid it, use buildRawData() instead. System.arraycopy(buildRawData(), 0, data, 0, data.length); for (int i = 0; i < CHECKSUM_SIZE; i++) { data[CHECKSUM_OFFSET + i] = (byte) 0; } if (PacketPropertiesLoader.getInstance().sctpCalcChecksumByAdler32()) { return ByteArrays.calcAdler32Checksum(data); } else { int crc = ByteArrays.calcCrc32cChecksum(data); return (crc << 24) | (crc & 0x0000FF00) << 8 | (crc & 0x00FF0000) >> 8 | (crc & 0xFF000000) >>> 24; } }
private int calcChecksum() { byte[] data = new byte[length()]; // If call getRawData() here, rawData will be cached with // an invalid checksum in some cases. // To avoid it, use buildRawData() instead. System.arraycopy(buildRawData(), 0, data, 0, data.length); for (int i = 0; i < CHECKSUM_SIZE; i++) { data[CHECKSUM_OFFSET + i] = (byte) 0; } if (PacketPropertiesLoader.getInstance().sctpCalcChecksumByAdler32()) { return ByteArrays.calcAdler32Checksum(data); } else { int crc = ByteArrays.calcCrc32cChecksum(data); return (crc << 24) | (crc & 0x0000FF00) << 8 | (crc & 0x00FF0000) >> 8 | (crc & 0xFF000000) >>> 24; } }