Class DNSOutgoing


  • public final class DNSOutgoing
    extends DNSMessage
    An outgoing DNS message.
    Author:
    Arthur van Hoff, Rick Blair, Werner Randelshofer
    • Field Detail

      • USE_DOMAIN_NAME_COMPRESSION

        public static boolean USE_DOMAIN_NAME_COMPRESSION
        This can be used to turn off domain name compression. This was helpful for tracking problems interacting with other mdns implementations.
    • Constructor Detail

      • DNSOutgoing

        public DNSOutgoing​(int flags)
        Create an outgoing multicast query or response.
        Parameters:
        flags -
      • DNSOutgoing

        public DNSOutgoing​(int flags,
                           boolean multicast)
        Create an outgoing query or response.
        Parameters:
        flags -
        multicast -
      • DNSOutgoing

        public DNSOutgoing​(int flags,
                           boolean multicast,
                           int senderUDPPayload)
        Create an outgoing query or response.
        Parameters:
        flags -
        multicast -
        senderUDPPayload - The sender's UDP payload size is the number of bytes of the largest UDP payload that can be reassembled and delivered in the sender's network stack.
    • Method Detail

      • getDestination

        public java.net.InetSocketAddress getDestination()
        Get the forced destination address if a specific one was set.
        Returns:
        a forced destination address or null if no address is forced.
      • setDestination

        public void setDestination​(java.net.InetSocketAddress destination)
        Force a specific destination address if packet is sent.
        Parameters:
        destination - Set a destination address a packet should be sent to (instead the default one). You could use null to unset the forced destination.
      • availableSpace

        public int availableSpace()
        Return the number of byte available in the message.
        Returns:
        available space
      • addQuestion

        public void addQuestion​(DNSQuestion rec)
                         throws java.io.IOException
        Add a question to the message.
        Parameters:
        rec -
        Throws:
        java.io.IOException
      • addAnswer

        public void addAnswer​(DNSIncoming in,
                              DNSRecord rec)
                       throws java.io.IOException
        Add an answer if it is not suppressed.
        Parameters:
        in -
        rec -
        Throws:
        java.io.IOException
      • addAnswer

        public void addAnswer​(DNSRecord rec,
                              long now)
                       throws java.io.IOException
        Add an answer to the message.
        Parameters:
        rec -
        now -
        Throws:
        java.io.IOException
      • addAuthorativeAnswer

        public void addAuthorativeAnswer​(DNSRecord rec)
                                  throws java.io.IOException
        Add an authoritative answer to the message.
        Parameters:
        rec -
        Throws:
        java.io.IOException
      • addAdditionalAnswer

        public void addAdditionalAnswer​(DNSIncoming in,
                                        DNSRecord rec)
                                 throws java.io.IOException
        Add an additional answer to the record. Omit if there is no room.
        Parameters:
        in -
        rec -
        Throws:
        java.io.IOException
      • data

        public byte[] data()
        Builds the final message buffer to be send and returns it.
        Returns:
        bytes to send.
      • toString

        public java.lang.String toString()
        Overrides:
        toString in class java.lang.Object
      • getMaxUDPPayload

        public int getMaxUDPPayload()
        Returns:
        the maxUDPPayload