question: public DNSOutgoing addAnswer ( DNSIncoming in , InetAddress addr , int port , DNSOutgoing out , DNSRecord rec ) throws IOException { DNSOutgoing newOut = out ; if ( newOut == null ) { newOut = new DNSOutgoing ( DNSConstants . FLAGS_QR_RESPONSE | DNSConstants . FLAGS_AA , false , in . getSenderUDPPayload ( ) ) ; } try { newOut . addAnswer ( in , rec ) ; } catch ( final IOException e ) { newOut . setFlags ( newOut . getFlags ( ) | DNSConstants . FLAGS_TC ) ; newOut . setId ( in . getId ( ) ) ; send ( newOut ) ; newOut = new DNSOutgoing ( DNSConstants . FLAGS_QR_RESPONSE | DNSConstants . FLAGS_AA , false , in . getSenderUDPPayload ( ) ) ; newOut . addAnswer ( in , rec ) ; } return newOut ; }
target:  Add an answer to a question. Deal with the case when the outgoing packet overflows