Home / Function/ testIp() — netty Function Reference

testIp() — netty Function Reference

Architecture documentation for the testIp() function in DefaultDnsRecordEncoderTest.java from the netty codebase.

Function java Buffer Allocators calls 1 called by 1

Entity Profile

Dependency Diagram

graph TD
  02af7f69_bb45_8899_b32e_7cb8d83b8efb["testIp()"]
  47911929_f87d_8a18_283d_e24d57ce4e70["DefaultDnsRecordEncoderTest"]
  02af7f69_bb45_8899_b32e_7cb8d83b8efb -->|defined in| 47911929_f87d_8a18_283d_e24d57ce4e70
  57b29952_14f1_2566_a9bf_06fb1601ced8["testOptEcsRecordIp()"]
  57b29952_14f1_2566_a9bf_06fb1601ced8 -->|calls| 02af7f69_bb45_8899_b32e_7cb8d83b8efb
  40ccd482_9999_adc8_5082_1a9cde4c7db2["nextInt()"]
  02af7f69_bb45_8899_b32e_7cb8d83b8efb -->|calls| 40ccd482_9999_adc8_5082_1a9cde4c7db2
  style 02af7f69_bb45_8899_b32e_7cb8d83b8efb fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

codec-dns/src/test/java/io/netty/handler/codec/dns/DefaultDnsRecordEncoderTest.java lines 126–182

    private static void testIp(InetAddress address, int prefix) throws Exception {
        int lowOrderBitsToPreserve = prefix % Byte.SIZE;

        ByteBuf addressPart = Unpooled.wrappedBuffer(address.getAddress(), 0,
                DefaultDnsRecordEncoder.calculateEcsAddressLength(prefix, lowOrderBitsToPreserve));

        if (lowOrderBitsToPreserve > 0) {
            // Pad the leftover of the last byte with zeros.
            int idx = addressPart.writerIndex() - 1;
            byte lastByte = addressPart.getByte(idx);
            int paddingMask = -1 << 8 - lowOrderBitsToPreserve;
            addressPart.setByte(idx, lastByte & paddingMask);
        }

        int payloadSize = nextInt(Short.MAX_VALUE);
        int extendedRcode = nextInt(Byte.MAX_VALUE * 2); // Unsigned
        int version = nextInt(Byte.MAX_VALUE * 2); // Unsigned

        DefaultDnsRecordEncoder encoder = new DefaultDnsRecordEncoder();
        ByteBuf out = Unpooled.buffer();
        try {
            DnsOptEcsRecord record = new DefaultDnsOptEcsRecord(
                    payloadSize, extendedRcode, version, prefix, address.getAddress());
            encoder.encodeRecord(record, out);

            assertEquals(0, out.readByte()); // Name
            assertEquals(DnsRecordType.OPT.intValue(), out.readUnsignedShort()); // Opt
            assertEquals(payloadSize, out.readUnsignedShort()); // payload
            assertEquals(record.timeToLive(), out.getUnsignedInt(out.readerIndex()));

            // Read unpacked TTL.
            assertEquals(extendedRcode, out.readUnsignedByte());
            assertEquals(version, out.readUnsignedByte());
            assertEquals(extendedRcode, record.extendedRcode());
            assertEquals(version, record.version());
            assertEquals(0, record.flags());

            assertEquals(0, out.readShort());

            int payloadLength = out.readUnsignedShort();
            assertEquals(payloadLength, out.readableBytes());

            assertEquals(8, out.readShort()); // As defined by RFC.

            int rdataLength = out.readUnsignedShort();
            assertEquals(rdataLength, out.readableBytes());

            assertEquals((short) (address instanceof Inet4Address ? 1 : 2), out.readShort());

            assertEquals(prefix, out.readUnsignedByte());
            assertEquals(0, out.readUnsignedByte()); // This must be 0 for requests.
            assertEquals(addressPart, out);
        } finally {
            addressPart.release();
            out.release();
        }
    }

Domain

Subdomains

Calls

Frequently Asked Questions

What does testIp() do?
testIp() is a function in the netty codebase, defined in codec-dns/src/test/java/io/netty/handler/codec/dns/DefaultDnsRecordEncoderTest.java.
Where is testIp() defined?
testIp() is defined in codec-dns/src/test/java/io/netty/handler/codec/dns/DefaultDnsRecordEncoderTest.java at line 126.
What does testIp() call?
testIp() calls 1 function(s): nextInt.
What calls testIp()?
testIp() is called by 1 function(s): testOptEcsRecordIp.

Analyze Your Own Codebase

Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.

Try Supermodel Free