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