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) {