src/share/classes/sun/security/krb5/Config.java
Print this page
*** 1231,1267 ****
* @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[] 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");
}
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();
! }
}
}
return kdcs;
}
private boolean fileExists(String name) {
--- 1231,1265 ----
* @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 = "";
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 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++) {
! kdcs += srvs[i] + " ";
}
+ kdcs = kdcs.trim();
+ if (kdcs.equals("")) {
+ return null;
}
return kdcs;
}
private boolean fileExists(String name) {