Scroll to navigation

ldns(3) Library Functions Manual ldns(3)


ldns_pkt_new, ldns_pkt_free, ldns_pkt_print, ldns_pkt_query_new, ldns_pkt_query_new_frm_str, ldns_pkt_reply_type - ldns_pkt creation, destruction and printing


#include <stdint.h>
#include <stdbool.h>

#include <ldns/ldns.h>

ldns_pkt* ldns_pkt_new(void);

void ldns_pkt_free(ldns_pkt *packet);

void ldns_pkt_print(FILE *output, const ldns_pkt *pkt);

ldns_pkt* ldns_pkt_query_new(ldns_rdf *rr_name, ldns_rr_type rr_type, ldns_rr_class rr_class, uint16_t flags);

ldns_status ldns_pkt_query_new_frm_str(ldns_pkt **p, const char *rr_name, ldns_rr_type rr_type, ldns_rr_class rr_class , uint16_t flags);

ldns_pkt_type ldns_pkt_reply_type(const ldns_pkt *p);


ldns_pkt_new() allocates and initializes a ldns_pkt structure.
Returns pointer to the new packet

ldns_pkt_free() frees the packet structure and all data that it contains.
packet: The packet structure to free
Returns void

ldns_pkt_print() Prints the data in the DNS packet to the given file stream (in presentation format)

output: the file stream to print to
pkt: the packet to print
Returns void

ldns_pkt_query_new() creates a packet with a query in it for the given name, type and class.
rr_name: the name to query for (not copied). The returned packet will take ownership of rr_name, so the caller should not free it.
rr_type: the type to query for
rr_class: the class to query for
flags: packet flags
Returns ldns_pkt* a pointer to the new pkt

ldns_pkt_query_new_frm_str() creates a query packet for the given name, type, class.
p: the packet to be returned
rr_name: the name to query for (as string)
rr_type: the type to query for
rr_class: the class to query for
flags: packet flags
Returns LDNS_STATUS_OK or a ldns_status mesg with the error

ldns_pkt_reply_type() looks inside the packet to determine what kind of packet it is, AUTH, NXDOMAIN, REFERRAL, etc.
p: the packet to examine
Returns the type of packet


The ldns team at NLnet Labs.


Please report bugs to or in our bugzilla at


Copyright (c) 2004 - 2006 NLnet Labs.

Licensed under the BSD License. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.


ldns_pkt. And perldoc Net::DNS, RFC1034, RFC1035, RFC4033, RFC4034 and RFC4035.


This manpage was automatically generated from the ldns source code.

30 May 2006