@Test public void testHasValidChecksum() { UdpPacket.Builder b = packet.getBuilder(); b.srcAddr(srcAddr).dstAddr(dstAddr); UdpPacket p = b.correctChecksumAtBuild(false).build(); assertFalse(packet.hasValidChecksum(srcAddr, dstAddr, false)); assertFalse(packet.hasValidChecksum(srcAddr, dstAddr, true)); b.checksum((short) 0).correctChecksumAtBuild(false); p = b.build(); assertFalse(p.hasValidChecksum(srcAddr, dstAddr, false)); assertTrue(p.hasValidChecksum(srcAddr, dstAddr, true)); b.correctChecksumAtBuild(true); p = b.build(); assertTrue(p.hasValidChecksum(srcAddr, dstAddr, false)); assertTrue(p.hasValidChecksum(srcAddr, dstAddr, true)); }
@Test public void testHasValidChecksumFFFF() throws Exception { PcapHandle pcapHandle = Pcaps.openOffline(resourceDirPath.concat("/UdpPacketTestChecksum0xFFFF.pcap")); Packet packet = pcapHandle.getNextPacket(); assertNotNull(packet); assertTrue(packet.contains(IpV4Packet.class)); IpV4Packet ipV4Packet = packet.get(IpV4Packet.class); assertNotNull(ipV4Packet); IpV4Packet.IpV4Header ipV4Header = ipV4Packet.getHeader(); assertNotNull(ipV4Header); assertTrue(ipV4Packet.contains(UdpPacket.class)); UdpPacket udpPacket = ipV4Packet.get(UdpPacket.class); assertNotNull(udpPacket); assertEquals((short) 0xFFFF, udpPacket.getHeader().getChecksum()); assertTrue(udpPacket.hasValidChecksum(ipV4Header.getSrcAddr(), ipV4Header.getDstAddr(), false)); }