1 package org.cacert.gigi.ping;
3 import java.util.Arrays;
6 import javax.naming.NamingException;
8 import org.cacert.gigi.dbObjects.Domain;
9 import org.cacert.gigi.dbObjects.User;
10 import org.cacert.gigi.util.DNSUtil;
12 public class DNSPinger extends DomainPinger {
15 public String ping(Domain domain, String expToken, User u) {
16 String[] tokenParts = expToken.split(":", 2);
17 List<String> nameservers;
19 nameservers = Arrays.asList(DNSUtil.getNSNames(domain.getSuffix()));
20 } catch (NamingException e) {
21 return "No authorative nameserver found.";
23 StringBuffer result = new StringBuffer();
24 result.append("failed: ");
25 boolean failed = nameservers.isEmpty();
27 for (String NS : nameservers) {
28 boolean found = false;
30 for (String token : DNSUtil.getTXTEntries(tokenParts[0] + "._cacert._auth." + domain.getSuffix(), NS)) {
31 if (token.isEmpty()) {
35 if (token.equals(tokenParts[1])) {
39 } catch (NamingException e) {
44 result.append(" DIFFER;");
46 result.append(" EMPTY;");
54 return result.toString();