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=22, 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;
dup
astore 9
monitorenter
3: 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
4: 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
5: invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
checkcast com.sun.jndi.dns.ResourceRecord
dup
astore 8
start local 8 6: ifnull 8
7: aload 0
getfield com.sun.jndi.dns.DnsClient.reqs:Ljava/util/Map;
iload 6
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aload 8
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
8: 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.util.Map
StackMap stack:
aload 9
monitorexit
9: goto 12
end local 8 StackMap locals: com.sun.jndi.dns.DnsClient com.sun.jndi.dns.DnsName int int int int int com.sun.jndi.dns.Packet top java.util.Map
StackMap stack: java.lang.Throwable
10: aload 9
monitorexit
11: athrow
start local 8 12: 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
StackMap stack:
aload 8
ifnonnull 0
13: aconst_null
astore 9
start local 9 14: aload 0
getfield com.sun.jndi.dns.DnsClient.servers:[Ljava/net/InetAddress;
arraylength
newarray 4
astore 10
start local 10 15: iconst_0
istore 11
start local 11 16: goto 91
17: StackMap locals: java.lang.Exception boolean[] int
StackMap stack:
iconst_0
istore 12
start local 12 18: goto 89
19: StackMap locals: int
StackMap stack:
aload 10
iload 12
baload
ifeq 21
20: goto 88
21: StackMap locals:
StackMap stack:
aconst_null
astore 13
start local 13 22: 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
23: iload 11
iload 6
24: invokevirtual com.sun.jndi.dns.DnsClient.doUdpQuery:(Lcom/sun/jndi/dns/Packet;Ljava/net/InetAddress;III)[B
astore 13
25: aload 13
ifnonnull 30
26: aload 0
getfield com.sun.jndi.dns.DnsClient.resps:Ljava/util/Map;
invokeinterface java.util.Map.size:()I
ifle 28
27: 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
28: StackMap locals: byte[]
StackMap stack:
aload 13
ifnonnull 30
29: goto 88
30: 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 31: iload 5
ifeq 37
aload 14
getfield com.sun.jndi.dns.Header.authoritative:Z
ifne 37
32: new javax.naming.NameNotFoundException
dup
33: ldc "DNS response not authoritative"
34: invokespecial javax.naming.NameNotFoundException.<init>:(Ljava/lang/String;)V
astore 9
35: aload 10
iload 12
iconst_1
bastore
36: goto 88
37: StackMap locals: com.sun.jndi.dns.Header
StackMap stack:
aload 14
getfield com.sun.jndi.dns.Header.truncated:Z
ifeq 66
38: iconst_0
istore 15
start local 15 39: goto 65
40: StackMap locals: int
StackMap stack:
iload 12
iload 15
iadd
aload 0
getfield com.sun.jndi.dns.DnsClient.servers:[Ljava/net/InetAddress;
arraylength
irem
istore 16
start local 16 41: aload 10
iload 16
baload
ifeq 43
42: goto 64
43: 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 16
aaload
aload 0
getfield com.sun.jndi.dns.DnsClient.serverPorts:[I
iload 16
iaload
invokespecial com.sun.jndi.dns.Tcp.<init>:(Ljava/net/InetAddress;I)V
44: astore 17
start local 17 45: aload 0
aload 17
aload 7
invokevirtual com.sun.jndi.dns.DnsClient.doTcpQuery:(Lcom/sun/jndi/dns/Tcp;Lcom/sun/jndi/dns/Packet;)[B
astore 18
start local 18 46: goto 50
end local 18 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 com.sun.jndi.dns.Tcp
StackMap stack: java.lang.Throwable
47: astore 19
48: aload 17
invokevirtual com.sun.jndi.dns.Tcp.close:()V
49: aload 19
athrow
start local 18 50: StackMap locals: byte[]
StackMap stack:
aload 17
invokevirtual com.sun.jndi.dns.Tcp.close:()V
51: new com.sun.jndi.dns.Header
dup
aload 18
aload 18
arraylength
invokespecial com.sun.jndi.dns.Header.<init>:([BI)V
astore 19
start local 19 52: aload 19
getfield com.sun.jndi.dns.Header.query:Z
ifeq 56
53: new javax.naming.CommunicationException
dup
54: ldc "DNS error: expecting response"
55: invokespecial javax.naming.CommunicationException.<init>:(Ljava/lang/String;)V
athrow
56: StackMap locals: com.sun.jndi.dns.Header
StackMap stack:
aload 0
aload 19
invokevirtual com.sun.jndi.dns.DnsClient.checkResponseCode:(Lcom/sun/jndi/dns/Header;)V
57: iload 5
ifeq 58
aload 19
getfield com.sun.jndi.dns.Header.authoritative:Z
ifeq 61
58: StackMap locals:
StackMap stack:
aload 19
astore 14
59: aload 18
astore 13
60: goto 66
61: StackMap locals:
StackMap stack:
aload 10
iload 16
iconst_1
bastore
end local 19 end local 18 end local 17 62: goto 64
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
StackMap stack: java.lang.Exception
63: pop
end local 16 64: StackMap locals:
StackMap stack:
iinc 15 1
StackMap locals:
StackMap stack:
65: iload 15
aload 0
getfield com.sun.jndi.dns.DnsClient.servers:[Ljava/net/InetAddress;
arraylength
if_icmplt 40
end local 15 66: 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 21
67: 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
68: aload 21
areturn
end local 14 end local 13 69: 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 70: aload 9
ifnonnull 72
71: aload 13
astore 9
72: 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;
73: ldc "java.net.PortUnreachableException"
74: invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
75: ifeq 88
76: aload 10
iload 12
iconst_1
bastore
end local 13 77: goto 88
78: 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 79: aload 13
athrow
end local 13 80: StackMap locals:
StackMap stack: javax.naming.CommunicationException
astore 13
start local 13 81: aload 9
ifnonnull 88
82: aload 13
astore 9
end local 13 83: goto 88
84: StackMap locals:
StackMap stack: javax.naming.NamingException
astore 13
start local 13 85: aload 9
ifnonnull 87
86: aload 13
astore 9
87: StackMap locals: javax.naming.NamingException
StackMap stack:
aload 10
iload 12
iconst_1
bastore
end local 13 88: StackMap locals:
StackMap stack:
iinc 12 1
StackMap locals:
StackMap stack:
89: iload 12
aload 0
getfield com.sun.jndi.dns.DnsClient.servers:[Ljava/net/InetAddress;
arraylength
if_icmplt 19
end local 12 90: iinc 11 1
StackMap locals:
StackMap stack:
91: iload 11
aload 0
getfield com.sun.jndi.dns.DnsClient.retries:I
if_icmplt 17
end local 11 92: goto 96
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
93: astore 20
94: 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
95: aload 20
athrow
96: 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
97: aload 9
instanceof javax.naming.NamingException
ifeq 99
98: aload 9
checkcast javax.naming.NamingException
athrow
99: 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 100: aload 11
aload 9
invokevirtual javax.naming.NamingException.setRootCause:(Ljava/lang/Throwable;)V
101: 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 102 0 this Lcom/sun/jndi/dns/DnsClient;
0 102 1 fqdn Lcom/sun/jndi/dns/DnsName;
0 102 2 qclass I
0 102 3 qtype I
0 102 4 recursion Z
0 102 5 auth Z
1 102 6 xid I
2 102 7 pkt Lcom/sun/jndi/dns/Packet;
6 10 8 collision Lcom/sun/jndi/dns/ResourceRecord;
12 102 8 collision Lcom/sun/jndi/dns/ResourceRecord;
14 102 9 caughtException Ljava/lang/Exception;
15 102 10 doNotRetry [Z
16 92 11 retry I
18 90 12 i I
22 69 13 msg [B
31 69 14 hdr Lcom/sun/jndi/dns/Header;
39 66 15 j I
41 64 16 ij I
45 62 17 tcp Lcom/sun/jndi/dns/Tcp;
46 47 18 msg2 [B
50 62 18 msg2 [B
52 62 19 hdr2 Lcom/sun/jndi/dns/Header;
70 77 13 e Ljava/io/IOException;
79 80 13 e Ljavax/naming/NameNotFoundException;
81 83 13 e Ljavax/naming/CommunicationException;
85 88 13 e Ljavax/naming/NamingException;
100 102 11 ne Ljavax/naming/NamingException;
Exception table:
from to target type
3 9 10 any
10 11 10 any
45 47 47 any
43 60 63 Class java.lang.Exception
61 62 63 Class java.lang.Exception
21 29 69 Class java.io.IOException
30 36 69 Class java.io.IOException
37 67 69 Class java.io.IOException
21 29 78 Class javax.naming.NameNotFoundException
30 36 78 Class javax.naming.NameNotFoundException
37 67 78 Class javax.naming.NameNotFoundException
21 29 80 Class javax.naming.CommunicationException
30 36 80 Class javax.naming.CommunicationException
37 67 80 Class javax.naming.CommunicationException
21 29 84 Class javax.naming.NamingException
30 36 84 Class javax.naming.NamingException
37 67 84 Class javax.naming.NamingException
15 67 93 any
69 93 93 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
invokespecial com.sun.jndi.dns.Tcp.<init>:(Ljava/net/InetAddress;I)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
getfield com.sun.jndi.dns.Tcp.in:Ljava/io/InputStream;
invokevirtual java.io.InputStream.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
getfield com.sun.jndi.dns.Tcp.in:Ljava/io/InputStream;
invokevirtual java.io.InputStream.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
getfield com.sun.jndi.dns.Tcp.in:Ljava/io/InputStream;
aload 5
iload 6
iload 4
invokevirtual java.io.InputStream.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"