public class io.netty.handler.codec.dns.DefaultDnsRecordDecoder implements io.netty.handler.codec.dns.DnsRecordDecoder
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: io.netty.handler.codec.dns.DefaultDnsRecordDecoder
super_class: java.lang.Object
{
static final java.lang.String ROOT;
descriptor: Ljava/lang/String;
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: "."
protected void <init>();
descriptor: ()V
flags: (0x0004) ACC_PROTECTED
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokespecial java.lang.Object.<init>:()V
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lio/netty/handler/codec/dns/DefaultDnsRecordDecoder;
public final io.netty.handler.codec.dns.DnsQuestion decodeQuestion(io.netty.buffer.ByteBuf);
descriptor: (Lio/netty/buffer/ByteBuf;)Lio/netty/handler/codec/dns/DnsQuestion;
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=5, locals=5, args_size=2
start local 0 start local 1 0: aload 1
invokestatic io.netty.handler.codec.dns.DefaultDnsRecordDecoder.decodeName:(Lio/netty/buffer/ByteBuf;)Ljava/lang/String;
astore 2
start local 2 1: aload 1
invokevirtual io.netty.buffer.ByteBuf.readUnsignedShort:()I
invokestatic io.netty.handler.codec.dns.DnsRecordType.valueOf:(I)Lio/netty/handler/codec/dns/DnsRecordType;
astore 3
start local 3 2: aload 1
invokevirtual io.netty.buffer.ByteBuf.readUnsignedShort:()I
istore 4
start local 4 3: new io.netty.handler.codec.dns.DefaultDnsQuestion
dup
aload 2
aload 3
iload 4
invokespecial io.netty.handler.codec.dns.DefaultDnsQuestion.<init>:(Ljava/lang/String;Lio/netty/handler/codec/dns/DnsRecordType;I)V
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lio/netty/handler/codec/dns/DefaultDnsRecordDecoder;
0 4 1 in Lio/netty/buffer/ByteBuf;
1 4 2 name Ljava/lang/String;
2 4 3 type Lio/netty/handler/codec/dns/DnsRecordType;
3 4 4 qClass I
Exceptions:
throws java.lang.Exception
MethodParameters:
Name Flags
in
public final <T extends io.netty.handler.codec.dns.DnsRecord> T decodeRecord(io.netty.buffer.ByteBuf);
descriptor: (Lio/netty/buffer/ByteBuf;)Lio/netty/handler/codec/dns/DnsRecord;
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=9, locals=12, args_size=2
start local 0 start local 1 0: aload 1
invokevirtual io.netty.buffer.ByteBuf.readerIndex:()I
istore 2
start local 2 1: aload 1
invokestatic io.netty.handler.codec.dns.DefaultDnsRecordDecoder.decodeName:(Lio/netty/buffer/ByteBuf;)Ljava/lang/String;
astore 3
start local 3 2: aload 1
invokevirtual io.netty.buffer.ByteBuf.writerIndex:()I
istore 4
start local 4 3: iload 4
iload 2
isub
bipush 10
if_icmpge 6
4: aload 1
iload 2
invokevirtual io.netty.buffer.ByteBuf.readerIndex:(I)Lio/netty/buffer/ByteBuf;
pop
5: aconst_null
areturn
6: StackMap locals: int java.lang.String int
StackMap stack:
aload 1
invokevirtual io.netty.buffer.ByteBuf.readUnsignedShort:()I
invokestatic io.netty.handler.codec.dns.DnsRecordType.valueOf:(I)Lio/netty/handler/codec/dns/DnsRecordType;
astore 5
start local 5 7: aload 1
invokevirtual io.netty.buffer.ByteBuf.readUnsignedShort:()I
istore 6
start local 6 8: aload 1
invokevirtual io.netty.buffer.ByteBuf.readUnsignedInt:()J
lstore 7
start local 7 9: aload 1
invokevirtual io.netty.buffer.ByteBuf.readUnsignedShort:()I
istore 9
start local 9 10: aload 1
invokevirtual io.netty.buffer.ByteBuf.readerIndex:()I
istore 10
start local 10 11: iload 4
iload 10
isub
iload 9
if_icmpge 14
12: aload 1
iload 2
invokevirtual io.netty.buffer.ByteBuf.readerIndex:(I)Lio/netty/buffer/ByteBuf;
pop
13: aconst_null
areturn
14: StackMap locals: io.netty.handler.codec.dns.DefaultDnsRecordDecoder io.netty.buffer.ByteBuf int java.lang.String int io.netty.handler.codec.dns.DnsRecordType int long int int
StackMap stack:
aload 0
aload 3
aload 5
iload 6
lload 7
aload 1
iload 10
iload 9
invokevirtual io.netty.handler.codec.dns.DefaultDnsRecordDecoder.decodeRecord:(Ljava/lang/String;Lio/netty/handler/codec/dns/DnsRecordType;IJLio/netty/buffer/ByteBuf;II)Lio/netty/handler/codec/dns/DnsRecord;
astore 11
start local 11 15: aload 1
iload 10
iload 9
iadd
invokevirtual io.netty.buffer.ByteBuf.readerIndex:(I)Lio/netty/buffer/ByteBuf;
pop
16: aload 11
areturn
end local 11 end local 10 end local 9 end local 7 end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 17 0 this Lio/netty/handler/codec/dns/DefaultDnsRecordDecoder;
0 17 1 in Lio/netty/buffer/ByteBuf;
1 17 2 startOffset I
2 17 3 name Ljava/lang/String;
3 17 4 endOffset I
7 17 5 type Lio/netty/handler/codec/dns/DnsRecordType;
8 17 6 aClass I
9 17 7 ttl J
10 17 9 length I
11 17 10 offset I
15 17 11 record TT;
Exceptions:
throws java.lang.Exception
Signature: <T::Lio/netty/handler/codec/dns/DnsRecord;>(Lio/netty/buffer/ByteBuf;)TT;
MethodParameters:
Name Flags
in
protected io.netty.handler.codec.dns.DnsRecord decodeRecord(java.lang.String, io.netty.handler.codec.dns.DnsRecordType, int, long, io.netty.buffer.ByteBuf, int, int);
descriptor: (Ljava/lang/String;Lio/netty/handler/codec/dns/DnsRecordType;IJLio/netty/buffer/ByteBuf;II)Lio/netty/handler/codec/dns/DnsRecord;
flags: (0x0004) ACC_PROTECTED
Code:
stack=11, locals=9, args_size=8
start local 0 start local 1 start local 2 start local 3 start local 4 start local 6 start local 7 start local 8 0: aload 2
getstatic io.netty.handler.codec.dns.DnsRecordType.PTR:Lio/netty/handler/codec/dns/DnsRecordType;
if_acmpne 4
1: new io.netty.handler.codec.dns.DefaultDnsPtrRecord
dup
2: aload 1
iload 3
lload 4
aload 0
aload 6
invokevirtual io.netty.buffer.ByteBuf.duplicate:()Lio/netty/buffer/ByteBuf;
iload 7
iload 7
iload 8
iadd
invokevirtual io.netty.buffer.ByteBuf.setIndex:(II)Lio/netty/buffer/ByteBuf;
invokevirtual io.netty.handler.codec.dns.DefaultDnsRecordDecoder.decodeName0:(Lio/netty/buffer/ByteBuf;)Ljava/lang/String;
3: invokespecial io.netty.handler.codec.dns.DefaultDnsPtrRecord.<init>:(Ljava/lang/String;IJLjava/lang/String;)V
areturn
4: StackMap locals:
StackMap stack:
new io.netty.handler.codec.dns.DefaultDnsRawRecord
dup
5: aload 1
aload 2
iload 3
lload 4
aload 6
invokevirtual io.netty.buffer.ByteBuf.retainedDuplicate:()Lio/netty/buffer/ByteBuf;
iload 7
iload 7
iload 8
iadd
invokevirtual io.netty.buffer.ByteBuf.setIndex:(II)Lio/netty/buffer/ByteBuf;
6: invokespecial io.netty.handler.codec.dns.DefaultDnsRawRecord.<init>:(Ljava/lang/String;Lio/netty/handler/codec/dns/DnsRecordType;IJLio/netty/buffer/ByteBuf;)V
areturn
end local 8 end local 7 end local 6 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lio/netty/handler/codec/dns/DefaultDnsRecordDecoder;
0 7 1 name Ljava/lang/String;
0 7 2 type Lio/netty/handler/codec/dns/DnsRecordType;
0 7 3 dnsClass I
0 7 4 timeToLive J
0 7 6 in Lio/netty/buffer/ByteBuf;
0 7 7 offset I
0 7 8 length I
Exceptions:
throws java.lang.Exception
MethodParameters:
Name Flags
name
type
dnsClass
timeToLive
in
offset
length
protected java.lang.String decodeName0(io.netty.buffer.ByteBuf);
descriptor: (Lio/netty/buffer/ByteBuf;)Ljava/lang/String;
flags: (0x0004) ACC_PROTECTED
Code:
stack=1, locals=2, args_size=2
start local 0 start local 1 0: aload 1
invokestatic io.netty.handler.codec.dns.DefaultDnsRecordDecoder.decodeName:(Lio/netty/buffer/ByteBuf;)Ljava/lang/String;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lio/netty/handler/codec/dns/DefaultDnsRecordDecoder;
0 1 1 in Lio/netty/buffer/ByteBuf;
MethodParameters:
Name Flags
in
public static java.lang.String decodeName(io.netty.buffer.ByteBuf);
descriptor: (Lio/netty/buffer/ByteBuf;)Ljava/lang/String;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=5, locals=9, args_size=1
start local 0 0: iconst_m1
istore 1
start local 1 1: iconst_0
istore 2
start local 2 2: aload 0
invokevirtual io.netty.buffer.ByteBuf.writerIndex:()I
istore 3
start local 3 3: aload 0
invokevirtual io.netty.buffer.ByteBuf.readableBytes:()I
istore 4
start local 4 4: iload 4
ifne 6
5: ldc "."
areturn
6: StackMap locals: io.netty.buffer.ByteBuf int int int int
StackMap stack:
new java.lang.StringBuilder
dup
iload 4
iconst_1
ishl
invokespecial java.lang.StringBuilder.<init>:(I)V
astore 5
start local 5 7: goto 29
8: StackMap locals: java.lang.StringBuilder
StackMap stack:
aload 0
invokevirtual io.netty.buffer.ByteBuf.readUnsignedByte:()S
istore 6
start local 6 9: iload 6
sipush 192
iand
sipush 192
if_icmpne 10
iconst_1
goto 11
StackMap locals: int
StackMap stack:
10: iconst_0
StackMap locals:
StackMap stack: int
11: istore 7
start local 7 12: iload 7
ifeq 24
13: iload 1
iconst_m1
if_icmpne 15
14: aload 0
invokevirtual io.netty.buffer.ByteBuf.readerIndex:()I
iconst_1
iadd
istore 1
15: StackMap locals: int
StackMap stack:
aload 0
invokevirtual io.netty.buffer.ByteBuf.isReadable:()Z
ifne 17
16: new io.netty.handler.codec.CorruptedFrameException
dup
ldc "truncated pointer in a name"
invokespecial io.netty.handler.codec.CorruptedFrameException.<init>:(Ljava/lang/String;)V
athrow
17: StackMap locals:
StackMap stack:
iload 6
bipush 63
iand
bipush 8
ishl
aload 0
invokevirtual io.netty.buffer.ByteBuf.readUnsignedByte:()S
ior
istore 8
start local 8 18: iload 8
iload 3
if_icmplt 20
19: new io.netty.handler.codec.CorruptedFrameException
dup
ldc "name has an out-of-range pointer"
invokespecial io.netty.handler.codec.CorruptedFrameException.<init>:(Ljava/lang/String;)V
athrow
20: StackMap locals: int
StackMap stack:
aload 0
iload 8
invokevirtual io.netty.buffer.ByteBuf.readerIndex:(I)Lio/netty/buffer/ByteBuf;
pop
21: iinc 2 2
22: iload 2
iload 3
if_icmplt 29
23: new io.netty.handler.codec.CorruptedFrameException
dup
ldc "name contains a loop."
invokespecial io.netty.handler.codec.CorruptedFrameException.<init>:(Ljava/lang/String;)V
athrow
end local 8 24: StackMap locals:
StackMap stack:
iload 6
ifeq 30
25: aload 0
iload 6
invokevirtual io.netty.buffer.ByteBuf.isReadable:(I)Z
ifne 27
26: new io.netty.handler.codec.CorruptedFrameException
dup
ldc "truncated label in a name"
invokespecial io.netty.handler.codec.CorruptedFrameException.<init>:(Ljava/lang/String;)V
athrow
27: StackMap locals:
StackMap stack:
aload 5
aload 0
aload 0
invokevirtual io.netty.buffer.ByteBuf.readerIndex:()I
iload 6
getstatic io.netty.util.CharsetUtil.UTF_8:Ljava/nio/charset/Charset;
invokevirtual io.netty.buffer.ByteBuf.toString:(IILjava/nio/charset/Charset;)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
bipush 46
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
pop
28: aload 0
iload 6
invokevirtual io.netty.buffer.ByteBuf.skipBytes:(I)Lio/netty/buffer/ByteBuf;
pop
end local 7 end local 6 29: StackMap locals:
StackMap stack:
aload 0
invokevirtual io.netty.buffer.ByteBuf.isReadable:()Z
ifne 8
30: StackMap locals:
StackMap stack:
iload 1
iconst_m1
if_icmpeq 32
31: aload 0
iload 1
invokevirtual io.netty.buffer.ByteBuf.readerIndex:(I)Lio/netty/buffer/ByteBuf;
pop
32: StackMap locals:
StackMap stack:
aload 5
invokevirtual java.lang.StringBuilder.length:()I
ifne 34
33: ldc "."
areturn
34: StackMap locals:
StackMap stack:
aload 5
aload 5
invokevirtual java.lang.StringBuilder.length:()I
iconst_1
isub
invokevirtual java.lang.StringBuilder.charAt:(I)C
bipush 46
if_icmpeq 36
35: aload 5
bipush 46
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
pop
36: StackMap locals:
StackMap stack:
aload 5
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
areturn
end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 37 0 in Lio/netty/buffer/ByteBuf;
1 37 1 position I
2 37 2 checked I
3 37 3 end I
4 37 4 readable I
7 37 5 name Ljava/lang/StringBuilder;
9 29 6 len I
12 29 7 pointer Z
18 24 8 next I
MethodParameters:
Name Flags
in
}
SourceFile: "DefaultDnsRecordDecoder.java"