Java 类org.xbill.DNS.TextParseException 实例源码

项目:carrier    文件:MailResolverService.java   
/**
 * Attempts to resolve an SMTP server address, given the destination e-mail address.
 *
 * @param email The e-mail address used for the lookup.
 * @return An optional, potentially containing
 */
protected Optional<String> resolve(String email) {
    Optional<String> domainOptional = extractDomain(email);

    if (!domainOptional.isPresent()) {
        return Optional.empty();
    }

    String mailDomain = domainOptional.get();

    try {
        Lookup dnsLookup = new Lookup(mailDomain, Type.MX);
        List<Record> records = Arrays.asList(dnsLookup.run());

        if (records.isEmpty()) {
            return Optional.empty();
        }

        return chooseBestRecord(records);

    } catch (TextParseException e) {
        e.printStackTrace();
    }

    return Optional.empty();
}
项目:x-pipe    文件:ConsoleCrossDcServerTest.java   
@Before
public void beforeConsoleCrossDcServerTest(){


    crossDcClusterServer = new ConsoleCrossDcServer(){

        @Override
        protected List<String> lookUpCname(String domain) throws TextParseException {

            return cnames;
        }
    };

    crossDcClusterServer.setConsoleConfig(consoleConfig);
    crossDcClusterServer.setCheckIntervalMilli(checkIntervalMilli);

    cnames.add("cname1");
    HashMap<String, String> cnameToDc = new HashMap<>();
    cnameToDc.put("cname1", "jq");
    cnameToDc.put("cname2", "oy");
    DefaultFoundationService.setDataCenter("jq");

    when(consoleConfig.getConsoleDomain()).thenReturn("xpipe");
    when(consoleConfig.getConsoleCnameToDc()).thenReturn(cnameToDc);

}
项目:Smack    文件:DNSJavaResolver.java   
@Override
public List<SRVRecord> lookupSRVRecords(String name) throws TextParseException {
    List<SRVRecord> res = new ArrayList<SRVRecord>();

    Lookup lookup = new Lookup(name, Type.SRV);
    Record[] recs = lookup.run();
    if (recs == null)
        return res;

    for (Record record : recs) {
        org.xbill.DNS.SRVRecord srvRecord = (org.xbill.DNS.SRVRecord) record;
        if (srvRecord != null && srvRecord.getTarget() != null) {
            String host = srvRecord.getTarget().toString();
            int port = srvRecord.getPort();
            int priority = srvRecord.getPriority();
            int weight = srvRecord.getWeight();

            SRVRecord r = new SRVRecord(host, port, priority, weight);
            res.add(r);
        }
    }

    return res;
}
项目:plum    文件:DnsResolver.java   
/**
 * resolves an A record by its name using a specified DNS host and port
 *
 * @param resolverHost name server hostname or IP address
 * @param resolverPort name server port
 * @param name         the DNS name of the A record - the name to resolve
 * @return a comma separated list of IP addresses or an empty string when unable to resolve
 */
public String resolveHostByName(String resolverHost, int resolverPort, String name) {
    try {
        SimpleResolver resolver = new SimpleResolver(resolverHost);
        resolver.setPort(resolverPort);

        Lookup lookup = new Lookup(name, A);
        Record[] records = lookup.run();
        if (records != null) {
            List<String> addresses =
                    of(records)
                            .filter(it -> it instanceof ARecord)
                            .map(it -> ((ARecord) it).getAddress().getHostAddress())
                            .collect(toList());

            return collectionToCommaDelimitedString(addresses);
        } else {
            return "";
        }
    } catch (UnknownHostException | TextParseException e) {
        log.warn("unable to resolve using A record " + name, e);
        return "";
    }
}
项目:plum    文件:DnsResolver.java   
/**
 * resolves the TXT field for a given name using a specified DNS host and port. This is useful, for example,
 * if you want to resolve abusers with: <a href="https://abusix.com/contactdb.html">https://abusix.com/contactdb.html</a>
 *
 * @param resolverHost name server hostname or IP address
 * @param resolverPort name server port
 * @param name         the DNS name of the TXT record - the name to resolve
 * @return the resolved text
 */
