/** * Determine whether the source or destination address is modified or not. * * @return {@code true} only if the source or destination address is * modified. */ public boolean isAddressModified() { if (modifiedValues == null) { return false; } Ip4Network oldIp = values.getSourceAddress(); Ip4Network newIp = modifiedValues.getSourceAddress(); if (oldIp.getAddress() != newIp.getAddress()) { return true; } oldIp = values.getDestinationAddress(); newIp = modifiedValues.getDestinationAddress(); return (oldIp.getAddress() != newIp.getAddress()); }
/** * Create a pseudo IPv4 header used for computing TCP/UDP checksum. * * @param proto An IP protocol number. * @param len The number of octets in a payload. * @return A byte array which represents the pseudo IPv4 header. */ public byte[] getHeaderForChecksum(byte proto, short len) { byte[] header = new byte[CKSUM_HEADER_SIZE]; int src = getSourceAddress().getAddress(); int dst = getDestinationAddress().getAddress(); NumberUtils.setInt(header, CKSUM_OFF_SRC, src); NumberUtils.setInt(header, CKSUM_OFF_DST, dst); header[CKSUM_OFF_PROTO] = proto; NumberUtils.setShort(header, CKSUM_OFF_LEN, len); return header; }
if (oldIp.getAddress() != newIp.getAddress()) { if (oldIp.getAddress() != newIp.getAddress()) {
senderIp4Address = new Ip4Network(0); } else if (src.getAddress() == 0) {