src/share/classes/sun/security/krb5/Config.java

Print this page

        

@@ -1231,37 +1231,35 @@
      * @param realm the realm for which the master KDC is desired
      * @return the KDC
      */
     private String getKDCFromDNS(String realm) throws KrbException {
         // use DNS to locate KDC
-        String kdcs = null;
+        String kdcs = "";
         String[] srvs = null;
         // locate DNS SRV record using UDP
         if (DEBUG) {
             System.out.println("getKDCFromDNS using UDP");
         }
         srvs = KrbServiceLocator.getKerberosService(realm, "_udp");
         if (srvs == null) {
             // locate DNS SRV record using TCP
             if (DEBUG) {
-                System.out.println("getKDCFromDNS using UDP");
+                System.out.println("getKDCFromDNS using TCP");
             }
             srvs = KrbServiceLocator.getKerberosService(realm, "_tcp");
         }
         if (srvs == null) {
             // no DNS SRV records
             throw new KrbException(Krb5.KRB_ERR_GENERIC,
                 "Unable to locate KDC for realm " + realm);
         }
         for (int i = 0; i < srvs.length; i++) {
-            String value = srvs[i];
-            for (int j = 0; j < srvs[i].length(); j++) {
-                // filter the KDC name
-                if (value.charAt(j) == ':') {
-                    kdcs = (value.substring(0, j)).trim();
-                }
+            kdcs += srvs[i] + " ";
             }
+        kdcs = kdcs.trim();
+        if (kdcs.equals("")) {
+            return null;   
         }
         return kdcs;
     }
 
     private boolean fileExists(String name) {