NAME

DNS::LDNS::Packet - DNS packet

SYNOPSIS

use DNS::LDNS ();

my pkt = DNS::LDNS::Packet->new(name => rdata, type => LDNS_RR_TYPE_...,
  class => LDNS_RR_CLASS_..., flags => ...)
my pkt = DNS::LDNS::Packet->new

pkt2 = pkt->clone

pkt->to_string

rrlist = pkt->question
pkt->set_question(rrlist)
'
rrlist = pkt->answer
pkt->set_answer(rrlist)

rrlist = pkt->authority
pkt->set_authority(rrlist)

rrlist = pkt->additional
pkt->set_additional(rrlist)

rrlist = pkt->all
rrlist = pkt->all_noquestion

for (qw/qr aa tc rd cd ra ad/) {
  bool = pkt->$_
  pkt->set_$_(bool)
}

id = pkt->id
pkt->set_id(id)
pkt->set_random_id

count = pkt->qdcount
count = pkt->ancount
count = pkt->nscount
count = pkt->arcount

opcode = pkt->opcode
pkt->set_opcode(opcode)

rcode = pkt->rcode                  # Response code
pkt->set_rcode(rcode)

size = pkt->size

epoch = pkt->querytime
pkt->set_querytime(epoch)

rdata = pkt->answerfrom
pkt->set_answerfrom(rdata)

(sec, usec) = pkt->timestamp
pkt->set_timestamp(sec, usec)

bool = pkt->edns

size = pkt->edns_udp_size
pkt->set_edns_udp_size(size)

rcode = pkt->edns_extended_rcode
pkt->set_edns_extended_rcode(rcode)

v = pkt->edns_version
pkt->set_edns_version(v)

z = pkt->edns_z
pkt->set_edns_z(z)

do = pkt->edns_do
pkt->set_edns_do(do)

rdata = pkt->edns_data
pkt->set_edns_data(rdata)

pkt->set_flags(flags)

rrlist = pkt->rr_list_by_name(rdata, section)
rrlist = pkt->rr_list_by_type(type, section)
rrlist = pkt->rr_list_by_name_and_type(rdata, type, section)

bool = pkt->rr(section, rr)       # Check if rr exists

pkt->push_rr(section, rr)
pkt->safe_push_rr(section, rr)

count = pkt->section_count(section)
bool = pkt->empty

rr = pkt->tsig
pkt->set_tsig(rr)

type = pkt->reply_type

rrlist = pkt->get_rrsigs_for_name_and_type(rdata, rrtype)
rrlist = pkt->get_rrsigs_for_type(rrtype)

SEE ALSO

http://www.nlnetlabs.nl/projects/ldns

AUTHOR

Erik Pihl Ostlyngen, <erik.ostlyngen@uninett.no>

COPYRIGHT AND LICENSE

Copyright (C) 2013 by UNINETT Norid AS

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself, either Perl version 5.14.2 or, at your option, any later version of Perl 5 you may have available.