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