Class DNSMessage

  • Direct Known Subclasses:
    DNSIncoming, DNSOutgoing

    public abstract class DNSMessage
    extends java.lang.Object
    DNSMessage define a DNS message either incoming or outgoing.
    • Field Detail

      • _id

        private int _id
      • _multicast

        boolean _multicast
      • _flags

        private int _flags
      • _questions

        protected final java.util.List<DNSQuestion> _questions
      • _answers

        protected final java.util.List<DNSRecord> _answers
      • _authoritativeAnswers

        protected final java.util.List<DNSRecord> _authoritativeAnswers
      • _additionals

        protected final java.util.List<DNSRecord> _additionals
    • Constructor Detail

      • DNSMessage

        protected DNSMessage​(int flags,
                             int id,
                             boolean multicast)
        Parameters:
        flags -
        id -
        multicast -
    • Method Detail

      • getId

        public int getId()
        Returns:
        message id
      • setId

        public void setId​(int id)
        Parameters:
        id - the id to set
      • getFlags

        public int getFlags()
        Returns:
        message flags
      • setFlags

        public void setFlags​(int flags)
        Parameters:
        flags - the flags to set
      • isMulticast

        public boolean isMulticast()
        Returns:
        true if multicast
      • getQuestions

        public java.util.Collection<? extends DNSQuestion> getQuestions()
        Returns:
        list of questions
      • getNumberOfQuestions

        public int getNumberOfQuestions()
        Returns:
        number of questions in the message
      • getAllAnswers

        public java.util.List<DNSRecord> getAllAnswers()
      • getAnswers

        public java.util.Collection<? extends DNSRecord> getAnswers()
        Returns:
        list of answers
      • getNumberOfAnswers

        public int getNumberOfAnswers()
        Returns:
        number of answers in the message
      • getAuthorities

        public java.util.Collection<? extends DNSRecord> getAuthorities()
        Returns:
        list of authorities
      • getNumberOfAuthorities

        public int getNumberOfAuthorities()
        Returns:
        number of authorities in the message
      • getAdditionals

        public java.util.Collection<? extends DNSRecord> getAdditionals()
        Returns:
        list of additional answers
      • getNumberOfAdditionals

        public int getNumberOfAdditionals()
        Returns:
        number of additional in the message
      • isValidResponseCode

        public boolean isValidResponseCode()
        Check is the response code is valid
        The only valid value is zero all other values signify an error and the message must be ignored.
        Returns:
        true if the message has a valid response code.
      • getOperationCode

        public int getOperationCode()
        Returns the operation code value. Currently only standard query 0 is valid.
        Returns:
        The operation code value.
      • isTruncated

        public boolean isTruncated()
        Check if the message is truncated.
        Returns:
        true if the message was truncated
      • isAuthoritativeAnswer

        public boolean isAuthoritativeAnswer()
        Check if the message is an authoritative answer.
        Returns:
        true if the message is an authoritative answer
      • isQuery

        public boolean isQuery()
        Check if the message is a query.
        Returns:
        true is the message is a query
      • isResponse

        public boolean isResponse()
        Check if the message is a response.
        Returns:
        true is the message is a response
      • isEmpty

        public boolean isEmpty()
        Check if the message is empty
        Returns:
        true is the message is empty
      • print

        java.lang.String print()
        Debugging.
      • print

        protected java.lang.String print​(byte[] data)
        Debugging.
        Parameters:
        data -
        Returns:
        data dump