public String resolveTextByName(String resolverHost, int resolverPort, String name) {
    try {
        SimpleResolver resolver = new SimpleResolver(resolverHost);
        resolver.setPort(resolverPort);

        Lookup lookup = new Lookup(name, TXT);
        Record[] records = lookup.run();
        if (records != null) {
            List<String> addresses =
                    of(records)
                            .filter(it -> it instanceof TXTRecord)
                            .map(it -> collectionToCommaDelimitedString(((TXTRecord) it).getStrings()))
                            .collect(toList());

            return collectionToCommaDelimitedString(addresses);
        } else {
            return "";
        }
    } catch (UnknownHostException | TextParseException e) {
        log.warn("unable to resolve using TXT record " + name, e);
        return "";
    }
}
项目:plum    文件:DnsResolver.java   
private String resolveSrvByName(Resolver resolver, String name) {
    try {
        Lookup lookup = new Lookup(name, SRV);
        if (resolver != null) {
            lookup.setResolver(resolver);
        }
        Record[] records = lookup.run();
        if (records == null) {
            return null;
        }

        return of(records)
                .filter(it -> it instanceof SRVRecord)
                .map(srv -> resolveHostByName(resolver, ((SRVRecord) srv).getTarget()) + ":" + ((SRVRecord) srv).getPort())
                .distinct()
                .collect(joining(","));
    } catch (TextParseException e) {
        log.warn("unable to resolve using SRV record " + name, e);
        return null;
    }
}
项目:tiaki-java    文件:ServiceInstanceTest.java   
@Test
public void testCompareSamePriorityWeightAndDifferentHost () throws TextParseException {
    ServiceRecord svc1 = ServiceRecord.build( DiscoveryRecordUtil.createSrvRecord( "host1.com.", 1800, 0, 10, 3600 ) );
    ServiceRecord svc2 = ServiceRecord.build( DiscoveryRecordUtil.createSrvRecord( "host2.com.", 1800, 0, 10, 3600 ) );
    ServiceRecord svc3 = ServiceRecord.build( DiscoveryRecordUtil.createSrvRecord( "host3.com.", 1800, 0, 10, 3600 ) );
    TextRecord txt1 = TextRecord.build( DiscoveryRecordUtil.createTxtRecord( "txt1", 3600 ) );
    TextRecord txt2 = TextRecord.build( DiscoveryRecordUtil.createTxtRecord( "txt1", 3600 ) );
    TextRecord txt3 = TextRecord.build( DiscoveryRecordUtil.createTxtRecord( "txt1", 3600 ) );
    ServiceInstance svcInst1 = new ServiceInstance( serviceTypeCoap, svc1, txt1 );
    ServiceInstance svcInst2 = new ServiceInstance( serviceTypeCoap, svc2, txt2 );
    ServiceInstance svcInst3 = new ServiceInstance( serviceTypeCoap, svc3, txt3 );
    List<ServiceInstance> list = new ArrayList<ServiceInstance>( 3 );
    list.add( svcInst2 );
    list.add( svcInst3 );
    list.add( svcInst1 );

    Collections.sort( list );
    Assert.assertTrue( "First element in the list should be svcInst1", list.get( 0 ).equals( svcInst1 ) );
    Assert.assertTrue( "Second element in the list should be svcInst2", list.get( 1 ).equals( svcInst2 ) );
    Assert.assertTrue( "Third element in the list should be svcInst3", list.get( 2 ).equals( svcInst3 ) );
}
项目:tiaki-java    文件:ServiceInstanceTest.java   
@Test
public void testCompareSamePriorityWeightHostAndDifferentPort () throws TextParseException {
    ServiceRecord svc1 = ServiceRecord.build( DiscoveryRecordUtil.createSrvRecord( "host.com.", 1800, 0, 10, 3600 ) );
    ServiceRecord svc2 = ServiceRecord.build( DiscoveryRecordUtil.createSrvRecord( "host.com.", 1801, 0, 10, 3600 ) );
    ServiceRecord svc3 = ServiceRecord.build( DiscoveryRecordUtil.createSrvRecord( "host.com.", 1802, 0, 10, 3600 ) );
    TextRecord txt1 = TextRecord.build( DiscoveryRecordUtil.createTxtRecord( "txt1", 3600 ) );
    TextRecord txt2 = TextRecord.build( DiscoveryRecordUtil.createTxtRecord( "txt1", 3600 ) );
    TextRecord txt3 = TextRecord.build( DiscoveryRecordUtil.createTxtRecord( "txt1", 3600 ) );
    ServiceInstance svcInst1 = new ServiceInstance( serviceTypeCoap, svc1, txt1 );
    ServiceInstance svcInst2 = new ServiceInstance( serviceTypeCoap, svc2, txt2 );
    ServiceInstance svcInst3 = new ServiceInstance( serviceTypeCoap, svc3, txt3 );
    List<ServiceInstance> list = new ArrayList<ServiceInstance>( 3 );
    list.add( svcInst2 );
    list.add( svcInst3 );
    list.add( svcInst1 );

    Collections.sort( list );
    Assert.assertTrue( "First element in the list should be svcInst1", list.get( 0 ).equals( svcInst1 ) );
    Assert.assertTrue( "Second element in the list should be svcInst2", list.get( 1 ).equals( svcInst2 ) );
    Assert.assertTrue( "Third element in the list should be svcInst3", list.get( 2 ).equals( svcInst3 ) );
}
项目:opennmszh    文件:DnsMonitorTest.java   
@Test
public void testDnsJavaWithDnsServer() throws TextParseException, UnknownHostException {
    final Lookup l = new Lookup("example.com", Type.AAAA);
    final SimpleResolver resolver = new SimpleResolver("::1");
    resolver.setPort(9153);
    l.setResolver(resolver);
    l.run();

    System.out.println("result: " + l.getResult());
    final Record[] answers = l.getAnswers();
    assertEquals(answers.length, 1);

    final Record record = answers[0];
    System.err.println(record.getTTL());

    if(l.getResult() == Lookup.SUCCESSFUL) {
        System.out.println(l.getAnswers()[0].rdataToString());
    }
    assertTrue(l.getResult() == Lookup.SUCCESSFUL);
}
项目:yeti    文件:ForwardLookupHelper.java   
public static List<ForwardLookupResult> getARecord(String hostName, String domainName) throws TextParseException {
    List<ForwardLookupResult> entries = null;
    if (hostName != null && !hostName.isEmpty() && domainName != null && !domainName.isEmpty()) {
        Record[] recs = new Lookup(hostName, Type.A).run();
        if (recs != null) {
            if (recs.length > 0) {
                entries = new ArrayList<>();
                for (Record record : recs) {
                    ForwardLookupResult foundSubDomain = new ForwardLookupResult(domainName);
                    foundSubDomain.setHostName(hostName);
                    String ipAddress = ((ARecord) record).getAddress().getHostAddress();
                    foundSubDomain.setIpAddress(ipAddress);
                    foundSubDomain.setLookupType("A");
                    entries.add(foundSubDomain);
                }
            }
        }
    }
    return entries;
}
项目:yeti    文件:ForwardLookupHelper.java   
public static List<ForwardLookupResult> getAAAARecord(String hostName, String domainName) throws TextParseException {
    List<ForwardLookupResult> entries = null;
    if (hostName != null && !hostName.isEmpty() && domainName != null && !domainName.isEmpty()) {
        Record[] recs = new Lookup(hostName, Type.AAAA).run();
        if (recs != null) {
            if (recs.length > 0) {
                entries = new ArrayList<>();
                for (Record record : recs) {
                    ForwardLookupResult foundSubDomain = new ForwardLookupResult(domainName);
                    foundSubDomain.setHostName(hostName);
                    String ipAddress = ((AAAARecord) record).getAddress().getHostAddress();
                    foundSubDomain.setIpAddress(ipAddress);
                    foundSubDomain.setLookupType("A");
                    entries.add(foundSubDomain);
                }
            }
        }
    }
    return entries;
}
项目:yeti    文件:YileController.java   
@Override
public void addHostFromUrl(String url, String baseUrl) {
    try {
        URL aUrl = new URL(url);
        URL sUrl = new URL(baseUrl);
        String domain = NetworkTools.getDomainFromHost(aUrl.getHost());
        YileResult res = new YileResult(domain);
        res.setHostName(aUrl.getHost());
        res.setSource(sUrl.getHost());
        res.setUrl(url);
        try {
            String name = domain.split("\\.", 2)[0];
            String tld = domain.split("\\.", 2)[1];
            res.setRegistrant(NetworkTools.getHostNameWhoisResult(name, tld, true));
            res.setIPAddress(NetworkTools.getIpFromHost(aUrl.getHost()).get(0));
        } catch (TextParseException tpe) {
            Logger.getLogger("yileController.yileWorker.addHostFromUrl").log(Level.SEVERE, null, tpe);
        }

        addResult(res);

    } catch (MalformedURLException ex) {
        Logger.getLogger("yileController.yileWorker.addHostFromUrl").log(Level.SEVERE, null, ex);
    }
}
项目:yeti    文件:DNS.java   
public static List<ARecordResult> getARecord(String hostName) throws TextParseException {
    List<ARecordResult> entries = null;

    Record[] recs = new Lookup(hostName, Type.A).run();
    if (recs != null) {
        if (recs.length > 0) {
            entries = new ArrayList<>();
            for (Record record : recs) {
                ARecordResult foundSubDomain = new ARecordResult(NetworkTools.getDomainFromHost(hostName));
                foundSubDomain.setHostName(hostName);
                String ipAddress = ((ARecord) record).getAddress().getHostAddress();
                foundSubDomain.setIpAddress(ipAddress);
                foundSubDomain.setLookupType("A");
                entries.add(foundSubDomain);
            }
        }
    }

    return entries;
}
项目:yeti    文件:NetworkTools.java   
public static String getDomainFromHost(String host) {
    String tmpHost = host;
    if (host.isEmpty()) {
        return "";
    }
    while (true) {
        try {
            if (!tmpHost.startsWith("www.")) {
                Record[] recs = new Lookup(tmpHost, Type.SOA).run();
                if (recs != null) {
                    return tmpHost;
                }
            }
            if (tmpHost.contains(".")) {
                tmpHost = tmpHost.split("\\.", 2)[1];
            } else {
                break;
            }
        } catch (TextParseException ex) {
            Logger.getLogger("networkTools.getDomainFromHost").log(Level.SEVERE, null, ex);
            break;
        }
    }
    return "";
}
项目:yeti    文件:DataAPI.java   
public List<ARecordResult> getARecord(String hostName) throws TextParseException {
    List<ARecordResult> entries = null;

    Record[] recs = new Lookup(hostName, Type.A).run();
    if (recs != null) {
        if (recs.length > 0) {
            entries = new ArrayList<>();
            for (Record record : recs) {
                ARecordResult foundSubDomain = new ARecordResult(NetworkTools.getDomainFromHost(hostName));
                foundSubDomain.setHostName(hostName);
                String ipAddress = ((ARecord) record).getAddress().getHostAddress();
                foundSubDomain.setIpAddress(ipAddress);
                foundSubDomain.setLookupType("A");
                entries.add(foundSubDomain);
            }
        }
    }

    return entries;
}
项目:OpenNMS    文件:DnsMonitorTest.java   
@Test
public void testDnsJavaWithDnsServer() throws TextParseException, UnknownHostException {
    final Lookup l = new Lookup("example.com", Type.AAAA);
    final SimpleResolver resolver = new SimpleResolver("::1");
    resolver.setPort(9153);
    l.setResolver(resolver);
    l.run();

    System.out.println("result: " + l.getResult());
    final Record[] answers = l.getAnswers();
    assertEquals(answers.length, 1);

    final Record record = answers[0];
    System.err.println(record.getTTL());

    if(l.getResult() == Lookup.SUCCESSFUL) {
        System.out.println(l.getAnswers()[0].rdataToString());
    }
    assertTrue(l.getResult() == Lookup.SUCCESSFUL);
}
项目:open-rmbt    文件:Helperfunctions.java   
public static Name getReverseIPName(final InetAddress adr, final Name postfix)
{
    final byte[] addr = adr.getAddress();
    final StringBuilder sb = new StringBuilder();
    if (addr.length == 4)
        for (int i = addr.length - 1; i >= 0; i--)
        {
            sb.append(addr[i] & 0xFF);
            if (i > 0)
                sb.append(".");
        }
    else
    {
        final int[] nibbles = new int[2];
        for (int i = addr.length - 1; i >= 0; i--)
        {
            nibbles[0] = (addr[i] & 0xFF) >> 4;
            nibbles[1] = addr[i] & 0xFF & 0xF;
            for (int j = nibbles.length - 1; j >= 0; j--)
            {
                sb.append(Integer.toHexString(nibbles[j]));
                if (i > 0 || j > 0)
                    sb.append(".");
            }
        }
    }
    try
    {
        return Name.fromString(sb.toString(), postfix);
    }
    catch (final TextParseException e)
    {
        throw new IllegalStateException("name cannot be invalid");
    }
}
项目:dnsjnio-demo    文件:Utils.java   
public static synchronized Message makeQuery(String nameString, int id) throws TextParseException {
    Name name = Name.fromString(nameString, Name.root);
    Record question = Record.newRecord(name, Type.A, DClass.ANY);
    Message query = Message.newQuery(question);
    query.getHeader().setID(id);
    return query;
}
项目:cloud-meter    文件:DNSCacheManager.java   
/**
 * Sends DNS request via system or custom DNS resolver
 */
