private Message sendAXFR(Message query) throws IOException {
   Name qname = query.getQuestion().getName();
   ZoneTransferIn xfrin = ZoneTransferIn.newAXFR(qname, address, tsig);
   xfrin.setTimeout((int) (getTimeout() / 1000));
   xfrin.setLocalAddress(localAddress);
   try {
     xfrin.run();
   } catch (ZoneTransferException e) {
     throw new WireParseException(e.getMessage());
   }
   List records = xfrin.getAXFR();
   Message response = new Message(query.getHeader().getID());
   response.getHeader().setFlag(Flags.AA);
   response.getHeader().setFlag(Flags.QR);
   response.addRecord(query.getQuestion(), Section.QUESTION);
   Iterator it = records.iterator();
   while (it.hasNext()) response.addRecord((Record) it.next(), Section.ANSWER);
   return response;
 }
Exemple #2
0
 /**
  * Creates a Zone by performing a zone transfer to the specified host.
  *
  * @see ZoneTransferIn
  */
 public Zone(Name zone, int dclass, String remote) throws IOException, ZoneTransferException {
   ZoneTransferIn xfrin = ZoneTransferIn.newAXFR(zone, remote, null);
   xfrin.setDClass(dclass);
   fromXFR(xfrin);
 }