/** * Add an answer to the message. * * @param rec * @param now * @exception IOException */ public void addAnswer(DNSRecord rec, long now) throws IOException { if (rec != null) { if ((now == 0) || !rec.isExpired(now)) { MessageOutputStream record = new MessageOutputStream(512, this); record.writeRecord(rec, now); byte[] byteArray = record.toByteArray(); if (byteArray.length < this.availableSpace()) { _answers.add(rec); _answersBytes.write(byteArray, 0, byteArray.length); } else { throw new IOException("message full"); } } } }
@Override void write(MessageOutputStream out) { if (_addr != null) { byte[] buffer = _addr.getAddress(); // If we have a type AAAA records we should answer with a IPv6 address if (_addr instanceof Inet4Address) { byte[] tempbuffer = buffer; buffer = new byte[16]; for (int i = 0; i < 16; i++) { if (i < 11) { buffer[i] = tempbuffer[i - 12]; } else { buffer[i] = 0; } } } int length = buffer.length; out.writeBytes(buffer, 0, length); } }
_names.clear(); MessageOutputStream message = new MessageOutputStream(_maxUDPPayload, this); message.writeShort(_multicast ? 0 : this.getId()); message.writeShort(this.getFlags()); message.writeShort(this.getNumberOfQuestions()); message.writeShort(this.getNumberOfAnswers()); message.writeShort(this.getNumberOfAuthorities()); message.writeShort(this.getNumberOfAdditionals()); for (DNSQuestion question : _questions) { message.writeQuestion(question); message.writeRecord(record, now); message.writeRecord(record, now); message.writeRecord(record, now); byte[] result = message.toByteArray(); try { message.close(); } catch (IOException exception) {} return result;
/** * Builds the final message buffer to be send and returns it. * * @return bytes to send. */ public byte[] data() { long now = System.currentTimeMillis(); // System.currentTimeMillis() _names.clear(); MessageOutputStream message = new MessageOutputStream(_maxUDPPayload, this); message.writeShort(_multicast ? 0 : this.getId()); message.writeShort(this.getFlags()); message.writeShort(this.getNumberOfQuestions()); message.writeShort(this.getNumberOfAnswers()); message.writeShort(this.getNumberOfAuthorities()); message.writeShort(this.getNumberOfAdditionals()); for (DNSQuestion question : _questions) { message.writeQuestion(question); } for (DNSRecord record : _answers) { message.writeRecord(record, now); } for (DNSRecord record : _authoritativeAnswers) { message.writeRecord(record, now); } for (DNSRecord record : _additionals) { message.writeRecord(record, now); } return message.toByteArray(); }
/** * Builds the final message buffer to be send and returns it. * * @return bytes to send. */ public byte[] data() { long now = System.currentTimeMillis(); // System.currentTimeMillis() _names.clear(); MessageOutputStream message = new MessageOutputStream(_maxUDPPayload, this); message.writeShort(_multicast ? 0 : this.getId()); message.writeShort(this.getFlags()); message.writeShort(this.getNumberOfQuestions()); message.writeShort(this.getNumberOfAnswers()); message.writeShort(this.getNumberOfAuthorities()); message.writeShort(this.getNumberOfAdditionals()); for (DNSQuestion question : _questions) { message.writeQuestion(question); } for (DNSRecord record : _answers) { message.writeRecord(record, now); } for (DNSRecord record : _authoritativeAnswers) { message.writeRecord(record, now); } for (DNSRecord record : _additionals) { message.writeRecord(record, now); } return message.toByteArray(); }
/** * Builds the final message buffer to be send and returns it. * * @return bytes to send. */ public byte[] data() { long now = System.currentTimeMillis(); // System.currentTimeMillis() _names.clear(); MessageOutputStream message = new MessageOutputStream(_maxUDPPayload, this); message.writeShort(_multicast ? 0 : this.getId()); message.writeShort(this.getFlags()); message.writeShort(this.getNumberOfQuestions()); message.writeShort(this.getNumberOfAnswers()); message.writeShort(this.getNumberOfAuthorities()); message.writeShort(this.getNumberOfAdditionals()); for (DNSQuestion question : _questions) { message.writeQuestion(question); } for (DNSRecord record : _answers) { message.writeRecord(record, now); } for (DNSRecord record : _authoritativeAnswers) { message.writeRecord(record, now); } for (DNSRecord record : _additionals) { message.writeRecord(record, now); } return message.toByteArray(); }
/** * Add an answer to the message. * * @param rec * @param now * @exception IOException */ public void addAnswer(DNSRecord rec, long now) throws IOException { if (rec != null) { if ((now == 0) || !rec.isExpired(now)) { MessageOutputStream record = new MessageOutputStream(512, this); record.writeRecord(rec, now); byte[] byteArray = record.toByteArray(); if (byteArray.length < this.availableSpace()) { _answers.add(rec); _answersBytes.write(byteArray, 0, byteArray.length); } else { throw new IOException("message full"); } } } }
@Override void write(MessageOutputStream out) { if (_addr != null) { byte[] buffer = _addr.getAddress(); // If we have a type AAAA records we should answer with a IPv6 address if (_addr instanceof Inet4Address) { byte[] tempbuffer = buffer; buffer = new byte[16]; for (int i = 0; i < 16; i++) { if (i < 11) { buffer[i] = tempbuffer[i - 12]; } else { buffer[i] = 0; } } } int length = buffer.length; out.writeBytes(buffer, 0, length); } }
/** * Add an answer to the message. * * @param rec * @param now * @exception IOException */ public void addAnswer(DNSRecord rec, long now) throws IOException { if (rec != null) { if ((now == 0) || !rec.isExpired(now)) { MessageOutputStream record = new MessageOutputStream(512, this); record.writeRecord(rec, now); byte[] byteArray = record.toByteArray(); record.close(); if (byteArray.length < this.availableSpace()) { _answers.add(rec); _answersBytes.write(byteArray, 0, byteArray.length); } else { throw new IOException("message full"); } } } }
/** * Add an answer to the message. * * @param rec * @param now * @exception IOException */ public void addAnswer(DNSRecord rec, long now) throws IOException { if (rec != null) { if ((now == 0) || !rec.isExpired(now)) { MessageOutputStream record = new MessageOutputStream(512, this); record.writeRecord(rec, now); byte[] byteArray = record.toByteArray(); if (byteArray.length < this.availableSpace()) { _answers.add(rec); _answersBytes.write(byteArray, 0, byteArray.length); } else { throw new IOException("message full"); } } } }
@Override void write(MessageOutputStream out) { if (_addr != null) { byte[] buffer = _addr.getAddress(); // If we have a type AAAA records we should answer with a IPv6 address if (_addr instanceof Inet4Address) { byte[] tempbuffer = buffer; buffer = new byte[16]; for (int i = 0; i < 16; i++) { if (i < 11) { buffer[i] = tempbuffer[i - 12]; } else { buffer[i] = 0; } } } int length = buffer.length; out.writeBytes(buffer, 0, length); } }
@Override void write(MessageOutputStream out) { if (_addr != null) { byte[] buffer = _addr.getAddress(); // If we have a type AAAA records we should answer with a IPv6 address if (_addr instanceof Inet4Address) { byte[] tempbuffer = buffer; buffer = new byte[16]; for (int i = 0; i < 16; i++) { if (i < 11) { buffer[i] = tempbuffer[i - 12]; } else { buffer[i] = 0; } } } int length = buffer.length; out.writeBytes(buffer, 0, length); } }