Java 类org.xbill.DNS.Opcode 实例源码

项目:CerDNS    文件:DNSServer.java   
@Override
public void run() {
    while (running) {
        try {
            buf.clear();
            SocketAddress src = channel.receive(buf);
            buf.flip();
            if (src != null) {
                log.debug("Received datagram from " + src);
                Message message = new Message(buf);
                if (message.getHeader().getOpcode() == Opcode.QUERY) {
                    // Dispatch
                    workers.execute(new ForwardTask(channel, src, message, workers));
                }
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}
项目:ddns    文件:TestDatagram.java   
public static void main(String[] args) throws Exception {
    try (DatagramSocket socket = new DatagramSocket()) {
        Message message = new Message();
        Header header = message.getHeader();
        header.setOpcode(Opcode.QUERY);
        header.setID(1);
        header.setRcode(Rcode.NOERROR);
        header.setFlag(Flags.RD);
        message.addRecord(Record.newRecord(new Name("www.xqbase.com."), Type.A, DClass.IN), Section.QUESTION);
        byte[] data = message.toWire();
        DatagramPacket packet = new DatagramPacket(data, data.length, new InetSocketAddress("localhost", 53));
        socket.send(packet);
        data = new byte[65536];
        packet = new DatagramPacket(data, data.length);
        socket.setSoTimeout(2000);
        socket.receive(packet);
        Message response = new Message(Bytes.left(data, packet.getLength()));
        System.out.println(response);
    }
}
项目:dnsjava    文件:HeaderTest.java   
public void test_toString()
   {
m_h.setOpcode(Opcode.value("STATUS"));
m_h.setRcode(Rcode.value("NXDOMAIN"));
m_h.setFlag(0); // qr
m_h.setFlag(7); // rd
m_h.setFlag(8); // ra
m_h.setFlag(11); // cd
m_h.setCount(1, 0xFF);
m_h.setCount(2, 0x0A);


String text = m_h.toString();

assertFalse(text.indexOf("id: 43981") == -1);
assertFalse(text.indexOf("opcode: STATUS") == -1);
assertFalse(text.indexOf("status: NXDOMAIN") == -1);
assertFalse(text.indexOf(" qr ") == -1);
assertFalse(text.indexOf(" rd ") == -1);
assertFalse(text.indexOf(" ra ") == -1);
assertFalse(text.indexOf(" cd ") == -1);
assertFalse(text.indexOf("qd: 0 ") == -1);
assertFalse(text.indexOf("an: 255 ") == -1);
assertFalse(text.indexOf("au: 10 ") == -1);
assertFalse(text.indexOf("ad: 0 ") == -1);
   }
项目:dnsjava    文件:HeaderTest.java   
public void test_clone()
   {
m_h.setOpcode(Opcode.value("IQUERY"));
m_h.setRcode(Rcode.value("SERVFAIL"));
m_h.setFlag(0); // qr
m_h.setFlag(7); // rd
m_h.setFlag(8); // ra
m_h.setFlag(11); // cd
m_h.setCount(1, 0xFF);
m_h.setCount(2, 0x0A);

Header h2 = (Header)m_h.clone();

assertNotSame(m_h, h2);
assertEquals(m_h.getID(), h2.getID());
for( int i=0; i<16; ++i){
    if( (i>0 && i<5) || i > 11){
    continue;
    }
    assertEquals(m_h.getFlag(i), h2.getFlag(i));
}
for( int i=0; i<4; ++i){
    assertEquals(m_h.getCount(i), h2.getCount(i));
}
   }
项目:JavaDNS    文件:HeaderTest.java   
public void test_toString()
   {
m_h.setOpcode(Opcode.value("STATUS"));
m_h.setRcode(Rcode.value("NXDOMAIN"));
m_h.setFlag(0); // qr
m_h.setFlag(7); // rd
m_h.setFlag(8); // ra
m_h.setFlag(11); // cd
m_h.setCount(1, 0xFF);
m_h.setCount(2, 0x0A);


String text = m_h.toString();

assertFalse(text.indexOf("id: 43981") == -1);
assertFalse(text.indexOf("opcode: STATUS") == -1);
assertFalse(text.indexOf("status: NXDOMAIN") == -1);
assertFalse(text.indexOf(" qr ") == -1);
assertFalse(text.indexOf(" rd ") == -1);
assertFalse(text.indexOf(" ra ") == -1);
assertFalse(text.indexOf(" cd ") == -1);
assertFalse(text.indexOf("qd: 0 ") == -1);
assertFalse(text.indexOf("an: 255 ") == -1);
assertFalse(text.indexOf("au: 10 ") == -1);
assertFalse(text.indexOf("ad: 0 ") == -1);
   }
项目:JavaDNS    文件:HeaderTest.java   
public void test_clone()
   {
m_h.setOpcode(Opcode.value("IQUERY"));
m_h.setRcode(Rcode.value("SERVFAIL"));
m_h.setFlag(0); // qr
m_h.setFlag(7); // rd
m_h.setFlag(8); // ra
m_h.setFlag(11); // cd
m_h.setCount(1, 0xFF);
m_h.setCount(2, 0x0A);

Header h2 = (Header)m_h.clone();

assertNotSame(m_h, h2);
assertEquals(m_h.getID(), h2.getID());
for( int i=0; i<16; ++i){
    if( (i>0 && i<5) || i > 11){
    continue;
    }
    assertEquals(m_h.getFlag(i), h2.getFlag(i));
}
for( int i=0; i<4; ++i){
    assertEquals(m_h.getCount(i), h2.getCount(i));
}
   }
项目:dnsjava-fork    文件:HeaderTest.java   
public void test_toString()
   {
m_h.setOpcode(Opcode.value("STATUS"));
m_h.setRcode(Rcode.value("NXDOMAIN"));
m_h.setFlag(0); // qr
m_h.setFlag(7); // rd
m_h.setFlag(8); // ra
m_h.setFlag(11); // cd
m_h.setCount(1, 0xFF);
m_h.setCount(2, 0x0A);


String text = m_h.toString();

assertFalse(text.indexOf("id: 43981") == -1);
assertFalse(text.indexOf("opcode: STATUS") == -1);
assertFalse(text.indexOf("status: NXDOMAIN") == -1);
assertFalse(text.indexOf(" qr ") == -1);
assertFalse(text.indexOf(" rd ") == -1);
assertFalse(text.indexOf(" ra ") == -1);
assertFalse(text.indexOf(" cd ") == -1);
assertFalse(text.indexOf("qd: 0 ") == -1);
assertFalse(text.indexOf("an: 255 ") == -1);
assertFalse(text.indexOf("au: 10 ") == -1);
assertFalse(text.indexOf("ad: 0 ") == -1);
   }
项目:dnsjava-fork    文件:HeaderTest.java   
public void test_clone()
   {
m_h.setOpcode(Opcode.value("IQUERY"));
m_h.setRcode(Rcode.value("SERVFAIL"));
m_h.setFlag(0); // qr
m_h.setFlag(7); // rd
m_h.setFlag(8); // ra
m_h.setFlag(11); // cd
m_h.setCount(1, 0xFF);
m_h.setCount(2, 0x0A);

Header h2 = (Header)m_h.clone();

assertNotSame(m_h, h2);
assertEquals(m_h.getID(), h2.getID());
for( int i=0; i<16; ++i){
    if( (i>0 && i<5) || i > 11){
    continue;
    }
    assertEquals(m_h.getFlag(i), h2.getFlag(i));
}
for( int i=0; i<4; ++i){
    assertEquals(m_h.getCount(i), h2.getCount(i));
}
   }
项目:nomulus    文件:DnsMessageTransport.java   
private void checkValidResponse(Message query, Message response) {
  verify(
      response.getHeader().getID() == query.getHeader().getID(),
      "response ID %s does not match query ID %s",
      response.getHeader().getID(),
      query.getHeader().getID());
  verify(
      response.getHeader().getOpcode() == query.getHeader().getOpcode(),
      "response opcode '%s' does not match query opcode '%s'",
      Opcode.string(response.getHeader().getOpcode()),
      Opcode.string(query.getHeader().getOpcode()));
}
项目:nomulus    文件:DnsUpdateWriterTest.java   
private Message messageWithResponseCode(int responseCode) {
  Message message = new Message();
  message.getHeader().setOpcode(Opcode.UPDATE);
  message.getHeader().setFlag(Flags.QR);
  message.getHeader().setRcode(responseCode);
  return message;
}
项目:nomulus    文件:DnsMessageTransportTest.java   
@Test
public void testResponseOpcodeMismatchThrowsException() throws Exception {
  simpleQuery.getHeader().setOpcode(Opcode.QUERY);
  expectedResponse.getHeader().setOpcode(Opcode.STATUS);
  when(mockSocket.getInputStream())
      .thenReturn(new ByteArrayInputStream(messageToBytesWithLength(expectedResponse)));
  when(mockSocket.getOutputStream()).thenReturn(new ByteArrayOutputStream());
  VerifyException thrown = expectThrows(VerifyException.class, () -> resolver.send(simpleQuery));
  assertThat(thrown)
      .hasMessageThat()
      .contains("response opcode 'STATUS' does not match query opcode 'QUERY'");
}