- String[] tokenParts = expToken.split(":", 2);
-
- Process p = Runtime.getRuntime().exec(new String[] {
- "dig", "+short", "NS", domain.getSuffix()
- });
- BufferedReader br = new BufferedReader(new InputStreamReader(p.getInputStream()));
- String line;
- LinkedList<String> nameservers = new LinkedList<String>();
- while ((line = br.readLine()) != null) {
- nameservers.add(line);
- }
- p.destroy();
- StringBuffer result = new StringBuffer();
- result.append("failed: ");
- boolean failed = nameservers.isEmpty();
- nameservers:
- for (String NS : nameservers) {
- String[] call = new String[] {
- "dig", "@" + NS, "+short", "TXT", "cacert-" + tokenParts[0] + "." + domain
- };
- p = Runtime.getRuntime().exec(call);
- br = new BufferedReader(new InputStreamReader(p.getInputStream()));
- String token = null;
- boolean found = false;
- while ((line = br.readLine()) != null) {
- if (line.isEmpty()) {
+ nameservers = Arrays.asList(DNSUtil.getNSNames(domain.getSuffix()));
+ } catch (NamingException e) {
+ enterPingResult(confId, "error", "No authorative nameserver found.", null);
+ return;
+ }
+ StringBuffer result = new StringBuffer();
+ result.append("failed: ");
+ boolean failed = nameservers.isEmpty();
+ nameservers:
+ for (String NS : nameservers) {
+ boolean found = false;
+ try {
+ for (String token : DNSUtil.getTXTEntries(tokenParts[0] + "._cacert._auth." + domain.getSuffix(), NS)) {
+ if (token.isEmpty()) {