public class com.sun.jndi.dns.DnsClient
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: com.sun.jndi.dns.DnsClient
super_class: java.lang.Object
{
private static final int IDENT_OFFSET;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 0
private static final int FLAGS_OFFSET;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 2
private static final int NUMQ_OFFSET;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 4
private static final int NUMANS_OFFSET;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 6
private static final int NUMAUTH_OFFSET;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 8
private static final int NUMADD_OFFSET;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 10
private static final int DNS_HDR_SIZE;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 12
private static final int NO_ERROR;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 0
private static final int FORMAT_ERROR;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 1
private static final int SERVER_FAILURE;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 2
private static final int NAME_ERROR;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 3
private static final int NOT_IMPL;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 4
private static final int REFUSED;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 5
private static final java.lang.String[] rcodeDescription;
descriptor: [Ljava/lang/String;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final int DEFAULT_PORT;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 53
private static final int TRANSACTION_ID_BOUND;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 65536
private static final java.security.SecureRandom random;
descriptor: Ljava/security/SecureRandom;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private java.net.InetAddress[] servers;
descriptor: [Ljava/net/InetAddress;
flags: (0x0002) ACC_PRIVATE
private int[] serverPorts;
descriptor: [I
flags: (0x0002) ACC_PRIVATE
private int timeout;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private int retries;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private final java.lang.Object udpSocketLock;
descriptor: Ljava/lang/Object;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private static final com.sun.jndi.dns.DNSDatagramSocketFactory factory;
descriptor: Lcom/sun/jndi/dns/DNSDatagramSocketFactory;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private java.util.Map<java.lang.Integer, com.sun.jndi.dns.ResourceRecord> reqs;
descriptor: Ljava/util/Map;
flags: (0x0002) ACC_PRIVATE
Signature: Ljava/util/Map<Ljava/lang/Integer;Lcom/sun/jndi/dns/ResourceRecord;>;
private java.util.Map<java.lang.Integer, byte[]> resps;
descriptor: Ljava/util/Map;
flags: (0x0002) ACC_PRIVATE
Signature: Ljava/util/Map<Ljava/lang/Integer;[B>;
private java.lang.Object queuesLock;
descriptor: Ljava/lang/Object;
flags: (0x0002) ACC_PRIVATE
private static final boolean debug;
descriptor: Z
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 0
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=4, locals=0, args_size=0
0: bipush 6
anewarray java.lang.String
dup
iconst_0
1: ldc "No error"
aastore
dup
iconst_1
2: ldc "DNS format error"
aastore
dup
iconst_2
3: ldc "DNS server failure"
aastore
dup
iconst_3
4: ldc "DNS name not found"
aastore
dup
iconst_4
5: ldc "DNS operation not supported"
aastore
dup
iconst_5
6: ldc "DNS service refused"
aastore
7: putstatic com.sun.jndi.dns.DnsClient.rcodeDescription:[Ljava/lang/String;
8: invokestatic sun.security.jca.JCAUtil.getSecureRandom:()Ljava/security/SecureRandom;
putstatic com.sun.jndi.dns.DnsClient.random:Ljava/security/SecureRandom;
9: new com.sun.jndi.dns.DNSDatagramSocketFactory
dup
getstatic com.sun.jndi.dns.DnsClient.random:Ljava/security/SecureRandom;
invokespecial com.sun.jndi.dns.DNSDatagramSocketFactory.<init>:(Ljava/util/Random;)V
10: putstatic com.sun.jndi.dns.DnsClient.factory:Lcom/sun/jndi/dns/DNSDatagramSocketFactory;
11: return
LocalVariableTable:
Start End Slot Name Signature
public void <init>(java.lang.String[], int, int);
descriptor: ([Ljava/lang/String;II)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=9, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
new java.lang.Object
dup
invokespecial java.lang.Object.<init>:()V
putfield com.sun.jndi.dns.DnsClient.udpSocketLock:Ljava/lang/Object;
2: aload 0
new java.lang.Object
dup
invokespecial java.lang.Object.<init>:()V
putfield com.sun.jndi.dns.DnsClient.queuesLock:Ljava/lang/Object;
3: aload 0
iload 2
putfield com.sun.jndi.dns.DnsClient.timeout:I
4: aload 0
iload 3
putfield com.sun.jndi.dns.DnsClient.retries:I
5: aload 0
aload 1
arraylength
anewarray java.net.InetAddress
putfield com.sun.jndi.dns.DnsClient.servers:[Ljava/net/InetAddress;
6: aload 0
aload 1
arraylength
newarray 10
putfield com.sun.jndi.dns.DnsClient.serverPorts:[I
7: iconst_0
istore 4
start local 4 8: goto 29
9: StackMap locals: com.sun.jndi.dns.DnsClient java.lang.String[] int int int
StackMap stack:
aload 1
iload 4
aaload
bipush 58
10: aload 1
iload 4
aaload
bipush 93
invokevirtual java.lang.String.indexOf:(I)I
iconst_1
iadd
11: invokevirtual java.lang.String.indexOf:(II)I
istore 5
start local 5 12: aload 0
getfield com.sun.jndi.dns.DnsClient.serverPorts:[I
iload 4
iload 5
ifge 14
13: bipush 53
goto 15
14: StackMap locals: com.sun.jndi.dns.DnsClient java.lang.String[] int int int int
StackMap stack: int[] int
aload 1
iload 4
aaload
iload 5
iconst_1
iadd
invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
invokestatic java.lang.Integer.parseInt:(Ljava/lang/String;)I
15: StackMap locals: com.sun.jndi.dns.DnsClient java.lang.String[] int int int int
StackMap stack: int[] int int
iastore
16: iload 5
ifge 18
17: aload 1
iload 4
aaload
goto 19
18: StackMap locals:
StackMap stack:
aload 1
iload 4
aaload
iconst_0
iload 5
invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
19: StackMap locals:
StackMap stack: java.lang.String
astore 6
start local 6 20: aload 0
getfield com.sun.jndi.dns.DnsClient.servers:[Ljava/net/InetAddress;
iload 4
aload 6
invokestatic java.net.InetAddress.getByName:(Ljava/lang/String;)Ljava/net/InetAddress;
aastore
21: goto 28
StackMap locals: com.sun.jndi.dns.DnsClient java.lang.String[] int int int int java.lang.String
StackMap stack: java.net.UnknownHostException
22: astore 7
start local 7 23: new javax.naming.ConfigurationException
dup
24: new java.lang.StringBuilder
dup
ldc "Unknown DNS server: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 6
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
25: invokespecial javax.naming.ConfigurationException.<init>:(Ljava/lang/String;)V
astore 8
start local 8 26: aload 8
aload 7
invokevirtual javax.naming.NamingException.setRootCause:(Ljava/lang/Throwable;)V
27: aload 8
athrow
end local 8 end local 7 end local 6 end local 5 28: StackMap locals:
StackMap stack:
iinc 4 1
StackMap locals:
StackMap stack:
29: iload 4
aload 1
arraylength
if_icmplt 9
end local 4 30: aload 0
31: new java.util.HashMap
dup
invokespecial java.util.HashMap.<init>:()V
32: invokestatic java.util.Collections.synchronizedMap:(Ljava/util/Map;)Ljava/util/Map;
putfield com.sun.jndi.dns.DnsClient.reqs:Ljava/util/Map;
33: aload 0
new java.util.HashMap
dup
invokespecial java.util.HashMap.<init>:()V
invokestatic java.util.Collections.synchronizedMap:(Ljava/util/Map;)Ljava/util/Map;
putfield com.sun.jndi.dns.DnsClient.resps:Ljava/util/Map;
34: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 35 0 this Lcom/sun/jndi/dns/DnsClient;
0 35 1 servers [Ljava/lang/String;
0 35 2 timeout I
0 35 3 retries I
8 30 4 i I
12 28 5 colon I
20 28 6 server Ljava/lang/String;
23 28 7 e Ljava/net/UnknownHostException;
26 28 8 ne Ljavax/naming/NamingException;
Exception table:
from to target type
20 21 22 Class java.net.UnknownHostException
Exceptions:
throws javax.naming.NamingException
MethodParameters:
Name Flags
servers
timeout
retries
java.net.DatagramSocket getDatagramSocket();
descriptor: ()Ljava/net/DatagramSocket;
flags: (0x0000)
Code:
stack=2, locals=3, args_size=1
start local 0 0: getstatic com.sun.jndi.dns.DnsClient.factory:Lcom/sun/jndi/dns/DNSDatagramSocketFactory;
invokevirtual com.sun.jndi.dns.DNSDatagramSocketFactory.open:()Ljava/net/DatagramSocket;
1: areturn
2: StackMap locals:
StackMap stack: java.net.SocketException
astore 1
start local 1 3: new javax.naming.ConfigurationException
dup
invokespecial javax.naming.ConfigurationException.<init>:()V
astore 2
start local 2 4: aload 2
aload 1
invokevirtual javax.naming.NamingException.setRootCause:(Ljava/lang/Throwable;)V
5: aload 2
athrow
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lcom/sun/jndi/dns/DnsClient;
3 6 1 e Ljava/net/SocketException;
4 6 2 ne Ljavax/naming/NamingException;
Exception table:
from to target type
0 1 2 Class java.net.SocketException
Exceptions:
throws javax.naming.NamingException
protected void finalize();
descriptor: ()V
flags: (0x0004) ACC_PROTECTED
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual com.sun.jndi.dns.DnsClient.close:()V
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/sun/jndi/dns/DnsClient;
public void close();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=1
start local 0 0: aload 0
getfield com.sun.jndi.dns.DnsClient.queuesLock:Ljava/lang/Object;
dup
astore 1
monitorenter
1: aload 0
getfield com.sun.jndi.dns.DnsClient.reqs:Ljava/util/Map;
invokeinterface java.util.Map.clear:()V
2: aload 0
getfield com.sun.jndi.dns.DnsClient.resps:Ljava/util/Map;
invokeinterface java.util.Map.clear:()V
3: aload 1
monitorexit
4: goto 7
StackMap locals: com.sun.jndi.dns.DnsClient java.lang.Object
StackMap stack: java.lang.Throwable
5: aload 1
monitorexit
6: athrow
7: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lcom/sun/jndi/dns/DnsClient;
Exception table:
from to target type
1 4 5 any
5 6 5 any
com.sun.jndi.dns.ResourceRecords query(com.sun.jndi.dns.DnsName, int, int, boolean, boolean);
descriptor: (Lcom/sun/jndi/dns/DnsName;IIZZ)Lcom/sun/jndi/dns/ResourceRecords;
flags: (0x0000)
Code:
stack=9, locals=23, args_size=6
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 0: StackMap locals:
StackMap stack:
getstatic com.sun.jndi.dns.DnsClient.random:Ljava/security/SecureRandom;
ldc 65536
invokevirtual java.security.SecureRandom.nextInt:(I)I
istore 6
start local 6 1: aload 0
aload 1
iload 6
iload 2
iload 3
iload 4
invokevirtual com.sun.jndi.dns.DnsClient.makeQueryPacket:(Lcom/sun/jndi/dns/DnsName;IIIZ)Lcom/sun/jndi/dns/Packet;
astore 7
start local 7 2: aload 0
getfield com.sun.jndi.dns.DnsClient.reqs:Ljava/util/Map;
iload 6
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
new com.sun.jndi.dns.ResourceRecord
dup
aload 7
invokevirtual com.sun.jndi.dns.Packet.getData:()[B
3: aload 7
invokevirtual com.sun.jndi.dns.Packet.length:()I
bipush 12
iconst_1
iconst_0
invokespecial com.sun.jndi.dns.ResourceRecord.<init>:([BIIZZ)V
4: invokeinterface java.util.Map.putIfAbsent:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
checkcast com.sun.jndi.dns.ResourceRecord
astore 8
start local 8 5: aload 8
ifnonnull 0
6: aconst_null
astore 9
start local 9 7: aload 0
getfield com.sun.jndi.dns.DnsClient.servers:[Ljava/net/InetAddress;
arraylength
newarray 4
astore 10
start local 10 8: iconst_0
istore 11
start local 11 9: goto 85
10: StackMap locals: com.sun.jndi.dns.DnsClient com.sun.jndi.dns.DnsName int int int int int com.sun.jndi.dns.Packet com.sun.jndi.dns.ResourceRecord java.lang.Exception boolean[] int
StackMap stack:
iconst_0
istore 12
start local 12 11: goto 83
12: StackMap locals: int
StackMap stack:
aload 10
iload 12
baload
ifeq 14
13: goto 82
14: StackMap locals:
StackMap stack:
aconst_null
astore 13
start local 13 15: aload 0
aload 7
aload 0
getfield com.sun.jndi.dns.DnsClient.servers:[Ljava/net/InetAddress;
iload 12
aaload
aload 0
getfield com.sun.jndi.dns.DnsClient.serverPorts:[I
iload 12
iaload
16: iload 11
iload 6
17: invokevirtual com.sun.jndi.dns.DnsClient.doUdpQuery:(Lcom/sun/jndi/dns/Packet;Ljava/net/InetAddress;III)[B
astore 13
18: aload 13
ifnonnull 23
19: aload 0
getfield com.sun.jndi.dns.DnsClient.resps:Ljava/util/Map;
invokeinterface java.util.Map.size:()I
ifle 21
20: aload 0
iload 6
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokevirtual com.sun.jndi.dns.DnsClient.lookupResponse:(Ljava/lang/Integer;)[B
astore 13
21: StackMap locals: byte[]
StackMap stack:
aload 13
ifnonnull 23
22: goto 82
23: StackMap locals:
StackMap stack:
new com.sun.jndi.dns.Header
dup
aload 13
aload 13
arraylength
invokespecial com.sun.jndi.dns.Header.<init>:([BI)V
astore 14
start local 14 24: iload 5
ifeq 30
aload 14
getfield com.sun.jndi.dns.Header.authoritative:Z
ifne 30
25: new javax.naming.NameNotFoundException
dup
26: ldc "DNS response not authoritative"
27: invokespecial javax.naming.NameNotFoundException.<init>:(Ljava/lang/String;)V
astore 9
28: aload 10
iload 12
iconst_1
bastore
29: goto 82
30: StackMap locals: com.sun.jndi.dns.Header
StackMap stack:
aload 14
getfield com.sun.jndi.dns.Header.truncated:Z
ifeq 60
31: aload 0
getfield com.sun.jndi.dns.DnsClient.timeout:I
iconst_1
iload 11
ishl
imul
istore 15
start local 15 32: iconst_0
istore 16
start local 16 33: goto 59
34: StackMap locals: int int
StackMap stack:
iload 12
iload 16
iadd
aload 0
getfield com.sun.jndi.dns.DnsClient.servers:[Ljava/net/InetAddress;
arraylength
irem
istore 17
start local 17 35: aload 10
iload 17
baload
ifeq 37
36: goto 58
37: StackMap locals: int
StackMap stack:
new com.sun.jndi.dns.Tcp
dup
aload 0
getfield com.sun.jndi.dns.DnsClient.servers:[Ljava/net/InetAddress;
iload 17
aaload
aload 0
getfield com.sun.jndi.dns.DnsClient.serverPorts:[I
iload 17
iaload
iload 15
invokespecial com.sun.jndi.dns.Tcp.<init>:(Ljava/net/InetAddress;II)V
38: astore 18
start local 18 39: aload 0
aload 18
aload 7
invokevirtual com.sun.jndi.dns.DnsClient.doTcpQuery:(Lcom/sun/jndi/dns/Tcp;Lcom/sun/jndi/dns/Packet;)[B
astore 19
start local 19 40: goto 44
end local 19 StackMap locals: com.sun.jndi.dns.DnsClient com.sun.jndi.dns.DnsName int int int int int com.sun.jndi.dns.Packet com.sun.jndi.dns.ResourceRecord java.lang.Exception boolean[] int int byte[] com.sun.jndi.dns.Header int int int com.sun.jndi.dns.Tcp
StackMap stack: java.lang.Throwable
41: astore 20
42: aload 18
invokevirtual com.sun.jndi.dns.Tcp.close:()V
43: aload 20
athrow
start local 19 44: StackMap locals: byte[]
StackMap stack:
aload 18
invokevirtual com.sun.jndi.dns.Tcp.close:()V
45: new com.sun.jndi.dns.Header
dup
aload 19
aload 19
arraylength
invokespecial com.sun.jndi.dns.Header.<init>:([BI)V
astore 20
start local 20 46: aload 20
getfield com.sun.jndi.dns.Header.query:Z
ifeq 50
47: new javax.naming.CommunicationException
dup
48: ldc "DNS error: expecting response"
49: invokespecial javax.naming.CommunicationException.<init>:(Ljava/lang/String;)V
athrow
50: StackMap locals: com.sun.jndi.dns.Header
StackMap stack:
aload 0
aload 20
invokevirtual com.sun.jndi.dns.DnsClient.checkResponseCode:(Lcom/sun/jndi/dns/Header;)V
51: iload 5
ifeq 52
aload 20
getfield com.sun.jndi.dns.Header.authoritative:Z
ifeq 55
52: StackMap locals:
StackMap stack:
aload 20
astore 14
53: aload 19
astore 13
54: goto 60
55: StackMap locals:
StackMap stack:
aload 10
iload 17
iconst_1
bastore
end local 20 end local 19 end local 18 56: goto 58
StackMap locals: com.sun.jndi.dns.DnsClient com.sun.jndi.dns.DnsName int int int int int com.sun.jndi.dns.Packet com.sun.jndi.dns.ResourceRecord java.lang.Exception boolean[] int int byte[] com.sun.jndi.dns.Header int int int
StackMap stack: java.lang.Exception
57: pop
end local 17 58: StackMap locals:
StackMap stack:
iinc 16 1
StackMap locals:
StackMap stack:
59: iload 16
aload 0
getfield com.sun.jndi.dns.DnsClient.servers:[Ljava/net/InetAddress;
arraylength
if_icmplt 34
end local 16 end local 15 60: StackMap locals:
StackMap stack:
new com.sun.jndi.dns.ResourceRecords
dup
aload 13
aload 13
arraylength
aload 14
iconst_0
invokespecial com.sun.jndi.dns.ResourceRecords.<init>:([BILcom/sun/jndi/dns/Header;Z)V
astore 22
61: aload 0
getfield com.sun.jndi.dns.DnsClient.reqs:Ljava/util/Map;
iload 6
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokeinterface java.util.Map.remove:(Ljava/lang/Object;)Ljava/lang/Object;
pop
62: aload 22
areturn
end local 14 end local 13 63: StackMap locals: com.sun.jndi.dns.DnsClient com.sun.jndi.dns.DnsName int int int int int com.sun.jndi.dns.Packet com.sun.jndi.dns.ResourceRecord java.lang.Exception boolean[] int int
StackMap stack: java.io.IOException
astore 13
start local 13 64: aload 9
ifnonnull 66
65: aload 13
astore 9
66: StackMap locals: java.io.IOException
StackMap stack:
aload 13
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
67: ldc "java.net.PortUnreachableException"
68: invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
69: ifeq 82
70: aload 10
iload 12
iconst_1
bastore
end local 13 71: goto 82
72: StackMap locals: com.sun.jndi.dns.DnsClient com.sun.jndi.dns.DnsName int int int int int com.sun.jndi.dns.Packet com.sun.jndi.dns.ResourceRecord java.lang.Exception boolean[] int int
StackMap stack: javax.naming.NameNotFoundException
astore 13
start local 13 73: aload 13
athrow
end local 13 74: StackMap locals:
StackMap stack: javax.naming.CommunicationException
astore 13
start local 13 75: aload 9
ifnonnull 82
76: aload 13
astore 9
end local 13 77: goto 82
78: StackMap locals:
StackMap stack: javax.naming.NamingException
astore 13
start local 13 79: aload 9
ifnonnull 81
80: aload 13
astore 9
81: StackMap locals: javax.naming.NamingException
StackMap stack:
aload 10
iload 12
iconst_1
bastore
end local 13 82: StackMap locals:
StackMap stack:
iinc 12 1
StackMap locals:
StackMap stack:
83: iload 12
aload 0
getfield com.sun.jndi.dns.DnsClient.servers:[Ljava/net/InetAddress;
arraylength
if_icmplt 12
end local 12 84: iinc 11 1
StackMap locals:
StackMap stack:
85: iload 11
aload 0
getfield com.sun.jndi.dns.DnsClient.retries:I
if_icmplt 10
end local 11 86: goto 90
StackMap locals: com.sun.jndi.dns.DnsClient com.sun.jndi.dns.DnsName int int int int int com.sun.jndi.dns.Packet com.sun.jndi.dns.ResourceRecord java.lang.Exception boolean[]
StackMap stack: java.lang.Throwable
87: astore 21
88: aload 0
getfield com.sun.jndi.dns.DnsClient.reqs:Ljava/util/Map;
iload 6
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokeinterface java.util.Map.remove:(Ljava/lang/Object;)Ljava/lang/Object;
pop
89: aload 21
athrow
90: StackMap locals:
StackMap stack:
aload 0
getfield com.sun.jndi.dns.DnsClient.reqs:Ljava/util/Map;
iload 6
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokeinterface java.util.Map.remove:(Ljava/lang/Object;)Ljava/lang/Object;
pop
91: aload 9
instanceof javax.naming.NamingException
ifeq 93
92: aload 9
checkcast javax.naming.NamingException
athrow
93: StackMap locals:
StackMap stack:
new javax.naming.CommunicationException
dup
ldc "DNS error"
invokespecial javax.naming.CommunicationException.<init>:(Ljava/lang/String;)V
astore 11
start local 11 94: aload 11
aload 9
invokevirtual javax.naming.NamingException.setRootCause:(Ljava/lang/Throwable;)V
95: aload 11
athrow
end local 11 end local 10 end local 9 end local 8 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 96 0 this Lcom/sun/jndi/dns/DnsClient;
0 96 1 fqdn Lcom/sun/jndi/dns/DnsName;
0 96 2 qclass I
0 96 3 qtype I
0 96 4 recursion Z
0 96 5 auth Z
1 96 6 xid I
2 96 7 pkt Lcom/sun/jndi/dns/Packet;
5 96 8 collision Lcom/sun/jndi/dns/ResourceRecord;
7 96 9 caughtException Ljava/lang/Exception;
8 96 10 doNotRetry [Z
9 86 11 retry I
11 84 12 i I
15 63 13 msg [B
24 63 14 hdr Lcom/sun/jndi/dns/Header;
32 60 15 retryTimeout I
33 60 16 j I
35 58 17 ij I
39 56 18 tcp Lcom/sun/jndi/dns/Tcp;
40 41 19 msg2 [B
44 56 19 msg2 [B
46 56 20 hdr2 Lcom/sun/jndi/dns/Header;
64 71 13 e Ljava/io/IOException;
73 74 13 e Ljavax/naming/NameNotFoundException;
75 77 13 e Ljavax/naming/CommunicationException;
79 82 13 e Ljavax/naming/NamingException;
94 96 11 ne Ljavax/naming/NamingException;
Exception table:
from to target type
39 41 41 any
37 54 57 Class java.lang.Exception
55 56 57 Class java.lang.Exception
14 22 63 Class java.io.IOException
23 29 63 Class java.io.IOException
30 61 63 Class java.io.IOException
14 22 72 Class javax.naming.NameNotFoundException
23 29 72 Class javax.naming.NameNotFoundException
30 61 72 Class javax.naming.NameNotFoundException
14 22 74 Class javax.naming.CommunicationException
23 29 74 Class javax.naming.CommunicationException
30 61 74 Class javax.naming.CommunicationException
14 22 78 Class javax.naming.NamingException
23 29 78 Class javax.naming.NamingException
30 61 78 Class javax.naming.NamingException
8 61 87 any
63 87 87 any
Exceptions:
throws javax.naming.NamingException
MethodParameters:
Name Flags
fqdn
qclass
qtype
recursion
auth
com.sun.jndi.dns.ResourceRecords queryZone(com.sun.jndi.dns.DnsName, int, boolean);
descriptor: (Lcom/sun/jndi/dns/DnsName;IZ)Lcom/sun/jndi/dns/ResourceRecords;
flags: (0x0000)
Code:
stack=6, locals=14, args_size=4
start local 0 start local 1 start local 2 start local 3 0: getstatic com.sun.jndi.dns.DnsClient.random:Ljava/security/SecureRandom;
ldc 65536
invokevirtual java.security.SecureRandom.nextInt:(I)I
istore 4
start local 4 1: aload 0
aload 1
iload 4
iload 2
2: sipush 252
iload 3
3: invokevirtual com.sun.jndi.dns.DnsClient.makeQueryPacket:(Lcom/sun/jndi/dns/DnsName;IIIZ)Lcom/sun/jndi/dns/Packet;
astore 5
start local 5 4: aconst_null
astore 6
start local 6 5: iconst_0
istore 7
start local 7 6: goto 45
7: StackMap locals: com.sun.jndi.dns.DnsClient com.sun.jndi.dns.DnsName int int int com.sun.jndi.dns.Packet java.lang.Exception int
StackMap stack:
new com.sun.jndi.dns.Tcp
dup
aload 0
getfield com.sun.jndi.dns.DnsClient.servers:[Ljava/net/InetAddress;
iload 7
aaload
aload 0
getfield com.sun.jndi.dns.DnsClient.serverPorts:[I
iload 7
iaload
aload 0
getfield com.sun.jndi.dns.DnsClient.timeout:I
invokespecial com.sun.jndi.dns.Tcp.<init>:(Ljava/net/InetAddress;II)V
astore 8
start local 8 8: aload 0
aload 8
aload 5
invokevirtual com.sun.jndi.dns.DnsClient.doTcpQuery:(Lcom/sun/jndi/dns/Tcp;Lcom/sun/jndi/dns/Packet;)[B
astore 9
start local 9 9: new com.sun.jndi.dns.Header
dup
aload 9
aload 9
arraylength
invokespecial com.sun.jndi.dns.Header.<init>:([BI)V
astore 10
start local 10 10: aload 0
aload 10
invokevirtual com.sun.jndi.dns.DnsClient.checkResponseCode:(Lcom/sun/jndi/dns/Header;)V
11: new com.sun.jndi.dns.ResourceRecords
dup
aload 9
aload 9
arraylength
aload 10
iconst_1
invokespecial com.sun.jndi.dns.ResourceRecords.<init>:([BILcom/sun/jndi/dns/Header;Z)V
12: astore 11
start local 11 13: aload 11
invokevirtual com.sun.jndi.dns.ResourceRecords.getFirstAnsType:()I
bipush 6
if_icmpeq 17
14: new javax.naming.CommunicationException
dup
15: ldc "DNS error: zone xfer doesn't begin with SOA"
16: invokespecial javax.naming.CommunicationException.<init>:(Ljava/lang/String;)V
athrow
17: StackMap locals: com.sun.jndi.dns.DnsClient com.sun.jndi.dns.DnsName int int int com.sun.jndi.dns.Packet java.lang.Exception int com.sun.jndi.dns.Tcp byte[] com.sun.jndi.dns.Header com.sun.jndi.dns.ResourceRecords
StackMap stack:
aload 11
getfield com.sun.jndi.dns.ResourceRecords.answer:Ljava/util/Vector;
invokevirtual java.util.Vector.size:()I
iconst_1
if_icmpeq 19
18: aload 11
invokevirtual com.sun.jndi.dns.ResourceRecords.getLastAnsType:()I
bipush 6
if_icmpeq 30
19: StackMap locals:
StackMap stack:
aload 0
aload 8
invokevirtual com.sun.jndi.dns.DnsClient.continueTcpQuery:(Lcom/sun/jndi/dns/Tcp;)[B
astore 9
20: aload 9
ifnonnull 24
21: new javax.naming.CommunicationException
dup
22: ldc "DNS error: incomplete zone transfer"
23: invokespecial javax.naming.CommunicationException.<init>:(Ljava/lang/String;)V
athrow
24: StackMap locals:
StackMap stack:
new com.sun.jndi.dns.Header
dup
aload 9
aload 9
arraylength
invokespecial com.sun.jndi.dns.Header.<init>:([BI)V
astore 10
25: aload 0
aload 10
invokevirtual com.sun.jndi.dns.DnsClient.checkResponseCode:(Lcom/sun/jndi/dns/Header;)V
26: aload 11
aload 9
aload 9
arraylength
aload 10
invokevirtual com.sun.jndi.dns.ResourceRecords.add:([BILcom/sun/jndi/dns/Header;)V
27: aload 11
invokevirtual com.sun.jndi.dns.ResourceRecords.getLastAnsType:()I
28: bipush 6
29: if_icmpne 19
30: StackMap locals:
StackMap stack:
aload 11
getfield com.sun.jndi.dns.ResourceRecords.answer:Ljava/util/Vector;
aload 11
getfield com.sun.jndi.dns.ResourceRecords.answer:Ljava/util/Vector;
invokevirtual java.util.Vector.size:()I
iconst_1
isub
invokevirtual java.util.Vector.removeElementAt:(I)V
31: aload 11
astore 13
32: aload 8
invokevirtual com.sun.jndi.dns.Tcp.close:()V
33: aload 13
areturn
end local 11 end local 10 end local 9 34: StackMap locals: com.sun.jndi.dns.DnsClient com.sun.jndi.dns.DnsName int int int com.sun.jndi.dns.Packet java.lang.Exception int com.sun.jndi.dns.Tcp
StackMap stack: java.lang.Throwable
astore 12
35: aload 8
invokevirtual com.sun.jndi.dns.Tcp.close:()V
36: aload 12
athrow
end local 8 37: StackMap locals: com.sun.jndi.dns.DnsClient com.sun.jndi.dns.DnsName int int int com.sun.jndi.dns.Packet java.lang.Exception int
StackMap stack: java.io.IOException
astore 8
start local 8 38: aload 8
astore 6
end local 8 39: goto 44
40: StackMap locals:
StackMap stack: javax.naming.NameNotFoundException
astore 8
start local 8 41: aload 8
athrow
end local 8 42: StackMap locals:
StackMap stack: javax.naming.NamingException
astore 8
start local 8 43: aload 8
astore 6
end local 8 44: StackMap locals:
StackMap stack:
iinc 7 1
StackMap locals:
StackMap stack:
45: iload 7
aload 0
getfield com.sun.jndi.dns.DnsClient.servers:[Ljava/net/InetAddress;
arraylength
if_icmplt 7
end local 7 46: aload 6
instanceof javax.naming.NamingException
ifeq 48
47: aload 6
checkcast javax.naming.NamingException
athrow
48: StackMap locals:
StackMap stack:
new javax.naming.CommunicationException
dup
49: ldc "DNS error during zone transfer"
50: invokespecial javax.naming.CommunicationException.<init>:(Ljava/lang/String;)V
astore 7
start local 7 51: aload 7
aload 6
invokevirtual javax.naming.NamingException.setRootCause:(Ljava/lang/Throwable;)V
52: aload 7
athrow
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 53 0 this Lcom/sun/jndi/dns/DnsClient;
0 53 1 zone Lcom/sun/jndi/dns/DnsName;
0 53 2 qclass I
0 53 3 recursion Z
1 53 4 xid I
4 53 5 pkt Lcom/sun/jndi/dns/Packet;
5 53 6 caughtException Ljava/lang/Exception;
6 46 7 i I
8 37 8 tcp Lcom/sun/jndi/dns/Tcp;
9 34 9 msg [B
10 34 10 hdr Lcom/sun/jndi/dns/Header;
13 34 11 rrs Lcom/sun/jndi/dns/ResourceRecords;
38 39 8 e Ljava/io/IOException;
41 42 8 e Ljavax/naming/NameNotFoundException;
43 44 8 e Ljavax/naming/NamingException;
51 53 7 ne Ljavax/naming/NamingException;
Exception table:
from to target type
8 32 34 any
7 33 37 Class java.io.IOException
34 37 37 Class java.io.IOException
7 33 40 Class javax.naming.NameNotFoundException
34 37 40 Class javax.naming.NameNotFoundException
7 33 42 Class javax.naming.NamingException
34 37 42 Class javax.naming.NamingException
Exceptions:
throws javax.naming.NamingException
MethodParameters:
Name Flags
zone
qclass
recursion
private byte[] doUdpQuery(com.sun.jndi.dns.Packet, java.net.InetAddress, int, int, int);
descriptor: (Lcom/sun/jndi/dns/Packet;Ljava/net/InetAddress;III)[B
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=22, args_size=6
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 0: bipush 50
istore 6
start local 6 1: aload 0
getfield com.sun.jndi.dns.DnsClient.udpSocketLock:Ljava/lang/Object;
dup
astore 7
monitorenter
2: aconst_null
astore 8
aconst_null
astore 9
3: aload 0
invokevirtual com.sun.jndi.dns.DnsClient.getDatagramSocket:()Ljava/net/DatagramSocket;
astore 10
start local 10 4: new java.net.DatagramPacket
dup
5: aload 1
invokevirtual com.sun.jndi.dns.Packet.getData:()[B
aload 1
invokevirtual com.sun.jndi.dns.Packet.length:()I
aload 2
iload 3
6: invokespecial java.net.DatagramPacket.<init>:([BILjava/net/InetAddress;I)V
astore 11
start local 11 7: new java.net.DatagramPacket
dup
sipush 8000
newarray 8
sipush 8000
invokespecial java.net.DatagramPacket.<init>:([BI)V
astore 12
start local 12 8: aload 10
aload 2
iload 3
invokevirtual java.net.DatagramSocket.connect:(Ljava/net/InetAddress;I)V
9: aload 0
getfield com.sun.jndi.dns.DnsClient.timeout:I
iconst_1
iload 4
ishl
imul
istore 13
start local 13 10: aload 10
aload 11
invokevirtual java.net.DatagramSocket.send:(Ljava/net/DatagramPacket;)V
11: iload 13
istore 14
start local 14 12: StackMap locals: com.sun.jndi.dns.DnsClient com.sun.jndi.dns.Packet java.net.InetAddress int int int int java.lang.Object java.lang.Throwable java.lang.Throwable java.net.DatagramSocket java.net.DatagramPacket java.net.DatagramPacket int int
StackMap stack:
aload 10
iload 14
invokevirtual java.net.DatagramSocket.setSoTimeout:(I)V
13: invokestatic java.lang.System.currentTimeMillis:()J
lstore 15
start local 15 14: aload 10
aload 12
invokevirtual java.net.DatagramSocket.receive:(Ljava/net/DatagramPacket;)V
15: invokestatic java.lang.System.currentTimeMillis:()J
lstore 17
start local 17 16: aload 12
invokevirtual java.net.DatagramPacket.getData:()[B
astore 19
start local 19 17: aload 0
aload 19
iload 5
invokevirtual com.sun.jndi.dns.DnsClient.isMatchResponse:([BI)Z
ifeq 23
18: aload 19
astore 21
19: aload 10
invokevirtual java.net.DatagramSocket.disconnect:()V
20: aload 10
ifnull 21
aload 10
invokevirtual java.net.DatagramSocket.close:()V
21: StackMap locals: com.sun.jndi.dns.DnsClient com.sun.jndi.dns.Packet java.net.InetAddress int int int int java.lang.Object java.lang.Throwable java.lang.Throwable java.net.DatagramSocket java.net.DatagramPacket java.net.DatagramPacket int int long long byte[] top byte[]
StackMap stack:
aload 7
monitorexit
22: aload 21
areturn
23: StackMap locals: com.sun.jndi.dns.DnsClient com.sun.jndi.dns.Packet java.net.InetAddress int int int int java.lang.Object java.lang.Throwable java.lang.Throwable java.net.DatagramSocket java.net.DatagramPacket java.net.DatagramPacket int int long long byte[]
StackMap stack:
iload 13
lload 17
lload 15
lsub
l2i
isub
istore 14
end local 19 end local 17 end local 15 24: iload 14
iload 6
25: if_icmpgt 12
end local 14 26: goto 30
StackMap locals: com.sun.jndi.dns.DnsClient com.sun.jndi.dns.Packet java.net.InetAddress int int int int java.lang.Object java.lang.Throwable java.lang.Throwable java.net.DatagramSocket java.net.DatagramPacket java.net.DatagramPacket int
StackMap stack: java.lang.Throwable
27: astore 20
28: aload 10
invokevirtual java.net.DatagramSocket.disconnect:()V
29: aload 20
athrow
30: StackMap locals:
StackMap stack:
aload 10
invokevirtual java.net.DatagramSocket.disconnect:()V
31: aload 10
ifnull 32
aload 10
invokevirtual java.net.DatagramSocket.close:()V
StackMap locals:
StackMap stack:
32: aload 7
monitorexit
33: aconst_null
areturn
end local 13 end local 12 end local 11 StackMap locals: com.sun.jndi.dns.DnsClient com.sun.jndi.dns.Packet java.net.InetAddress int int int int java.lang.Object java.lang.Throwable java.lang.Throwable java.net.DatagramSocket
StackMap stack: java.lang.Throwable
34: astore 8
35: aload 10
ifnull 36
aload 10
invokevirtual java.net.DatagramSocket.close:()V
end local 10 StackMap locals:
StackMap stack:
36: aload 8
athrow
StackMap locals:
StackMap stack: java.lang.Throwable
37: astore 9
aload 8
ifnonnull 38
aload 9
astore 8
goto 39
StackMap locals:
StackMap stack:
38: aload 8
aload 9
if_acmpeq 39
aload 8
aload 9
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
39: aload 8
athrow
40: StackMap locals: com.sun.jndi.dns.DnsClient com.sun.jndi.dns.Packet java.net.InetAddress int int int int java.lang.Object
StackMap stack: java.lang.Throwable
aload 7
monitorexit
41: athrow
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 42 0 this Lcom/sun/jndi/dns/DnsClient;
0 42 1 pkt Lcom/sun/jndi/dns/Packet;
0 42 2 server Ljava/net/InetAddress;
0 42 3 port I
0 42 4 retry I
0 42 5 xid I
1 42 6 minTimeout I
4 36 10 udpSocket Ljava/net/DatagramSocket;
7 34 11 opkt Ljava/net/DatagramPacket;
8 34 12 ipkt Ljava/net/DatagramPacket;
10 34 13 pktTimeout I
12 26 14 timeoutLeft I
14 24 15 start J
16 24 17 end J
17 24 19 data [B
Exception table:
from to target type
10 19 27 any
23 27 27 any
4 20 34 any
23 31 34 any
3 21 37 any
23 32 37 any
34 37 37 any
2 22 40 any
23 33 40 any
34 41 40 any
Exceptions:
throws java.io.IOException, javax.naming.NamingException
MethodParameters:
Name Flags
pkt
server
port
retry
xid
private byte[] doTcpQuery(com.sun.jndi.dns.Tcp, com.sun.jndi.dns.Packet);
descriptor: (Lcom/sun/jndi/dns/Tcp;Lcom/sun/jndi/dns/Packet;)[B
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=5, args_size=3
start local 0 start local 1 start local 2 0: aload 2
invokevirtual com.sun.jndi.dns.Packet.length:()I
istore 3
start local 3 1: aload 1
getfield com.sun.jndi.dns.Tcp.out:Ljava/io/OutputStream;
iload 3
bipush 8
ishr
invokevirtual java.io.OutputStream.write:(I)V
2: aload 1
getfield com.sun.jndi.dns.Tcp.out:Ljava/io/OutputStream;
iload 3
invokevirtual java.io.OutputStream.write:(I)V
3: aload 1
getfield com.sun.jndi.dns.Tcp.out:Ljava/io/OutputStream;
aload 2
invokevirtual com.sun.jndi.dns.Packet.getData:()[B
iconst_0
iload 3
invokevirtual java.io.OutputStream.write:([BII)V
4: aload 1
getfield com.sun.jndi.dns.Tcp.out:Ljava/io/OutputStream;
invokevirtual java.io.OutputStream.flush:()V
5: aload 0
aload 1
invokevirtual com.sun.jndi.dns.DnsClient.continueTcpQuery:(Lcom/sun/jndi/dns/Tcp;)[B
astore 4
start local 4 6: aload 4
ifnonnull 8
7: new java.io.IOException
dup
ldc "DNS error: no response"
invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
8: StackMap locals: int byte[]
StackMap stack:
aload 4
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lcom/sun/jndi/dns/DnsClient;
0 9 1 tcp Lcom/sun/jndi/dns/Tcp;
0 9 2 pkt Lcom/sun/jndi/dns/Packet;
1 9 3 len I
6 9 4 msg [B
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
tcp
pkt
private byte[] continueTcpQuery(com.sun.jndi.dns.Tcp);
descriptor: (Lcom/sun/jndi/dns/Tcp;)[B
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=8, args_size=2
start local 0 start local 1 0: aload 1
invokevirtual com.sun.jndi.dns.Tcp.read:()I
istore 2
start local 2 1: iload 2
iconst_m1
if_icmpne 3
2: aconst_null
areturn
3: StackMap locals: int
StackMap stack:
aload 1
invokevirtual com.sun.jndi.dns.Tcp.read:()I
istore 3
start local 3 4: iload 3
iconst_m1
if_icmpne 6
5: new java.io.IOException
dup
ldc "Corrupted DNS response: bad length"
invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
6: StackMap locals: int
StackMap stack:
iload 2
bipush 8
ishl
iload 3
ior
istore 4
start local 4 7: iload 4
newarray 8
astore 5
start local 5 8: iconst_0
istore 6
start local 6 9: goto 17
10: StackMap locals: int byte[] int
StackMap stack:
aload 1
aload 5
iload 6
iload 4
invokevirtual com.sun.jndi.dns.Tcp.read:([BII)I
istore 7
start local 7 11: iload 7
iconst_m1
if_icmpne 15
12: new java.io.IOException
dup
13: ldc "Corrupted DNS response: too little data"
14: invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
15: StackMap locals: int
StackMap stack:
iload 4
iload 7
isub
istore 4
16: iload 6
iload 7
iadd
istore 6
end local 7 17: StackMap locals:
StackMap stack:
iload 4
ifgt 10
18: aload 5
areturn
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 19 0 this Lcom/sun/jndi/dns/DnsClient;
0 19 1 tcp Lcom/sun/jndi/dns/Tcp;
1 19 2 lenHi I
4 19 3 lenLo I
7 19 4 len I
8 19 5 msg [B
9 19 6 pos I
11 17 7 n I
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
tcp
private com.sun.jndi.dns.Packet makeQueryPacket(com.sun.jndi.dns.DnsName, int, int, int, boolean);
descriptor: (Lcom/sun/jndi/dns/DnsName;IIIZ)Lcom/sun/jndi/dns/Packet;
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=10, args_size=6
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 0: aload 1
invokevirtual com.sun.jndi.dns.DnsName.getOctets:()S
istore 6
start local 6 1: bipush 12
iload 6
iadd
iconst_4
iadd
istore 7
start local 7 2: new com.sun.jndi.dns.Packet
dup
iload 7
invokespecial com.sun.jndi.dns.Packet.<init>:(I)V
astore 8
start local 8 3: iload 5
ifeq 4
sipush 256
goto 5
StackMap locals: int int com.sun.jndi.dns.Packet
StackMap stack:
4: iconst_0
StackMap locals:
StackMap stack: int
5: istore 9
start local 9 6: aload 8
iload 2
iconst_0
invokevirtual com.sun.jndi.dns.Packet.putShort:(II)V
7: aload 8
iload 9
iconst_2
invokevirtual com.sun.jndi.dns.Packet.putShort:(II)V
8: aload 8
iconst_1
iconst_4
invokevirtual com.sun.jndi.dns.Packet.putShort:(II)V
9: aload 8
iconst_0
bipush 6
invokevirtual com.sun.jndi.dns.Packet.putShort:(II)V
10: aload 8
iconst_0
bipush 8
invokevirtual com.sun.jndi.dns.Packet.putInt:(II)V
11: aload 0
aload 1
aload 8
bipush 12
invokevirtual com.sun.jndi.dns.DnsClient.makeQueryName:(Lcom/sun/jndi/dns/DnsName;Lcom/sun/jndi/dns/Packet;I)V
12: aload 8
iload 4
bipush 12
iload 6
iadd
invokevirtual com.sun.jndi.dns.Packet.putShort:(II)V
13: aload 8
iload 3
bipush 12
iload 6
iadd
iconst_2
iadd
invokevirtual com.sun.jndi.dns.Packet.putShort:(II)V
14: aload 8
areturn
end local 9 end local 8 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 15 0 this Lcom/sun/jndi/dns/DnsClient;
0 15 1 fqdn Lcom/sun/jndi/dns/DnsName;
0 15 2 xid I
0 15 3 qclass I
0 15 4 qtype I
0 15 5 recursion Z
1 15 6 qnameLen I
2 15 7 pktLen I
3 15 8 pkt Lcom/sun/jndi/dns/Packet;
6 15 9 flags S
MethodParameters:
Name Flags
fqdn
xid
qclass
qtype
recursion
private void makeQueryName(com.sun.jndi.dns.DnsName, com.sun.jndi.dns.Packet, int);
descriptor: (Lcom/sun/jndi/dns/DnsName;Lcom/sun/jndi/dns/Packet;I)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=8, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 1
invokevirtual com.sun.jndi.dns.DnsName.size:()I
iconst_1
isub
istore 4
start local 4 1: goto 11
2: StackMap locals: int
StackMap stack:
aload 1
iload 4
invokevirtual com.sun.jndi.dns.DnsName.get:(I)Ljava/lang/String;
astore 5
start local 5 3: aload 5
invokevirtual java.lang.String.length:()I
istore 6
start local 6 4: aload 2
iload 6
iload 3
iinc 3 1
invokevirtual com.sun.jndi.dns.Packet.putByte:(II)V
5: iconst_0
istore 7
start local 7 6: goto 9
7: StackMap locals: java.lang.String int int
StackMap stack:
aload 2
aload 5
iload 7
invokevirtual java.lang.String.charAt:(I)C
iload 3
iinc 3 1
invokevirtual com.sun.jndi.dns.Packet.putByte:(II)V
8: iinc 7 1
StackMap locals:
StackMap stack:
9: iload 7
iload 6
if_icmplt 7
end local 7 end local 6 end local 5 10: iinc 4 -1
StackMap locals:
StackMap stack:
11: iload 4
ifge 2
end local 4 12: aload 1
invokevirtual com.sun.jndi.dns.DnsName.hasRootLabel:()Z
ifne 14
13: aload 2
iconst_0
iload 3
invokevirtual com.sun.jndi.dns.Packet.putByte:(II)V
14: StackMap locals:
StackMap stack:
return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 15 0 this Lcom/sun/jndi/dns/DnsClient;
0 15 1 fqdn Lcom/sun/jndi/dns/DnsName;
0 15 2 pkt Lcom/sun/jndi/dns/Packet;
0 15 3 off I
1 12 4 i I
3 10 5 label Ljava/lang/String;
4 10 6 len I
6 10 7 j I
MethodParameters:
Name Flags
fqdn
pkt
off
private byte[] lookupResponse(java.lang.Integer);
descriptor: (Ljava/lang/Integer;)[B
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=4, args_size=2
start local 0 start local 1 0: aload 0
getfield com.sun.jndi.dns.DnsClient.resps:Ljava/util/Map;
aload 1
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast byte[]
dup
astore 2
start local 2 1: ifnull 10
2: aload 0
new com.sun.jndi.dns.Header
dup
aload 2
aload 2
arraylength
invokespecial com.sun.jndi.dns.Header.<init>:([BI)V
invokevirtual com.sun.jndi.dns.DnsClient.checkResponseCode:(Lcom/sun/jndi/dns/Header;)V
3: aload 0
getfield com.sun.jndi.dns.DnsClient.queuesLock:Ljava/lang/Object;
dup
astore 3
monitorenter
4: aload 0
getfield com.sun.jndi.dns.DnsClient.resps:Ljava/util/Map;
aload 1
invokeinterface java.util.Map.remove:(Ljava/lang/Object;)Ljava/lang/Object;
pop
5: aload 0
getfield com.sun.jndi.dns.DnsClient.reqs:Ljava/util/Map;
aload 1
invokeinterface java.util.Map.remove:(Ljava/lang/Object;)Ljava/lang/Object;
pop
6: aload 3
monitorexit
7: goto 10
StackMap locals: com.sun.jndi.dns.DnsClient java.lang.Integer byte[] java.lang.Object
StackMap stack: java.lang.Throwable
8: aload 3
monitorexit
9: athrow
10: StackMap locals:
StackMap stack:
aload 2
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lcom/sun/jndi/dns/DnsClient;
0 11 1 xid Ljava/lang/Integer;
1 11 2 pkt [B
Exception table:
from to target type
4 7 8 any
8 9 8 any
Exceptions:
throws javax.naming.NamingException
MethodParameters:
Name Flags
xid
private boolean isMatchResponse(byte[], int);
descriptor: ([BI)Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=7, locals=10, args_size=3
start local 0 start local 1 start local 2 0: new com.sun.jndi.dns.Header
dup
aload 1
aload 1
arraylength
invokespecial com.sun.jndi.dns.Header.<init>:([BI)V
astore 3
start local 3 1: aload 3
getfield com.sun.jndi.dns.Header.query:Z
ifeq 3
2: new javax.naming.CommunicationException
dup
ldc "DNS error: expecting response"
invokespecial javax.naming.CommunicationException.<init>:(Ljava/lang/String;)V
athrow
3: StackMap locals: com.sun.jndi.dns.Header
StackMap stack:
aload 0
getfield com.sun.jndi.dns.DnsClient.reqs:Ljava/util/Map;
iload 2
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokeinterface java.util.Map.containsKey:(Ljava/lang/Object;)Z
ifne 5
4: iconst_0
ireturn
5: StackMap locals:
StackMap stack:
aload 3
getfield com.sun.jndi.dns.Header.xid:I
iload 2
if_icmpne 29
6: aload 0
aload 3
invokevirtual com.sun.jndi.dns.DnsClient.checkResponseCode:(Lcom/sun/jndi/dns/Header;)V
7: aload 3
getfield com.sun.jndi.dns.Header.query:Z
ifne 28
aload 3
getfield com.sun.jndi.dns.Header.numQuestions:I
iconst_1
if_icmpne 28
8: new com.sun.jndi.dns.ResourceRecord
dup
aload 1
aload 1
arraylength
9: bipush 12
iconst_1
iconst_0
10: invokespecial com.sun.jndi.dns.ResourceRecord.<init>:([BIIZZ)V
astore 4
start local 4 11: aload 0
getfield com.sun.jndi.dns.DnsClient.reqs:Ljava/util/Map;
iload 2
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast com.sun.jndi.dns.ResourceRecord
astore 5
start local 5 12: aload 5
invokevirtual com.sun.jndi.dns.ResourceRecord.getType:()I
istore 6
start local 6 13: aload 5
invokevirtual com.sun.jndi.dns.ResourceRecord.getRrclass:()I
istore 7
start local 7 14: aload 5
invokevirtual com.sun.jndi.dns.ResourceRecord.getName:()Lcom/sun/jndi/dns/DnsName;
astore 8
start local 8 15: iload 6
sipush 255
if_icmpeq 17
16: iload 6
aload 4
invokevirtual com.sun.jndi.dns.ResourceRecord.getType:()I
if_icmpne 28
17: StackMap locals: com.sun.jndi.dns.DnsClient byte[] int com.sun.jndi.dns.Header com.sun.jndi.dns.ResourceRecord com.sun.jndi.dns.ResourceRecord int int com.sun.jndi.dns.DnsName
StackMap stack:
iload 7
sipush 255
if_icmpeq 19
18: iload 7
aload 4
invokevirtual com.sun.jndi.dns.ResourceRecord.getRrclass:()I
if_icmpne 28
19: StackMap locals:
StackMap stack:
aload 8
aload 4
invokevirtual com.sun.jndi.dns.ResourceRecord.getName:()Lcom/sun/jndi/dns/DnsName;
invokevirtual com.sun.jndi.dns.DnsName.equals:(Ljava/lang/Object;)Z
ifeq 28
20: aload 0
getfield com.sun.jndi.dns.DnsClient.queuesLock:Ljava/lang/Object;
dup
astore 9
monitorenter
21: aload 0
getfield com.sun.jndi.dns.DnsClient.resps:Ljava/util/Map;
iload 2
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokeinterface java.util.Map.remove:(Ljava/lang/Object;)Ljava/lang/Object;
pop
22: aload 0
getfield com.sun.jndi.dns.DnsClient.reqs:Ljava/util/Map;
iload 2
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokeinterface java.util.Map.remove:(Ljava/lang/Object;)Ljava/lang/Object;
pop
23: aload 9
monitorexit
24: goto 27
StackMap locals: com.sun.jndi.dns.DnsClient byte[] int com.sun.jndi.dns.Header com.sun.jndi.dns.ResourceRecord com.sun.jndi.dns.ResourceRecord int int com.sun.jndi.dns.DnsName java.lang.Object
StackMap stack: java.lang.Throwable
25: aload 9
monitorexit
26: athrow
27: StackMap locals:
StackMap stack:
iconst_1
ireturn
end local 8 end local 7 end local 6 end local 5 end local 4 28: StackMap locals: com.sun.jndi.dns.DnsClient byte[] int com.sun.jndi.dns.Header
StackMap stack:
iconst_0
ireturn
29: StackMap locals:
StackMap stack:
aload 0
getfield com.sun.jndi.dns.DnsClient.queuesLock:Ljava/lang/Object;
dup
astore 4
monitorenter
30: aload 0
getfield com.sun.jndi.dns.DnsClient.reqs:Ljava/util/Map;
aload 3
getfield com.sun.jndi.dns.Header.xid:I
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokeinterface java.util.Map.containsKey:(Ljava/lang/Object;)Z
ifeq 32
31: aload 0
getfield com.sun.jndi.dns.DnsClient.resps:Ljava/util/Map;
aload 3
getfield com.sun.jndi.dns.Header.xid:I
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aload 1
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
32: StackMap locals: java.lang.Object
StackMap stack:
aload 4
monitorexit
33: goto 36
StackMap locals:
StackMap stack: java.lang.Throwable
34: aload 4
monitorexit
35: athrow
36: StackMap locals:
StackMap stack:
iconst_0
ireturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 37 0 this Lcom/sun/jndi/dns/DnsClient;
0 37 1 pkt [B
0 37 2 xid I
1 37 3 hdr Lcom/sun/jndi/dns/Header;
11 28 4 rr Lcom/sun/jndi/dns/ResourceRecord;
12 28 5 query Lcom/sun/jndi/dns/ResourceRecord;
13 28 6 qtype I
14 28 7 qclass I
15 28 8 qname Lcom/sun/jndi/dns/DnsName;
Exception table:
from to target type
21 24 25 any
25 26 25 any
30 33 34 any
34 35 34 any
Exceptions:
throws javax.naming.NamingException
MethodParameters:
Name Flags
pkt
xid
private void (com.sun.jndi.dns.Header);
descriptor: (Lcom/sun/jndi/dns/Header;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=4, args_size=2
start local 0 start local 1 0: aload 1
getfield com.sun.jndi.dns.Header.rcode:I
istore 2
start local 2 1: iload 2
ifne 3
2: return
3: StackMap locals: int
StackMap stack:
iload 2
getstatic com.sun.jndi.dns.DnsClient.rcodeDescription:[Ljava/lang/String;
arraylength
if_icmpge 5
4: getstatic com.sun.jndi.dns.DnsClient.rcodeDescription:[Ljava/lang/String;
iload 2
aaload
goto 6
5: StackMap locals:
StackMap stack:
ldc "DNS error"
6: StackMap locals:
StackMap stack: java.lang.String
astore 3
start local 3 7: new java.lang.StringBuilder
dup
aload 3
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc " [response code "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
iload 2
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc "]"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
astore 3
8: iload 2
tableswitch { // 1 - 5
1: 12
2: 9
3: 10
4: 11
5: 11
default: 12
}
9: StackMap locals: java.lang.String
StackMap stack:
new javax.naming.ServiceUnavailableException
dup
aload 3
invokespecial javax.naming.ServiceUnavailableException.<init>:(Ljava/lang/String;)V
athrow
10: StackMap locals:
StackMap stack:
new javax.naming.NameNotFoundException
dup
aload 3
invokespecial javax.naming.NameNotFoundException.<init>:(Ljava/lang/String;)V
athrow
11: StackMap locals:
StackMap stack:
new javax.naming.OperationNotSupportedException
dup
aload 3
invokespecial javax.naming.OperationNotSupportedException.<init>:(Ljava/lang/String;)V
athrow
12: StackMap locals:
StackMap stack:
new javax.naming.NamingException
dup
aload 3
invokespecial javax.naming.NamingException.<init>:(Ljava/lang/String;)V
athrow
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 this Lcom/sun/jndi/dns/DnsClient;
0 13 1 hdr Lcom/sun/jndi/dns/Header;
1 13 2 rcode I
7 13 3 msg Ljava/lang/String;
Exceptions:
throws javax.naming.NamingException
MethodParameters:
Name Flags
hdr
private static void dprint(java.lang.String);
descriptor: (Ljava/lang/String;)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=0, locals=1, args_size=1
start local 0 0: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 mess Ljava/lang/String;
MethodParameters:
Name Flags
mess
}
SourceFile: "DnsClient.java"