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

Print this page

        

@@ -1231,21 +1231,21 @@
      * @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

@@ -1255,13 +1255,17 @@
         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 += (value.substring(0, j)).trim() + " ";
+                }
                 }
             }
+        kdcs = kdcs.trim();
+        if (kdcs.equals("")) {
+            return null;   
         }
         return kdcs;
     }
 
     private boolean fileExists(String name) {