private InetAddress[] requestLookup(String host) throws UnknownHostException {
    InetAddress[] addresses = null;
    if (isCustomResolver() && ((ExtendedResolver) resolver).getResolvers().length > 0) {
        try {
            Lookup lookup = new Lookup(host, Type.A);
            lookup.setCache(lookupCache);
            if (timeoutMs > 0) {
                resolver.setTimeout(timeoutMs / 1000, timeoutMs % 1000);
            }
            lookup.setResolver(resolver);
            Record[] records = lookup.run();
            if (records == null || records.length == 0) {
                throw new UnknownHostException("Failed to resolve host name: " + host);
            }
            addresses = new InetAddress[records.length];
            for (int i = 0; i < records.length; i++) {
                addresses[i] = ((ARecord) records[i]).getAddress();
            }
        } catch (TextParseException tpe) {
            log.debug("Failed to create Lookup object: " + tpe);
        }
    } else {
        addresses = systemDefaultDnsResolver.resolve(host);
        if (log.isDebugEnabled()) {
            log.debug("Cache miss: " + host + " Thread #" + JMeterContextService.getContext().getThreadNum()
                    + ", resolved with system resolver into " + Arrays.toString(addresses));
        }
    }
    return addresses;
}
项目:x-pipe    文件:ConsoleCrossDcServerTest.java   
@Test
public void test() throws TextParseException {

    try {
        List<String> cnames = crossDcClusterServer.lookUpCname("xpipe1.ctripcorp.com");
        logger.info("[test]{}", cnames);
    } catch (TextParseException e) {
        logger.error("[test]", e);
    }
}
项目:nomulus    文件:DnsUpdateWriter.java   
private Name toAbsoluteName(String name) {
  try {
    return Name.fromString(name, Name.root);
  } catch (TextParseException e) {
    throw new RuntimeException(
        String.format("toAbsoluteName failed for name: %s in zone: %s", name, zoneName), e);
  }
}
项目:Camel    文件:DnsServiceLookupFactory.java   
private Lookup createLookup(String name) {
    try {
        return new Lookup(
            String.format("%s.%s.%s", name, configuration.getProto(), configuration.getDomain()),
            Type.SRV);
    } catch (TextParseException e) {
        throw new RuntimeCamelException(e);
    }
}
项目:tiaki-java    文件:TextRecordTest.java   
@Test
public void testEqualsObject () throws TextParseException {
    TextRecord txt1 = TextRecord.build( DiscoveryRecordUtil.createTxtRecord( "txt1", 3600 ) );
    TextRecord txt2 = TextRecord.build( DiscoveryRecordUtil.createTxtRecord( "txt1", 3600 ) );

    Assert.assertTrue( "Both text records should be equal", txt1.equals( txt2 ) );
}
项目:tiaki-java    文件:TextRecordTest.java   
@Test
public void testNotEqualsObject () throws TextParseException {
    TextRecord txt1 = TextRecord.build( DiscoveryRecordUtil.createTxtRecord( "txt1", 3600 ) );
    TextRecord txt2 = TextRecord.build( DiscoveryRecordUtil.createTxtRecord( "txt2", 3600 ) );

    Assert.assertTrue( "Both text records should not be equal", !txt1.equals( txt2 ) );
}
项目:tiaki-java    文件:ServiceRecordTest.java   
@Test
public void testCompareToDifferentPriority () throws TextParseException {
    ServiceRecord svc1 = ServiceRecord.build( DiscoveryRecordUtil.createSrvRecord( "eastcoastcoap._coap._udp.47zlpxulsrha.1.iotverisign.", 1800, 0, 10, 3600 ) );
    ServiceRecord svc2 = ServiceRecord.build( DiscoveryRecordUtil.createSrvRecord( "eastcoastcoap._coap._udp.47zlpxulsrha.1.iotverisign.", 1800, 1, 10, 3600 ) );
    Assert.assertTrue( "Incorrect priority comparison", svc1.compareTo( svc2 ) < 1 );
    Assert.assertTrue( "Incorrect priority comparison", svc2.compareTo( svc1 ) > 0 );
}
项目:tiaki-java    文件:ServiceRecordTest.java   
@Test
public void testCompareToSamePriorityDifferentWeight () throws TextParseException {

    ServiceRecord svc1 = ServiceRecord.build( DiscoveryRecordUtil.createSrvRecord( "eastcoastcoap._coap._udp.47zlpxulsrha.1.iotverisign.", 1800, 0, 10, 3600 ) );
    ServiceRecord svc2 = ServiceRecord.build( DiscoveryRecordUtil.createSrvRecord( "eastcoastcoap._coap._udp.47zlpxulsrha.1.iotverisign.", 1800, 0, 20, 3600 ) );
    Assert.assertTrue( "Incorrect weight comparison", svc1.compareTo( svc2 ) > 0 );
    Assert.assertTrue( "Incorrect weight comparison", svc2.compareTo( svc1 ) < 0 );
}
项目:tiaki-java    文件:ServiceRecordTest.java   
@Test
public void testCompareSamePriorityWeightAndDifferentHost () throws TextParseException {
    ServiceRecord svc1 = ServiceRecord.build( DiscoveryRecordUtil.createSrvRecord( "eastcoastcoap._coap._udp.47zlpxulsrha.1.iotverisign.", 1800, 0, 10, 3600 ) );
    ServiceRecord svc2 = ServiceRecord.build( DiscoveryRecordUtil.createSrvRecord( "eastcoastcoap._coap._udp.47zlpxulsrha.1.iotverisign.", 1800, 0, 10, 3600 ) );
    ServiceRecord svc3 = ServiceRecord.build( DiscoveryRecordUtil.createSrvRecord( "eastcoastcoap._coap._udp.47zlpxulsrha.1.iotverisign.", 1800, 0, 10, 3600 ) );
    List<ServiceRecord> list = new ArrayList<ServiceRecord>( 3 );
    list.add( svc2 );
    list.add( svc3 );
    list.add( svc1 );

    Collections.sort( list );
    Assert.assertTrue( "First element in the list should be svc1", list.get( 0 ).equals( svc1 ) );
    Assert.assertTrue( "Second element in the list should be svc2", list.get( 1 ).equals( svc2 ) );
    Assert.assertTrue( "Third element in the list should be svc3", list.get( 2 ).equals( svc3 ) );
}
项目:tiaki-java    文件:ServiceRecordTest.java   
@Test
public void testCompareSamePriorityWeightHostAndDifferentPort () throws TextParseException {
    ServiceRecord svc1 = ServiceRecord.build( DiscoveryRecordUtil.createSrvRecord( "host1.com.", 1800, 0, 10, 3600 ) );
    ServiceRecord svc2 = ServiceRecord.build( DiscoveryRecordUtil.createSrvRecord( "host2.com.", 1801, 0, 10, 3600 ) );
    ServiceRecord svc3 = ServiceRecord.build( DiscoveryRecordUtil.createSrvRecord( "host3.com.", 1802, 0, 10, 3600 ) );
    List<ServiceRecord> list = new ArrayList<ServiceRecord>( 3 );
    list.add( svc2 );
    list.add( svc3 );
    list.add( svc1 );

    Collections.sort( list );
    Assert.assertTrue( "First element in the list should be svc1", list.get( 0 ).equals( svc1 ) );
    Assert.assertTrue( "Second element in the list should be svc2", list.get( 1 ).equals( svc2 ) );
    Assert.assertTrue( "Third element in the list should be svc3", list.get( 2 ).equals( svc3 ) );
}
项目:tiaki-java    文件:ServiceInstanceTest.java   
@Test
public void testEquals () throws TextParseException {
    ServiceRecord svc1 = ServiceRecord.build( DiscoveryRecordUtil.createSrvRecord( "host.com.", 1800, 0, 10, 3600 ) );
    ServiceRecord svc2 = ServiceRecord.build( DiscoveryRecordUtil.createSrvRecord( "host.com.", 1800, 0, 10, 3600 ) );
    TextRecord txt1 = TextRecord.build( DiscoveryRecordUtil.createTxtRecord( "txt1", 3600 ) );
    TextRecord txt2 = TextRecord.build( DiscoveryRecordUtil.createTxtRecord( "txt1", 3600 ) );
    ServiceInstance svcInst1 = new ServiceInstance( serviceTypeCoap, svc1, txt1 );
    ServiceInstance svcInst2 = new ServiceInstance( serviceTypeCoap, svc2, txt2 );
    Assert.assertTrue( "Both service instances should be equal", svcInst1.equals( svcInst2 ) );
}
项目:tiaki-java    文件:ServiceInstanceTest.java   
@Test
public void testNotEquals () throws TextParseException {
    ServiceRecord svc1 = ServiceRecord.build( DiscoveryRecordUtil.createSrvRecord( "host.com.", 1800, 0, 10, 3600 ) );
    ServiceRecord svc2 = ServiceRecord.build( DiscoveryRecordUtil.createSrvRecord( "host.com.", 1800, 0, 10, 3600 ) );
    TextRecord txt1 = TextRecord.build( DiscoveryRecordUtil.createTxtRecord( "txt1", 3600 ) );
    TextRecord txt2 = TextRecord.build( DiscoveryRecordUtil.createTxtRecord( "txt1", 3600 ) );
    ServiceInstance svcInst1 = new ServiceInstance( serviceTypeCoap, svc1, txt1 );
    ServiceInstance svcInst2 = new ServiceInstance( serviceTypeMqtt, svc2, txt2 );
    Assert.assertTrue( "Both service instances should not be equal", !svcInst1.equals( svcInst2 ) );
}
项目:tiaki-java    文件:ServiceInstanceTest.java   
@Test
public void testCompareToDifferentPriority () throws TextParseException {
    ServiceRecord svc1 = ServiceRecord.build( DiscoveryRecordUtil.createSrvRecord( "host.com.", 1800, 0, 10, 3600 ) );
    ServiceRecord svc2 = ServiceRecord.build( DiscoveryRecordUtil.createSrvRecord( "host.com.", 1800, 1, 10, 3600 ) );
    TextRecord txt1 = TextRecord.build( DiscoveryRecordUtil.createTxtRecord( "txt1", 3600 ) );
    TextRecord txt2 = TextRecord.build( DiscoveryRecordUtil.createTxtRecord( "txt1", 3600 ) );
    ServiceInstance svcInst1 = new ServiceInstance( serviceTypeCoap, svc1, txt1 );
    ServiceInstance svcInst2 = new ServiceInstance( serviceTypeCoap, svc2, txt2 );
    Assert.assertTrue( "Incorrect priority comparison", svcInst1.compareTo( svcInst2 ) < 1 );
    Assert.assertTrue( "Incorrect priority comparison", svcInst2.compareTo( svcInst1 ) > 0 );
}
项目:tiaki-java    文件:ServiceInstanceTest.java   
@Test
public void testCompareToSamePriorityDifferentWeight () throws TextParseException {
    ServiceRecord svc1 = ServiceRecord.build( DiscoveryRecordUtil.createSrvRecord( "host.com.", 1800, 0, 10, 3600 ) );
    ServiceRecord svc2 = ServiceRecord.build( DiscoveryRecordUtil.createSrvRecord( "host.com.", 1800, 0, 20, 3600 ) );
    TextRecord txt1 = TextRecord.build( DiscoveryRecordUtil.createTxtRecord( "txt1", 3600 ) );
    TextRecord txt2 = TextRecord.build( DiscoveryRecordUtil.createTxtRecord( "txt1", 3600 ) );
    ServiceInstance svcInst1 = new ServiceInstance( serviceTypeCoap, svc1, txt1 );
    ServiceInstance svcInst2 = new ServiceInstance( serviceTypeCoap, svc2, txt2 );
    Assert.assertTrue( "Incorrect priority comparison", svcInst1.compareTo( svcInst2 ) > 0 );
    Assert.assertTrue( "Incorrect priority comparison", svcInst2.compareTo( svcInst1 ) < 0 );
}
项目:hazelcast-kubernetes    文件:DnsEndpointResolver.java   
private Lookup buildLookup()
        throws TextParseException, UnknownHostException {

    ExtendedResolver resolver = new ExtendedResolver();
    resolver.setTimeout(serviceDnsTimeout);

    Lookup lookup = new Lookup(serviceDns, Type.SRV);
    lookup.setResolver(resolver);

    // Avoid caching temporary DNS lookup failures indefinitely in global cache
    lookup.setCache(null);

    return lookup;
}
项目:dns-java    文件:SimpleLookupFactory.java   
@Override
public Lookup forName(String fqdn) {
  try {
    return new Lookup(fqdn, Type.SRV, DClass.IN);
  } catch (TextParseException e) {
    throw new DnsException("unable to create lookup for name: " + fqdn, e);
  }
}
项目:dns-java    文件:XBillDnsSrvResolverTest.java   
private Message messageWithRCode(String query, int rcode) throws TextParseException {
  Name queryName = Name.fromString(query);
  Record question = Record.newRecord(queryName, Type.SRV, DClass.IN);
  Message queryMessage = Message.newQuery(question);
  Message result = new Message();
  result.setHeader(queryMessage.getHeader());
  result.addRecord(question, Section.QUESTION);

  result.getHeader().setRcode(rcode);

  return result;
}
项目:dns-java    文件:XBillDnsSrvResolverTest.java   
private Message messageWithNodes(String query, Iterable<String> names) throws TextParseException {
  Name queryName = Name.fromString(query);
  Record question = Record.newRecord(queryName, Type.SRV, DClass.IN);
  Message queryMessage = Message.newQuery(question);
  Message result = new Message();
  result.setHeader(queryMessage.getHeader());
  result.addRecord(question, Section.QUESTION);

  for (String name1 : names){
    result.addRecord(new SRVRecord(queryName, DClass.IN, 1, 1, 1, 8080, Name.fromString(name1)), Section.ANSWER);
  }

  return result;
}
项目:dns-java    文件:SimpleLookupFactoryTest.java   
@Test
public void shouldRethrowXBillExceptions() throws Exception {
  thrown.expect(DnsException.class);
  thrown.expectCause(isA(TextParseException.class));

  factory.forName("bad\\1 name");
}
项目:JMXMiniProbe    文件:DNSSensor.java   
protected void addVectorEntry(String value, boolean inoutonly){
        // Expecting int port numbers
        DNSLookupEntry tmp = null;

        try {
            tmp = new DNSLookupEntry(value, getLookupType());
        } catch (TextParseException e) {
            Logger.log("Error parsing sensor["+getName()+"] JSON##"+value+"##: " + e.getLocalizedMessage());
//            throw e;
//          e.printStackTrace();
        }
        if(tmp != null ){
            addVectorEntry(tmp);
        }
    }
