class com.sun.jndi.dns.Resolver
  minor version: 0
  major version: 59
  flags: flags: (0x0020) ACC_SUPER
  this_class: com.sun.jndi.dns.Resolver
  super_class: java.lang.Object
{
  private com.sun.jndi.dns.DnsClient dnsClient;
    descriptor: Lcom/sun/jndi/dns/DnsClient;
    flags: (0x0002) ACC_PRIVATE

  private int timeout;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  private int retries;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  void <init>(java.lang.String[], int, int);
    descriptor: ([Ljava/lang/String;II)V
    flags: (0x0000) 
    Code:
      stack=6, locals=4, args_size=4
        start local 0 // com.sun.jndi.dns.Resolver this
        start local 1 // java.lang.String[] servers
        start local 2 // int timeout
        start local 3 // int retries
         0: .line 57
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 59
            aload 0 /* this */
            iload 2 /* timeout */
            putfield com.sun.jndi.dns.Resolver.timeout:I
         2: .line 60
            aload 0 /* this */
            iload 3 /* retries */
            putfield com.sun.jndi.dns.Resolver.retries:I
         3: .line 61
            aload 0 /* this */
            new com.sun.jndi.dns.DnsClient
            dup
            aload 1 /* servers */
            iload 2 /* timeout */
            iload 3 /* retries */
            invokespecial com.sun.jndi.dns.DnsClient.<init>:([Ljava/lang/String;II)V
            putfield com.sun.jndi.dns.Resolver.dnsClient:Lcom/sun/jndi/dns/DnsClient;
         4: .line 62
            return
        end local 3 // int retries
        end local 2 // int timeout
        end local 1 // java.lang.String[] servers
        end local 0 // com.sun.jndi.dns.Resolver this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    5     0     this  Lcom/sun/jndi/dns/Resolver;
            0    5     1  servers  [Ljava/lang/String;
            0    5     2  timeout  I
            0    5     3  retries  I
    Exceptions:
      throws javax.naming.NamingException
    MethodParameters:
         Name  Flags
      servers  
      timeout  
      retries  

  public void close();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.sun.jndi.dns.Resolver this
         0: .line 65
            aload 0 /* this */
            getfield com.sun.jndi.dns.Resolver.dnsClient:Lcom/sun/jndi/dns/DnsClient;
            invokevirtual com.sun.jndi.dns.DnsClient.close:()V
         1: .line 66
            aload 0 /* this */
            aconst_null
            putfield com.sun.jndi.dns.Resolver.dnsClient:Lcom/sun/jndi/dns/DnsClient;
         2: .line 67
            return
        end local 0 // com.sun.jndi.dns.Resolver this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lcom/sun/jndi/dns/Resolver;

  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=6, locals=6, args_size=6
        start local 0 // com.sun.jndi.dns.Resolver this
        start local 1 // com.sun.jndi.dns.DnsName fqdn
        start local 2 // int rrclass
        start local 3 // int rrtype
        start local 4 // boolean recursion
        start local 5 // boolean auth
         0: .line 81
            aload 0 /* this */
            getfield com.sun.jndi.dns.Resolver.dnsClient:Lcom/sun/jndi/dns/DnsClient;
            aload 1 /* fqdn */
            iload 2 /* rrclass */
            iload 3 /* rrtype */
            iload 4 /* recursion */
            iload 5 /* auth */
            invokevirtual com.sun.jndi.dns.DnsClient.query:(Lcom/sun/jndi/dns/DnsName;IIZZ)Lcom/sun/jndi/dns/ResourceRecords;
            areturn
        end local 5 // boolean auth
        end local 4 // boolean recursion
        end local 3 // int rrtype
        end local 2 // int rrclass
        end local 1 // com.sun.jndi.dns.DnsName fqdn
        end local 0 // com.sun.jndi.dns.Resolver this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    1     0       this  Lcom/sun/jndi/dns/Resolver;
            0    1     1       fqdn  Lcom/sun/jndi/dns/DnsName;
            0    1     2    rrclass  I
            0    1     3     rrtype  I
            0    1     4  recursion  Z
            0    1     5       auth  Z
    Exceptions:
      throws javax.naming.NamingException
    MethodParameters:
           Name  Flags
      fqdn       
      rrclass    
      rrtype     
      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=5, locals=7, args_size=4
        start local 0 // com.sun.jndi.dns.Resolver this
        start local 1 // com.sun.jndi.dns.DnsName zone
        start local 2 // int rrclass
        start local 3 // boolean recursion
         0: .line 93
            new com.sun.jndi.dns.DnsClient
            dup
            aload 0 /* this */
            aload 1 /* zone */
            iload 3 /* recursion */
            invokevirtual com.sun.jndi.dns.Resolver.findNameServers:(Lcom/sun/jndi/dns/DnsName;Z)[Ljava/lang/String;
            aload 0 /* this */
            getfield com.sun.jndi.dns.Resolver.timeout:I
            aload 0 /* this */
            getfield com.sun.jndi.dns.Resolver.retries:I
            invokespecial com.sun.jndi.dns.DnsClient.<init>:([Ljava/lang/String;II)V
         1: .line 92
            astore 4 /* cl */
        start local 4 // com.sun.jndi.dns.DnsClient cl
         2: .line 95
            aload 4 /* cl */
            aload 1 /* zone */
            iload 2 /* rrclass */
            iload 3 /* recursion */
            invokevirtual com.sun.jndi.dns.DnsClient.queryZone:(Lcom/sun/jndi/dns/DnsName;IZ)Lcom/sun/jndi/dns/ResourceRecords;
            astore 6
         3: .line 97
            aload 4 /* cl */
            invokevirtual com.sun.jndi.dns.DnsClient.close:()V
         4: .line 95
            aload 6
            areturn
         5: .line 96
      StackMap locals: com.sun.jndi.dns.Resolver com.sun.jndi.dns.DnsName int int com.sun.jndi.dns.DnsClient
      StackMap stack: java.lang.Throwable
            astore 5
         6: .line 97
            aload 4 /* cl */
            invokevirtual com.sun.jndi.dns.DnsClient.close:()V
         7: .line 98
            aload 5
            athrow
        end local 4 // com.sun.jndi.dns.DnsClient cl
        end local 3 // boolean recursion
        end local 2 // int rrclass
        end local 1 // com.sun.jndi.dns.DnsName zone
        end local 0 // com.sun.jndi.dns.Resolver this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    8     0       this  Lcom/sun/jndi/dns/Resolver;
            0    8     1       zone  Lcom/sun/jndi/dns/DnsName;
            0    8     2    rrclass  I
            0    8     3  recursion  Z
            2    8     4         cl  Lcom/sun/jndi/dns/DnsClient;
      Exception table:
        from    to  target  type
           2     3       5  any
    Exceptions:
      throws javax.naming.NamingException
    MethodParameters:
           Name  Flags
      zone       
      rrclass    
      recursion  

  com.sun.jndi.dns.DnsName findZoneName(com.sun.jndi.dns.DnsName, int, boolean);
    descriptor: (Lcom/sun/jndi/dns/DnsName;IZ)Lcom/sun/jndi/dns/DnsName;
    flags: (0x0000) 
    Code:
      stack=6, locals=8, args_size=4
        start local 0 // com.sun.jndi.dns.Resolver this
        start local 1 // com.sun.jndi.dns.DnsName fqdn
        start local 2 // int rrclass
        start local 3 // boolean recursion
         0: .line 111
            aload 1 /* fqdn */
            invokevirtual com.sun.jndi.dns.DnsName.clone:()Ljava/lang/Object;
            checkcast com.sun.jndi.dns.DnsName
            astore 1 /* fqdn */
         1: .line 112
            goto 23
         2: .line 113
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 4 /* rrs */
        start local 4 // com.sun.jndi.dns.ResourceRecords rrs
         3: .line 115
            aload 0 /* this */
            aload 1 /* fqdn */
            iload 2 /* rrclass */
            bipush 6
         4: .line 116
            iload 3 /* recursion */
            iconst_0
         5: .line 115
            invokevirtual com.sun.jndi.dns.Resolver.query:(Lcom/sun/jndi/dns/DnsName;IIZZ)Lcom/sun/jndi/dns/ResourceRecords;
            astore 4 /* rrs */
         6: .line 117
            goto 10
      StackMap locals: com.sun.jndi.dns.Resolver com.sun.jndi.dns.DnsName int int com.sun.jndi.dns.ResourceRecords
      StackMap stack: javax.naming.NameNotFoundException
         7: astore 5 /* e */
        start local 5 // javax.naming.NameNotFoundException e
         8: .line 118
            aload 5 /* e */
            athrow
        end local 5 // javax.naming.NameNotFoundException e
         9: .line 119
      StackMap locals:
      StackMap stack: javax.naming.NamingException
            pop
        10: .line 122
      StackMap locals:
      StackMap stack:
            aload 4 /* rrs */
            ifnull 22
        11: .line 123
            aload 4 /* rrs */
            getfield com.sun.jndi.dns.ResourceRecords.answer:Ljava/util/Vector;
            invokevirtual java.util.Vector.size:()I
            ifle 13
        12: .line 124
            aload 1 /* fqdn */
            areturn
        13: .line 127
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 5 /* i */
        start local 5 // int i
        14: goto 21
        15: .line 128
      StackMap locals: int
      StackMap stack:
            aload 4 /* rrs */
            getfield com.sun.jndi.dns.ResourceRecords.authority:Ljava/util/Vector;
            iload 5 /* i */
            invokevirtual java.util.Vector.elementAt:(I)Ljava/lang/Object;
            checkcast com.sun.jndi.dns.ResourceRecord
            astore 6 /* rr */
        start local 6 // com.sun.jndi.dns.ResourceRecord rr
        16: .line 129
            aload 6 /* rr */
            invokevirtual com.sun.jndi.dns.ResourceRecord.getType:()I
            bipush 6
            if_icmpne 20
        17: .line 130
            aload 6 /* rr */
            invokevirtual com.sun.jndi.dns.ResourceRecord.getName:()Lcom/sun/jndi/dns/DnsName;
            astore 7 /* zone */
        start local 7 // com.sun.jndi.dns.DnsName zone
        18: .line 131
            aload 1 /* fqdn */
            aload 7 /* zone */
            invokevirtual com.sun.jndi.dns.DnsName.endsWith:(Ljavax/naming/Name;)Z
            ifeq 20
        19: .line 132
            aload 7 /* zone */
            areturn
        end local 7 // com.sun.jndi.dns.DnsName zone
        end local 6 // com.sun.jndi.dns.ResourceRecord rr
        20: .line 127
      StackMap locals:
      StackMap stack:
            iinc 5 /* i */ 1
      StackMap locals:
      StackMap stack:
        21: iload 5 /* i */
            aload 4 /* rrs */
            getfield com.sun.jndi.dns.ResourceRecords.authority:Ljava/util/Vector;
            invokevirtual java.util.Vector.size:()I
            if_icmplt 15
        end local 5 // int i
        22: .line 137
      StackMap locals:
      StackMap stack:
            aload 1 /* fqdn */
            aload 1 /* fqdn */
            invokevirtual com.sun.jndi.dns.DnsName.size:()I
            iconst_1
            isub
            invokevirtual com.sun.jndi.dns.DnsName.remove:(I)Ljava/lang/Object;
            pop
        end local 4 // com.sun.jndi.dns.ResourceRecords rrs
        23: .line 112
      StackMap locals:
      StackMap stack:
            aload 1 /* fqdn */
            invokevirtual com.sun.jndi.dns.DnsName.size:()I
            iconst_1
            if_icmpgt 2
        24: .line 139
            aload 1 /* fqdn */
            areturn
        end local 3 // boolean recursion
        end local 2 // int rrclass
        end local 1 // com.sun.jndi.dns.DnsName fqdn
        end local 0 // com.sun.jndi.dns.Resolver this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   25     0       this  Lcom/sun/jndi/dns/Resolver;
            0   25     1       fqdn  Lcom/sun/jndi/dns/DnsName;
            0   25     2    rrclass  I
            0   25     3  recursion  Z
            3   23     4        rrs  Lcom/sun/jndi/dns/ResourceRecords;
            8    9     5          e  Ljavax/naming/NameNotFoundException;
           14   22     5          i  I
           16   20     6         rr  Lcom/sun/jndi/dns/ResourceRecord;
           18   20     7       zone  Lcom/sun/jndi/dns/DnsName;
      Exception table:
        from    to  target  type
           3     6       7  Class javax.naming.NameNotFoundException
           3     6       9  Class javax.naming.NamingException
    Exceptions:
      throws javax.naming.NamingException
    MethodParameters:
           Name  Flags
      fqdn       
      rrclass    
      recursion  

  com.sun.jndi.dns.ResourceRecord findSoa(com.sun.jndi.dns.DnsName, int, boolean);
    descriptor: (Lcom/sun/jndi/dns/DnsName;IZ)Lcom/sun/jndi/dns/ResourceRecord;
    flags: (0x0000) 
    Code:
      stack=6, locals=7, args_size=4
        start local 0 // com.sun.jndi.dns.Resolver this
        start local 1 // com.sun.jndi.dns.DnsName zone
        start local 2 // int rrclass
        start local 3 // boolean recursion
         0: .line 151
            aload 0 /* this */
            aload 1 /* zone */
            iload 2 /* rrclass */
            bipush 6
         1: .line 152
            iload 3 /* recursion */
            iconst_0
         2: .line 151
            invokevirtual com.sun.jndi.dns.Resolver.query:(Lcom/sun/jndi/dns/DnsName;IIZZ)Lcom/sun/jndi/dns/ResourceRecords;
            astore 4 /* rrs */
        start local 4 // com.sun.jndi.dns.ResourceRecords rrs
         3: .line 153
            iconst_0
            istore 5 /* i */
        start local 5 // int i
         4: goto 9
         5: .line 154
      StackMap locals: com.sun.jndi.dns.ResourceRecords int
      StackMap stack:
            aload 4 /* rrs */
            getfield com.sun.jndi.dns.ResourceRecords.answer:Ljava/util/Vector;
            iload 5 /* i */
            invokevirtual java.util.Vector.elementAt:(I)Ljava/lang/Object;
            checkcast com.sun.jndi.dns.ResourceRecord
            astore 6 /* rr */
        start local 6 // com.sun.jndi.dns.ResourceRecord rr
         6: .line 155
            aload 6 /* rr */
            invokevirtual com.sun.jndi.dns.ResourceRecord.getType:()I
            bipush 6
            if_icmpne 8
         7: .line 156
            aload 6 /* rr */
            areturn
        end local 6 // com.sun.jndi.dns.ResourceRecord rr
         8: .line 153
      StackMap locals:
      StackMap stack:
            iinc 5 /* i */ 1
      StackMap locals:
      StackMap stack:
         9: iload 5 /* i */
            aload 4 /* rrs */
            getfield com.sun.jndi.dns.ResourceRecords.answer:Ljava/util/Vector;
            invokevirtual java.util.Vector.size:()I
            if_icmplt 5
        end local 5 // int i
        10: .line 159
            aconst_null
            areturn
        end local 4 // com.sun.jndi.dns.ResourceRecords rrs
        end local 3 // boolean recursion
        end local 2 // int rrclass
        end local 1 // com.sun.jndi.dns.DnsName zone
        end local 0 // com.sun.jndi.dns.Resolver this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   11     0       this  Lcom/sun/jndi/dns/Resolver;
            0   11     1       zone  Lcom/sun/jndi/dns/DnsName;
            0   11     2    rrclass  I
            0   11     3  recursion  Z
            3   11     4        rrs  Lcom/sun/jndi/dns/ResourceRecords;
            4   10     5          i  I
            6    8     6         rr  Lcom/sun/jndi/dns/ResourceRecord;
    Exceptions:
      throws javax.naming.NamingException
    MethodParameters:
           Name  Flags
      zone       
      rrclass    
      recursion  

  private java.lang.String[] findNameServers(com.sun.jndi.dns.DnsName, boolean);
    descriptor: (Lcom/sun/jndi/dns/DnsName;Z)[Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=7, args_size=3
        start local 0 // com.sun.jndi.dns.Resolver this
        start local 1 // com.sun.jndi.dns.DnsName zone
        start local 2 // boolean recursion
         0: .line 173
            aload 0 /* this */
            aload 1 /* zone */
            iconst_1
            iconst_2
         1: .line 174
            iload 2 /* recursion */
            iconst_0
         2: .line 173
            invokevirtual com.sun.jndi.dns.Resolver.query:(Lcom/sun/jndi/dns/DnsName;IIZZ)Lcom/sun/jndi/dns/ResourceRecords;
         3: .line 172
            astore 3 /* rrs */
        start local 3 // com.sun.jndi.dns.ResourceRecords rrs
         4: .line 175
            aload 3 /* rrs */
            getfield com.sun.jndi.dns.ResourceRecords.answer:Ljava/util/Vector;
            invokevirtual java.util.Vector.size:()I
            anewarray java.lang.String
            astore 4 /* ns */
        start local 4 // java.lang.String[] ns
         5: .line 176
            iconst_0
            istore 5 /* i */
        start local 5 // int i
         6: goto 13
         7: .line 177
      StackMap locals: com.sun.jndi.dns.ResourceRecords java.lang.String[] int
      StackMap stack:
            aload 3 /* rrs */
            getfield com.sun.jndi.dns.ResourceRecords.answer:Ljava/util/Vector;
            iload 5 /* i */
            invokevirtual java.util.Vector.elementAt:(I)Ljava/lang/Object;
            checkcast com.sun.jndi.dns.ResourceRecord
            astore 6 /* rr */
        start local 6 // com.sun.jndi.dns.ResourceRecord rr
         8: .line 178
            aload 6 /* rr */
            invokevirtual com.sun.jndi.dns.ResourceRecord.getType:()I
            iconst_2
            if_icmpeq 10
         9: .line 179
            new javax.naming.CommunicationException
            dup
            ldc "Corrupted DNS message"
            invokespecial javax.naming.CommunicationException.<init>:(Ljava/lang/String;)V
            athrow
        10: .line 181
      StackMap locals: com.sun.jndi.dns.ResourceRecord
      StackMap stack:
            aload 4 /* ns */
            iload 5 /* i */
            aload 6 /* rr */
            invokevirtual com.sun.jndi.dns.ResourceRecord.getRdata:()Ljava/lang/Object;
            checkcast java.lang.String
            aastore
        11: .line 186
            aload 4 /* ns */
            iload 5 /* i */
            aload 4 /* ns */
            iload 5 /* i */
            aaload
            iconst_0
            aload 4 /* ns */
            iload 5 /* i */
            aaload
            invokevirtual java.lang.String.length:()I
            iconst_1
            isub
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            aastore
        end local 6 // com.sun.jndi.dns.ResourceRecord rr
        12: .line 176
            iinc 5 /* i */ 1
      StackMap locals:
      StackMap stack:
        13: iload 5 /* i */
            aload 4 /* ns */
            arraylength
            if_icmplt 7
        end local 5 // int i
        14: .line 188
            aload 4 /* ns */
            areturn
        end local 4 // java.lang.String[] ns
        end local 3 // com.sun.jndi.dns.ResourceRecords rrs
        end local 2 // boolean recursion
        end local 1 // com.sun.jndi.dns.DnsName zone
        end local 0 // com.sun.jndi.dns.Resolver this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   15     0       this  Lcom/sun/jndi/dns/Resolver;
            0   15     1       zone  Lcom/sun/jndi/dns/DnsName;
            0   15     2  recursion  Z
            4   15     3        rrs  Lcom/sun/jndi/dns/ResourceRecords;
            5   15     4         ns  [Ljava/lang/String;
            6   14     5          i  I
            8   12     6         rr  Lcom/sun/jndi/dns/ResourceRecord;
    Exceptions:
      throws javax.naming.NamingException
    MethodParameters:
           Name  Flags
      zone       
      recursion  
}
SourceFile: "Resolver.java"