Package org.xbill.DNS

Examples of org.xbill.DNS.Message


    public byte[] errorMessage(Message query, int rcode) {
        return buildErrorMessage(query.getHeader(), rcode, query.getQuestion());
    }

    public byte[] generateReply(byte[] in, int length) {
        Message query;
        byte[] response = null;
        try {
            query = new Message(in);
            response = generateReply(query, length, null);
        } catch (IOException e) {
            response = formerrMessage(in);
        }
        return response;
View Full Code Here


     * @see org.apache.james.jspf.executor.DNSAsynchLookupService#getRecordsAsynch(org.apache.james.jspf.core.DNSRequest, int, org.apache.james.jspf.executor.IResponseQueue)
     */
    public void getRecordsAsynch(DNSRequest request, int id,
            IResponseQueue responsePool) {
       
        Message message;
        try {
            message = makeQuery(request, id);
            LookupAsynch la = new LookupAsynch(message.getQuestion().getName(), message.getQuestion().getType());
            la.runAsynch(new Runnable() {

                private IResponseQueue responsePool;
                private Integer id;
                private LookupAsynch lookup;
View Full Code Here

            default:
                throw new UnsupportedOperationException("Unknown query type: "+request.getRecordType());
        }
       
        Record question = Record.newRecord(name, type, DClass.ANY);
        Message query = Message.newQuery(question);
        query.getHeader().setID(id);
        return query;
    }
View Full Code Here

            getLogger().debug(new StringBuffer(256)
                             .append("Looking up MX record for ")
                             .append(name)
                             .toString());
            Record question = Record.newRecord(name, type, dclass);
            Message query = Message.newQuery(question);
            Message response = null;

            try {
                response = resolver.send(query);
            }
            catch (Exception ex) {
                getLogger().warn("Query error!", ex);
                return null;
            }

            int rcode = response.getHeader().getRcode();
            if (rcode == Rcode.NOERROR || rcode == Rcode.NXDOMAIN) {
                cached = cache.addMessage(response);
                if (cached != null && cached.isSuccessful()) {
                    return processSetResponse(cached);
                }
View Full Code Here

            getLogger().debug(new StringBuffer(256)
                             .append("Looking up MX record for ")
                             .append(name)
                             .toString());
            Record question = Record.newRecord(name, type, dclass);
            Message query = Message.newQuery(question);
            Message response = null;

            try {
                response = resolver.send(query);
            }
            catch (Exception ex) {
                getLogger().warn("Query error!", ex);
                return null;
            }

            int rcode = response.getHeader().getRcode();
            if (rcode == Rcode.NOERROR || rcode == Rcode.NXDOMAIN) {
                cached = cache.addMessage(response);
                if (cached != null && cached.isSuccessful()) {
                    return processSetResponse(cached);
                }
View Full Code Here

    @Autowired
    private CacheManager cacheManager;

    public byte[] process(byte[] queryData) throws IOException {
        Message query = new Message(queryData);
        if (logger.isDebugEnabled()) {
            logger.debug("get query "
                    + query.getQuestion().getName().toString());
        }
        MessageWrapper responseMessage = new MessageWrapper(new Message(query
                .getHeader().getID()));
        for (Handler handler : handlerManager.getPreHandlers()) {
            boolean handle = handler.handle(new MessageWrapper(query),
                    responseMessage);
            if (!handle) {
View Full Code Here

    });
  }

  private void checkConnectTimeForAnswer0(Message query, Message message) {
    byte[] answerBytes = cacheManager.getResponseFromCache(query);
    Message answerInCache = null;
    if (answerBytes != null) {
      try {
        answerInCache = new Message(answerBytes);
        MessageCheckResult checkConnectionTime = checkConnectionTime(answerInCache);
        if (checkConnectionTime == MessageCheckResult.UNCHANGED) {
          return;
        } else if (checkConnectionTime == MessageCheckResult.CHANGEDE_BUT_USEFUL) {
          // remove unreachable address and save
          if (logger.isDebugEnabled()) {
            logger.debug("update record in cahce " + message);
          }
          cacheManager.setResponseToCache(query, answerInCache.toWire());
          return;
        }
      } catch (IOException e) {
      }
    }
View Full Code Here

                processExecutors.submit(new Runnable() {

                    @Override
                    public void run() {
                        try {
                            final Message message = new Message(answer);
                            forwardAnswerProcessor.handleAnswer(answer, message, remoteAddress, getAnswer(message));
                        } catch (Throwable e) {
                            logger.warn("forward exception " + e);
                        }
                    }
View Full Code Here

            RequestContextProcessor.processRequest(inDataPacket);
      byte[] response = queryProcesser.process(inDataPacket.getData());
      if (response != null) {
        responser.response(response);
      } else {
                Message query = new Message(
                        inDataPacket.getData());
                forwarder.forward(query.toWire(), query, responser);
      }
    } catch (Throwable e) {

      logger.warn(
          "Error processing UDP connection from "
View Full Code Here

   * @see java.lang.Object#toString()
   */
  @Override
  public String toString() {
        try {
            final Message message = new Message(bytes);
            return message.toString();
        } catch (IOException e) {

            if (bytes == null || bytes.length == 0) {
                return "[]";
            }
View Full Code Here

TOP

Related Classes of org.xbill.DNS.Message

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.