项目:dhcp    文件:ReverseDdnsUpdate.java   
public boolean sendAdd() throws TextParseException, IOException
{
    boolean rc = false;

    Resolver res = createResolver();

    String revIp = buildReverseIpString();

    Name owner = new Name(revIp.toString());
    PTRRecord ptr = new PTRRecord(owner, DClass.IN, ttl, new Name(fqdn));

    Name _zone = buildZoneName(revIp);

    Update update = new Update(_zone);
    update.delete(owner);
    update.add(ptr);

    if (log.isDebugEnabled()) {
        log.debug("Sending reverse DDNS update (replace) to server=" + server + ":\n" + 
                update.toString());
    }
    else if (log.isInfoEnabled()) {
        log.info("Sending reverse DDNS update (replace): " + ptr.toString());
    }
    Message response = res.send(update);

    if (response.getRcode() == Rcode.NOERROR) {
        log.info("Reverse DDNS update (replace) succeeded: " + ptr.toString());
        rc = true;
    }
    else {
        log.error("Reverse DDNS update (replace) failed (rcode=" +
                Rcode.string(response.getRcode()) + "): " + ptr.toString());            
    }
    return rc;
}
项目:dhcp    文件:ReverseDdnsUpdate.java   
public boolean sendDelete() throws TextParseException, IOException
{
    boolean rc = false;

    Resolver res = createResolver();

    String revIp = buildReverseIpString();

    Name owner = new Name(revIp);
    PTRRecord ptr = new PTRRecord(owner, DClass.IN, 0, new Name(fqdn));

    Name _zone = buildZoneName(revIp);

    Update update = new Update(_zone);
    update.delete(ptr);

    if (log.isDebugEnabled()) {
        log.debug("Sending reverse DDNS update (delete) to server=" + server + ":\n" + 
                update.toString());
    }
    else if (log.isInfoEnabled()) {
        log.info("Sending reverse DDNS update (delete): " + ptr.toString());
    }
    Message response = res.send(update);

    if (response.getRcode() == Rcode.NOERROR) {
        log.info("Reverse DDNS update (delete) succeeded: " + ptr.toString());
        rc = true;
    }
    else {
        log.error("Reverse DDNS update (delete) failed (rcode=" +
                Rcode.string(response.getRcode()) + "): " + ptr.toString());            
    }
    return rc;
}