summaryrefslogtreecommitdiff
path: root/doc/man
diff options
context:
space:
mode:
Diffstat (limited to 'doc/man')
-rw-r--r--doc/man/man3/ldns_algorithm.381
l---------doc/man/man3/ldns_axfr_abort.31
l---------doc/man/man3/ldns_axfr_complete.31
l---------doc/man/man3/ldns_axfr_last_pkt.31
l---------doc/man/man3/ldns_axfr_next.31
-rw-r--r--doc/man/man3/ldns_axfr_start.381
-rw-r--r--doc/man/man3/ldns_b32_ntop_calculate_size.354
l---------doc/man/man3/ldns_b32_pton_calculate_size.31
l---------doc/man/man3/ldns_b64_ntop_calculate_size.31
l---------doc/man/man3/ldns_b64_pton_calculate_size.31
-rw-r--r--doc/man/man3/ldns_bget_token.379
l---------doc/man/man3/ldns_bgetc.31
l---------doc/man/man3/ldns_bskipcs.31
-rw-r--r--doc/man/man3/ldns_bubblebabble.339
-rw-r--r--doc/man/man3/ldns_buffer.3203
-rw-r--r--doc/man/man3/ldns_buffer2pkt_wire.349
l---------doc/man/man3/ldns_buffer2str.31
l---------doc/man/man3/ldns_buffer_at.31
l---------doc/man/man3/ldns_buffer_available.31
l---------doc/man/man3/ldns_buffer_available_at.31
l---------doc/man/man3/ldns_buffer_begin.31
l---------doc/man/man3/ldns_buffer_capacity.31
l---------doc/man/man3/ldns_buffer_clear.31
l---------doc/man/man3/ldns_buffer_copy.31
l---------doc/man/man3/ldns_buffer_current.31
l---------doc/man/man3/ldns_buffer_end.31
l---------doc/man/man3/ldns_buffer_export.31
l---------doc/man/man3/ldns_buffer_export2str.31
-rw-r--r--doc/man/man3/ldns_buffer_flip.391
l---------doc/man/man3/ldns_buffer_free.31
-rw-r--r--doc/man/man3/ldns_buffer_limit.3140
l---------doc/man/man3/ldns_buffer_new.31
l---------doc/man/man3/ldns_buffer_new_frm_data.31
l---------doc/man/man3/ldns_buffer_position.31
l---------doc/man/man3/ldns_buffer_printf.31
l---------doc/man/man3/ldns_buffer_read.31
l---------doc/man/man3/ldns_buffer_read_at.31
l---------doc/man/man3/ldns_buffer_read_u16.31
l---------doc/man/man3/ldns_buffer_read_u16_at.31
l---------doc/man/man3/ldns_buffer_read_u32.31
l---------doc/man/man3/ldns_buffer_read_u32_at.31
l---------doc/man/man3/ldns_buffer_read_u8.31
l---------doc/man/man3/ldns_buffer_read_u8_at.31
l---------doc/man/man3/ldns_buffer_remaining.31
-rw-r--r--doc/man/man3/ldns_buffer_remaining_at.3107
l---------doc/man/man3/ldns_buffer_reserve.31
l---------doc/man/man3/ldns_buffer_rewind.31
l---------doc/man/man3/ldns_buffer_set_capacity.31
l---------doc/man/man3/ldns_buffer_set_limit.31
l---------doc/man/man3/ldns_buffer_set_position.31
l---------doc/man/man3/ldns_buffer_skip.31
l---------doc/man/man3/ldns_buffer_status.31
l---------doc/man/man3/ldns_buffer_status_ok.31
l---------doc/man/man3/ldns_buffer_write.31
-rw-r--r--doc/man/man3/ldns_buffer_write_at.3242
l---------doc/man/man3/ldns_buffer_write_string.31
l---------doc/man/man3/ldns_buffer_write_string_at.31
l---------doc/man/man3/ldns_buffer_write_u16.31
l---------doc/man/man3/ldns_buffer_write_u16_at.31
l---------doc/man/man3/ldns_buffer_write_u32.31
l---------doc/man/man3/ldns_buffer_write_u32_at.31
l---------doc/man/man3/ldns_buffer_write_u8.31
l---------doc/man/man3/ldns_buffer_write_u8_at.31
-rw-r--r--doc/man/man3/ldns_calc_keytag.359
l---------doc/man/man3/ldns_calc_keytag_raw.31
-rw-r--r--doc/man/man3/ldns_create_nsec.350
l---------doc/man/man3/ldns_dane_cert2rdf.31
l---------doc/man/man3/ldns_dane_create_tlsa_owner.31
-rw-r--r--doc/man/man3/ldns_dane_create_tlsa_rr.3133
l---------doc/man/man3/ldns_dane_select_certificate.31
-rw-r--r--doc/man/man3/ldns_dane_verify.3124
l---------doc/man/man3/ldns_dane_verify_rr.31
-rw-r--r--doc/man/man3/ldns_dname2canonical.344
l---------doc/man/man3/ldns_dname_cat.31
-rw-r--r--doc/man/man3/ldns_dname_cat_clone.358
-rw-r--r--doc/man/man3/ldns_dname_compare.363
l---------doc/man/man3/ldns_dname_interval.31
-rw-r--r--doc/man/man3/ldns_dname_is_subdomain.372
l---------doc/man/man3/ldns_dname_label.31
l---------doc/man/man3/ldns_dname_label_count.31
-rw-r--r--doc/man/man3/ldns_dname_left_chop.356
-rw-r--r--doc/man/man3/ldns_dname_new.373
l---------doc/man/man3/ldns_dname_new_frm_data.31
l---------doc/man/man3/ldns_dname_new_frm_str.31
l---------doc/man/man3/ldns_dname_str_absolute.31
l---------doc/man/man3/ldns_dnssec_build_data_chain.31
-rw-r--r--doc/man/man3/ldns_dnssec_data_chain.3157
l---------doc/man/man3/ldns_dnssec_data_chain_deep_free.31
l---------doc/man/man3/ldns_dnssec_data_chain_free.31
-rw-r--r--doc/man/man3/ldns_dnssec_data_chain_new.398
l---------doc/man/man3/ldns_dnssec_data_chain_print.31
l---------doc/man/man3/ldns_dnssec_data_chain_struct.31
l---------doc/man/man3/ldns_dnssec_derive_trust_tree.31
l---------doc/man/man3/ldns_dnssec_derive_trust_tree_dnskey_rrset.31
l---------doc/man/man3/ldns_dnssec_derive_trust_tree_ds_rrset.31
l---------doc/man/man3/ldns_dnssec_derive_trust_tree_no_sig.31
l---------doc/man/man3/ldns_dnssec_derive_trust_tree_normal_rrset.31
l---------doc/man/man3/ldns_dnssec_name.31
l---------doc/man/man3/ldns_dnssec_name_add_rr.31
l---------doc/man/man3/ldns_dnssec_name_cmp.31
l---------doc/man/man3/ldns_dnssec_name_find_rrset.31
l---------doc/man/man3/ldns_dnssec_name_free.31
l---------doc/man/man3/ldns_dnssec_name_name.31
-rw-r--r--doc/man/man3/ldns_dnssec_name_new.3151
l---------doc/man/man3/ldns_dnssec_name_new_frm_rr.31
l---------doc/man/man3/ldns_dnssec_name_node_next_nonglue.31
l---------doc/man/man3/ldns_dnssec_name_print.31
l---------doc/man/man3/ldns_dnssec_name_set_name.31
l---------doc/man/man3/ldns_dnssec_name_set_nsec.31
l---------doc/man/man3/ldns_dnssec_remove_signatures.31
l---------doc/man/man3/ldns_dnssec_rrs.31
l---------doc/man/man3/ldns_dnssec_rrs_add_rr.31
l---------doc/man/man3/ldns_dnssec_rrs_free.31
-rw-r--r--doc/man/man3/ldns_dnssec_rrs_new.376
l---------doc/man/man3/ldns_dnssec_rrs_print.31
l---------doc/man/man3/ldns_dnssec_rrsets.31
l---------doc/man/man3/ldns_dnssec_rrsets_add_rr.31
l---------doc/man/man3/ldns_dnssec_rrsets_free.31
-rw-r--r--doc/man/man3/ldns_dnssec_rrsets_new.3105
l---------doc/man/man3/ldns_dnssec_rrsets_print.31
l---------doc/man/man3/ldns_dnssec_rrsets_set_type.31
l---------doc/man/man3/ldns_dnssec_rrsets_type.31
l---------doc/man/man3/ldns_dnssec_trust_tree.31
l---------doc/man/man3/ldns_dnssec_trust_tree_add_parent.31
l---------doc/man/man3/ldns_dnssec_trust_tree_contains_keys.31
l---------doc/man/man3/ldns_dnssec_trust_tree_depth.31
l---------doc/man/man3/ldns_dnssec_trust_tree_free.31
-rw-r--r--doc/man/man3/ldns_dnssec_trust_tree_new.3195
l---------doc/man/man3/ldns_dnssec_trust_tree_print.31
l---------doc/man/man3/ldns_dnssec_trust_tree_print_sm.31
-rw-r--r--doc/man/man3/ldns_dnssec_verify_denial.380
l---------doc/man/man3/ldns_dnssec_verify_denial_nsec3.31
-rw-r--r--doc/man/man3/ldns_dnssec_zone.3178
l---------doc/man/man3/ldns_dnssec_zone_add_empty_nonterminals.31
l---------doc/man/man3/ldns_dnssec_zone_add_rr.31
l---------doc/man/man3/ldns_dnssec_zone_create_nsecs.31
l---------doc/man/man3/ldns_dnssec_zone_create_rrsigs.31
-rw-r--r--doc/man/man3/ldns_dnssec_zone_find_rrset.3119
l---------doc/man/man3/ldns_dnssec_zone_free.31
l---------doc/man/man3/ldns_dnssec_zone_mark_glue.31
l---------doc/man/man3/ldns_dnssec_zone_names_print.31
l---------doc/man/man3/ldns_dnssec_zone_new.31
l---------doc/man/man3/ldns_dnssec_zone_print.31
-rw-r--r--doc/man/man3/ldns_dnssec_zone_sign.3170
l---------doc/man/man3/ldns_dnssec_zone_sign_nsec3.31
l---------doc/man/man3/ldns_duration2string.31
l---------doc/man/man3/ldns_duration2time.31
l---------doc/man/man3/ldns_duration_cleanup.31
l---------doc/man/man3/ldns_duration_compare.31
l---------doc/man/man3/ldns_duration_create.31
l---------doc/man/man3/ldns_duration_create_from_string.31
-rw-r--r--doc/man/man3/ldns_duration_type.3129
-rw-r--r--doc/man/man3/ldns_fget_token.367
l---------doc/man/man3/ldns_fskipcs.31
-rw-r--r--doc/man/man3/ldns_get_errorstr_by_id.344
-rw-r--r--doc/man/man3/ldns_get_rr_class_by_name.356
-rw-r--r--doc/man/man3/ldns_get_rr_list_addr_by_name.366
-rw-r--r--doc/man/man3/ldns_get_rr_list_hosts_frm_file.374
l---------doc/man/man3/ldns_get_rr_list_hosts_frm_fp.31
l---------doc/man/man3/ldns_get_rr_list_hosts_frm_fp_l.31
l---------doc/man/man3/ldns_get_rr_list_name_by_addr.31
l---------doc/man/man3/ldns_get_rr_type_by_name.31
-rw-r--r--doc/man/man3/ldns_getaddrinfo.354
-rw-r--r--doc/man/man3/ldns_init_random.341
-rw-r--r--doc/man/man3/ldns_is_rrset.346
-rw-r--r--doc/man/man3/ldns_key.341
l---------doc/man/man3/ldns_key2buffer_str.31
-rw-r--r--doc/man/man3/ldns_key2rr.350
l---------doc/man/man3/ldns_key2str.31
l---------doc/man/man3/ldns_key_algo_supported.31
l---------doc/man/man3/ldns_key_algorithm.31
-rw-r--r--doc/man/man3/ldns_key_buf2dsa.358
l---------doc/man/man3/ldns_key_buf2rsa.31
l---------doc/man/man3/ldns_key_deep_free.31
l---------doc/man/man3/ldns_key_dsa_key.31
l---------doc/man/man3/ldns_key_expiration.31
l---------doc/man/man3/ldns_key_flags.31
-rw-r--r--doc/man/man3/ldns_key_free.363
l---------doc/man/man3/ldns_key_hmac_key.31
l---------doc/man/man3/ldns_key_inception.31
l---------doc/man/man3/ldns_key_keytag.31
l---------doc/man/man3/ldns_key_list_free.31
l---------doc/man/man3/ldns_key_list_key.31
-rw-r--r--doc/man/man3/ldns_key_list_key_count.3154
-rw-r--r--doc/man/man3/ldns_key_list_new.339
l---------doc/man/man3/ldns_key_list_pop_key.31
-rw-r--r--doc/man/man3/ldns_key_list_push_key.358
l---------doc/man/man3/ldns_key_list_set_key_count.31
-rw-r--r--doc/man/man3/ldns_key_new.3139
l---------doc/man/man3/ldns_key_new_frm_algorithm.31
l---------doc/man/man3/ldns_key_new_frm_fp.31
l---------doc/man/man3/ldns_key_new_frm_fp_dsa.31
l---------doc/man/man3/ldns_key_new_frm_fp_dsa_l.31
l---------doc/man/man3/ldns_key_new_frm_fp_l.31
l---------doc/man/man3/ldns_key_new_frm_fp_rsa.31
l---------doc/man/man3/ldns_key_new_frm_fp_rsa_l.31
l---------doc/man/man3/ldns_key_origttl.31
-rw-r--r--doc/man/man3/ldns_key_print.347
l---------doc/man/man3/ldns_key_pubkey_owner.31
-rw-r--r--doc/man/man3/ldns_key_rr2ds.350
l---------doc/man/man3/ldns_key_rsa_key.31
-rw-r--r--doc/man/man3/ldns_key_set_algorithm.3158
l---------doc/man/man3/ldns_key_set_dsa_key.31
l---------doc/man/man3/ldns_key_set_expiration.31
l---------doc/man/man3/ldns_key_set_flags.31
l---------doc/man/man3/ldns_key_set_hmac_key.31
l---------doc/man/man3/ldns_key_set_inception.31
l---------doc/man/man3/ldns_key_set_keytag.31
l---------doc/man/man3/ldns_key_set_origttl.31
l---------doc/man/man3/ldns_key_set_pubkey_owner.31
l---------doc/man/man3/ldns_key_set_rsa_key.31
l---------doc/man/man3/ldns_native2rdf_int16.31
l---------doc/man/man3/ldns_native2rdf_int16_data.31
l---------doc/man/man3/ldns_native2rdf_int32.31
-rw-r--r--doc/man/man3/ldns_native2rdf_int8.3136
-rw-r--r--doc/man/man3/ldns_octet.349
-rw-r--r--doc/man/man3/ldns_pkt.3139
-rw-r--r--doc/man/man3/ldns_pkt2buffer_str.3188
l---------doc/man/man3/ldns_pkt2buffer_wire.31
l---------doc/man/man3/ldns_pkt2str.31
l---------doc/man/man3/ldns_pkt2wire.31
l---------doc/man/man3/ldns_pkt_aa.31
l---------doc/man/man3/ldns_pkt_ad.31
l---------doc/man/man3/ldns_pkt_additional.31
l---------doc/man/man3/ldns_pkt_ancount.31
l---------doc/man/man3/ldns_pkt_answer.31
l---------doc/man/man3/ldns_pkt_answerfrom.31
l---------doc/man/man3/ldns_pkt_arcount.31
l---------doc/man/man3/ldns_pkt_authority.31
l---------doc/man/man3/ldns_pkt_cd.31
-rw-r--r--doc/man/man3/ldns_pkt_edns.3150
l---------doc/man/man3/ldns_pkt_edns_data.31
l---------doc/man/man3/ldns_pkt_edns_extended_rcode.31
l---------doc/man/man3/ldns_pkt_edns_udp_size.31
l---------doc/man/man3/ldns_pkt_edns_version.31
l---------doc/man/man3/ldns_pkt_edns_z.31
l---------doc/man/man3/ldns_pkt_free.31
l---------doc/man/man3/ldns_pkt_get_opcode.31
l---------doc/man/man3/ldns_pkt_get_rcode.31
l---------doc/man/man3/ldns_pkt_get_section_clone.31
-rw-r--r--doc/man/man3/ldns_pkt_id.3311
-rw-r--r--doc/man/man3/ldns_pkt_new.3114
l---------doc/man/man3/ldns_pkt_nscount.31
l---------doc/man/man3/ldns_pkt_print.31
l---------doc/man/man3/ldns_pkt_qdcount.31
l---------doc/man/man3/ldns_pkt_qr.31
l---------doc/man/man3/ldns_pkt_query_new.31
l---------doc/man/man3/ldns_pkt_query_new_frm_str.31
l---------doc/man/man3/ldns_pkt_querytime.31
l---------doc/man/man3/ldns_pkt_question.31
l---------doc/man/man3/ldns_pkt_ra.31
l---------doc/man/man3/ldns_pkt_rd.31
l---------doc/man/man3/ldns_pkt_reply_type.31
l---------doc/man/man3/ldns_pkt_rr_list_by_name.31
l---------doc/man/man3/ldns_pkt_rr_list_by_name_and_type.31
l---------doc/man/man3/ldns_pkt_rr_list_by_type.31
l---------doc/man/man3/ldns_pkt_section.31
l---------doc/man/man3/ldns_pkt_set_aa.31
l---------doc/man/man3/ldns_pkt_set_ad.31
l---------doc/man/man3/ldns_pkt_set_ancount.31
l---------doc/man/man3/ldns_pkt_set_answerfrom.31
l---------doc/man/man3/ldns_pkt_set_arcount.31
l---------doc/man/man3/ldns_pkt_set_cd.31
l---------doc/man/man3/ldns_pkt_set_edns_data.31
l---------doc/man/man3/ldns_pkt_set_edns_extended_rcode.31
l---------doc/man/man3/ldns_pkt_set_edns_udp_size.31
l---------doc/man/man3/ldns_pkt_set_edns_version.31
l---------doc/man/man3/ldns_pkt_set_edns_z.31
-rw-r--r--doc/man/man3/ldns_pkt_set_flags.3240
l---------doc/man/man3/ldns_pkt_set_id.31
l---------doc/man/man3/ldns_pkt_set_nscount.31
l---------doc/man/man3/ldns_pkt_set_opcode.31
l---------doc/man/man3/ldns_pkt_set_qdcount.31
l---------doc/man/man3/ldns_pkt_set_qr.31
l---------doc/man/man3/ldns_pkt_set_querytime.31
l---------doc/man/man3/ldns_pkt_set_ra.31
l---------doc/man/man3/ldns_pkt_set_rcode.31
l---------doc/man/man3/ldns_pkt_set_rd.31
l---------doc/man/man3/ldns_pkt_set_section_count.31
l---------doc/man/man3/ldns_pkt_set_size.31
l---------doc/man/man3/ldns_pkt_set_tc.31
l---------doc/man/man3/ldns_pkt_set_tsig.31
l---------doc/man/man3/ldns_pkt_size.31
l---------doc/man/man3/ldns_pkt_tc.31
l---------doc/man/man3/ldns_pkt_tsig.31
l---------doc/man/man3/ldns_pkt_tsig_sign.31
-rw-r--r--doc/man/man3/ldns_pkt_tsig_verify.377
l---------doc/man/man3/ldns_pkt_type.31
-rw-r--r--doc/man/man3/ldns_pkt_verify.357
l---------doc/man/man3/ldns_pktheader2buffer_str.31
-rw-r--r--doc/man/man3/ldns_rdf.3288
l---------doc/man/man3/ldns_rdf2buffer_str.31
-rw-r--r--doc/man/man3/ldns_rdf2buffer_str_a.3262
l---------doc/man/man3/ldns_rdf2buffer_str_aaaa.31
l---------doc/man/man3/ldns_rdf2buffer_str_alg.31
l---------doc/man/man3/ldns_rdf2buffer_str_apl.31
l---------doc/man/man3/ldns_rdf2buffer_str_b64.31
l---------doc/man/man3/ldns_rdf2buffer_str_class.31
l---------doc/man/man3/ldns_rdf2buffer_str_hex.31
l---------doc/man/man3/ldns_rdf2buffer_str_int16.31
l---------doc/man/man3/ldns_rdf2buffer_str_int16_data.31
l---------doc/man/man3/ldns_rdf2buffer_str_ipseckey.31
l---------doc/man/man3/ldns_rdf2buffer_str_loc.31
l---------doc/man/man3/ldns_rdf2buffer_str_nsap.31
l---------doc/man/man3/ldns_rdf2buffer_str_nsec.31
l---------doc/man/man3/ldns_rdf2buffer_str_period.31
l---------doc/man/man3/ldns_rdf2buffer_str_str.31
l---------doc/man/man3/ldns_rdf2buffer_str_tsigtime.31
l---------doc/man/man3/ldns_rdf2buffer_str_type.31
l---------doc/man/man3/ldns_rdf2buffer_str_unknown.31
l---------doc/man/man3/ldns_rdf2buffer_str_wks.31
l---------doc/man/man3/ldns_rdf2buffer_wire.31
l---------doc/man/man3/ldns_rdf2native_int16.31
l---------doc/man/man3/ldns_rdf2native_int32.31
l---------doc/man/man3/ldns_rdf2native_int8.31
l---------doc/man/man3/ldns_rdf2native_sockaddr_storage.31
l---------doc/man/man3/ldns_rdf2native_time_t.31
l---------doc/man/man3/ldns_rdf2str.31
l---------doc/man/man3/ldns_rdf2wire.31
-rw-r--r--doc/man/man3/ldns_rdf_address_reverse.347
l---------doc/man/man3/ldns_rdf_clone.31
l---------doc/man/man3/ldns_rdf_compare.31
l---------doc/man/man3/ldns_rdf_data.31
l---------doc/man/man3/ldns_rdf_deep_free.31
l---------doc/man/man3/ldns_rdf_free.31
l---------doc/man/man3/ldns_rdf_get_type.31
-rw-r--r--doc/man/man3/ldns_rdf_new.3140
l---------doc/man/man3/ldns_rdf_new_frm_data.31
l---------doc/man/man3/ldns_rdf_new_frm_fp.31
l---------doc/man/man3/ldns_rdf_new_frm_str.31
l---------doc/man/man3/ldns_rdf_print.31
l---------doc/man/man3/ldns_rdf_set_data.31
-rw-r--r--doc/man/man3/ldns_rdf_set_size.372
l---------doc/man/man3/ldns_rdf_set_type.31
-rw-r--r--doc/man/man3/ldns_rdf_size.385
l---------doc/man/man3/ldns_rdf_type.31
-rw-r--r--doc/man/man3/ldns_rr.3623
l---------doc/man/man3/ldns_rr2buffer_str.31
l---------doc/man/man3/ldns_rr2buffer_wire.31
-rw-r--r--doc/man/man3/ldns_rr2canonical.346
-rw-r--r--doc/man/man3/ldns_rr2str.3101
-rw-r--r--doc/man/man3/ldns_rr2wire.389
l---------doc/man/man3/ldns_rr_class.31
-rw-r--r--doc/man/man3/ldns_rr_compare.364
l---------doc/man/man3/ldns_rr_compare_ds.31
l---------doc/man/man3/ldns_rr_compress.31
l---------doc/man/man3/ldns_rr_descript.31
-rw-r--r--doc/man/man3/ldns_rr_descriptor.3131
l---------doc/man/man3/ldns_rr_descriptor_field_type.31
l---------doc/man/man3/ldns_rr_descriptor_maximum.31
l---------doc/man/man3/ldns_rr_descriptor_minimum.31
l---------doc/man/man3/ldns_rr_dnskey_algorithm.31
-rw-r--r--doc/man/man3/ldns_rr_dnskey_flags.3124
l---------doc/man/man3/ldns_rr_dnskey_key.31
l---------doc/man/man3/ldns_rr_dnskey_protocol.31
l---------doc/man/man3/ldns_rr_dnskey_set_algorithm.31
l---------doc/man/man3/ldns_rr_dnskey_set_flags.31
l---------doc/man/man3/ldns_rr_dnskey_set_key.31
l---------doc/man/man3/ldns_rr_dnskey_set_protocol.31
l---------doc/man/man3/ldns_rr_free.31
l---------doc/man/man3/ldns_rr_get_class.31
-rw-r--r--doc/man/man3/ldns_rr_label_count.346
l---------doc/man/man3/ldns_rr_list.31
l---------doc/man/man3/ldns_rr_list2buffer_str.31
l---------doc/man/man3/ldns_rr_list2str.31
-rw-r--r--doc/man/man3/ldns_rr_list_cat.371
-rw-r--r--doc/man/man3/ldns_rr_list_clone.346
l---------doc/man/man3/ldns_rr_list_free.31
-rw-r--r--doc/man/man3/ldns_rr_list_new.352
l---------doc/man/man3/ldns_rr_list_pop_rr.31
l---------doc/man/man3/ldns_rr_list_push_rr.31
-rw-r--r--doc/man/man3/ldns_rr_list_rr_count.358
l---------doc/man/man3/ldns_rr_list_set_rr_count.31
-rw-r--r--doc/man/man3/ldns_rr_list_sort.346
l---------doc/man/man3/ldns_rr_mx_exchange.31
-rw-r--r--doc/man/man3/ldns_rr_mx_preference.354
-rw-r--r--doc/man/man3/ldns_rr_new.3123
l---------doc/man/man3/ldns_rr_new_frm_fp.31
l---------doc/man/man3/ldns_rr_new_frm_str.31
l---------doc/man/man3/ldns_rr_new_frm_type.31
-rw-r--r--doc/man/man3/ldns_rr_ns_nsdname.344
l---------doc/man/man3/ldns_rr_owner.31
l---------doc/man/man3/ldns_rr_pop_rdf.31
l---------doc/man/man3/ldns_rr_print.31
-rw-r--r--doc/man/man3/ldns_rr_push_rdf.360
l---------doc/man/man3/ldns_rr_rd_count.31
l---------doc/man/man3/ldns_rr_rdata2buffer_wire.31
-rw-r--r--doc/man/man3/ldns_rr_rdf.388
l---------doc/man/man3/ldns_rr_rrsig_algorithm.31
l---------doc/man/man3/ldns_rr_rrsig_expiration.31
l---------doc/man/man3/ldns_rr_rrsig_inception.31
l---------doc/man/man3/ldns_rr_rrsig_keytag.31
l---------doc/man/man3/ldns_rr_rrsig_labels.31
l---------doc/man/man3/ldns_rr_rrsig_origttl.31
l---------doc/man/man3/ldns_rr_rrsig_set_algorithm.31
l---------doc/man/man3/ldns_rr_rrsig_set_expiration.31
l---------doc/man/man3/ldns_rr_rrsig_set_inception.31
l---------doc/man/man3/ldns_rr_rrsig_set_keytag.31
l---------doc/man/man3/ldns_rr_rrsig_set_labels.31
l---------doc/man/man3/ldns_rr_rrsig_set_origttl.31
l---------doc/man/man3/ldns_rr_rrsig_set_sig.31
l---------doc/man/man3/ldns_rr_rrsig_set_signame.31
l---------doc/man/man3/ldns_rr_rrsig_set_typecovered.31
l---------doc/man/man3/ldns_rr_rrsig_sig.31
l---------doc/man/man3/ldns_rr_rrsig_signame.31
-rw-r--r--doc/man/man3/ldns_rr_rrsig_typecovered.3232
l---------doc/man/man3/ldns_rr_set_class.31
-rw-r--r--doc/man/man3/ldns_rr_set_owner.3111
l---------doc/man/man3/ldns_rr_set_pop_rr.31
-rw-r--r--doc/man/man3/ldns_rr_set_push_rr.360
l---------doc/man/man3/ldns_rr_set_rd_count.31
l---------doc/man/man3/ldns_rr_set_rdf.31
l---------doc/man/man3/ldns_rr_set_ttl.31
l---------doc/man/man3/ldns_rr_set_type.31
l---------doc/man/man3/ldns_rr_ttl.31
l---------doc/man/man3/ldns_rr_type.31
-rw-r--r--doc/man/man3/ldns_rr_uncompressed_size.346
l---------doc/man/man3/ldns_rrsig2buffer_wire.31
-rw-r--r--doc/man/man3/ldns_send.341
-rw-r--r--doc/man/man3/ldns_sign_public.348
-rw-r--r--doc/man/man3/ldns_sign_public_dsa.373
l---------doc/man/man3/ldns_sign_public_rsamd5.31
l---------doc/man/man3/ldns_sign_public_rsasha1.31
l---------doc/man/man3/ldns_status.31
-rw-r--r--doc/man/man3/ldns_str2period.346
l---------doc/man/man3/ldns_tcp_connect.31
l---------doc/man/man3/ldns_tcp_read_wire.31
-rw-r--r--doc/man/man3/ldns_tcp_send_query.351
l---------doc/man/man3/ldns_update_adcount.31
-rw-r--r--doc/man/man3/ldns_update_pkt_new.355
-rw-r--r--doc/man/man3/ldns_update_pkt_tsig_add.350
l---------doc/man/man3/ldns_update_prcount.31
l---------doc/man/man3/ldns_update_set_adcount.31
l---------doc/man/man3/ldns_update_set_prcount.31
l---------doc/man/man3/ldns_update_set_upcount.31
-rw-r--r--doc/man/man3/ldns_update_set_zocount.371
l---------doc/man/man3/ldns_update_upcount.31
-rw-r--r--doc/man/man3/ldns_update_zocount.371
-rw-r--r--doc/man/man3/ldns_verify.3127
l---------doc/man/man3/ldns_verify_notime.31
l---------doc/man/man3/ldns_verify_rrsig.31
-rw-r--r--doc/man/man3/ldns_verify_rrsig_dsa.378
l---------doc/man/man3/ldns_verify_rrsig_keylist.31
l---------doc/man/man3/ldns_verify_rrsig_keylist_notime.31
l---------doc/man/man3/ldns_verify_rrsig_rsamd5.31
l---------doc/man/man3/ldns_verify_rrsig_rsasha1.31
-rw-r--r--doc/man/man3/ldns_version.339
l---------doc/man/man3/ldns_wire2dname.31
l---------doc/man/man3/ldns_wire2pkt.31
l---------doc/man/man3/ldns_wire2rdf.31
-rw-r--r--doc/man/man3/ldns_wire2rr.3123
-rw-r--r--doc/man/man3/ldns_zone.3154
l---------doc/man/man3/ldns_zone_deep_free.31
l---------doc/man/man3/ldns_zone_free.31
l---------doc/man/man3/ldns_zone_glue_rr_list.31
l---------doc/man/man3/ldns_zone_new.31
l---------doc/man/man3/ldns_zone_new_frm_fp.31
l---------doc/man/man3/ldns_zone_new_frm_fp_l.31
l---------doc/man/man3/ldns_zone_print.31
l---------doc/man/man3/ldns_zone_print_fmt.31
-rw-r--r--doc/man/man3/ldns_zone_push_rr.362
l---------doc/man/man3/ldns_zone_push_rr_list.31
-rw-r--r--doc/man/man3/ldns_zone_rr_count.346
-rw-r--r--doc/man/man3/ldns_zone_rrs.358
-rw-r--r--doc/man/man3/ldns_zone_set_rrs.356
l---------doc/man/man3/ldns_zone_set_soa.31
-rw-r--r--doc/man/man3/ldns_zone_sign.368
l---------doc/man/man3/ldns_zone_sign_nsec3.31
l---------doc/man/man3/ldns_zone_soa.31
-rw-r--r--doc/man/man3/ldns_zone_sort.362
470 files changed, 11071 insertions, 0 deletions
diff --git a/doc/man/man3/ldns_algorithm.3 b/doc/man/man3/ldns_algorithm.3
new file mode 100644
index 000000000000..28d21ee2c987
--- /dev/null
+++ b/doc/man/man3/ldns_algorithm.3
@@ -0,0 +1,81 @@
+.ad l
+.TH ldns 3 "30 May 2006"
+.SH NAME
+ldns_algorithm \- numbers assigned to algorithms used in dns
+
+.SH SYNOPSIS
+#include <stdint.h>
+.br
+#include <stdbool.h>
+.br
+.PP
+#include <ldns/ldns.h>
+.PP
+
+.SH DESCRIPTION
+.HP
+\fIldns_algorithm\fR
+.br
+Algorithms used in dns
+.br
+enum ldns_enum_algorithm
+.br
+{
+.br
+ LDNS_RSAMD5 = 1, /* RFC 4034,4035 */
+.br
+ LDNS_DH = 2,
+.br
+ LDNS_DSA = 3,
+.br
+ LDNS_ECC = 4,
+.br
+ LDNS_RSASHA1 = 5,
+.br
+ LDNS_DSA_NSEC3 = 6,
+.br
+ LDNS_RSASHA1_NSEC3 = 7,
+.br
+ LDNS_RSASHA256 = 8, /* RFC 5702 */
+.br
+ LDNS_RSASHA512 = 10, /* RFC 5702 */
+.br
+ LDNS_ECC_GOST = 12, /* RFC 5933 */
+.br
+ LDNS_ECDSAP256SHA256 = 13, /* RFC 6605 */
+.br
+ LDNS_ECDSAP384SHA384 = 14, /* RFC 6605 */
+.br
+ LDNS_ED25519 = 15, /* RFC 8080 */
+.br
+ LDNS_ED448 = 16, /* RFC 8080 */
+.br
+ LDNS_INDIRECT = 252,
+.br
+ LDNS_PRIVATEDNS = 253,
+.br
+ LDNS_PRIVATEOID = 254
+.br
+};
+.br
+typedef enum ldns_enum_algorithm ldns_algorithm;
+.PP
+.SH AUTHOR
+The ldns team at NLnet Labs.
+
+.SH REPORTING BUGS
+Please report bugs to ldns-team@nlnetlabs.nl or in
+our bugzilla at
+http://www.nlnetlabs.nl/bugs/index.html
+
+.SH COPYRIGHT
+Copyright (c) 2004 - 2006 NLnet Labs.
+.PP
+Licensed under the BSD License. There is NO warranty; not even for
+MERCHANTABILITY or
+FITNESS FOR A PARTICULAR PURPOSE.
+.SH SEE ALSO
+\fBperldoc Net::DNS\fR, \fBRFC1034\fR,
+\fBRFC1035\fR, \fBRFC4033\fR, \fBRFC4034\fR and \fBRFC4035\fR.
+.SH REMARKS
+This manpage was automatically generated from the ldns source code.
diff --git a/doc/man/man3/ldns_axfr_abort.3 b/doc/man/man3/ldns_axfr_abort.3
new file mode 120000
index 000000000000..e33d26601830
--- /dev/null
+++ b/doc/man/man3/ldns_axfr_abort.3
@@ -0,0 +1 @@
+ldns_axfr_start.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_axfr_complete.3 b/doc/man/man3/ldns_axfr_complete.3
new file mode 120000
index 000000000000..e33d26601830
--- /dev/null
+++ b/doc/man/man3/ldns_axfr_complete.3
@@ -0,0 +1 @@
+ldns_axfr_start.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_axfr_last_pkt.3 b/doc/man/man3/ldns_axfr_last_pkt.3
new file mode 120000
index 000000000000..e33d26601830
--- /dev/null
+++ b/doc/man/man3/ldns_axfr_last_pkt.3
@@ -0,0 +1 @@
+ldns_axfr_start.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_axfr_next.3 b/doc/man/man3/ldns_axfr_next.3
new file mode 120000
index 000000000000..e33d26601830
--- /dev/null
+++ b/doc/man/man3/ldns_axfr_next.3
@@ -0,0 +1 @@
+ldns_axfr_start.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_axfr_start.3 b/doc/man/man3/ldns_axfr_start.3
new file mode 100644
index 000000000000..1ad4b2da8772
--- /dev/null
+++ b/doc/man/man3/ldns_axfr_start.3
@@ -0,0 +1,81 @@
+.ad l
+.TH ldns 3 "30 May 2006"
+.SH NAME
+ldns_axfr_start, ldns_axfr_next, ldns_axfr_abort, ldns_axfr_complete, ldns_axfr_last_pkt \- functions for full zone transfer
+
+.SH SYNOPSIS
+#include <stdint.h>
+.br
+#include <stdbool.h>
+.br
+.PP
+#include <ldns/ldns.h>
+.PP
+ ldns_axfr_start();
+.PP
+ldns_rr* ldns_axfr_next(ldns_resolver *resolver);
+.PP
+void ldns_axfr_abort(ldns_resolver *resolver);
+.PP
+bool ldns_axfr_complete(const ldns_resolver *resolver);
+.PP
+ldns_pkt* ldns_axfr_last_pkt(const ldns_resolver *res);
+.PP
+
+.SH DESCRIPTION
+.HP
+\fIldns_axfr_start\fR()
+.PP
+.HP
+\fIldns_axfr_next\fR()
+Get the next stream of RRs in a \%AXFR
+\.br
+\fBresolver\fR: the resolver to use. First ldns_axfr_start() must be
+called
+\.br
+Returns ldns_rr the next \%RR from the \%AXFR stream
+After you get this returned \%RR (not \%NULL: on error), then check if
+ldns_axfr_complete() is true to see if the zone transfer has completed.
+.PP
+.HP
+\fIldns_axfr_abort\fR()
+Abort a transfer that is in progress
+\.br
+\fBresolver\fR: the resolver that is used
+.PP
+.HP
+\fIldns_axfr_complete\fR()
+Returns true if the axfr transfer has completed (i.e. 2 \%SOA RRs and no errors were encountered
+\.br
+\fBresolver\fR: the resolver that is used
+\.br
+Returns bool true if axfr transfer was completed without error
+.PP
+.HP
+\fIldns_axfr_last_pkt\fR()
+Returns a pointer to the last ldns_pkt that was sent by the server in the \%AXFR transfer
+usable for instance to get the error code on failure
+\.br
+\fBres\fR: the resolver that was used in the axfr transfer
+\.br
+Returns ldns_pkt the last packet sent
+.PP
+.SH AUTHOR
+The ldns team at NLnet Labs.
+
+.SH REPORTING BUGS
+Please report bugs to ldns-team@nlnetlabs.nl or in
+our bugzilla at
+http://www.nlnetlabs.nl/bugs/index.html
+
+.SH COPYRIGHT
+Copyright (c) 2004 - 2006 NLnet Labs.
+.PP
+Licensed under the BSD License. There is NO warranty; not even for
+MERCHANTABILITY or
+FITNESS FOR A PARTICULAR PURPOSE.
+.SH SEE ALSO
+\fBperldoc Net::DNS\fR, \fBRFC1034\fR,
+\fBRFC1035\fR, \fBRFC4033\fR, \fBRFC4034\fR and \fBRFC4035\fR.
+.SH REMARKS
+This manpage was automatically generated from the ldns source code.
diff --git a/doc/man/man3/ldns_b32_ntop_calculate_size.3 b/doc/man/man3/ldns_b32_ntop_calculate_size.3
new file mode 100644
index 000000000000..1f838b73f167
--- /dev/null
+++ b/doc/man/man3/ldns_b32_ntop_calculate_size.3
@@ -0,0 +1,54 @@
+.ad l
+.TH ldns 3 "30 May 2006"
+.SH NAME
+ldns_b32_ntop_calculate_size, ldns_b32_pton_calculate_size, ldns_b64_ntop_calculate_size, ldns_b64_pton_calculate_size \- return size needed for b32 or b64 encoded or decoded data
+
+.SH SYNOPSIS
+#include <stdint.h>
+.br
+#include <stdbool.h>
+.br
+.PP
+#include <ldns/ldns.h>
+.PP
+ ldns_b32_ntop_calculate_size();
+.PP
+ ldns_b32_pton_calculate_size();
+.PP
+ ldns_b64_ntop_calculate_size();
+.PP
+ ldns_b64_pton_calculate_size();
+.PP
+
+.SH DESCRIPTION
+.HP
+\fIldns_b32_ntop_calculate_size\fR()
+.PP
+.HP
+\fIldns_b32_pton_calculate_size\fR()
+.PP
+.HP
+\fIldns_b64_ntop_calculate_size\fR()
+.PP
+.HP
+\fIldns_b64_pton_calculate_size\fR()
+.PP
+.SH AUTHOR
+The ldns team at NLnet Labs.
+
+.SH REPORTING BUGS
+Please report bugs to ldns-team@nlnetlabs.nl or in
+our bugzilla at
+http://www.nlnetlabs.nl/bugs/index.html
+
+.SH COPYRIGHT
+Copyright (c) 2004 - 2006 NLnet Labs.
+.PP
+Licensed under the BSD License. There is NO warranty; not even for
+MERCHANTABILITY or
+FITNESS FOR A PARTICULAR PURPOSE.
+.SH SEE ALSO
+\fBperldoc Net::DNS\fR, \fBRFC1034\fR,
+\fBRFC1035\fR, \fBRFC4033\fR, \fBRFC4034\fR and \fBRFC4035\fR.
+.SH REMARKS
+This manpage was automatically generated from the ldns source code.
diff --git a/doc/man/man3/ldns_b32_pton_calculate_size.3 b/doc/man/man3/ldns_b32_pton_calculate_size.3
new file mode 120000
index 000000000000..e2256ffd7a2b
--- /dev/null
+++ b/doc/man/man3/ldns_b32_pton_calculate_size.3
@@ -0,0 +1 @@
+ldns_b32_ntop_calculate_size.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_b64_ntop_calculate_size.3 b/doc/man/man3/ldns_b64_ntop_calculate_size.3
new file mode 120000
index 000000000000..e2256ffd7a2b
--- /dev/null
+++ b/doc/man/man3/ldns_b64_ntop_calculate_size.3
@@ -0,0 +1 @@
+ldns_b32_ntop_calculate_size.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_b64_pton_calculate_size.3 b/doc/man/man3/ldns_b64_pton_calculate_size.3
new file mode 120000
index 000000000000..e2256ffd7a2b
--- /dev/null
+++ b/doc/man/man3/ldns_b64_pton_calculate_size.3
@@ -0,0 +1 @@
+ldns_b32_ntop_calculate_size.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_bget_token.3 b/doc/man/man3/ldns_bget_token.3
new file mode 100644
index 000000000000..d8dd1de261d6
--- /dev/null
+++ b/doc/man/man3/ldns_bget_token.3
@@ -0,0 +1,79 @@
+.ad l
+.TH ldns 3 "30 May 2006"
+.SH NAME
+ldns_bget_token, ldns_bgetc, ldns_bskipcs \- get tokens from buffers
+
+.SH SYNOPSIS
+#include <stdint.h>
+.br
+#include <stdbool.h>
+.br
+.PP
+#include <ldns/ldns.h>
+.PP
+ssize_t ldns_bget_token(ldns_buffer *b, char *token, const char *delim, size_t limit);
+.PP
+int ldns_bgetc(ldns_buffer *buffer);
+.PP
+void ldns_bskipcs(ldns_buffer *buffer, const char *s);
+.PP
+
+.SH DESCRIPTION
+.HP
+\fIldns_bget_token\fR()
+returns a token/char from the buffer b.
+This function deals with ( and ) in the buffer,
+and ignores when it finds them.
+\.br
+\fB*b\fR: the buffer to read from
+\.br
+\fB*token\fR: the token is put here
+\.br
+\fB*delim\fR: chars at which the parsing should stop
+\.br
+\fB*limit\fR: how much to read. If 0 the builtin maximum is used
+\.br
+Returns s 0 on error of \%EOF of b. Otherwise return the length of what is read
+.PP
+.HP
+\fIldns_bgetc\fR()
+returns the next character from a buffer. Advances the position pointer with 1.
+When end of buffer is reached returns \%EOF. This is the buffer's equivalent
+for getc().
+\.br
+\fB*buffer\fR: buffer to read from
+\.br
+Returns \%EOF on failure otherwise return the character
+.PP
+.HP
+\fIldns_bskipcs\fR()
+skips all of the characters in the given string in the buffer, moving
+the position to the first character that is not in *s.
+\.br
+\fB*buffer\fR: buffer to use
+\.br
+\fB*s\fR: characters to skip
+\.br
+Returns void
+.PP
+.SH AUTHOR
+The ldns team at NLnet Labs.
+
+.SH REPORTING BUGS
+Please report bugs to ldns-team@nlnetlabs.nl or in
+our bugzilla at
+http://www.nlnetlabs.nl/bugs/index.html
+
+.SH COPYRIGHT
+Copyright (c) 2004 - 2006 NLnet Labs.
+.PP
+Licensed under the BSD License. There is NO warranty; not even for
+MERCHANTABILITY or
+FITNESS FOR A PARTICULAR PURPOSE.
+
+.SH SEE ALSO
+\fIldns_buffer\fR.
+And \fBperldoc Net::DNS\fR, \fBRFC1034\fR,
+\fBRFC1035\fR, \fBRFC4033\fR, \fBRFC4034\fR and \fBRFC4035\fR.
+.SH REMARKS
+This manpage was automatically generated from the ldns source code.
diff --git a/doc/man/man3/ldns_bgetc.3 b/doc/man/man3/ldns_bgetc.3
new file mode 120000
index 000000000000..2afa435dc574
--- /dev/null
+++ b/doc/man/man3/ldns_bgetc.3
@@ -0,0 +1 @@
+ldns_bget_token.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_bskipcs.3 b/doc/man/man3/ldns_bskipcs.3
new file mode 120000
index 000000000000..2afa435dc574
--- /dev/null
+++ b/doc/man/man3/ldns_bskipcs.3
@@ -0,0 +1 @@
+ldns_bget_token.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_bubblebabble.3 b/doc/man/man3/ldns_bubblebabble.3
new file mode 100644
index 000000000000..1cdac77e8ed1
--- /dev/null
+++ b/doc/man/man3/ldns_bubblebabble.3
@@ -0,0 +1,39 @@
+.ad l
+.TH ldns 3 "30 May 2006"
+.SH NAME
+ldns_bubblebabble \- encode data as BubbleBabble
+
+.SH SYNOPSIS
+#include <stdint.h>
+.br
+#include <stdbool.h>
+.br
+.PP
+#include <ldns/ldns.h>
+.PP
+ ldns_bubblebabble();
+.PP
+
+.SH DESCRIPTION
+.HP
+\fIldns_bubblebabble\fR()
+.PP
+.SH AUTHOR
+The ldns team at NLnet Labs.
+
+.SH REPORTING BUGS
+Please report bugs to ldns-team@nlnetlabs.nl or in
+our bugzilla at
+http://www.nlnetlabs.nl/bugs/index.html
+
+.SH COPYRIGHT
+Copyright (c) 2004 - 2006 NLnet Labs.
+.PP
+Licensed under the BSD License. There is NO warranty; not even for
+MERCHANTABILITY or
+FITNESS FOR A PARTICULAR PURPOSE.
+.SH SEE ALSO
+\fBperldoc Net::DNS\fR, \fBRFC1034\fR,
+\fBRFC1035\fR, \fBRFC4033\fR, \fBRFC4034\fR and \fBRFC4035\fR.
+.SH REMARKS
+This manpage was automatically generated from the ldns source code.
diff --git a/doc/man/man3/ldns_buffer.3 b/doc/man/man3/ldns_buffer.3
new file mode 100644
index 000000000000..ab5252e0cd0e
--- /dev/null
+++ b/doc/man/man3/ldns_buffer.3
@@ -0,0 +1,203 @@
+.ad l
+.TH ldns 3 "30 May 2006"
+.SH NAME
+ldns_buffer, ldns_buffer_new, ldns_buffer_new_frm_data, ldns_buffer_clear, ldns_buffer_printf, ldns_buffer_free, ldns_buffer_copy, ldns_buffer_export, ldns_buffer_export2str, ldns_buffer2str \- buffers
+
+.SH SYNOPSIS
+#include <stdint.h>
+.br
+#include <stdbool.h>
+.br
+.PP
+#include <ldns/ldns.h>
+.PP
+ldns_buffer* ldns_buffer_new(size_t capacity);
+.PP
+void ldns_buffer_new_frm_data(ldns_buffer *buffer, const void *data, size_t size);
+.PP
+void ldns_buffer_clear(ldns_buffer *buffer);
+.PP
+int ldns_buffer_printf(ldns_buffer *buffer, const char *format, ...);
+.PP
+void ldns_buffer_free(ldns_buffer *buffer);
+.PP
+void ldns_buffer_copy(ldns_buffer* result, const ldns_buffer* from);
+.PP
+void* ldns_buffer_export(ldns_buffer *buffer);
+.PP
+char* ldns_buffer_export2str(ldns_buffer *buffer);
+.PP
+char* ldns_buffer2str(ldns_buffer *buffer);
+.PP
+
+.SH DESCRIPTION
+.HP
+\fIldns_buffer\fR
+.br
+implementation of buffers to ease operations
+.br
+
+.br
+ldns_buffers can contain arbitrary information, per octet. You can write
+.br
+to the current end of a buffer, read from the current position, and
+.br
+access any data within it.
+.br
+
+.br
+Example use of buffers is in the source code of \\ref host2str.c
+.br
+struct ldns_struct_buffer
+.br
+{
+.br
+ \fBThe current position used for reading/writing:\fR
+.br
+ size_t _position;
+.br
+
+.br
+ \fBThe read/write limit:\fR
+.br
+ size_t _limit;
+.br
+
+.br
+ \fBThe amount of data the buffer can contain:\fR
+.br
+ size_t _capacity;
+.br
+
+.br
+ \fBThe data contained in the buffer:\fR
+.br
+ uint8_t *_data;
+.br
+
+.br
+ \fBIf the buffer is fixed it cannot be resized:\fR
+.br
+ unsigned _fixed : 1;
+.br
+
+.br
+ /** The current state of the buffer. If writing to the buffer fails
+.br
+ * for any reason, this value is changed. This way, you can perform
+.br
+ * multiple writes in sequence and check for success afterwards. */
+.br
+ ldns_status _status;
+.br
+};
+.br
+typedef struct ldns_struct_buffer ldns_buffer;
+.PP
+.HP
+\fIldns_buffer_new\fR()
+creates a new buffer with the specified capacity.
+
+\.br
+\fBcapacity\fR: the size (in bytes) to allocate for the buffer
+\.br
+Returns the created buffer
+.PP
+.HP
+\fIldns_buffer_new_frm_data\fR()
+creates a buffer with the specified data. The data \%IS copied
+and \%MEMORY allocations are done. The buffer is not fixed and can
+be resized using buffer_reserve().
+
+\.br
+\fBbuffer\fR: pointer to the buffer to put the data in
+\.br
+\fBdata\fR: the data to encapsulate in the buffer
+\.br
+\fBsize\fR: the size of the data
+.PP
+.HP
+\fIldns_buffer_clear\fR()
+clears the buffer and make it ready for writing. The buffer's limit
+is set to the capacity and the position is set to 0.
+\.br
+\fBbuffer\fR: the buffer to clear
+.PP
+.HP
+\fIldns_buffer_printf\fR()
+prints to the buffer, increasing the capacity if required using
+buffer_reserve(). The buffer's position is set to the terminating '\\\\0'
+Returns the number of characters written (not including the
+terminating '\\\\0') or -1 on failure.
+.PP
+.HP
+\fIldns_buffer_free\fR()
+frees the buffer.
+\.br
+\fB*buffer\fR: the buffer to be freed
+\.br
+Returns void
+.PP
+.HP
+\fIldns_buffer_copy\fR()
+Copy contents of the from buffer to the result buffer and then flips
+the result buffer. Data will be silently truncated if the result buffer is
+too small.
+\.br
+\fB*result\fR: resulting buffer which is copied to.
+\.br
+\fB*from\fR: what to copy to result.
+.PP
+.HP
+\fIldns_buffer_export\fR()
+Makes the buffer fixed and returns a pointer to the data. The
+caller is responsible for free'ing the result.
+\.br
+\fB*buffer\fR: the buffer to be exported
+\.br
+Returns void
+.PP
+.HP
+\fIldns_buffer_export2str\fR()
+Exports and returns the data in the buffer as a null terminated
+char * string. The returned string must be freed by the caller.
+The buffer must be in write modus and may thus not have been flipped.
+The buffer is fixed after this function returns.
+
+\.br
+\fBbuffer\fR: buffer containing char * data
+\.br
+Returns null terminated char * data, or \%NULL on error
+.PP
+.HP
+\fIldns_buffer2str\fR()
+Returns a copy of the data in the buffer as a null terminated
+char * string. The returned string must be freed by the caller.
+The buffer must be in write modus and may thus not have been flipped.
+
+\.br
+\fBbuffer\fR: buffer containing char * data
+\.br
+Returns null terminated char * data, or \%NULL on error
+.PP
+.SH AUTHOR
+The ldns team at NLnet Labs.
+
+.SH REPORTING BUGS
+Please report bugs to ldns-team@nlnetlabs.nl or in
+our bugzilla at
+http://www.nlnetlabs.nl/bugs/index.html
+
+.SH COPYRIGHT
+Copyright (c) 2004 - 2006 NLnet Labs.
+.PP
+Licensed under the BSD License. There is NO warranty; not even for
+MERCHANTABILITY or
+FITNESS FOR A PARTICULAR PURPOSE.
+
+.SH SEE ALSO
+\fIldns_buffer_flip\fR, \fIldns_buffer_rewind\fR, \fIldns_buffer_position\fR, \fIldns_buffer_set_position\fR, \fIldns_buffer_skip\fR, \fIldns_buffer_limit\fR, \fIldns_buffer_set_limit\fR, \fIldns_buffer_capacity\fR, \fIldns_buffer_set_capacity\fR, \fIldns_buffer_reserve\fR, \fIldns_buffer_at\fR, \fIldns_buffer_begin\fR, \fIldns_buffer_end\fR, \fIldns_buffer_current\fR, \fIldns_buffer_remaining_at\fR, \fIldns_buffer_remaining\fR, \fIldns_buffer_available_at\fR, \fIldns_buffer_available\fR, \fIldns_buffer_status\fR, \fIldns_buffer_status_ok\fR, \fIldns_buffer_write_at\fR, \fIldns_buffer_write\fR, \fIldns_buffer_write_string_at\fR, \fIldns_buffer_write_string\fR, \fIldns_buffer_write_u8_at\fR, \fIldns_buffer_write_u8\fR, \fIldns_buffer_write_u16_at\fR, \fIldns_buffer_write_u16\fR, \fIldns_buffer_read_at\fR, \fIldns_buffer_read\fR, \fIldns_buffer_read_u8_at\fR, \fIldns_buffer_read_u8\fR, \fIldns_buffer_read_u16_at\fR, \fIldns_buffer_read_u16\fR, \fIldns_buffer_read_u32_at\fR, \fIldns_buffer_read_u32\fR, \fIldns_buffer_write_u32\fR, \fIldns_buffer_write_u32_at\fR.
+And \fBperldoc Net::DNS\fR, \fBRFC1034\fR,
+\fBRFC1035\fR, \fBRFC4033\fR, \fBRFC4034\fR and \fBRFC4035\fR.
+.SH REMARKS
+This manpage was automatically generated from the ldns source code.
diff --git a/doc/man/man3/ldns_buffer2pkt_wire.3 b/doc/man/man3/ldns_buffer2pkt_wire.3
new file mode 100644
index 000000000000..db547fe0bf5c
--- /dev/null
+++ b/doc/man/man3/ldns_buffer2pkt_wire.3
@@ -0,0 +1,49 @@
+.ad l
+.TH ldns 3 "30 May 2006"
+.SH NAME
+ldns_buffer2pkt_wire \- convert buffer/wire format to ldns_pkt
+
+.SH SYNOPSIS
+#include <stdint.h>
+.br
+#include <stdbool.h>
+.br
+.PP
+#include <ldns/ldns.h>
+.PP
+ldns_status ldns_buffer2pkt_wire(ldns_pkt **packet, const ldns_buffer *buffer);
+.PP
+
+.SH DESCRIPTION
+.HP
+\fIldns_buffer2pkt_wire\fR()
+converts the data in the ldns_buffer (in wire format) to a \%DNS packet.
+This function will initialize and allocate memory space for the packet
+structure.
+
+\.br
+\fBpacket\fR: pointer to the structure to hold the packet
+\.br
+\fBbuffer\fR: the buffer with the data
+\.br
+Returns \%LDNS_STATUS_OK if everything succeeds, error otherwise
+.PP
+.SH AUTHOR
+The ldns team at NLnet Labs.
+
+.SH REPORTING BUGS
+Please report bugs to ldns-team@nlnetlabs.nl or in
+our bugzilla at
+http://www.nlnetlabs.nl/bugs/index.html
+
+.SH COPYRIGHT
+Copyright (c) 2004 - 2006 NLnet Labs.
+.PP
+Licensed under the BSD License. There is NO warranty; not even for
+MERCHANTABILITY or
+FITNESS FOR A PARTICULAR PURPOSE.
+.SH SEE ALSO
+\fBperldoc Net::DNS\fR, \fBRFC1034\fR,
+\fBRFC1035\fR, \fBRFC4033\fR, \fBRFC4034\fR and \fBRFC4035\fR.
+.SH REMARKS
+This manpage was automatically generated from the ldns source code.
diff --git a/doc/man/man3/ldns_buffer2str.3 b/doc/man/man3/ldns_buffer2str.3
new file mode 120000
index 000000000000..d7cbe03c051e
--- /dev/null
+++ b/doc/man/man3/ldns_buffer2str.3
@@ -0,0 +1 @@
+ldns_buffer.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_buffer_at.3 b/doc/man/man3/ldns_buffer_at.3
new file mode 120000
index 000000000000..a621fda08e30
--- /dev/null
+++ b/doc/man/man3/ldns_buffer_at.3
@@ -0,0 +1 @@
+ldns_buffer_limit.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_buffer_available.3 b/doc/man/man3/ldns_buffer_available.3
new file mode 120000
index 000000000000..517dd6aa4d2c
--- /dev/null
+++ b/doc/man/man3/ldns_buffer_available.3
@@ -0,0 +1 @@
+ldns_buffer_remaining_at.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_buffer_available_at.3 b/doc/man/man3/ldns_buffer_available_at.3
new file mode 120000
index 000000000000..517dd6aa4d2c
--- /dev/null
+++ b/doc/man/man3/ldns_buffer_available_at.3
@@ -0,0 +1 @@
+ldns_buffer_remaining_at.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_buffer_begin.3 b/doc/man/man3/ldns_buffer_begin.3
new file mode 120000
index 000000000000..a621fda08e30
--- /dev/null
+++ b/doc/man/man3/ldns_buffer_begin.3
@@ -0,0 +1 @@
+ldns_buffer_limit.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_buffer_capacity.3 b/doc/man/man3/ldns_buffer_capacity.3
new file mode 120000
index 000000000000..a621fda08e30
--- /dev/null
+++ b/doc/man/man3/ldns_buffer_capacity.3
@@ -0,0 +1 @@
+ldns_buffer_limit.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_buffer_clear.3 b/doc/man/man3/ldns_buffer_clear.3
new file mode 120000
index 000000000000..d7cbe03c051e
--- /dev/null
+++ b/doc/man/man3/ldns_buffer_clear.3
@@ -0,0 +1 @@
+ldns_buffer.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_buffer_copy.3 b/doc/man/man3/ldns_buffer_copy.3
new file mode 120000
index 000000000000..d7cbe03c051e
--- /dev/null
+++ b/doc/man/man3/ldns_buffer_copy.3
@@ -0,0 +1 @@
+ldns_buffer.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_buffer_current.3 b/doc/man/man3/ldns_buffer_current.3
new file mode 120000
index 000000000000..a621fda08e30
--- /dev/null
+++ b/doc/man/man3/ldns_buffer_current.3
@@ -0,0 +1 @@
+ldns_buffer_limit.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_buffer_end.3 b/doc/man/man3/ldns_buffer_end.3
new file mode 120000
index 000000000000..a621fda08e30
--- /dev/null
+++ b/doc/man/man3/ldns_buffer_end.3
@@ -0,0 +1 @@
+ldns_buffer_limit.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_buffer_export.3 b/doc/man/man3/ldns_buffer_export.3
new file mode 120000
index 000000000000..d7cbe03c051e
--- /dev/null
+++ b/doc/man/man3/ldns_buffer_export.3
@@ -0,0 +1 @@
+ldns_buffer.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_buffer_export2str.3 b/doc/man/man3/ldns_buffer_export2str.3
new file mode 120000
index 000000000000..d7cbe03c051e
--- /dev/null
+++ b/doc/man/man3/ldns_buffer_export2str.3
@@ -0,0 +1 @@
+ldns_buffer.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_buffer_flip.3 b/doc/man/man3/ldns_buffer_flip.3
new file mode 100644
index 000000000000..4c9d3be02bfe
--- /dev/null
+++ b/doc/man/man3/ldns_buffer_flip.3
@@ -0,0 +1,91 @@
+.ad l
+.TH ldns 3 "30 May 2006"
+.SH NAME
+ldns_buffer_flip, ldns_buffer_rewind, ldns_buffer_position, ldns_buffer_set_position, ldns_buffer_skip \- buffer positioning
+
+.SH SYNOPSIS
+#include <stdint.h>
+.br
+#include <stdbool.h>
+.br
+.PP
+#include <ldns/ldns.h>
+.PP
+void ldns_buffer_flip(ldns_buffer *buffer);
+.PP
+void ldns_buffer_rewind(ldns_buffer *buffer);
+.PP
+size_t ldns_buffer_position(const ldns_buffer *buffer);
+.PP
+void ldns_buffer_set_position(ldns_buffer *buffer, size_t mark);
+.PP
+void ldns_buffer_skip(ldns_buffer *buffer, ssize_t count);
+.PP
+
+.SH DESCRIPTION
+.HP
+\fIldns_buffer_flip\fR()
+makes the buffer ready for reading the data that has been written to
+the buffer. The buffer's limit is set to the current position and
+the position is set to 0.
+
+\.br
+\fBbuffer\fR: the buffer to flip
+\.br
+Returns void
+.PP
+.HP
+\fIldns_buffer_rewind\fR()
+make the buffer ready for re-reading the data. The buffer's
+position is reset to 0.
+\.br
+\fBbuffer\fR: the buffer to rewind
+.PP
+.HP
+\fIldns_buffer_position\fR()
+returns the current position in the buffer (as a number of bytes)
+\.br
+\fBbuffer\fR: the buffer
+\.br
+Returns the current position
+.PP
+.HP
+\fIldns_buffer_set_position\fR()
+sets the buffer's position to \%MARK. The position must be less than
+or equal to the buffer's limit.
+\.br
+\fBbuffer\fR: the buffer
+\.br
+\fBmark\fR: the mark to use
+.PP
+.HP
+\fIldns_buffer_skip\fR()
+changes the buffer's position by \%COUNT bytes. The position must not
+be moved behind the buffer's limit or before the beginning of the
+buffer.
+\.br
+\fBbuffer\fR: the buffer
+\.br
+\fBcount\fR: the count to use
+.PP
+.SH AUTHOR
+The ldns team at NLnet Labs.
+
+.SH REPORTING BUGS
+Please report bugs to ldns-team@nlnetlabs.nl or in
+our bugzilla at
+http://www.nlnetlabs.nl/bugs/index.html
+
+.SH COPYRIGHT
+Copyright (c) 2004 - 2006 NLnet Labs.
+.PP
+Licensed under the BSD License. There is NO warranty; not even for
+MERCHANTABILITY or
+FITNESS FOR A PARTICULAR PURPOSE.
+
+.SH SEE ALSO
+\fIldns_buffer\fR.
+And \fBperldoc Net::DNS\fR, \fBRFC1034\fR,
+\fBRFC1035\fR, \fBRFC4033\fR, \fBRFC4034\fR and \fBRFC4035\fR.
+.SH REMARKS
+This manpage was automatically generated from the ldns source code.
diff --git a/doc/man/man3/ldns_buffer_free.3 b/doc/man/man3/ldns_buffer_free.3
new file mode 120000
index 000000000000..d7cbe03c051e
--- /dev/null
+++ b/doc/man/man3/ldns_buffer_free.3
@@ -0,0 +1 @@
+ldns_buffer.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_buffer_limit.3 b/doc/man/man3/ldns_buffer_limit.3
new file mode 100644
index 000000000000..20567972d793
--- /dev/null
+++ b/doc/man/man3/ldns_buffer_limit.3
@@ -0,0 +1,140 @@
+.ad l
+.TH ldns 3 "30 May 2006"
+.SH NAME
+ldns_buffer_limit, ldns_buffer_set_limit, ldns_buffer_capacity, ldns_buffer_set_capacity, ldns_buffer_reserve, ldns_buffer_at, ldns_buffer_begin, ldns_buffer_end, ldns_buffer_current \- buffer limits and pointers
+
+.SH SYNOPSIS
+#include <stdint.h>
+.br
+#include <stdbool.h>
+.br
+.PP
+#include <ldns/ldns.h>
+.PP
+size_t ldns_buffer_limit(const ldns_buffer *buffer);
+.PP
+void ldns_buffer_set_limit(ldns_buffer *buffer, size_t limit);
+.PP
+size_t ldns_buffer_capacity(const ldns_buffer *buffer);
+.PP
+bool ldns_buffer_set_capacity(ldns_buffer *buffer, size_t capacity);
+.PP
+bool ldns_buffer_reserve(ldns_buffer *buffer, size_t amount);
+.PP
+uint8_t * ldns_buffer_at(const ldns_buffer *buffer, size_t at);
+.PP
+uint8_t * ldns_buffer_begin(const ldns_buffer *buffer);
+.PP
+uint8_t * ldns_buffer_end(const ldns_buffer *buffer);
+.PP
+uint8_t * ldns_buffer_current(const ldns_buffer *buffer);
+.PP
+
+.SH DESCRIPTION
+.HP
+\fIldns_buffer_limit\fR()
+returns the maximum size of the buffer
+\\param[in] buffer
+\.br
+Returns the size
+.PP
+.HP
+\fIldns_buffer_set_limit\fR()
+changes the buffer's limit. If the buffer's position is greater
+than the new limit the position is set to the limit.
+\.br
+\fBbuffer\fR: the buffer
+\.br
+\fBlimit\fR: the new limit
+.PP
+.HP
+\fIldns_buffer_capacity\fR()
+returns the number of bytes the buffer can hold.
+\.br
+\fBbuffer\fR: the buffer
+\.br
+Returns the number of bytes
+.PP
+.HP
+\fIldns_buffer_set_capacity\fR()
+changes the buffer's capacity. The data is reallocated so any
+pointers to the data may become invalid. The buffer's limit is set
+to the buffer's new capacity.
+\.br
+\fBbuffer\fR: the buffer
+\.br
+\fBcapacity\fR: the capacity to use
+\.br
+Returns whether this failed or succeeded
+.PP
+.HP
+\fIldns_buffer_reserve\fR()
+ensures \%BUFFER can contain at least \%AMOUNT more bytes. The buffer's
+capacity is increased if necessary using buffer_set_capacity().
+
+The buffer's limit is always set to the (possibly increased)
+capacity.
+\.br
+\fBbuffer\fR: the buffer
+\.br
+\fBamount\fR: amount to use
+\.br
+Returns whether this failed or succeeded
+.PP
+.HP
+\fIldns_buffer_at\fR()
+returns a pointer to the data at the indicated position.
+\.br
+\fBbuffer\fR: the buffer
+\.br
+\fBat\fR: position
+\.br
+Returns the pointer to the data
+.PP
+.HP
+\fIldns_buffer_begin\fR()
+returns a pointer to the beginning of the buffer (the data at
+position 0).
+\.br
+\fBbuffer\fR: the buffer
+\.br
+Returns the pointer
+.PP
+.HP
+\fIldns_buffer_end\fR()
+returns a pointer to the end of the buffer (the data at the buffer's
+limit).
+\.br
+\fBbuffer\fR: the buffer
+\.br
+Returns the pointer
+.PP
+.HP
+\fIldns_buffer_current\fR()
+returns a pointer to the data at the buffer's current position.
+\.br
+\fBbuffer\fR: the buffer
+\.br
+Returns the pointer
+.PP
+.SH AUTHOR
+The ldns team at NLnet Labs.
+
+.SH REPORTING BUGS
+Please report bugs to ldns-team@nlnetlabs.nl or in
+our bugzilla at
+http://www.nlnetlabs.nl/bugs/index.html
+
+.SH COPYRIGHT
+Copyright (c) 2004 - 2006 NLnet Labs.
+.PP
+Licensed under the BSD License. There is NO warranty; not even for
+MERCHANTABILITY or
+FITNESS FOR A PARTICULAR PURPOSE.
+
+.SH SEE ALSO
+\fIldns_buffer\fR.
+And \fBperldoc Net::DNS\fR, \fBRFC1034\fR,
+\fBRFC1035\fR, \fBRFC4033\fR, \fBRFC4034\fR and \fBRFC4035\fR.
+.SH REMARKS
+This manpage was automatically generated from the ldns source code.
diff --git a/doc/man/man3/ldns_buffer_new.3 b/doc/man/man3/ldns_buffer_new.3
new file mode 120000
index 000000000000..d7cbe03c051e
--- /dev/null
+++ b/doc/man/man3/ldns_buffer_new.3
@@ -0,0 +1 @@
+ldns_buffer.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_buffer_new_frm_data.3 b/doc/man/man3/ldns_buffer_new_frm_data.3
new file mode 120000
index 000000000000..d7cbe03c051e
--- /dev/null
+++ b/doc/man/man3/ldns_buffer_new_frm_data.3
@@ -0,0 +1 @@
+ldns_buffer.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_buffer_position.3 b/doc/man/man3/ldns_buffer_position.3
new file mode 120000
index 000000000000..dc3c61fe7253
--- /dev/null
+++ b/doc/man/man3/ldns_buffer_position.3
@@ -0,0 +1 @@
+ldns_buffer_flip.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_buffer_printf.3 b/doc/man/man3/ldns_buffer_printf.3
new file mode 120000
index 000000000000..d7cbe03c051e
--- /dev/null
+++ b/doc/man/man3/ldns_buffer_printf.3
@@ -0,0 +1 @@
+ldns_buffer.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_buffer_read.3 b/doc/man/man3/ldns_buffer_read.3
new file mode 120000
index 000000000000..f693726e59c5
--- /dev/null
+++ b/doc/man/man3/ldns_buffer_read.3
@@ -0,0 +1 @@
+ldns_buffer_write_at.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_buffer_read_at.3 b/doc/man/man3/ldns_buffer_read_at.3
new file mode 120000
index 000000000000..f693726e59c5
--- /dev/null
+++ b/doc/man/man3/ldns_buffer_read_at.3
@@ -0,0 +1 @@
+ldns_buffer_write_at.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_buffer_read_u16.3 b/doc/man/man3/ldns_buffer_read_u16.3
new file mode 120000
index 000000000000..f693726e59c5
--- /dev/null
+++ b/doc/man/man3/ldns_buffer_read_u16.3
@@ -0,0 +1 @@
+ldns_buffer_write_at.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_buffer_read_u16_at.3 b/doc/man/man3/ldns_buffer_read_u16_at.3
new file mode 120000
index 000000000000..f693726e59c5
--- /dev/null
+++ b/doc/man/man3/ldns_buffer_read_u16_at.3
@@ -0,0 +1 @@
+ldns_buffer_write_at.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_buffer_read_u32.3 b/doc/man/man3/ldns_buffer_read_u32.3
new file mode 120000
index 000000000000..f693726e59c5
--- /dev/null
+++ b/doc/man/man3/ldns_buffer_read_u32.3
@@ -0,0 +1 @@
+ldns_buffer_write_at.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_buffer_read_u32_at.3 b/doc/man/man3/ldns_buffer_read_u32_at.3
new file mode 120000
index 000000000000..f693726e59c5
--- /dev/null
+++ b/doc/man/man3/ldns_buffer_read_u32_at.3
@@ -0,0 +1 @@
+ldns_buffer_write_at.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_buffer_read_u8.3 b/doc/man/man3/ldns_buffer_read_u8.3
new file mode 120000
index 000000000000..f693726e59c5
--- /dev/null
+++ b/doc/man/man3/ldns_buffer_read_u8.3
@@ -0,0 +1 @@
+ldns_buffer_write_at.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_buffer_read_u8_at.3 b/doc/man/man3/ldns_buffer_read_u8_at.3
new file mode 120000
index 000000000000..f693726e59c5
--- /dev/null
+++ b/doc/man/man3/ldns_buffer_read_u8_at.3
@@ -0,0 +1 @@
+ldns_buffer_write_at.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_buffer_remaining.3 b/doc/man/man3/ldns_buffer_remaining.3
new file mode 120000
index 000000000000..517dd6aa4d2c
--- /dev/null
+++ b/doc/man/man3/ldns_buffer_remaining.3
@@ -0,0 +1 @@
+ldns_buffer_remaining_at.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_buffer_remaining_at.3 b/doc/man/man3/ldns_buffer_remaining_at.3
new file mode 100644
index 000000000000..6884e8451727
--- /dev/null
+++ b/doc/man/man3/ldns_buffer_remaining_at.3
@@ -0,0 +1,107 @@
+.ad l
+.TH ldns 3 "30 May 2006"
+.SH NAME
+ldns_buffer_remaining_at, ldns_buffer_remaining, ldns_buffer_available_at, ldns_buffer_available, ldns_buffer_status, ldns_buffer_status_ok \- check buffer status
+
+.SH SYNOPSIS
+#include <stdint.h>
+.br
+#include <stdbool.h>
+.br
+.PP
+#include <ldns/ldns.h>
+.PP
+size_t ldns_buffer_remaining_at(const ldns_buffer *buffer, size_t at);
+.PP
+size_t ldns_buffer_remaining(const ldns_buffer *buffer);
+.PP
+int ldns_buffer_available_at(const ldns_buffer *buffer, size_t at, size_t count);
+.PP
+int ldns_buffer_available(const ldns_buffer *buffer, size_t count);
+.PP
+ldns_status ldns_buffer_status(const ldns_buffer *buffer);
+.PP
+bool ldns_buffer_status_ok(const ldns_buffer *buffer);
+.PP
+
+.SH DESCRIPTION
+.HP
+\fIldns_buffer_remaining_at\fR()
+returns the number of bytes remaining between the indicated position and
+the limit.
+\.br
+\fBbuffer\fR: the buffer
+\.br
+\fBat\fR: indicated position
+\.br
+Returns number of bytes
+.PP
+.HP
+\fIldns_buffer_remaining\fR()
+returns the number of bytes remaining between the buffer's position and
+limit.
+\.br
+\fBbuffer\fR: the buffer
+\.br
+Returns the number of bytes
+.PP
+.HP
+\fIldns_buffer_available_at\fR()
+checks if the buffer has at least \%COUNT more bytes available.
+Before reading or writing the caller needs to ensure enough space
+is available!
+\.br
+\fBbuffer\fR: the buffer
+\.br
+\fBat\fR: indicated position
+\.br
+\fBcount\fR: how much is available
+\.br
+Returns true or false (as int?)
+.PP
+.HP
+\fIldns_buffer_available\fR()
+checks if the buffer has count bytes available at the current position
+\.br
+\fBbuffer\fR: the buffer
+\.br
+\fBcount\fR: how much is available
+\.br
+Returns true or false (as int?)
+.PP
+.HP
+\fIldns_buffer_status\fR()
+returns the status of the buffer
+\\param[in] buffer
+\.br
+Returns the status
+.PP
+.HP
+\fIldns_buffer_status_ok\fR()
+returns true if the status of the buffer is \%LDNS_STATUS_OK, false otherwise
+\.br
+\fBbuffer\fR: the buffer
+\.br
+Returns true or false
+.PP
+.SH AUTHOR
+The ldns team at NLnet Labs.
+
+.SH REPORTING BUGS
+Please report bugs to ldns-team@nlnetlabs.nl or in
+our bugzilla at
+http://www.nlnetlabs.nl/bugs/index.html
+
+.SH COPYRIGHT
+Copyright (c) 2004 - 2006 NLnet Labs.
+.PP
+Licensed under the BSD License. There is NO warranty; not even for
+MERCHANTABILITY or
+FITNESS FOR A PARTICULAR PURPOSE.
+
+.SH SEE ALSO
+\fIldns_buffer\fR.
+And \fBperldoc Net::DNS\fR, \fBRFC1034\fR,
+\fBRFC1035\fR, \fBRFC4033\fR, \fBRFC4034\fR and \fBRFC4035\fR.
+.SH REMARKS
+This manpage was automatically generated from the ldns source code.
diff --git a/doc/man/man3/ldns_buffer_reserve.3 b/doc/man/man3/ldns_buffer_reserve.3
new file mode 120000
index 000000000000..a621fda08e30
--- /dev/null
+++ b/doc/man/man3/ldns_buffer_reserve.3
@@ -0,0 +1 @@
+ldns_buffer_limit.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_buffer_rewind.3 b/doc/man/man3/ldns_buffer_rewind.3
new file mode 120000
index 000000000000..dc3c61fe7253
--- /dev/null
+++ b/doc/man/man3/ldns_buffer_rewind.3
@@ -0,0 +1 @@
+ldns_buffer_flip.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_buffer_set_capacity.3 b/doc/man/man3/ldns_buffer_set_capacity.3
new file mode 120000
index 000000000000..a621fda08e30
--- /dev/null
+++ b/doc/man/man3/ldns_buffer_set_capacity.3
@@ -0,0 +1 @@
+ldns_buffer_limit.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_buffer_set_limit.3 b/doc/man/man3/ldns_buffer_set_limit.3
new file mode 120000
index 000000000000..a621fda08e30
--- /dev/null
+++ b/doc/man/man3/ldns_buffer_set_limit.3
@@ -0,0 +1 @@
+ldns_buffer_limit.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_buffer_set_position.3 b/doc/man/man3/ldns_buffer_set_position.3
new file mode 120000
index 000000000000..dc3c61fe7253
--- /dev/null
+++ b/doc/man/man3/ldns_buffer_set_position.3
@@ -0,0 +1 @@
+ldns_buffer_flip.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_buffer_skip.3 b/doc/man/man3/ldns_buffer_skip.3
new file mode 120000
index 000000000000..dc3c61fe7253
--- /dev/null
+++ b/doc/man/man3/ldns_buffer_skip.3
@@ -0,0 +1 @@
+ldns_buffer_flip.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_buffer_status.3 b/doc/man/man3/ldns_buffer_status.3
new file mode 120000
index 000000000000..517dd6aa4d2c
--- /dev/null
+++ b/doc/man/man3/ldns_buffer_status.3
@@ -0,0 +1 @@
+ldns_buffer_remaining_at.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_buffer_status_ok.3 b/doc/man/man3/ldns_buffer_status_ok.3
new file mode 120000
index 000000000000..517dd6aa4d2c
--- /dev/null
+++ b/doc/man/man3/ldns_buffer_status_ok.3
@@ -0,0 +1 @@
+ldns_buffer_remaining_at.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_buffer_write.3 b/doc/man/man3/ldns_buffer_write.3
new file mode 120000
index 000000000000..f693726e59c5
--- /dev/null
+++ b/doc/man/man3/ldns_buffer_write.3
@@ -0,0 +1 @@
+ldns_buffer_write_at.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_buffer_write_at.3 b/doc/man/man3/ldns_buffer_write_at.3
new file mode 100644
index 000000000000..6fa956e2a711
--- /dev/null
+++ b/doc/man/man3/ldns_buffer_write_at.3
@@ -0,0 +1,242 @@
+.ad l
+.TH ldns 3 "30 May 2006"
+.SH NAME
+ldns_buffer_write_at, ldns_buffer_write, ldns_buffer_write_string_at, ldns_buffer_write_string, ldns_buffer_write_u8_at, ldns_buffer_write_u8, ldns_buffer_write_u16_at, ldns_buffer_write_u16, ldns_buffer_read_at, ldns_buffer_read, ldns_buffer_read_u8_at, ldns_buffer_read_u8, ldns_buffer_read_u16_at, ldns_buffer_read_u16, ldns_buffer_read_u32_at, ldns_buffer_read_u32, ldns_buffer_write_u32, ldns_buffer_write_u32_at \- reading and writing buffers
+
+.SH SYNOPSIS
+#include <stdint.h>
+.br
+#include <stdbool.h>
+.br
+.PP
+#include <ldns/ldns.h>
+.PP
+void ldns_buffer_write_at(ldns_buffer *buffer, size_t at, const void *data, size_t count);
+.PP
+void ldns_buffer_write(ldns_buffer *buffer, const void *data, size_t count);
+.PP
+void ldns_buffer_write_string_at(ldns_buffer *buffer, size_t at, const char *str);
+.PP
+void ldns_buffer_write_string(ldns_buffer *buffer, const char *str);
+.PP
+void ldns_buffer_write_u8_at(ldns_buffer *buffer, size_t at, uint8_t data);
+.PP
+void ldns_buffer_write_u8(ldns_buffer *buffer, uint8_t data);
+.PP
+void ldns_buffer_write_u16_at(ldns_buffer *buffer, size_t at, uint16_t data);
+.PP
+void ldns_buffer_write_u16(ldns_buffer *buffer, uint16_t data);
+.PP
+void ldns_buffer_read_at(const ldns_buffer *buffer, size_t at, void *data, size_t count);
+.PP
+void ldns_buffer_read(ldns_buffer *buffer, void *data, size_t count);
+.PP
+uint8_t ldns_buffer_read_u8_at(const ldns_buffer *buffer, size_t at);
+.PP
+uint8_t ldns_buffer_read_u8(ldns_buffer *buffer);
+.PP
+uint16_t ldns_buffer_read_u16_at(ldns_buffer *buffer, size_t at);
+.PP
+uint16_t ldns_buffer_read_u16(ldns_buffer *buffer);
+.PP
+uint32_t ldns_buffer_read_u32_at(ldns_buffer *buffer, size_t at);
+.PP
+uint32_t ldns_buffer_read_u32(ldns_buffer *buffer);
+.PP
+void ldns_buffer_write_u32(ldns_buffer *buffer, uint32_t data);
+.PP
+void ldns_buffer_write_u32_at(ldns_buffer *buffer, size_t at, uint32_t data);
+.PP
+
+.SH DESCRIPTION
+.HP
+\fIldns_buffer_write_at\fR()
+writes the given data to the buffer at the specified position
+\.br
+\fBbuffer\fR: the buffer
+\.br
+\fBat\fR: the position (in number of bytes) to write the data at
+\.br
+\fBdata\fR: pointer to the data to write to the buffer
+\.br
+\fBcount\fR: the number of bytes of data to write
+.PP
+.HP
+\fIldns_buffer_write\fR()
+writes count bytes of data to the current position of the buffer
+\.br
+\fBbuffer\fR: the buffer
+\.br
+\fBdata\fR: the data to write
+\.br
+\fBcount\fR: the length of the data to write
+.PP
+.HP
+\fIldns_buffer_write_string_at\fR()
+copies the given (null-delimited) string to the specified position at the buffer
+\.br
+\fBbuffer\fR: the buffer
+\.br
+\fBat\fR: the position in the buffer
+\.br
+\fBstr\fR: the string to write
+.PP
+.HP
+\fIldns_buffer_write_string\fR()
+copies the given (null-delimited) string to the current position at the buffer
+\.br
+\fBbuffer\fR: the buffer
+\.br
+\fBstr\fR: the string to write
+.PP
+.HP
+\fIldns_buffer_write_u8_at\fR()
+writes the given byte of data at the given position in the buffer
+\.br
+\fBbuffer\fR: the buffer
+\.br
+\fBat\fR: the position in the buffer
+\.br
+\fBdata\fR: the 8 bits to write
+.PP
+.HP
+\fIldns_buffer_write_u8\fR()
+writes the given byte of data at the current position in the buffer
+\.br
+\fBbuffer\fR: the buffer
+\.br
+\fBdata\fR: the 8 bits to write
+.PP
+.HP
+\fIldns_buffer_write_u16_at\fR()
+writes the given 2 byte integer at the given position in the buffer
+\.br
+\fBbuffer\fR: the buffer
+\.br
+\fBat\fR: the position in the buffer
+\.br
+\fBdata\fR: the 16 bits to write
+.PP
+.HP
+\fIldns_buffer_write_u16\fR()
+writes the given 2 byte integer at the current position in the buffer
+\.br
+\fBbuffer\fR: the buffer
+\.br
+\fBdata\fR: the 16 bits to write
+.PP
+.HP
+\fIldns_buffer_read_at\fR()
+copies count bytes of data at the given position to the given data-array
+\.br
+\fBbuffer\fR: the buffer
+\.br
+\fBat\fR: the position in the buffer to start
+\.br
+\fBdata\fR: buffer to copy to
+\.br
+\fBcount\fR: the length of the data to copy
+.PP
+.HP
+\fIldns_buffer_read\fR()
+copies count bytes of data at the current position to the given data-array
+\.br
+\fBbuffer\fR: the buffer
+\.br
+\fBdata\fR: buffer to copy to
+\.br
+\fBcount\fR: the length of the data to copy
+.PP
+.HP
+\fIldns_buffer_read_u8_at\fR()
+returns the byte value at the given position in the buffer
+\.br
+\fBbuffer\fR: the buffer
+\.br
+\fBat\fR: the position in the buffer
+\.br
+Returns 1 byte integer
+.PP
+.HP
+\fIldns_buffer_read_u8\fR()
+returns the byte value at the current position in the buffer
+\.br
+\fBbuffer\fR: the buffer
+\.br
+Returns 1 byte integer
+.PP
+.HP
+\fIldns_buffer_read_u16_at\fR()
+returns the 2-byte integer value at the given position in the buffer
+\.br
+\fBbuffer\fR: the buffer
+\.br
+\fBat\fR: position in the buffer
+\.br
+Returns 2 byte integer
+.PP
+.HP
+\fIldns_buffer_read_u16\fR()
+returns the 2-byte integer value at the current position in the buffer
+\.br
+\fBbuffer\fR: the buffer
+\.br
+Returns 2 byte integer
+.PP
+.HP
+\fIldns_buffer_read_u32_at\fR()
+returns the 4-byte integer value at the given position in the buffer
+\.br
+\fBbuffer\fR: the buffer
+\.br
+\fBat\fR: position in the buffer
+\.br
+Returns 4 byte integer
+.PP
+.HP
+\fIldns_buffer_read_u32\fR()
+returns the 4-byte integer value at the current position in the buffer
+\.br
+\fBbuffer\fR: the buffer
+\.br
+Returns 4 byte integer
+.PP
+.HP
+\fIldns_buffer_write_u32\fR()
+writes the given 4 byte integer at the current position in the buffer
+\.br
+\fBbuffer\fR: the buffer
+\.br
+\fBdata\fR: the 32 bits to write
+.PP
+.HP
+\fIldns_buffer_write_u32_at\fR()
+writes the given 4 byte integer at the given position in the buffer
+\.br
+\fBbuffer\fR: the buffer
+\.br
+\fBat\fR: the position in the buffer
+\.br
+\fBdata\fR: the 32 bits to write
+.PP
+.SH AUTHOR
+The ldns team at NLnet Labs.
+
+.SH REPORTING BUGS
+Please report bugs to ldns-team@nlnetlabs.nl or in
+our bugzilla at
+http://www.nlnetlabs.nl/bugs/index.html
+
+.SH COPYRIGHT
+Copyright (c) 2004 - 2006 NLnet Labs.
+.PP
+Licensed under the BSD License. There is NO warranty; not even for
+MERCHANTABILITY or
+FITNESS FOR A PARTICULAR PURPOSE.
+
+.SH SEE ALSO
+\fIldns_buffer\fR.
+And \fBperldoc Net::DNS\fR, \fBRFC1034\fR,
+\fBRFC1035\fR, \fBRFC4033\fR, \fBRFC4034\fR and \fBRFC4035\fR.
+.SH REMARKS
+This manpage was automatically generated from the ldns source code.
diff --git a/doc/man/man3/ldns_buffer_write_string.3 b/doc/man/man3/ldns_buffer_write_string.3
new file mode 120000
index 000000000000..f693726e59c5
--- /dev/null
+++ b/doc/man/man3/ldns_buffer_write_string.3
@@ -0,0 +1 @@
+ldns_buffer_write_at.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_buffer_write_string_at.3 b/doc/man/man3/ldns_buffer_write_string_at.3
new file mode 120000
index 000000000000..f693726e59c5
--- /dev/null
+++ b/doc/man/man3/ldns_buffer_write_string_at.3
@@ -0,0 +1 @@
+ldns_buffer_write_at.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_buffer_write_u16.3 b/doc/man/man3/ldns_buffer_write_u16.3
new file mode 120000
index 000000000000..f693726e59c5
--- /dev/null
+++ b/doc/man/man3/ldns_buffer_write_u16.3
@@ -0,0 +1 @@
+ldns_buffer_write_at.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_buffer_write_u16_at.3 b/doc/man/man3/ldns_buffer_write_u16_at.3
new file mode 120000
index 000000000000..f693726e59c5
--- /dev/null
+++ b/doc/man/man3/ldns_buffer_write_u16_at.3
@@ -0,0 +1 @@
+ldns_buffer_write_at.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_buffer_write_u32.3 b/doc/man/man3/ldns_buffer_write_u32.3
new file mode 120000
index 000000000000..f693726e59c5
--- /dev/null
+++ b/doc/man/man3/ldns_buffer_write_u32.3
@@ -0,0 +1 @@
+ldns_buffer_write_at.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_buffer_write_u32_at.3 b/doc/man/man3/ldns_buffer_write_u32_at.3
new file mode 120000
index 000000000000..f693726e59c5
--- /dev/null
+++ b/doc/man/man3/ldns_buffer_write_u32_at.3
@@ -0,0 +1 @@
+ldns_buffer_write_at.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_buffer_write_u8.3 b/doc/man/man3/ldns_buffer_write_u8.3
new file mode 120000
index 000000000000..f693726e59c5
--- /dev/null
+++ b/doc/man/man3/ldns_buffer_write_u8.3
@@ -0,0 +1 @@
+ldns_buffer_write_at.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_buffer_write_u8_at.3 b/doc/man/man3/ldns_buffer_write_u8_at.3
new file mode 120000
index 000000000000..f693726e59c5
--- /dev/null
+++ b/doc/man/man3/ldns_buffer_write_u8_at.3
@@ -0,0 +1 @@
+ldns_buffer_write_at.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_calc_keytag.3 b/doc/man/man3/ldns_calc_keytag.3
new file mode 100644
index 000000000000..72528d7e8d20
--- /dev/null
+++ b/doc/man/man3/ldns_calc_keytag.3
@@ -0,0 +1,59 @@
+.ad l
+.TH ldns 3 "30 May 2006"
+.SH NAME
+ldns_calc_keytag, ldns_calc_keytag_raw \- calculate ldns keytag
+
+.SH SYNOPSIS
+#include <stdint.h>
+.br
+#include <stdbool.h>
+.br
+.PP
+#include <ldns/ldns.h>
+.PP
+uint16_t ldns_calc_keytag(const ldns_rr *key);
+.PP
+uint16_t ldns_calc_keytag_raw(const uint8_t* key, size_t keysize);
+.PP
+
+.SH DESCRIPTION
+.HP
+\fIldns_calc_keytag\fR()
+calculates a keytag of a key for use in \%DNSSEC.
+
+\.br
+\fBkey\fR: the key as an \%RR to use for the calc.
+\.br
+Returns the keytag
+.PP
+.HP
+\fIldns_calc_keytag_raw\fR()
+Calculates keytag of \%DNSSEC key, operates on wireformat rdata.
+\.br
+\fBkey\fR: the key as uncompressed wireformat rdata.
+\.br
+\fBkeysize\fR: length of key data.
+\.br
+Returns the keytag
+.PP
+.SH AUTHOR
+The ldns team at NLnet Labs.
+
+.SH REPORTING BUGS
+Please report bugs to ldns-team@nlnetlabs.nl or in
+our bugzilla at
+http://www.nlnetlabs.nl/bugs/index.html
+
+.SH COPYRIGHT
+Copyright (c) 2004 - 2006 NLnet Labs.
+.PP
+Licensed under the BSD License. There is NO warranty; not even for
+MERCHANTABILITY or
+FITNESS FOR A PARTICULAR PURPOSE.
+
+.SH SEE ALSO
+\fIldns_key\fR.
+And \fBperldoc Net::DNS\fR, \fBRFC1034\fR,
+\fBRFC1035\fR, \fBRFC4033\fR, \fBRFC4034\fR and \fBRFC4035\fR.
+.SH REMARKS
+This manpage was automatically generated from the ldns source code.
diff --git a/doc/man/man3/ldns_calc_keytag_raw.3 b/doc/man/man3/ldns_calc_keytag_raw.3
new file mode 120000
index 000000000000..0b90349cbebb
--- /dev/null
+++ b/doc/man/man3/ldns_calc_keytag_raw.3
@@ -0,0 +1 @@
+ldns_calc_keytag.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_create_nsec.3 b/doc/man/man3/ldns_create_nsec.3
new file mode 100644
index 000000000000..b1f3ca308c15
--- /dev/null
+++ b/doc/man/man3/ldns_create_nsec.3
@@ -0,0 +1,50 @@
+.ad l
+.TH ldns 3 "30 May 2006"
+.SH NAME
+ldns_create_nsec \- Create a NSEC record
+
+.SH SYNOPSIS
+#include <stdint.h>
+.br
+#include <stdbool.h>
+.br
+.PP
+#include <ldns/ldns.h>
+.PP
+ldns_rr * ldns_create_nsec(ldns_rdf *cur_owner, ldns_rdf *next_owner, ldns_rr_list *rrs);
+.PP
+
+.SH DESCRIPTION
+.HP
+\fIldns_create_nsec\fR()
+Create a \%NSEC record
+\.br
+\fBcur_owner\fR: the current owner which should be taken as the starting point
+\.br
+\fBnext_owner\fR: the rrlist which the nsec rr should point to
+\.br
+\fBrrs\fR: all rrs from the zone, to find all \%RR types of cur_owner in
+\.br
+Returns a ldns_rr with the nsec record in it
+.PP
+.SH AUTHOR
+The ldns team at NLnet Labs.
+
+.SH REPORTING BUGS
+Please report bugs to ldns-team@nlnetlabs.nl or in
+our bugzilla at
+http://www.nlnetlabs.nl/bugs/index.html
+
+.SH COPYRIGHT
+Copyright (c) 2004 - 2006 NLnet Labs.
+.PP
+Licensed under the BSD License. There is NO warranty; not even for
+MERCHANTABILITY or
+FITNESS FOR A PARTICULAR PURPOSE.
+
+.SH SEE ALSO
+\fIldns_sign_public\fR.
+And \fBperldoc Net::DNS\fR, \fBRFC1034\fR,
+\fBRFC1035\fR, \fBRFC4033\fR, \fBRFC4034\fR and \fBRFC4035\fR.
+.SH REMARKS
+This manpage was automatically generated from the ldns source code.
diff --git a/doc/man/man3/ldns_dane_cert2rdf.3 b/doc/man/man3/ldns_dane_cert2rdf.3
new file mode 120000
index 000000000000..8adf1e7ffd89
--- /dev/null
+++ b/doc/man/man3/ldns_dane_cert2rdf.3
@@ -0,0 +1 @@
+ldns_dane_create_tlsa_rr.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_dane_create_tlsa_owner.3 b/doc/man/man3/ldns_dane_create_tlsa_owner.3
new file mode 120000
index 000000000000..8adf1e7ffd89
--- /dev/null
+++ b/doc/man/man3/ldns_dane_create_tlsa_owner.3
@@ -0,0 +1 @@
+ldns_dane_create_tlsa_rr.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_dane_create_tlsa_rr.3 b/doc/man/man3/ldns_dane_create_tlsa_rr.3
new file mode 100644
index 000000000000..254c04bbdfe8
--- /dev/null
+++ b/doc/man/man3/ldns_dane_create_tlsa_rr.3
@@ -0,0 +1,133 @@
+.ad l
+.TH ldns 3 "30 May 2006"
+.SH NAME
+ldns_dane_create_tlsa_rr, ldns_dane_create_tlsa_owner, ldns_dane_cert2rdf, ldns_dane_select_certificate \- TLSA RR creation functions
+
+.SH SYNOPSIS
+#include <stdint.h>
+.br
+#include <stdbool.h>
+.br
+.PP
+#include <ldns/ldns.h>
+.PP
+ldns_status ldns_dane_create_tlsa_rr(ldns_rr** tlsa, ldns_tlsa_certificate_usage certificate_usage, ldns_tlsa_selector selector, ldns_tlsa_matching_type matching_type, X509* cert);
+.PP
+ldns_status ldns_dane_create_tlsa_owner(ldns_rdf** tlsa_owner, const ldns_rdf* name, uint16_t port, ldns_dane_transport transport);
+.PP
+ldns_status ldns_dane_cert2rdf(ldns_rdf** rdf, X509* cert, ldns_tlsa_selector selector, ldns_tlsa_matching_type matching_type);
+.PP
+ldns_status ldns_dane_select_certificate(X509** selected_cert, X509* cert, STACK_OF(X509)* extra_certs, X509_STORE* pkix_validation_store, ldns_tlsa_certificate_usage cert_usage, int index);
+.PP
+
+.SH DESCRIPTION
+.HP
+\fIldns_dane_create_tlsa_rr\fR()
+Creates a \%TLSA resource record from the certificate.
+No \%PKIX validation is performed! The given certificate is used as data
+regardless the value of certificate_usage.
+
+\.br
+\fBtlsa\fR: The created \%TLSA resource record.
+\.br
+\fBcertificate_usage\fR: The value for the Certificate Usage field
+\.br
+\fBselector\fR: The value for the Selector field
+\.br
+\fBmatching_type\fR: The value for the Matching Type field
+\.br
+\fBcert\fR: The certificate which data will be represented
+
+\.br
+Returns \%LDNS_STATUS_OK on success or an error code otherwise.
+.PP
+.HP
+\fIldns_dane_create_tlsa_owner\fR()
+Creates a dname consisting of the given name, prefixed by the service port
+and type of transport: \%_<\%EM>port</\%EM>.\%_<\%EM>transport</\%EM>.<\%EM>name</\%EM>.
+
+\.br
+\fBtlsa_owner\fR: The created dname.
+\.br
+\fBname\fR: The dname that should be prefixed.
+\.br
+\fBport\fR: The service port number for which the name should be created.
+\.br
+\fBtransport\fR: The transport for which the name should be created.
+\.br
+Returns \%LDNS_STATUS_OK on success or an error code otherwise.
+.PP
+.HP
+\fIldns_dane_cert2rdf\fR()
+Creates a \%LDNS_RDF_TYPE_HEX type rdf based on the binary data chosen by
+the selector and encoded using matching_type.
+
+\.br
+\fBrdf\fR: The created created rdf of type \%LDNS_RDF_TYPE_HEX.
+\.br
+\fBcert\fR: The certificate from which the data is selected
+\.br
+\fBselector\fR: The full certificate or the public key
+\.br
+\fBmatching_type\fR: The full data or the SHA256 or SHA512 hash
+of the selected data
+\.br
+Returns \%LDNS_STATUS_OK on success or an error code otherwise.
+.PP
+.HP
+\fIldns_dane_select_certificate\fR()
+Selects the certificate from cert, extra_certs or the pkix_validation_store
+based on the value of cert_usage and index.
+
+\.br
+\fBselected_cert\fR: The selected cert.
+\.br
+\fBcert\fR: The certificate to validate (or not)
+\.br
+\fBextra_certs\fR: Intermediate certificates that might be necessary
+during validation. May be \%NULL, except when the certificate
+usage is "Trust Anchor Assertion" because the trust anchor has
+to be provided.(otherwise choose a "Domain issued certificate!"
+\.br
+\fBpkix_validation_store\fR: Used when the certificate usage is
+"\%CA constraint" or "Service Certificate Constraint" to
+validate the certificate and, in case of "\%CA constraint",
+select the \%CA.
+When pkix_validation_store is \%NULL, validation is explicitly
+turned off and the behaviour is then the same as for "Trust
+anchor assertion" and "Domain issued certificate" respectively.
+\.br
+\fBcert_usage\fR: Which certificate to use and how to validate.
+\.br
+\fBindex\fR: Used to select the trust anchor when certificate usage
+is "Trust Anchor Assertion". 0 is the last certificate in the
+validation chain. 1 the one but last, etc. When index is -1,
+the last certificate is used that \%MUST be self-signed.
+This can help to make sure that the intended (self signed)
+trust anchor is actually present in extra_certs (which is a
+\%DANE requirement).
+
+\.br
+Returns \%LDNS_STATUS_OK on success or an error code otherwise.
+.PP
+.SH AUTHOR
+The ldns team at NLnet Labs.
+
+.SH REPORTING BUGS
+Please report bugs to ldns-team@nlnetlabs.nl or in
+our bugzilla at
+http://www.nlnetlabs.nl/bugs/index.html
+
+.SH COPYRIGHT
+Copyright (c) 2004 - 2006 NLnet Labs.
+.PP
+Licensed under the BSD License. There is NO warranty; not even for
+MERCHANTABILITY or
+FITNESS FOR A PARTICULAR PURPOSE.
+
+.SH SEE ALSO
+\fIldns_dane_verify\fR, \fIldns_dane_verify_rr\fR.
+And \fBperldoc Net::DNS\fR, \fBRFC1034\fR,
+\fBRFC1035\fR, \fBRFC4033\fR, \fBRFC4034\fR and \fBRFC4035\fR.
+.SH REMARKS
+This manpage was automatically generated from the ldns source code.
diff --git a/doc/man/man3/ldns_dane_select_certificate.3 b/doc/man/man3/ldns_dane_select_certificate.3
new file mode 120000
index 000000000000..8adf1e7ffd89
--- /dev/null
+++ b/doc/man/man3/ldns_dane_select_certificate.3
@@ -0,0 +1 @@
+ldns_dane_create_tlsa_rr.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_dane_verify.3 b/doc/man/man3/ldns_dane_verify.3
new file mode 100644
index 000000000000..6a95ca6f23b2
--- /dev/null
+++ b/doc/man/man3/ldns_dane_verify.3
@@ -0,0 +1,124 @@
+.ad l
+.TH ldns 3 "30 May 2006"
+.SH NAME
+ldns_dane_verify, ldns_dane_verify_rr \- TLSA RR verification functions
+
+.SH SYNOPSIS
+#include <stdint.h>
+.br
+#include <stdbool.h>
+.br
+.PP
+#include <ldns/ldns.h>
+.PP
+ldns_status ldns_dane_verify(const ldns_rr_list* tlsas, X509* cert, STACK_OF(X509)* extra_certs, X509_STORE* pkix_validation_store);
+.PP
+ldns_status ldns_dane_verify_rr(const ldns_rr* tlsa_rr, X509* cert, STACK_OF(X509)* extra_certs, X509_STORE* pkix_validation_store);
+.PP
+
+.SH DESCRIPTION
+.HP
+\fIldns_dane_verify\fR()
+\%BEWARE! We strongly recommend to use OpenSSL 1.1.0 dane verification
+functions instead of the ones provided by ldns. When OpenSSL 1.1.0 was
+available ldns will use the OpenSSL 1.1.0 dane verification functions
+under the hood. When ldns was linked with OpenSSL < 1.1.0, this function
+will not be able to verify \%TLSA records with \%DANE-\%TA usage types.
+
+\%BEWARE! The ldns dane verification functions do *not* do server name
+checks. The user has to perform additional server name checks themselves!
+
+Verify if any of the given \%TLSA resource records matches the given
+certificate.
+
+\.br
+\fBtlsas\fR: The resource records that specify what and how to
+match the certificate. One must match for this function
+to succeed. With tlsas == \%NULL or the number of \%TLSA records
+in tlsas == 0, regular \%PKIX validation is performed.
+\.br
+\fBcert\fR: The certificate to match (and validate)
+\.br
+\fBextra_certs\fR: Intermediate certificates that might be necessary
+creating the validation chain.
+\.br
+\fBpkix_validation_store\fR: Used when the certificate usage is
+"\%CA constraint" or "Service Certificate Constraint" to
+validate the certificate.
+
+\.br
+Returns \%LDNS_STATUS_OK on success,
+LDNS_STATUS_DANE_NEED_OPENSSL_GE_1_1_FOR_DANE_TA when at least one
+of the \%TLSA's had usage type \%DANE-\%TA and none of the \%TLSA's matched
+or \%PKIX validated,
+\%LDNS_STATUS_DANE_PKIX_DID_NOT_VALIDATE when one of the \%TLSA's
+matched but the \%PKIX validation failed,
+\%LDNS_STATUS_DANE_TLSA_DID_NOT_MATCH when none of the \%TLSA's matched,
+or other ldns_status errors.
+.PP
+.HP
+\fIldns_dane_verify_rr\fR()
+\%BEWARE! We strongly recommend to use OpenSSL 1.1.0 dane verification
+functions instead of the ones provided by ldns. When OpenSSL 1.1.0 was
+available ldns will use the OpenSSL 1.1.0 dane verification functions
+under the hood. When ldns was linked with OpenSSL < 1.1.0, this function
+will not be able to verify \%TLSA records with \%DANE-\%TA usage types.
+
+\%BEWARE! The ldns dane verification functions do *not* do server name
+checks. The user has to perform additional server name checks themselves!
+
+Verify if the given \%TLSA resource record matches the given certificate.
+Reporting on a \%TLSA rr mismatch (\%LDNS_STATUS_DANE_TLSA_DID_NOT_MATCH)
+is preferred over \%PKIX failure (\%LDNS_STATUS_DANE_PKIX_DID_NOT_VALIDATE).
+So when \%PKIX validation is required by the \%TLSA Certificate usage,
+but the \%TLSA data does not match, \%LDNS_STATUS_DANE_TLSA_DID_NOT_MATCH
+is returned whether the \%PKIX validated or not.
+
+When ldns is linked with OpenSSL < 1.1.0 and this function is available,
+then the \%DANE-\%TA usage type will not be verified, and on a tlsa_rr with
+this usage type,
+LDNS_STATUS_DANE_NEED_OPENSSL_GE_1_1_FOR_DANE_TA will be returned.
+
+\.br
+\fBtlsa_rr\fR: The resource record that specifies what and how to
+match the certificate. With tlsa_rr == \%NULL, regular \%PKIX
+validation is performed.
+\.br
+\fBcert\fR: The certificate to match (and validate)
+\.br
+\fBextra_certs\fR: Intermediate certificates that might be necessary
+creating the validation chain.
+\.br
+\fBpkix_validation_store\fR: Used when the certificate usage is
+"\%CA constraint" or "Service Certificate Constraint" to
+validate the certificate.
+
+\.br
+Returns \%LDNS_STATUS_OK on success,
+LDNS_STATUS_DANE_NEED_OPENSSL_GE_1_1_FOR_DANE_TA when the
+provided \%TLSA had the \%DANE-\%TA usage type,
+\%LDNS_STATUS_DANE_TLSA_DID_NOT_MATCH on \%TLSA data mismatch,
+\%LDNS_STATUS_DANE_PKIX_DID_NOT_VALIDATE when \%TLSA matched,
+but the \%PKIX validation failed, or other ldns_status errors.
+.PP
+.SH AUTHOR
+The ldns team at NLnet Labs.
+
+.SH REPORTING BUGS
+Please report bugs to ldns-team@nlnetlabs.nl or in
+our bugzilla at
+http://www.nlnetlabs.nl/bugs/index.html
+
+.SH COPYRIGHT
+Copyright (c) 2004 - 2006 NLnet Labs.
+.PP
+Licensed under the BSD License. There is NO warranty; not even for
+MERCHANTABILITY or
+FITNESS FOR A PARTICULAR PURPOSE.
+
+.SH SEE ALSO
+\fIldns_dane_create_tlsa_owner\fR, \fIldns_dane_cert2rdf\fR, \fIldns_dane_select_certificate\fR, \fIldns_dane_create_tlsa_rr\fR.
+And \fBperldoc Net::DNS\fR, \fBRFC1034\fR,
+\fBRFC1035\fR, \fBRFC4033\fR, \fBRFC4034\fR and \fBRFC4035\fR.
+.SH REMARKS
+This manpage was automatically generated from the ldns source code.
diff --git a/doc/man/man3/ldns_dane_verify_rr.3 b/doc/man/man3/ldns_dane_verify_rr.3
new file mode 120000
index 000000000000..9566a7fd8f9a
--- /dev/null
+++ b/doc/man/man3/ldns_dane_verify_rr.3
@@ -0,0 +1 @@
+ldns_dane_verify.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_dname2canonical.3 b/doc/man/man3/ldns_dname2canonical.3
new file mode 100644
index 000000000000..bb597c6edd22
--- /dev/null
+++ b/doc/man/man3/ldns_dname2canonical.3
@@ -0,0 +1,44 @@
+.ad l
+.TH ldns 3 "30 May 2006"
+.SH NAME
+ldns_dname2canonical \- canonicalize dname
+
+.SH SYNOPSIS
+#include <stdint.h>
+.br
+#include <stdbool.h>
+.br
+.PP
+#include <ldns/ldns.h>
+.PP
+void ldns_dname2canonical(const ldns_rdf *rdf);
+.PP
+
+.SH DESCRIPTION
+.HP
+\fIldns_dname2canonical\fR()
+Put a dname into canonical fmt - ie. lowercase it
+\.br
+\fBrdf\fR: the dname to lowercase
+\.br
+Returns void
+.PP
+.SH AUTHOR
+The ldns team at NLnet Labs.
+
+.SH REPORTING BUGS
+Please report bugs to ldns-team@nlnetlabs.nl or in
+our bugzilla at
+http://www.nlnetlabs.nl/bugs/index.html
+
+.SH COPYRIGHT
+Copyright (c) 2004 - 2006 NLnet Labs.
+.PP
+Licensed under the BSD License. There is NO warranty; not even for
+MERCHANTABILITY or
+FITNESS FOR A PARTICULAR PURPOSE.
+.SH SEE ALSO
+\fBperldoc Net::DNS\fR, \fBRFC1034\fR,
+\fBRFC1035\fR, \fBRFC4033\fR, \fBRFC4034\fR and \fBRFC4035\fR.
+.SH REMARKS
+This manpage was automatically generated from the ldns source code.
diff --git a/doc/man/man3/ldns_dname_cat.3 b/doc/man/man3/ldns_dname_cat.3
new file mode 120000
index 000000000000..3c694d5e3622
--- /dev/null
+++ b/doc/man/man3/ldns_dname_cat.3
@@ -0,0 +1 @@
+ldns_dname_cat_clone.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_dname_cat_clone.3 b/doc/man/man3/ldns_dname_cat_clone.3
new file mode 100644
index 000000000000..0855625e421f
--- /dev/null
+++ b/doc/man/man3/ldns_dname_cat_clone.3
@@ -0,0 +1,58 @@
+.ad l
+.TH ldns 3 "30 May 2006"
+.SH NAME
+ldns_dname_cat_clone, ldns_dname_cat \- concatenate two dnames
+
+.SH SYNOPSIS
+#include <stdint.h>
+.br
+#include <stdbool.h>
+.br
+.PP
+#include <ldns/ldns.h>
+.PP
+ldns_rdf* ldns_dname_cat_clone(const ldns_rdf *rd1, const ldns_rdf *rd2);
+.PP
+ldns_status ldns_dname_cat(ldns_rdf *rd1, const ldns_rdf *rd2);
+.PP
+
+.SH DESCRIPTION
+.HP
+\fIldns_dname_cat_clone\fR()
+concatenates two dnames together
+\.br
+\fBrd1\fR: the leftside
+\.br
+\fBrd2\fR: the rightside
+\.br
+Returns a new rdf with leftside/rightside
+.PP
+.HP
+\fIldns_dname_cat\fR()
+concatenates rd2 after rd1 (rd2 is copied, rd1 is modified)
+\.br
+\fBrd1\fR: the leftside
+\.br
+\fBrd2\fR: the rightside
+\.br
+Returns \%LDNS_STATUS_OK on success
+.PP
+.SH AUTHOR
+The ldns team at NLnet Labs.
+
+.SH REPORTING BUGS
+Please report bugs to ldns-team@nlnetlabs.nl or in
+our bugzilla at
+http://www.nlnetlabs.nl/bugs/index.html
+
+.SH COPYRIGHT
+Copyright (c) 2004 - 2006 NLnet Labs.
+.PP
+Licensed under the BSD License. There is NO warranty; not even for
+MERCHANTABILITY or
+FITNESS FOR A PARTICULAR PURPOSE.
+.SH SEE ALSO
+\fBperldoc Net::DNS\fR, \fBRFC1034\fR,
+\fBRFC1035\fR, \fBRFC4033\fR, \fBRFC4034\fR and \fBRFC4035\fR.
+.SH REMARKS
+This manpage was automatically generated from the ldns source code.
diff --git a/doc/man/man3/ldns_dname_compare.3 b/doc/man/man3/ldns_dname_compare.3
new file mode 100644
index 000000000000..a8a802ca429a
--- /dev/null
+++ b/doc/man/man3/ldns_dname_compare.3
@@ -0,0 +1,63 @@
+.ad l
+.TH ldns 3 "30 May 2006"
+.SH NAME
+ldns_dname_compare, ldns_dname_interval \- compare two dnames
+
+.SH SYNOPSIS
+#include <stdint.h>
+.br
+#include <stdbool.h>
+.br
+.PP
+#include <ldns/ldns.h>
+.PP
+int ldns_dname_compare(const ldns_rdf *dname1, const ldns_rdf *dname2);
+.PP
+int ldns_dname_interval(const ldns_rdf *prev, const ldns_rdf *middle, const ldns_rdf *next);
+.PP
+
+.SH DESCRIPTION
+.HP
+\fIldns_dname_compare\fR()
+Compares the two dname rdf's according to the algorithm for ordering
+in RFC4034 Section 6.
+\.br
+\fBdname1\fR: First dname rdf to compare
+\.br
+\fBdname2\fR: Second dname rdf to compare
+\.br
+Returns -1 if dname1 comes before dname2, 1 if dname1 comes after dname2, and 0 if they are equal.
+.PP
+.HP
+\fIldns_dname_interval\fR()
+check if middle lays in the interval defined by prev and next
+prev <= middle < next. This is useful for nsec checking
+\.br
+\fBprev\fR: the previous dname
+\.br
+\fBmiddle\fR: the dname to check
+\.br
+\fBnext\fR: the next dname
+return 0 on error or unknown, -1 when middle is in the interval, +1 when not
+.PP
+.SH AUTHOR
+The ldns team at NLnet Labs.
+
+.SH REPORTING BUGS
+Please report bugs to ldns-team@nlnetlabs.nl or in
+our bugzilla at
+http://www.nlnetlabs.nl/bugs/index.html
+
+.SH COPYRIGHT
+Copyright (c) 2004 - 2006 NLnet Labs.
+.PP
+Licensed under the BSD License. There is NO warranty; not even for
+MERCHANTABILITY or
+FITNESS FOR A PARTICULAR PURPOSE.
+
+.SH SEE ALSO
+\fIldns_dname_is_subdomain\fR.
+And \fBperldoc Net::DNS\fR, \fBRFC1034\fR,
+\fBRFC1035\fR, \fBRFC4033\fR, \fBRFC4034\fR and \fBRFC4035\fR.
+.SH REMARKS
+This manpage was automatically generated from the ldns source code.
diff --git a/doc/man/man3/ldns_dname_interval.3 b/doc/man/man3/ldns_dname_interval.3
new file mode 120000
index 000000000000..50c24cee8eba
--- /dev/null
+++ b/doc/man/man3/ldns_dname_interval.3
@@ -0,0 +1 @@
+ldns_dname_compare.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_dname_is_subdomain.3 b/doc/man/man3/ldns_dname_is_subdomain.3
new file mode 100644
index 000000000000..fac7c0a885c2
--- /dev/null
+++ b/doc/man/man3/ldns_dname_is_subdomain.3
@@ -0,0 +1,72 @@
+.ad l
+.TH ldns 3 "30 May 2006"
+.SH NAME
+ldns_dname_is_subdomain, ldns_dname_str_absolute, ldns_dname_label \- check properties of dnames
+
+.SH SYNOPSIS
+#include <stdint.h>
+.br
+#include <stdbool.h>
+.br
+.PP
+#include <ldns/ldns.h>
+.PP
+bool ldns_dname_is_subdomain(const ldns_rdf *sub, const ldns_rdf *parent);
+.PP
+bool ldns_dname_str_absolute(const char *dname_str);
+.PP
+ldns_rdf * ldns_dname_label(const ldns_rdf *rdf, uint8_t labelpos);
+.PP
+
+.SH DESCRIPTION
+.HP
+\fIldns_dname_is_subdomain\fR()
+test whether the name sub falls under parent (i.e. is a subdomain
+of parent). This function will return false if the given dnames are
+equal.
+\.br
+\fBsub\fR: the name to test
+\.br
+\fBparent\fR: the parent's name
+\.br
+Returns true if sub falls under parent, otherwise false
+.PP
+.HP
+\fIldns_dname_str_absolute\fR()
+Checks whether the given dname string is absolute (i.e. ends with a '.')
+\.br
+\fB*dname_str\fR: a string representing the dname
+\.br
+Returns true or false
+.PP
+.HP
+\fIldns_dname_label\fR()
+look inside the rdf and if it is an \%LDNS_RDF_TYPE_DNAME
+try and retrieve a specific label. The labels are numbered
+starting from 0 (left most).
+\.br
+\fBrdf\fR: the rdf to look in
+\.br
+\fBlabelpos\fR: return the label with this number
+\.br
+Returns a ldns_rdf* with the label as name or \%NULL on error
+.PP
+.SH AUTHOR
+The ldns team at NLnet Labs.
+
+.SH REPORTING BUGS
+Please report bugs to ldns-team@nlnetlabs.nl or in
+our bugzilla at
+http://www.nlnetlabs.nl/bugs/index.html
+
+.SH COPYRIGHT
+Copyright (c) 2004 - 2006 NLnet Labs.
+.PP
+Licensed under the BSD License. There is NO warranty; not even for
+MERCHANTABILITY or
+FITNESS FOR A PARTICULAR PURPOSE.
+.SH SEE ALSO
+\fBperldoc Net::DNS\fR, \fBRFC1034\fR,
+\fBRFC1035\fR, \fBRFC4033\fR, \fBRFC4034\fR and \fBRFC4035\fR.
+.SH REMARKS
+This manpage was automatically generated from the ldns source code.
diff --git a/doc/man/man3/ldns_dname_label.3 b/doc/man/man3/ldns_dname_label.3
new file mode 120000
index 000000000000..414fbfebf6de
--- /dev/null
+++ b/doc/man/man3/ldns_dname_label.3
@@ -0,0 +1 @@
+ldns_dname_is_subdomain.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_dname_label_count.3 b/doc/man/man3/ldns_dname_label_count.3
new file mode 120000
index 000000000000..5ac4eb7088e0
--- /dev/null
+++ b/doc/man/man3/ldns_dname_label_count.3
@@ -0,0 +1 @@
+ldns_dname_left_chop.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_dname_left_chop.3 b/doc/man/man3/ldns_dname_left_chop.3
new file mode 100644
index 000000000000..94b616796064
--- /dev/null
+++ b/doc/man/man3/ldns_dname_left_chop.3
@@ -0,0 +1,56 @@
+.ad l
+.TH ldns 3 "30 May 2006"
+.SH NAME
+ldns_dname_left_chop, ldns_dname_label_count \- dname label functions
+
+.SH SYNOPSIS
+#include <stdint.h>
+.br
+#include <stdbool.h>
+.br
+.PP
+#include <ldns/ldns.h>
+.PP
+ldns_rdf* ldns_dname_left_chop(const ldns_rdf *d);
+.PP
+uint8_t ldns_dname_label_count(const ldns_rdf *r);
+.PP
+
+.SH DESCRIPTION
+.HP
+\fIldns_dname_left_chop\fR()
+chop one label off the left side of a dname. so
+wwww.nlnetlabs.nl, becomes nlnetlabs.nl
+This new name is a clone and must be freed with ldns_deep_free()
+\.br
+\fBd\fR: the dname to chop
+\.br
+Returns the remaining dname
+.PP
+.HP
+\fIldns_dname_label_count\fR()
+count the number of labels inside a \%LDNS_RDF_DNAME type rdf.
+\.br
+\fB*r\fR: the rdf
+\.br
+Returns the number of labels
+.PP
+.SH AUTHOR
+The ldns team at NLnet Labs.
+
+.SH REPORTING BUGS
+Please report bugs to ldns-team@nlnetlabs.nl or in
+our bugzilla at
+http://www.nlnetlabs.nl/bugs/index.html
+
+.SH COPYRIGHT
+Copyright (c) 2004 - 2006 NLnet Labs.
+.PP
+Licensed under the BSD License. There is NO warranty; not even for
+MERCHANTABILITY or
+FITNESS FOR A PARTICULAR PURPOSE.
+.SH SEE ALSO
+\fBperldoc Net::DNS\fR, \fBRFC1034\fR,
+\fBRFC1035\fR, \fBRFC4033\fR, \fBRFC4034\fR and \fBRFC4035\fR.
+.SH REMARKS
+This manpage was automatically generated from the ldns source code.
diff --git a/doc/man/man3/ldns_dname_new.3 b/doc/man/man3/ldns_dname_new.3
new file mode 100644
index 000000000000..db2e9d7617dc
--- /dev/null
+++ b/doc/man/man3/ldns_dname_new.3
@@ -0,0 +1,73 @@
+.ad l
+.TH ldns 3 "30 May 2006"
+.SH NAME
+ldns_dname_new, ldns_dname_new_frm_str, ldns_dname_new_frm_data \- create a dname
+
+.SH SYNOPSIS
+#include <stdint.h>
+.br
+#include <stdbool.h>
+.br
+.PP
+#include <ldns/ldns.h>
+.PP
+ldns_rdf* ldns_dname_new(uint16_t s, void *data);
+.PP
+ldns_rdf* ldns_dname_new_frm_str(const char *str);
+.PP
+ldns_rdf* ldns_dname_new_frm_data(uint16_t size, const void *data);
+.PP
+
+.SH DESCRIPTION
+.HP
+\fIldns_dname_new\fR()
+Create a new dname rdf from a string. The data pointer
+is stored in the rdf, not a copy of the data
+\.br
+\fBs\fR: the size of the new dname
+\.br
+\fB*data\fR: pointer to the actual data
+
+\.br
+Returns ldns_rdf*
+.PP
+.HP
+\fIldns_dname_new_frm_str\fR()
+creates a new dname rdf from a string.
+\.br
+\fBstr\fR: string to use
+\.br
+Returns ldns_rdf* or \%NULL in case of an error
+.PP
+.HP
+\fIldns_dname_new_frm_data\fR()
+Create a new dname rdf from data (the data is copied)
+\.br
+\fBsize\fR: the size of the data
+\.br
+\fB*data\fR: pointer to the actual data
+
+\.br
+Returns ldns_rdf*
+.PP
+.SH AUTHOR
+The ldns team at NLnet Labs.
+
+.SH REPORTING BUGS
+Please report bugs to ldns-team@nlnetlabs.nl or in
+our bugzilla at
+http://www.nlnetlabs.nl/bugs/index.html
+
+.SH COPYRIGHT
+Copyright (c) 2004 - 2006 NLnet Labs.
+.PP
+Licensed under the BSD License. There is NO warranty; not even for
+MERCHANTABILITY or
+FITNESS FOR A PARTICULAR PURPOSE.
+
+.SH SEE ALSO
+\fIldns_pkt_query_new_frm_str\fR, \fIldns_rdf_new_frm_str\fR, \fIldns_rr_new_frm_str\fR.
+And \fBperldoc Net::DNS\fR, \fBRFC1034\fR,
+\fBRFC1035\fR, \fBRFC4033\fR, \fBRFC4034\fR and \fBRFC4035\fR.
+.SH REMARKS
+This manpage was automatically generated from the ldns source code.
diff --git a/doc/man/man3/ldns_dname_new_frm_data.3 b/doc/man/man3/ldns_dname_new_frm_data.3
new file mode 120000
index 000000000000..c5419061c714
--- /dev/null
+++ b/doc/man/man3/ldns_dname_new_frm_data.3
@@ -0,0 +1 @@
+ldns_dname_new.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_dname_new_frm_str.3 b/doc/man/man3/ldns_dname_new_frm_str.3
new file mode 120000
index 000000000000..c5419061c714
--- /dev/null
+++ b/doc/man/man3/ldns_dname_new_frm_str.3
@@ -0,0 +1 @@
+ldns_dname_new.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_dname_str_absolute.3 b/doc/man/man3/ldns_dname_str_absolute.3
new file mode 120000
index 000000000000..414fbfebf6de
--- /dev/null
+++ b/doc/man/man3/ldns_dname_str_absolute.3
@@ -0,0 +1 @@
+ldns_dname_is_subdomain.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_dnssec_build_data_chain.3 b/doc/man/man3/ldns_dnssec_build_data_chain.3
new file mode 120000
index 000000000000..3dabaa85e9e9
--- /dev/null
+++ b/doc/man/man3/ldns_dnssec_build_data_chain.3
@@ -0,0 +1 @@
+ldns_dnssec_data_chain_new.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_dnssec_data_chain.3 b/doc/man/man3/ldns_dnssec_data_chain.3
new file mode 100644
index 000000000000..14a2edb9f42b
--- /dev/null
+++ b/doc/man/man3/ldns_dnssec_data_chain.3
@@ -0,0 +1,157 @@
+.ad l
+.TH ldns 3 "30 May 2006"
+.SH NAME
+ldns_dnssec_data_chain, ldns_dnssec_data_chain_struct, ldns_dnssec_trust_tree \- data structures for validation chains
+
+.SH SYNOPSIS
+#include <stdint.h>
+.br
+#include <stdbool.h>
+.br
+.PP
+#include <ldns/ldns.h>
+.PP
+ ldns_dnssec_data_chain_struct();
+.PP
+
+.SH DESCRIPTION
+.HP
+\fIldns_dnssec_data_chain\fR
+.br
+Chain structure that contains all DNSSEC data needed to
+.br
+verify an rrset
+.br
+struct ldns_dnssec_data_chain_struct
+.br
+{
+.br
+ ldns_rr_list *rrset;
+.br
+ ldns_rr_list *signatures;
+.br
+ ldns_rr_type parent_type;
+.br
+ ldns_dnssec_data_chain *parent;
+.br
+ ldns_pkt_rcode packet_rcode;
+.br
+ ldns_rr_type packet_qtype;
+.br
+ bool packet_nodata;
+.br
+};
+.br
+
+.br
+typedef struct ldns_dnssec_data_chain_struct ldns_dnssec_data_chain;
+.PP
+.HP
+\fIldns_dnssec_data_chain_struct\fR()
+.PP
+.HP
+\fIldns_dnssec_trust_tree\fR
+.br
+Tree structure that contains the relation of DNSSEC data,
+.br
+and their cryptographic status.
+.br
+
+.br
+This tree is derived from a data_chain, and can be used
+.br
+to look whether there is a connection between an RRSET
+.br
+and a trusted key. The tree only contains pointers to the
+.br
+data_chain, and therefore one should *never* free() the
+.br
+data_chain when there is still a trust tree derived from
+.br
+that chain.
+.br
+
+.br
+Example tree:
+.br
+ key key key
+.br
+ \\ | /
+.br
+ \\ | /
+.br
+ \\ | /
+.br
+ ds
+.br
+ |
+.br
+ key
+.br
+ |
+.br
+ key
+.br
+ |
+.br
+ rr
+.br
+
+.br
+For each signature there is a parent; if the parent
+.br
+pointer is null, it couldn't be found and there was no
+.br
+denial; otherwise is a tree which contains either a
+.br
+DNSKEY, a DS, or a NSEC rr
+.br
+struct ldns_dnssec_trust_tree_struct
+.br
+{
+.br
+ ldns_rr *rr;
+.br
+ /* the complete rrset this rr was in */
+.br
+ ldns_rr_list *rrset;
+.br
+ ldns_dnssec_trust_tree *parents[LDNS_DNSSEC_TRUST_TREE_MAX_PARENTS];
+.br
+ ldns_status parent_status[LDNS_DNSSEC_TRUST_TREE_MAX_PARENTS];
+.br
+ /** for debugging, add signatures too (you might want
+.br
+ those if they contain errors) */
+.br
+ ldns_rr *parent_signature[LDNS_DNSSEC_TRUST_TREE_MAX_PARENTS];
+.br
+ size_t parent_count;
+.br
+};
+.br
+
+.br
+typedef struct ldns_dnssec_trust_tree_struct ldns_dnssec_trust_tree;
+.PP
+.SH AUTHOR
+The ldns team at NLnet Labs.
+
+.SH REPORTING BUGS
+Please report bugs to ldns-team@nlnetlabs.nl or in
+our bugzilla at
+http://www.nlnetlabs.nl/bugs/index.html
+
+.SH COPYRIGHT
+Copyright (c) 2004 - 2006 NLnet Labs.
+.PP
+Licensed under the BSD License. There is NO warranty; not even for
+MERCHANTABILITY or
+FITNESS FOR A PARTICULAR PURPOSE.
+
+.SH SEE ALSO
+\fIldns_dnssec_data_chain_new\fR, \fIldns_dnssec_trust_tree_new\fR, \fIldns_dnssec_verify_denial\fR.
+And \fBperldoc Net::DNS\fR, \fBRFC1034\fR,
+\fBRFC1035\fR, \fBRFC4033\fR, \fBRFC4034\fR and \fBRFC4035\fR.
+.SH REMARKS
+This manpage was automatically generated from the ldns source code.
diff --git a/doc/man/man3/ldns_dnssec_data_chain_deep_free.3 b/doc/man/man3/ldns_dnssec_data_chain_deep_free.3
new file mode 120000
index 000000000000..3dabaa85e9e9
--- /dev/null
+++ b/doc/man/man3/ldns_dnssec_data_chain_deep_free.3
@@ -0,0 +1 @@
+ldns_dnssec_data_chain_new.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_dnssec_data_chain_free.3 b/doc/man/man3/ldns_dnssec_data_chain_free.3
new file mode 120000
index 000000000000..3dabaa85e9e9
--- /dev/null
+++ b/doc/man/man3/ldns_dnssec_data_chain_free.3
@@ -0,0 +1 @@
+ldns_dnssec_data_chain_new.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_dnssec_data_chain_new.3 b/doc/man/man3/ldns_dnssec_data_chain_new.3
new file mode 100644
index 000000000000..8c465208f85b
--- /dev/null
+++ b/doc/man/man3/ldns_dnssec_data_chain_new.3
@@ -0,0 +1,98 @@
+.ad l
+.TH ldns 3 "30 May 2006"
+.SH NAME
+ldns_dnssec_data_chain_new, ldns_dnssec_data_chain_free, ldns_dnssec_data_chain_deep_free, ldns_dnssec_build_data_chain, ldns_dnssec_data_chain_print \- ldns_chain creation, destruction and printing
+
+.SH SYNOPSIS
+#include <stdint.h>
+.br
+#include <stdbool.h>
+.br
+.PP
+#include <ldns/ldns.h>
+.PP
+ldns_dnssec_data_chain* ldns_dnssec_data_chain_new(void);
+.PP
+void ldns_dnssec_data_chain_free(ldns_dnssec_data_chain *chain);
+.PP
+void ldns_dnssec_data_chain_deep_free(ldns_dnssec_data_chain *chain);
+.PP
+ldns_dnssec_data_chain* ldns_dnssec_build_data_chain(ldns_resolver *res, const uint16_t qflags, const ldns_rr_list *data_set, const ldns_pkt *pkt, ldns_rr *orig_rr);
+.PP
+void ldns_dnssec_data_chain_print(FILE *out, const ldns_dnssec_data_chain *chain);
+.PP
+
+.SH DESCRIPTION
+.HP
+\fIldns_dnssec_data_chain_new\fR()
+Creates a new dnssec_chain structure
+\.br
+Returns ldns_dnssec_data_chain *
+.PP
+.HP
+\fIldns_dnssec_data_chain_free\fR()
+Frees a dnssec_data_chain structure
+
+\.br
+\fB*chain\fR: The chain to free
+.PP
+.HP
+\fIldns_dnssec_data_chain_deep_free\fR()
+Frees a dnssec_data_chain structure, and all data
+contained therein
+
+\.br
+\fB*chain\fR: The dnssec_data_chain to free
+.PP
+.HP
+\fIldns_dnssec_build_data_chain\fR()
+Build an ldns_dnssec_data_chain, which contains all
+\%DNSSEC data that is needed to derive the trust tree later
+
+The data_set will be cloned
+
+\.br
+\fB*res\fR: resolver structure for further needed queries
+\.br
+\fBqflags\fR: resolution flags
+\.br
+\fB*data_set\fR: The original rrset where the chain ends
+\.br
+\fB*pkt\fR: optional, can contain the original packet
+(and hence the sigs and maybe the key)
+\.br
+\fB*orig_rr\fR: The original Resource Record
+
+\.br
+Returns the \%DNSSEC data chain
+.PP
+.HP
+\fIldns_dnssec_data_chain_print\fR()
+Prints the dnssec_data_chain to the given file stream
+
+\.br
+\fB*out\fR: The file stream to print to
+\.br
+\fB*chain\fR: The dnssec_data_chain to print
+.PP
+.SH AUTHOR
+The ldns team at NLnet Labs.
+
+.SH REPORTING BUGS
+Please report bugs to ldns-team@nlnetlabs.nl or in
+our bugzilla at
+http://www.nlnetlabs.nl/bugs/index.html
+
+.SH COPYRIGHT
+Copyright (c) 2004 - 2006 NLnet Labs.
+.PP
+Licensed under the BSD License. There is NO warranty; not even for
+MERCHANTABILITY or
+FITNESS FOR A PARTICULAR PURPOSE.
+
+.SH SEE ALSO
+\fIldns_dnssec_data_chain\fR.
+And \fBperldoc Net::DNS\fR, \fBRFC1034\fR,
+\fBRFC1035\fR, \fBRFC4033\fR, \fBRFC4034\fR and \fBRFC4035\fR.
+.SH REMARKS
+This manpage was automatically generated from the ldns source code.
diff --git a/doc/man/man3/ldns_dnssec_data_chain_print.3 b/doc/man/man3/ldns_dnssec_data_chain_print.3
new file mode 120000
index 000000000000..3dabaa85e9e9
--- /dev/null
+++ b/doc/man/man3/ldns_dnssec_data_chain_print.3
@@ -0,0 +1 @@
+ldns_dnssec_data_chain_new.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_dnssec_data_chain_struct.3 b/doc/man/man3/ldns_dnssec_data_chain_struct.3
new file mode 120000
index 000000000000..6f6243cf7f53
--- /dev/null
+++ b/doc/man/man3/ldns_dnssec_data_chain_struct.3
@@ -0,0 +1 @@
+ldns_dnssec_data_chain.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_dnssec_derive_trust_tree.3 b/doc/man/man3/ldns_dnssec_derive_trust_tree.3
new file mode 120000
index 000000000000..d95d1e07855f
--- /dev/null
+++ b/doc/man/man3/ldns_dnssec_derive_trust_tree.3
@@ -0,0 +1 @@
+ldns_dnssec_trust_tree_new.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_dnssec_derive_trust_tree_dnskey_rrset.3 b/doc/man/man3/ldns_dnssec_derive_trust_tree_dnskey_rrset.3
new file mode 120000
index 000000000000..d95d1e07855f
--- /dev/null
+++ b/doc/man/man3/ldns_dnssec_derive_trust_tree_dnskey_rrset.3
@@ -0,0 +1 @@
+ldns_dnssec_trust_tree_new.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_dnssec_derive_trust_tree_ds_rrset.3 b/doc/man/man3/ldns_dnssec_derive_trust_tree_ds_rrset.3
new file mode 120000
index 000000000000..d95d1e07855f
--- /dev/null
+++ b/doc/man/man3/ldns_dnssec_derive_trust_tree_ds_rrset.3
@@ -0,0 +1 @@
+ldns_dnssec_trust_tree_new.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_dnssec_derive_trust_tree_no_sig.3 b/doc/man/man3/ldns_dnssec_derive_trust_tree_no_sig.3
new file mode 120000
index 000000000000..d95d1e07855f
--- /dev/null
+++ b/doc/man/man3/ldns_dnssec_derive_trust_tree_no_sig.3
@@ -0,0 +1 @@
+ldns_dnssec_trust_tree_new.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_dnssec_derive_trust_tree_normal_rrset.3 b/doc/man/man3/ldns_dnssec_derive_trust_tree_normal_rrset.3
new file mode 120000
index 000000000000..d95d1e07855f
--- /dev/null
+++ b/doc/man/man3/ldns_dnssec_derive_trust_tree_normal_rrset.3
@@ -0,0 +1 @@
+ldns_dnssec_trust_tree_new.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_dnssec_name.3 b/doc/man/man3/ldns_dnssec_name.3
new file mode 120000
index 000000000000..afaa9110b22c
--- /dev/null
+++ b/doc/man/man3/ldns_dnssec_name.3
@@ -0,0 +1 @@
+ldns_dnssec_zone.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_dnssec_name_add_rr.3 b/doc/man/man3/ldns_dnssec_name_add_rr.3
new file mode 120000
index 000000000000..ac20e9c485cd
--- /dev/null
+++ b/doc/man/man3/ldns_dnssec_name_add_rr.3
@@ -0,0 +1 @@
+ldns_dnssec_name_new.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_dnssec_name_cmp.3 b/doc/man/man3/ldns_dnssec_name_cmp.3
new file mode 120000
index 000000000000..ac20e9c485cd
--- /dev/null
+++ b/doc/man/man3/ldns_dnssec_name_cmp.3
@@ -0,0 +1 @@
+ldns_dnssec_name_new.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_dnssec_name_find_rrset.3 b/doc/man/man3/ldns_dnssec_name_find_rrset.3
new file mode 120000
index 000000000000..ac20e9c485cd
--- /dev/null
+++ b/doc/man/man3/ldns_dnssec_name_find_rrset.3
@@ -0,0 +1 @@
+ldns_dnssec_name_new.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_dnssec_name_free.3 b/doc/man/man3/ldns_dnssec_name_free.3
new file mode 120000
index 000000000000..ac20e9c485cd
--- /dev/null
+++ b/doc/man/man3/ldns_dnssec_name_free.3
@@ -0,0 +1 @@
+ldns_dnssec_name_new.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_dnssec_name_name.3 b/doc/man/man3/ldns_dnssec_name_name.3
new file mode 120000
index 000000000000..ac20e9c485cd
--- /dev/null
+++ b/doc/man/man3/ldns_dnssec_name_name.3
@@ -0,0 +1 @@
+ldns_dnssec_name_new.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_dnssec_name_new.3 b/doc/man/man3/ldns_dnssec_name_new.3
new file mode 100644
index 000000000000..dfd50bc271a1
--- /dev/null
+++ b/doc/man/man3/ldns_dnssec_name_new.3
@@ -0,0 +1,151 @@
+.ad l
+.TH ldns 3 "30 May 2006"
+.SH NAME
+ldns_dnssec_name_new, ldns_dnssec_name_new_frm_rr, ldns_dnssec_name_free, ldns_dnssec_name_name, ldns_dnssec_name_set_name, ldns_dnssec_name_set_nsec, ldns_dnssec_name_cmp, ldns_dnssec_name_add_rr, ldns_dnssec_name_find_rrset, ldns_dnssec_name_print \- functions for ldns_dnssec_name
+
+.SH SYNOPSIS
+#include <stdint.h>
+.br
+#include <stdbool.h>
+.br
+.PP
+#include <ldns/ldns.h>
+.PP
+ldns_dnssec_name* ldns_dnssec_name_new(void);
+.PP
+ldns_dnssec_name* ldns_dnssec_name_new_frm_rr(ldns_rr *rr);
+.PP
+void ldns_dnssec_name_free(ldns_dnssec_name *name);
+.PP
+ldns_rdf* ldns_dnssec_name_name(const ldns_dnssec_name *name);
+.PP
+void ldns_dnssec_name_set_name(ldns_dnssec_name *name, ldns_rdf *dname);
+.PP
+void ldns_dnssec_name_set_nsec(ldns_dnssec_name *name, ldns_rr *nsec);
+.PP
+int ldns_dnssec_name_cmp(const void *a, const void *b);
+.PP
+ldns_status ldns_dnssec_name_add_rr(ldns_dnssec_name *name, ldns_rr *rr);
+.PP
+ldns_dnssec_rrsets* ldns_dnssec_name_find_rrset(const ldns_dnssec_name *name, ldns_rr_type type);
+.PP
+void ldns_dnssec_name_print(FILE *out, const ldns_dnssec_name *name);
+.PP
+
+.SH DESCRIPTION
+.HP
+\fIldns_dnssec_name_new\fR()
+Create a new data structure for a dnssec name
+\.br
+Returns the allocated structure
+.PP
+.HP
+\fIldns_dnssec_name_new_frm_rr\fR()
+Create a new data structure for a dnssec name for the given \%RR
+
+\.br
+\fBrr\fR: the \%RR to derive properties from, and to add to the name
+.PP
+.HP
+\fIldns_dnssec_name_free\fR()
+Frees the name structure and its rrs and rrsets.
+Individual ldns_rr records therein are not freed
+
+\.br
+\fBname\fR: the structure to free
+.PP
+.HP
+\fIldns_dnssec_name_name\fR()
+Returns the domain name of the given dnssec_name structure
+
+\.br
+\fBname\fR: the dnssec name to get the domain name from
+\.br
+Returns the domain name
+.PP
+.HP
+\fIldns_dnssec_name_set_name\fR()
+Sets the domain name of the given dnssec_name structure
+
+\.br
+\fBname\fR: the dnssec name to set the domain name of
+\.br
+\fBdname\fR: the domain name to set it to. This data is *not* copied.
+.PP
+.HP
+\fIldns_dnssec_name_set_nsec\fR()
+Sets the \%NSEC(3) \%RR of the given dnssec_name structure
+
+\.br
+\fBname\fR: the dnssec name to set the domain name of
+\.br
+\fBnsec\fR: the nsec rr to set it to. This data is *not* copied.
+.PP
+.HP
+\fIldns_dnssec_name_cmp\fR()
+Compares the domain names of the two arguments in their
+canonical ordering.
+
+\.br
+\fBa\fR: The first dnssec_name to compare
+\.br
+\fBb\fR: The second dnssec_name to compare
+\.br
+Returns -1 if the domain name of a comes before that of b in canonical
+ordering, 1 if it is the other way around, and 0 if they are
+equal
+.PP
+.HP
+\fIldns_dnssec_name_add_rr\fR()
+Inserts the given rr at the right place in the current dnssec_name
+No checking is done whether the name matches
+
+\.br
+\fBname\fR: The ldns_dnssec_name to add the \%RR to
+\.br
+\fBrr\fR: The \%RR to add
+\.br
+Returns \%LDNS_STATUS_OK on success, error code otherwise
+.PP
+.HP
+\fIldns_dnssec_name_find_rrset\fR()
+Find the RRset with the given type in within this name structure
+
+\.br
+\fBname\fR: the name to find the RRset in
+\.br
+\fBtype\fR: the type of the RRset to find
+\.br
+Returns the RRset, or \%NULL if not present
+.PP
+.HP
+\fIldns_dnssec_name_print\fR()
+Prints the RRs in the dnssec name structure to the given
+file descriptor
+
+\.br
+\fBout\fR: the file descriptor to print to
+\.br
+\fBname\fR: the name structure to print the contents of
+.PP
+.SH AUTHOR
+The ldns team at NLnet Labs.
+
+.SH REPORTING BUGS
+Please report bugs to ldns-team@nlnetlabs.nl or in
+our bugzilla at
+http://www.nlnetlabs.nl/bugs/index.html
+
+.SH COPYRIGHT
+Copyright (c) 2004 - 2006 NLnet Labs.
+.PP
+Licensed under the BSD License. There is NO warranty; not even for
+MERCHANTABILITY or
+FITNESS FOR A PARTICULAR PURPOSE.
+
+.SH SEE ALSO
+\fIldns_dnssec_zone\fR.
+And \fBperldoc Net::DNS\fR, \fBRFC1034\fR,
+\fBRFC1035\fR, \fBRFC4033\fR, \fBRFC4034\fR and \fBRFC4035\fR.
+.SH REMARKS
+This manpage was automatically generated from the ldns source code.
diff --git a/doc/man/man3/ldns_dnssec_name_new_frm_rr.3 b/doc/man/man3/ldns_dnssec_name_new_frm_rr.3
new file mode 120000
index 000000000000..ac20e9c485cd
--- /dev/null
+++ b/doc/man/man3/ldns_dnssec_name_new_frm_rr.3
@@ -0,0 +1 @@
+ldns_dnssec_name_new.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_dnssec_name_node_next_nonglue.3 b/doc/man/man3/ldns_dnssec_name_node_next_nonglue.3
new file mode 120000
index 000000000000..82fba1089c88
--- /dev/null
+++ b/doc/man/man3/ldns_dnssec_name_node_next_nonglue.3
@@ -0,0 +1 @@
+ldns_dnssec_zone_sign.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_dnssec_name_print.3 b/doc/man/man3/ldns_dnssec_name_print.3
new file mode 120000
index 000000000000..ac20e9c485cd
--- /dev/null
+++ b/doc/man/man3/ldns_dnssec_name_print.3
@@ -0,0 +1 @@
+ldns_dnssec_name_new.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_dnssec_name_set_name.3 b/doc/man/man3/ldns_dnssec_name_set_name.3
new file mode 120000
index 000000000000..ac20e9c485cd
--- /dev/null
+++ b/doc/man/man3/ldns_dnssec_name_set_name.3
@@ -0,0 +1 @@
+ldns_dnssec_name_new.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_dnssec_name_set_nsec.3 b/doc/man/man3/ldns_dnssec_name_set_nsec.3
new file mode 120000
index 000000000000..ac20e9c485cd
--- /dev/null
+++ b/doc/man/man3/ldns_dnssec_name_set_nsec.3
@@ -0,0 +1 @@
+ldns_dnssec_name_new.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_dnssec_remove_signatures.3 b/doc/man/man3/ldns_dnssec_remove_signatures.3
new file mode 120000
index 000000000000..82fba1089c88
--- /dev/null
+++ b/doc/man/man3/ldns_dnssec_remove_signatures.3
@@ -0,0 +1 @@
+ldns_dnssec_zone_sign.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_dnssec_rrs.3 b/doc/man/man3/ldns_dnssec_rrs.3
new file mode 120000
index 000000000000..afaa9110b22c
--- /dev/null
+++ b/doc/man/man3/ldns_dnssec_rrs.3
@@ -0,0 +1 @@
+ldns_dnssec_zone.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_dnssec_rrs_add_rr.3 b/doc/man/man3/ldns_dnssec_rrs_add_rr.3
new file mode 120000
index 000000000000..eea7ca9ef7ed
--- /dev/null
+++ b/doc/man/man3/ldns_dnssec_rrs_add_rr.3
@@ -0,0 +1 @@
+ldns_dnssec_rrs_new.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_dnssec_rrs_free.3 b/doc/man/man3/ldns_dnssec_rrs_free.3
new file mode 120000
index 000000000000..eea7ca9ef7ed
--- /dev/null
+++ b/doc/man/man3/ldns_dnssec_rrs_free.3
@@ -0,0 +1 @@
+ldns_dnssec_rrs_new.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_dnssec_rrs_new.3 b/doc/man/man3/ldns_dnssec_rrs_new.3
new file mode 100644
index 000000000000..a5509b4f4d46
--- /dev/null
+++ b/doc/man/man3/ldns_dnssec_rrs_new.3
@@ -0,0 +1,76 @@
+.ad l
+.TH ldns 3 "30 May 2006"
+.SH NAME
+ldns_dnssec_rrs_new, ldns_dnssec_rrs_free, ldns_dnssec_rrs_add_rr, ldns_dnssec_rrs_print \- functions for ldns_dnssecrrs
+
+.SH SYNOPSIS
+#include <stdint.h>
+.br
+#include <stdbool.h>
+.br
+.PP
+#include <ldns/ldns.h>
+.PP
+ ldns_dnssec_rrs_new();
+.PP
+void ldns_dnssec_rrs_free(ldns_dnssec_rrs *rrs);
+.PP
+ldns_status ldns_dnssec_rrs_add_rr(ldns_dnssec_rrs *rrs, ldns_rr *rr);
+.PP
+void ldns_dnssec_rrs_print(FILE *out, const ldns_dnssec_rrs *rrs);
+.PP
+
+.SH DESCRIPTION
+.HP
+\fIldns_dnssec_rrs_new\fR()
+.PP
+.HP
+\fIldns_dnssec_rrs_free\fR()
+Frees the list of rrs, but *not* the individual ldns_rr records
+contained in the list
+
+\.br
+\fBrrs\fR: the data structure to free
+.PP
+.HP
+\fIldns_dnssec_rrs_add_rr\fR()
+Adds an \%RR to the list of RRs. The list will remain ordered.
+If an equal \%RR already exists, this \%RR will not be added.
+
+\.br
+\fBrrs\fR: the list to add to
+\.br
+\fBrr\fR: the \%RR to add
+\.br
+Returns \%LDNS_STATUS_OK on success
+.PP
+.HP
+\fIldns_dnssec_rrs_print\fR()
+Prints the given rrs to the file descriptor
+
+\.br
+\fBout\fR: the file descriptor to print to
+\.br
+\fBrrs\fR: the list of RRs to print
+.PP
+.SH AUTHOR
+The ldns team at NLnet Labs.
+
+.SH REPORTING BUGS
+Please report bugs to ldns-team@nlnetlabs.nl or in
+our bugzilla at
+http://www.nlnetlabs.nl/bugs/index.html
+
+.SH COPYRIGHT
+Copyright (c) 2004 - 2006 NLnet Labs.
+.PP
+Licensed under the BSD License. There is NO warranty; not even for
+MERCHANTABILITY or
+FITNESS FOR A PARTICULAR PURPOSE.
+
+.SH SEE ALSO
+\fIldns_dnssec_zone\fR.
+And \fBperldoc Net::DNS\fR, \fBRFC1034\fR,
+\fBRFC1035\fR, \fBRFC4033\fR, \fBRFC4034\fR and \fBRFC4035\fR.
+.SH REMARKS
+This manpage was automatically generated from the ldns source code.
diff --git a/doc/man/man3/ldns_dnssec_rrs_print.3 b/doc/man/man3/ldns_dnssec_rrs_print.3
new file mode 120000
index 000000000000..eea7ca9ef7ed
--- /dev/null
+++ b/doc/man/man3/ldns_dnssec_rrs_print.3
@@ -0,0 +1 @@
+ldns_dnssec_rrs_new.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_dnssec_rrsets.3 b/doc/man/man3/ldns_dnssec_rrsets.3
new file mode 120000
index 000000000000..afaa9110b22c
--- /dev/null
+++ b/doc/man/man3/ldns_dnssec_rrsets.3
@@ -0,0 +1 @@
+ldns_dnssec_zone.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_dnssec_rrsets_add_rr.3 b/doc/man/man3/ldns_dnssec_rrsets_add_rr.3
new file mode 120000
index 000000000000..159c89c57f6d
--- /dev/null
+++ b/doc/man/man3/ldns_dnssec_rrsets_add_rr.3
@@ -0,0 +1 @@
+ldns_dnssec_rrsets_new.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_dnssec_rrsets_free.3 b/doc/man/man3/ldns_dnssec_rrsets_free.3
new file mode 120000
index 000000000000..159c89c57f6d
--- /dev/null
+++ b/doc/man/man3/ldns_dnssec_rrsets_free.3
@@ -0,0 +1 @@
+ldns_dnssec_rrsets_new.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_dnssec_rrsets_new.3 b/doc/man/man3/ldns_dnssec_rrsets_new.3
new file mode 100644
index 000000000000..3e39c0717973
--- /dev/null
+++ b/doc/man/man3/ldns_dnssec_rrsets_new.3
@@ -0,0 +1,105 @@
+.ad l
+.TH ldns 3 "30 May 2006"
+.SH NAME
+ldns_dnssec_rrsets_new, ldns_dnssec_rrsets_free, ldns_dnssec_rrsets_type, ldns_dnssec_rrsets_set_type, ldns_dnssec_rrsets_add_rr, ldns_dnssec_rrsets_print \- functions for ldns_dnssec_rrsets
+
+.SH SYNOPSIS
+#include <stdint.h>
+.br
+#include <stdbool.h>
+.br
+.PP
+#include <ldns/ldns.h>
+.PP
+ldns_dnssec_rrsets* ldns_dnssec_rrsets_new(void);
+.PP
+void ldns_dnssec_rrsets_free(ldns_dnssec_rrsets *rrsets);
+.PP
+ldns_rr_type ldns_dnssec_rrsets_type(const ldns_dnssec_rrsets *rrsets);
+.PP
+ldns_status ldns_dnssec_rrsets_set_type(ldns_dnssec_rrsets *rrsets, ldns_rr_type type);
+.PP
+ldns_status ldns_dnssec_rrsets_add_rr(ldns_dnssec_rrsets *rrsets, ldns_rr *rr);
+.PP
+void ldns_dnssec_rrsets_print(FILE *out, const ldns_dnssec_rrsets *rrsets, bool follow);
+.PP
+
+.SH DESCRIPTION
+.HP
+\fIldns_dnssec_rrsets_new\fR()
+Creates a new list (entry) of RRsets
+\.br
+Returns the newly allocated structure
+.PP
+.HP
+\fIldns_dnssec_rrsets_free\fR()
+Frees the list of rrsets and their rrs, but *not* the ldns_rr
+records in the sets
+
+\.br
+\fBrrsets\fR: the data structure to free
+.PP
+.HP
+\fIldns_dnssec_rrsets_type\fR()
+Returns the rr type of the rrset (that is head of the given list)
+
+\.br
+\fBrrsets\fR: the rrset to get the type of
+\.br
+Returns the rr type
+.PP
+.HP
+\fIldns_dnssec_rrsets_set_type\fR()
+Sets the \%RR type of the rrset (that is head of the given list)
+
+\.br
+\fBrrsets\fR: the rrset to set the type of
+\.br
+\fBtype\fR: the type to set
+\.br
+Returns \%LDNS_STATUS_OK on success
+.PP
+.HP
+\fIldns_dnssec_rrsets_add_rr\fR()
+Add an ldns_rr to the corresponding RRset in the given list of RRsets.
+If it is not present, add it as a new RRset with 1 record.
+
+\.br
+\fBrrsets\fR: the list of rrsets to add the \%RR to
+\.br
+\fBrr\fR: the rr to add to the list of rrsets
+\.br
+Returns \%LDNS_STATUS_OK on success
+.PP
+.HP
+\fIldns_dnssec_rrsets_print\fR()
+Print the given list of rrsets to the given file descriptor
+
+\.br
+\fBout\fR: the file descriptor to print to
+\.br
+\fBrrsets\fR: the list of RRsets to print
+\.br
+\fBfollow\fR: if set to false, only print the first RRset
+.PP
+.SH AUTHOR
+The ldns team at NLnet Labs.
+
+.SH REPORTING BUGS
+Please report bugs to ldns-team@nlnetlabs.nl or in
+our bugzilla at
+http://www.nlnetlabs.nl/bugs/index.html
+
+.SH COPYRIGHT
+Copyright (c) 2004 - 2006 NLnet Labs.
+.PP
+Licensed under the BSD License. There is NO warranty; not even for
+MERCHANTABILITY or
+FITNESS FOR A PARTICULAR PURPOSE.
+
+.SH SEE ALSO
+\fIldns_dnssec_zone\fR.
+And \fBperldoc Net::DNS\fR, \fBRFC1034\fR,
+\fBRFC1035\fR, \fBRFC4033\fR, \fBRFC4034\fR and \fBRFC4035\fR.
+.SH REMARKS
+This manpage was automatically generated from the ldns source code.
diff --git a/doc/man/man3/ldns_dnssec_rrsets_print.3 b/doc/man/man3/ldns_dnssec_rrsets_print.3
new file mode 120000
index 000000000000..159c89c57f6d
--- /dev/null
+++ b/doc/man/man3/ldns_dnssec_rrsets_print.3
@@ -0,0 +1 @@
+ldns_dnssec_rrsets_new.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_dnssec_rrsets_set_type.3 b/doc/man/man3/ldns_dnssec_rrsets_set_type.3
new file mode 120000
index 000000000000..159c89c57f6d
--- /dev/null
+++ b/doc/man/man3/ldns_dnssec_rrsets_set_type.3
@@ -0,0 +1 @@
+ldns_dnssec_rrsets_new.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_dnssec_rrsets_type.3 b/doc/man/man3/ldns_dnssec_rrsets_type.3
new file mode 120000
index 000000000000..159c89c57f6d
--- /dev/null
+++ b/doc/man/man3/ldns_dnssec_rrsets_type.3
@@ -0,0 +1 @@
+ldns_dnssec_rrsets_new.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_dnssec_trust_tree.3 b/doc/man/man3/ldns_dnssec_trust_tree.3
new file mode 120000
index 000000000000..6f6243cf7f53
--- /dev/null
+++ b/doc/man/man3/ldns_dnssec_trust_tree.3
@@ -0,0 +1 @@
+ldns_dnssec_data_chain.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_dnssec_trust_tree_add_parent.3 b/doc/man/man3/ldns_dnssec_trust_tree_add_parent.3
new file mode 120000
index 000000000000..d95d1e07855f
--- /dev/null
+++ b/doc/man/man3/ldns_dnssec_trust_tree_add_parent.3
@@ -0,0 +1 @@
+ldns_dnssec_trust_tree_new.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_dnssec_trust_tree_contains_keys.3 b/doc/man/man3/ldns_dnssec_trust_tree_contains_keys.3
new file mode 120000
index 000000000000..d95d1e07855f
--- /dev/null
+++ b/doc/man/man3/ldns_dnssec_trust_tree_contains_keys.3
@@ -0,0 +1 @@
+ldns_dnssec_trust_tree_new.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_dnssec_trust_tree_depth.3 b/doc/man/man3/ldns_dnssec_trust_tree_depth.3
new file mode 120000
index 000000000000..d95d1e07855f
--- /dev/null
+++ b/doc/man/man3/ldns_dnssec_trust_tree_depth.3
@@ -0,0 +1 @@
+ldns_dnssec_trust_tree_new.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_dnssec_trust_tree_free.3 b/doc/man/man3/ldns_dnssec_trust_tree_free.3
new file mode 120000
index 000000000000..d95d1e07855f
--- /dev/null
+++ b/doc/man/man3/ldns_dnssec_trust_tree_free.3
@@ -0,0 +1 @@
+ldns_dnssec_trust_tree_new.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_dnssec_trust_tree_new.3 b/doc/man/man3/ldns_dnssec_trust_tree_new.3
new file mode 100644
index 000000000000..de0b57352e02
--- /dev/null
+++ b/doc/man/man3/ldns_dnssec_trust_tree_new.3
@@ -0,0 +1,195 @@
+.ad l
+.TH ldns 3 "30 May 2006"
+.SH NAME
+ldns_dnssec_trust_tree_new, ldns_dnssec_trust_tree_free, ldns_dnssec_trust_tree_depth, ldns_dnssec_derive_trust_tree, ldns_dnssec_trust_tree_contains_keys, ldns_dnssec_trust_tree_print, ldns_dnssec_trust_tree_print_sm, ldns_dnssec_trust_tree_add_parent, ldns_dnssec_derive_trust_tree_normal_rrset, ldns_dnssec_derive_trust_tree_dnskey_rrset, ldns_dnssec_derive_trust_tree_ds_rrset, ldns_dnssec_derive_trust_tree_no_sig \- functions for ldns_dnssec_trust_tree
+
+.SH SYNOPSIS
+#include <stdint.h>
+.br
+#include <stdbool.h>
+.br
+.PP
+#include <ldns/ldns.h>
+.PP
+ldns_dnssec_trust_tree* ldns_dnssec_trust_tree_new(void);
+.PP
+void ldns_dnssec_trust_tree_free(ldns_dnssec_trust_tree *tree);
+.PP
+size_t ldns_dnssec_trust_tree_depth(ldns_dnssec_trust_tree *tree);
+.PP
+ldns_dnssec_trust_tree* ldns_dnssec_derive_trust_tree( ldns_dnssec_data_chain *data_chain, ldns_rr *rr);
+.PP
+ldns_status ldns_dnssec_trust_tree_contains_keys( ldns_dnssec_trust_tree *tree, ldns_rr_list *keys);
+.PP
+void ldns_dnssec_trust_tree_print(FILE *out, ldns_dnssec_trust_tree *tree, size_t tabs, bool extended);
+.PP
+ ldns_dnssec_trust_tree_print_sm();
+.PP
+ldns_status ldns_dnssec_trust_tree_add_parent(ldns_dnssec_trust_tree *tree, const ldns_dnssec_trust_tree *parent, const ldns_rr *parent_signature, const ldns_status parent_status);
+.PP
+void ldns_dnssec_derive_trust_tree_normal_rrset( ldns_dnssec_trust_tree *new_tree, ldns_dnssec_data_chain *data_chain, ldns_rr *cur_sig_rr);
+.PP
+void ldns_dnssec_derive_trust_tree_dnskey_rrset( ldns_dnssec_trust_tree *new_tree, ldns_dnssec_data_chain *data_chain, ldns_rr *cur_rr, ldns_rr *cur_sig_rr);
+.PP
+void ldns_dnssec_derive_trust_tree_ds_rrset( ldns_dnssec_trust_tree *new_tree, ldns_dnssec_data_chain *data_chain, ldns_rr *cur_rr);
+.PP
+void ldns_dnssec_derive_trust_tree_no_sig( ldns_dnssec_trust_tree *new_tree, ldns_dnssec_data_chain *data_chain);
+.PP
+
+.SH DESCRIPTION
+.HP
+\fIldns_dnssec_trust_tree_new\fR()
+Creates a new (empty) dnssec_trust_tree structure
+
+\.br
+Returns ldns_dnssec_trust_tree *
+.PP
+.HP
+\fIldns_dnssec_trust_tree_free\fR()
+Frees the dnssec_trust_tree recursively
+
+There is no deep free; all data in the trust tree
+consists of pointers to a data_chain
+
+\.br
+\fBtree\fR: The tree to free
+.PP
+.HP
+\fIldns_dnssec_trust_tree_depth\fR()
+returns the depth of the trust tree
+
+\.br
+\fBtree\fR: tree to calculate the depth of
+\.br
+Returns The depth of the tree
+.PP
+.HP
+\fIldns_dnssec_derive_trust_tree\fR()
+Generates a dnssec_trust_tree for the given rr from the
+given data_chain
+
+This does not clone the actual data; Don't free the
+data_chain before you are done with this tree
+
+\.br
+\fB*data_chain\fR: The chain to derive the trust tree from
+\.br
+\fB*rr\fR: The \%RR this tree will be about
+\.br
+Returns ldns_dnssec_trust_tree *
+.PP
+.HP
+\fIldns_dnssec_trust_tree_contains_keys\fR()
+Returns \%OK if there is a trusted path in the tree to one of
+the \%DNSKEY or \%DS RRs in the given list
+
+\\param *tree The trust tree so search
+\\param *keys \%A ldns_rr_list of \%DNSKEY and \%DS rrs to look for
+
+\.br
+Returns \%LDNS_STATUS_OK if there is a trusted path to one of
+the keys, or the *first* error encountered
+if there were no paths
+.PP
+.HP
+\fIldns_dnssec_trust_tree_print\fR()
+Prints the dnssec_trust_tree structure to the given file
+stream.
+
+If a link status is not \%LDNS_STATUS_OK; the status and
+relevant signatures are printed too
+
+\.br
+\fB*out\fR: The file stream to print to
+\.br
+\fBtree\fR: The trust tree to print
+\.br
+\fBtabs\fR: Prepend each line with tabs*2 spaces
+\.br
+\fBextended\fR: If true, add little explanation lines to the output
+.PP
+.HP
+\fIldns_dnssec_trust_tree_print_sm\fR()
+.PP
+.HP
+\fIldns_dnssec_trust_tree_add_parent\fR()
+Adds a trust tree as a parent for the given trust tree
+
+\.br
+\fB*tree\fR: The tree to add the parent to
+\.br
+\fB*parent\fR: The parent tree to add
+\.br
+\fB*parent_signature\fR: The \%RRSIG relevant to this parent/child
+connection
+\.br
+\fBparent_status\fR: The \%DNSSEC status for this parent, child and \%RRSIG
+\.br
+Returns \%LDNS_STATUS_OK if the addition succeeds, error otherwise
+.PP
+.HP
+\fIldns_dnssec_derive_trust_tree_normal_rrset\fR()
+Sub function for derive_trust_tree that is used for a 'normal' rrset
+
+\.br
+\fBnew_tree\fR: The trust tree that we are building
+\.br
+\fBdata_chain\fR: The data chain containing the data for the trust tree
+\.br
+\fBcur_sig_rr\fR: The currently relevant signature
+.PP
+.HP
+\fIldns_dnssec_derive_trust_tree_dnskey_rrset\fR()
+Sub function for derive_trust_tree that is used for \%DNSKEY rrsets
+
+\.br
+\fBnew_tree\fR: The trust tree that we are building
+\.br
+\fBdata_chain\fR: The data chain containing the data for the trust tree
+\.br
+\fBcur_rr\fR: The currently relevant \%DNSKEY \%RR
+\.br
+\fBcur_sig_rr\fR: The currently relevant signature
+.PP
+.HP
+\fIldns_dnssec_derive_trust_tree_ds_rrset\fR()
+Sub function for derive_trust_tree that is used for \%DS rrsets
+
+\.br
+\fBnew_tree\fR: The trust tree that we are building
+\.br
+\fBdata_chain\fR: The data chain containing the data for the trust tree
+\.br
+\fBcur_rr\fR: The currently relevant \%DS \%RR
+.PP
+.HP
+\fIldns_dnssec_derive_trust_tree_no_sig\fR()
+Sub function for derive_trust_tree that is used when there are no
+signatures
+
+\.br
+\fBnew_tree\fR: The trust tree that we are building
+\.br
+\fBdata_chain\fR: The data chain containing the data for the trust tree
+.PP
+.SH AUTHOR
+The ldns team at NLnet Labs.
+
+.SH REPORTING BUGS
+Please report bugs to ldns-team@nlnetlabs.nl or in
+our bugzilla at
+http://www.nlnetlabs.nl/bugs/index.html
+
+.SH COPYRIGHT
+Copyright (c) 2004 - 2006 NLnet Labs.
+.PP
+Licensed under the BSD License. There is NO warranty; not even for
+MERCHANTABILITY or
+FITNESS FOR A PARTICULAR PURPOSE.
+
+.SH SEE ALSO
+\fIldns_dnssec_data_chain\fR, \fIldns_dnssec_trust_tree\fR.
+And \fBperldoc Net::DNS\fR, \fBRFC1034\fR,
+\fBRFC1035\fR, \fBRFC4033\fR, \fBRFC4034\fR and \fBRFC4035\fR.
+.SH REMARKS
+This manpage was automatically generated from the ldns source code.
diff --git a/doc/man/man3/ldns_dnssec_trust_tree_print.3 b/doc/man/man3/ldns_dnssec_trust_tree_print.3
new file mode 120000
index 000000000000..d95d1e07855f
--- /dev/null
+++ b/doc/man/man3/ldns_dnssec_trust_tree_print.3
@@ -0,0 +1 @@
+ldns_dnssec_trust_tree_new.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_dnssec_trust_tree_print_sm.3 b/doc/man/man3/ldns_dnssec_trust_tree_print_sm.3
new file mode 120000
index 000000000000..d95d1e07855f
--- /dev/null
+++ b/doc/man/man3/ldns_dnssec_trust_tree_print_sm.3
@@ -0,0 +1 @@
+ldns_dnssec_trust_tree_new.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_dnssec_verify_denial.3 b/doc/man/man3/ldns_dnssec_verify_denial.3
new file mode 100644
index 000000000000..1b922c971bea
--- /dev/null
+++ b/doc/man/man3/ldns_dnssec_verify_denial.3
@@ -0,0 +1,80 @@
+.ad l
+.TH ldns 3 "30 May 2006"
+.SH NAME
+ldns_dnssec_verify_denial, ldns_dnssec_verify_denial_nsec3 \- verify denial of existence
+
+.SH SYNOPSIS
+#include <stdint.h>
+.br
+#include <stdbool.h>
+.br
+.PP
+#include <ldns/ldns.h>
+.PP
+ldns_status ldns_dnssec_verify_denial(ldns_rr *rr, ldns_rr_list *nsecs, ldns_rr_list *rrsigs);
+.PP
+ldns_status ldns_dnssec_verify_denial_nsec3(ldns_rr *rr, ldns_rr_list *nsecs, ldns_rr_list *rrsigs, ldns_pkt_rcode packet_rcode, ldns_rr_type packet_qtype, bool packet_nodata);
+.PP
+
+.SH DESCRIPTION
+.HP
+\fIldns_dnssec_verify_denial\fR()
+denial is not just a river in egypt
+
+\.br
+\fBrr\fR: The (query) \%RR to check the denial of existence for
+\.br
+\fBnsecs\fR: The list of \%NSEC RRs that are supposed to deny the
+existence of the \%RR
+\.br
+\fBrrsigs\fR: The \%RRSIG \%RR covering the \%NSEC RRs
+\.br
+Returns \%LDNS_STATUS_OK if the \%NSEC RRs deny the existence, error code
+containing the reason they do not otherwise
+.PP
+.HP
+\fIldns_dnssec_verify_denial_nsec3\fR()
+Denial of existence using NSEC3 records
+Since NSEC3 is a bit more complicated than normal denial, some
+context arguments are needed
+
+\.br
+\fBrr\fR: The (query) \%RR to check the denial of existence for
+\.br
+\fBnsecs\fR: The list of NSEC3 RRs that are supposed to deny the
+existence of the \%RR
+\.br
+\fBrrsigs\fR: The \%RRSIG rr covering the \%NSEC RRs
+\.br
+\fBpacket_rcode\fR: The \%RCODE value of the packet that provided the
+NSEC3 RRs
+\.br
+\fBpacket_qtype\fR: The original query \%RR type
+\.br
+\fBpacket_nodata\fR: True if the providing packet had an empty \%ANSWER
+section
+\.br
+Returns \%LDNS_STATUS_OK if the NSEC3 RRs deny the existence, error code
+containing the reason they do not otherwise
+.PP
+.SH AUTHOR
+The ldns team at NLnet Labs.
+
+.SH REPORTING BUGS
+Please report bugs to ldns-team@nlnetlabs.nl or in
+our bugzilla at
+http://www.nlnetlabs.nl/bugs/index.html
+
+.SH COPYRIGHT
+Copyright (c) 2004 - 2006 NLnet Labs.
+.PP
+Licensed under the BSD License. There is NO warranty; not even for
+MERCHANTABILITY or
+FITNESS FOR A PARTICULAR PURPOSE.
+
+.SH SEE ALSO
+\fIldns_dnssec_trust_tree\fR, \fIldns_dnssec_data_chain\fR.
+And \fBperldoc Net::DNS\fR, \fBRFC1034\fR,
+\fBRFC1035\fR, \fBRFC4033\fR, \fBRFC4034\fR and \fBRFC4035\fR.
+.SH REMARKS
+This manpage was automatically generated from the ldns source code.
diff --git a/doc/man/man3/ldns_dnssec_verify_denial_nsec3.3 b/doc/man/man3/ldns_dnssec_verify_denial_nsec3.3
new file mode 120000
index 000000000000..4dc9b49ecf31
--- /dev/null
+++ b/doc/man/man3/ldns_dnssec_verify_denial_nsec3.3
@@ -0,0 +1 @@
+ldns_dnssec_verify_denial.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_dnssec_zone.3 b/doc/man/man3/ldns_dnssec_zone.3
new file mode 100644
index 000000000000..516f0f185b58
--- /dev/null
+++ b/doc/man/man3/ldns_dnssec_zone.3
@@ -0,0 +1,178 @@
+.ad l
+.TH ldns 3 "30 May 2006"
+.SH NAME
+ldns_dnssec_zone, ldns_dnssec_name, ldns_dnssec_rrs, ldns_dnssec_rrsets \- data structures
+
+.SH SYNOPSIS
+#include <stdint.h>
+.br
+#include <stdbool.h>
+.br
+.PP
+#include <ldns/ldns.h>
+.PP
+ ldns_dnssec_zone();
+.PP
+
+.SH DESCRIPTION
+.HP
+\fIldns_dnssec_zone\fR()
+.PP
+.HP
+\fIldns_dnssec_name\fR
+.br
+Structure containing all resource records for a domain name
+.br
+Including the derived NSEC3, if present
+.br
+struct ldns_struct_dnssec_name
+.br
+{
+.br
+ /**
+.br
+ * pointer to a dname containing the name.
+.br
+ * Usually points to the owner name of the first RR of the first RRset
+.br
+ */
+.br
+ ldns_rdf *name;
+.br
+ /**
+.br
+ * Usually, the name is a pointer to the owner name of the first rr for
+.br
+ * this name, but sometimes there is no actual data to point to,
+.br
+ * for instance in
+.br
+ * names representing empty nonterminals. If so, set name_alloced to true to
+.br
+ * indicate that this data must also be freed when the name is freed
+.br
+ */
+.br
+ bool name_alloced;
+.br
+ /**
+.br
+ * The rrsets for this name
+.br
+ */
+.br
+ ldns_dnssec_rrsets *rrsets;
+.br
+ /**
+.br
+ * NSEC pointing to the next name (or NSEC3 pointing to the next NSEC3)
+.br
+ */
+.br
+ ldns_rr *nsec;
+.br
+ /**
+.br
+ * signatures for the NSEC record
+.br
+ */
+.br
+ ldns_dnssec_rrs *nsec_signatures;
+.br
+ /**
+.br
+ * Unlike what the name is_glue suggests, this field is set to true by
+.br
+ * ldns_dnssec_zone_mark_glue() or ldns_dnssec_zone_mark_and_get_glue()
+.br
+ * when the name, this dnssec_name struct represents, is occluded.
+.br
+ * Names that contain other occluded rrsets and records with glue on
+.br
+ * the delegation point will NOT have this bool set to true.
+.br
+ * This field should NOT be read directly, but only via the
+.br
+ * ldns_dnssec_name_is_glue() function!
+.br
+ */
+.br
+ bool is_glue;
+.br
+ /**
+.br
+ * pointer to store the hashed name (only used when in an NSEC3 zone
+.br
+ */
+.br
+ ldns_rdf *hashed_name;
+.br
+};
+.br
+
+.br
+typedef struct ldns_struct_dnssec_name ldns_dnssec_name;
+.PP
+.HP
+\fIldns_dnssec_rrs\fR
+.br
+Singly linked list of rrs
+.br
+struct ldns_struct_dnssec_rrs
+.br
+{
+.br
+ ldns_rr *rr;
+.br
+ ldns_dnssec_rrs *next;
+.br
+};
+.br
+
+.br
+typedef struct ldns_struct_dnssec_rrs ldns_dnssec_rrs;
+.PP
+.HP
+\fIldns_dnssec_rrsets\fR
+.br
+Singly linked list of RRsets
+.br
+struct ldns_struct_dnssec_rrsets
+.br
+{
+.br
+ ldns_dnssec_rrs *rrs;
+.br
+ ldns_rr_type type;
+.br
+ ldns_dnssec_rrs *signatures;
+.br
+ ldns_dnssec_rrsets *next;
+.br
+};
+.br
+
+.br
+typedef struct ldns_struct_dnssec_rrsets ldns_dnssec_rrsets;
+.PP
+.SH AUTHOR
+The ldns team at NLnet Labs.
+
+.SH REPORTING BUGS
+Please report bugs to ldns-team@nlnetlabs.nl or in
+our bugzilla at
+http://www.nlnetlabs.nl/bugs/index.html
+
+.SH COPYRIGHT
+Copyright (c) 2004 - 2006 NLnet Labs.
+.PP
+Licensed under the BSD License. There is NO warranty; not even for
+MERCHANTABILITY or
+FITNESS FOR A PARTICULAR PURPOSE.
+
+.SH SEE ALSO
+\fIldns_dnssec_zone_new\fR, \fIldns_dnssec_name_new\fR, \fIldns_dnssec_rrs_new\fR, \fIldns_dnssec_rrsets_new\fR.
+And \fBperldoc Net::DNS\fR, \fBRFC1034\fR,
+\fBRFC1035\fR, \fBRFC4033\fR, \fBRFC4034\fR and \fBRFC4035\fR.
+.SH REMARKS
+This manpage was automatically generated from the ldns source code.
diff --git a/doc/man/man3/ldns_dnssec_zone_add_empty_nonterminals.3 b/doc/man/man3/ldns_dnssec_zone_add_empty_nonterminals.3
new file mode 120000
index 000000000000..2a554e71e1a9
--- /dev/null
+++ b/doc/man/man3/ldns_dnssec_zone_add_empty_nonterminals.3
@@ -0,0 +1 @@
+ldns_dnssec_zone_find_rrset.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_dnssec_zone_add_rr.3 b/doc/man/man3/ldns_dnssec_zone_add_rr.3
new file mode 120000
index 000000000000..2a554e71e1a9
--- /dev/null
+++ b/doc/man/man3/ldns_dnssec_zone_add_rr.3
@@ -0,0 +1 @@
+ldns_dnssec_zone_find_rrset.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_dnssec_zone_create_nsecs.3 b/doc/man/man3/ldns_dnssec_zone_create_nsecs.3
new file mode 120000
index 000000000000..82fba1089c88
--- /dev/null
+++ b/doc/man/man3/ldns_dnssec_zone_create_nsecs.3
@@ -0,0 +1 @@
+ldns_dnssec_zone_sign.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_dnssec_zone_create_rrsigs.3 b/doc/man/man3/ldns_dnssec_zone_create_rrsigs.3
new file mode 120000
index 000000000000..82fba1089c88
--- /dev/null
+++ b/doc/man/man3/ldns_dnssec_zone_create_rrsigs.3
@@ -0,0 +1 @@
+ldns_dnssec_zone_sign.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_dnssec_zone_find_rrset.3 b/doc/man/man3/ldns_dnssec_zone_find_rrset.3
new file mode 100644
index 000000000000..191c11b95cd7
--- /dev/null
+++ b/doc/man/man3/ldns_dnssec_zone_find_rrset.3
@@ -0,0 +1,119 @@
+.ad l
+.TH ldns 3 "30 May 2006"
+.SH NAME
+ldns_dnssec_zone_find_rrset, ldns_dnssec_zone_new, ldns_dnssec_zone_free, ldns_dnssec_zone_add_rr, ldns_dnssec_zone_names_print, ldns_dnssec_zone_print, ldns_dnssec_zone_add_empty_nonterminals \- functions for ldns_dnssec_zone
+
+.SH SYNOPSIS
+#include <stdint.h>
+.br
+#include <stdbool.h>
+.br
+.PP
+#include <ldns/ldns.h>
+.PP
+ldns_dnssec_rrsets* ldns_dnssec_zone_find_rrset(const ldns_dnssec_zone *zone, const ldns_rdf *dname, ldns_rr_type type);
+.PP
+ldns_dnssec_zone* ldns_dnssec_zone_new(void);
+.PP
+void ldns_dnssec_zone_free(ldns_dnssec_zone *zone);
+.PP
+ldns_status ldns_dnssec_zone_add_rr(ldns_dnssec_zone *zone, ldns_rr *rr);
+.PP
+void ldns_dnssec_zone_names_print(FILE *out, const ldns_rbtree_t *tree, bool print_soa);
+.PP
+void ldns_dnssec_zone_print(FILE *out, const ldns_dnssec_zone *zone);
+.PP
+ldns_status ldns_dnssec_zone_add_empty_nonterminals(ldns_dnssec_zone *zone);
+.PP
+
+.SH DESCRIPTION
+.HP
+\fIldns_dnssec_zone_find_rrset\fR()
+Find the RRset with the given name and type in the zone
+
+\.br
+\fBzone\fR: the zone structure to find the RRset in
+\.br
+\fBdname\fR: the domain name of the RRset to find
+\.br
+\fBtype\fR: the type of the RRset to find
+\.br
+Returns the RRset, or \%NULL if not present
+.PP
+.HP
+\fIldns_dnssec_zone_new\fR()
+Creates a new dnssec_zone structure
+\.br
+Returns the allocated structure
+.PP
+.HP
+\fIldns_dnssec_zone_free\fR()
+Frees the given zone structure, and its rbtree of dnssec_names
+Individual ldns_rr RRs within those names are *not* freed
+\.br
+\fB*zone\fR: the zone to free
+.PP
+.HP
+\fIldns_dnssec_zone_add_rr\fR()
+Adds the given \%RR to the zone.
+It find whether there is a dnssec_name with that name present.
+If so, add it to that, if not create a new one.
+Special handling of \%NSEC and \%RRSIG provided
+
+\.br
+\fBzone\fR: the zone to add the \%RR to
+\.br
+\fBrr\fR: The \%RR to add
+\.br
+Returns \%LDNS_STATUS_OK on success, an error code otherwise
+.PP
+.HP
+\fIldns_dnssec_zone_names_print\fR()
+Prints the rbtree of ldns_dnssec_name structures to the file descriptor
+
+\.br
+\fBout\fR: the file descriptor to print the names to
+\.br
+\fBtree\fR: the tree of ldns_dnssec_name structures to print
+\.br
+\fBprint_soa\fR: if true, print \%SOA records, if false, skip them
+.PP
+.HP
+\fIldns_dnssec_zone_print\fR()
+Prints the complete zone to the given file descriptor
+
+\.br
+\fBout\fR: the file descriptor to print to
+\.br
+\fBzone\fR: the dnssec_zone to print
+.PP
+.HP
+\fIldns_dnssec_zone_add_empty_nonterminals\fR()
+Adds explicit dnssec_name structures for the empty nonterminals
+in this zone. (this is needed for NSEC3 generation)
+
+\.br
+\fBzone\fR: the zone to check for empty nonterminals
+return \%LDNS_STATUS_OK on success.
+.PP
+.SH AUTHOR
+The ldns team at NLnet Labs.
+
+.SH REPORTING BUGS
+Please report bugs to ldns-team@nlnetlabs.nl or in
+our bugzilla at
+http://www.nlnetlabs.nl/bugs/index.html
+
+.SH COPYRIGHT
+Copyright (c) 2004 - 2006 NLnet Labs.
+.PP
+Licensed under the BSD License. There is NO warranty; not even for
+MERCHANTABILITY or
+FITNESS FOR A PARTICULAR PURPOSE.
+
+.SH SEE ALSO
+\fIldns_dnssec_zone\fR.
+And \fBperldoc Net::DNS\fR, \fBRFC1034\fR,
+\fBRFC1035\fR, \fBRFC4033\fR, \fBRFC4034\fR and \fBRFC4035\fR.
+.SH REMARKS
+This manpage was automatically generated from the ldns source code.
diff --git a/doc/man/man3/ldns_dnssec_zone_free.3 b/doc/man/man3/ldns_dnssec_zone_free.3
new file mode 120000
index 000000000000..2a554e71e1a9
--- /dev/null
+++ b/doc/man/man3/ldns_dnssec_zone_free.3
@@ -0,0 +1 @@
+ldns_dnssec_zone_find_rrset.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_dnssec_zone_mark_glue.3 b/doc/man/man3/ldns_dnssec_zone_mark_glue.3
new file mode 120000
index 000000000000..82fba1089c88
--- /dev/null
+++ b/doc/man/man3/ldns_dnssec_zone_mark_glue.3
@@ -0,0 +1 @@
+ldns_dnssec_zone_sign.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_dnssec_zone_names_print.3 b/doc/man/man3/ldns_dnssec_zone_names_print.3
new file mode 120000
index 000000000000..2a554e71e1a9
--- /dev/null
+++ b/doc/man/man3/ldns_dnssec_zone_names_print.3
@@ -0,0 +1 @@
+ldns_dnssec_zone_find_rrset.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_dnssec_zone_new.3 b/doc/man/man3/ldns_dnssec_zone_new.3
new file mode 120000
index 000000000000..2a554e71e1a9
--- /dev/null
+++ b/doc/man/man3/ldns_dnssec_zone_new.3
@@ -0,0 +1 @@
+ldns_dnssec_zone_find_rrset.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_dnssec_zone_print.3 b/doc/man/man3/ldns_dnssec_zone_print.3
new file mode 120000
index 000000000000..2a554e71e1a9
--- /dev/null
+++ b/doc/man/man3/ldns_dnssec_zone_print.3
@@ -0,0 +1 @@
+ldns_dnssec_zone_find_rrset.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_dnssec_zone_sign.3 b/doc/man/man3/ldns_dnssec_zone_sign.3
new file mode 100644
index 000000000000..f39cdc4e3b89
--- /dev/null
+++ b/doc/man/man3/ldns_dnssec_zone_sign.3
@@ -0,0 +1,170 @@
+.ad l
+.TH ldns 3 "30 May 2006"
+.SH NAME
+ldns_dnssec_zone_sign, ldns_dnssec_zone_sign_nsec3, ldns_dnssec_zone_mark_glue, ldns_dnssec_name_node_next_nonglue, ldns_dnssec_zone_create_nsecs, ldns_dnssec_remove_signatures, ldns_dnssec_zone_create_rrsigs \- sign ldns_dnssec_zone
+
+.SH SYNOPSIS
+#include <stdint.h>
+.br
+#include <stdbool.h>
+.br
+.PP
+#include <ldns/ldns.h>
+.PP
+ldns_status ldns_dnssec_zone_sign(ldns_dnssec_zone *zone, ldns_rr_list *new_rrs, ldns_key_list *key_list, int (*func)(ldns_rr *, void *), void *arg);
+.PP
+ldns_status ldns_dnssec_zone_sign_nsec3(ldns_dnssec_zone *zone, ldns_rr_list *new_rrs, ldns_key_list *key_list, int (*func)(ldns_rr *, void *), void *arg, uint8_t algorithm, uint8_t flags, uint16_t iterations, uint8_t salt_length, uint8_t *salt);
+.PP
+ ldns_dnssec_zone_mark_glue();
+.PP
+ldns_rbnode_t* ldns_dnssec_name_node_next_nonglue(ldns_rbnode_t *node);
+.PP
+ldns_status ldns_dnssec_zone_create_nsecs(ldns_dnssec_zone *zone, ldns_rr_list *new_rrs);
+.PP
+ldns_dnssec_rrs* ldns_dnssec_remove_signatures(ldns_dnssec_rrs *signatures, ldns_key_list *key_list, int (*func)(ldns_rr *, void *), void *arg);
+.PP
+ldns_status ldns_dnssec_zone_create_rrsigs(ldns_dnssec_zone *zone, ldns_rr_list *new_rrs, ldns_key_list *key_list, int (*func)(ldns_rr *, void*), void *arg);
+.PP
+
+.SH DESCRIPTION
+.HP
+\fIldns_dnssec_zone_sign\fR()
+signs the given zone with the given keys
+
+\.br
+\fBzone\fR: the zone to sign
+\.br
+\fBkey_list\fR: the list of keys to sign the zone with
+\.br
+\fBnew_rrs\fR: newly created resource records are added to this list, to free them later
+\.br
+\fBfunc\fR: callback function that decides what to do with old signatures
+This function takes an ldns_rr* and an optional void *arg argument, and returns one of four values:
+\%LDNS_SIGNATURE_LEAVE_ADD_NEW:
+leave the signature and add a new one for the corresponding key
+\%LDNS_SIGNATURE_REMOVE_ADD_NEW:
+remove the signature and replace is with a new one from the same key
+\%LDNS_SIGNATURE_LEAVE_NO_ADD:
+leave the signature and do not add a new one with the corresponding key
+\%LDNS_SIGNATURE_REMOVE_NO_ADD:
+remove the signature and do not replace
+
+\.br
+\fBarg\fR: optional argument for the callback function
+\.br
+Returns \%LDNS_STATUS_OK on success, an error code otherwise
+.PP
+.HP
+\fIldns_dnssec_zone_sign_nsec3\fR()
+signs the given zone with the given new zone, with NSEC3
+
+\.br
+\fBzone\fR: the zone to sign
+\.br
+\fBkey_list\fR: the list of keys to sign the zone with
+\.br
+\fBnew_rrs\fR: newly created resource records are added to this list, to free them later
+\.br
+\fBfunc\fR: callback function that decides what to do with old signatures
+\.br
+\fBarg\fR: optional argument for the callback function
+\.br
+\fBalgorithm\fR: the NSEC3 hashing algorithm to use
+\.br
+\fBflags\fR: NSEC3 flags
+\.br
+\fBiterations\fR: the number of NSEC3 hash iterations to use
+\.br
+\fBsalt_length\fR: the length (in octets) of the NSEC3 salt
+\.br
+\fBsalt\fR: the NSEC3 salt data
+\.br
+Returns \%LDNS_STATUS_OK on success, an error code otherwise
+.PP
+.HP
+\fIldns_dnssec_zone_mark_glue\fR()
+.PP
+.HP
+\fIldns_dnssec_name_node_next_nonglue\fR()
+Finds the first dnssec_name node in the rbtree that is not occluded.
+It *does* return names that are partially occluded.
+
+\.br
+\fBnode\fR: the first node to check
+\.br
+Returns the first node that has not been marked as glue, or \%NULL
+if not found (\%TODO: make that \%LDNS_RBTREE_NULL?)
+.PP
+.HP
+\fIldns_dnssec_zone_create_nsecs\fR()
+Adds \%NSEC records to the given dnssec_zone
+
+\.br
+\fBzone\fR: the zone to add the records to
+\.br
+\fBnew_rrs\fR: ldns_rr's created by this function are
+added to this rr list, so the caller can free them later
+\.br
+Returns \%LDNS_STATUS_OK on success, an error code otherwise
+.PP
+.HP
+\fIldns_dnssec_remove_signatures\fR()
+remove signatures if callback function tells to
+
+\.br
+\fBsignatures\fR: list of signatures to check, and
+possibly remove, depending on the value of the
+callback
+\.br
+\fBkey_list\fR: these are marked to be used or not,
+on the return value of the callback
+\.br
+\fBfunc\fR: this function is called to specify what to
+do with each signature (and corresponding key)
+\.br
+\fBarg\fR: Optional argument for the callback function
+\.br
+Returns s pointer to the new signatures rrs (the original
+passed to this function may have been removed)
+.PP
+.HP
+\fIldns_dnssec_zone_create_rrsigs\fR()
+Adds signatures to the zone
+
+\.br
+\fBzone\fR: the zone to add \%RRSIG Resource Records to
+\.br
+\fBnew_rrs\fR: the \%RRSIG RRs that are created are also
+added to this list, so the caller can free them
+later
+\.br
+\fBkey_list\fR: list of keys to sign with.
+\.br
+\fBfunc\fR: Callback function to decide what keys to
+use and what to do with old signatures
+\.br
+\fBarg\fR: Optional argument for the callback function
+\.br
+Returns \%LDNS_STATUS_OK on success, error otherwise
+.PP
+.SH AUTHOR
+The ldns team at NLnet Labs.
+
+.SH REPORTING BUGS
+Please report bugs to ldns-team@nlnetlabs.nl or in
+our bugzilla at
+http://www.nlnetlabs.nl/bugs/index.html
+
+.SH COPYRIGHT
+Copyright (c) 2004 - 2006 NLnet Labs.
+.PP
+Licensed under the BSD License. There is NO warranty; not even for
+MERCHANTABILITY or
+FITNESS FOR A PARTICULAR PURPOSE.
+
+.SH SEE ALSO
+\fIldns_dnssec_zone\fR.
+And \fBperldoc Net::DNS\fR, \fBRFC1034\fR,
+\fBRFC1035\fR, \fBRFC4033\fR, \fBRFC4034\fR and \fBRFC4035\fR.
+.SH REMARKS
+This manpage was automatically generated from the ldns source code.
diff --git a/doc/man/man3/ldns_dnssec_zone_sign_nsec3.3 b/doc/man/man3/ldns_dnssec_zone_sign_nsec3.3
new file mode 120000
index 000000000000..82fba1089c88
--- /dev/null
+++ b/doc/man/man3/ldns_dnssec_zone_sign_nsec3.3
@@ -0,0 +1 @@
+ldns_dnssec_zone_sign.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_duration2string.3 b/doc/man/man3/ldns_duration2string.3
new file mode 120000
index 000000000000..1440b7b19ae7
--- /dev/null
+++ b/doc/man/man3/ldns_duration2string.3
@@ -0,0 +1 @@
+ldns_duration_type.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_duration2time.3 b/doc/man/man3/ldns_duration2time.3
new file mode 120000
index 000000000000..1440b7b19ae7
--- /dev/null
+++ b/doc/man/man3/ldns_duration2time.3
@@ -0,0 +1 @@
+ldns_duration_type.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_duration_cleanup.3 b/doc/man/man3/ldns_duration_cleanup.3
new file mode 120000
index 000000000000..1440b7b19ae7
--- /dev/null
+++ b/doc/man/man3/ldns_duration_cleanup.3
@@ -0,0 +1 @@
+ldns_duration_type.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_duration_compare.3 b/doc/man/man3/ldns_duration_compare.3
new file mode 120000
index 000000000000..1440b7b19ae7
--- /dev/null
+++ b/doc/man/man3/ldns_duration_compare.3
@@ -0,0 +1 @@
+ldns_duration_type.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_duration_create.3 b/doc/man/man3/ldns_duration_create.3
new file mode 120000
index 000000000000..1440b7b19ae7
--- /dev/null
+++ b/doc/man/man3/ldns_duration_create.3
@@ -0,0 +1 @@
+ldns_duration_type.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_duration_create_from_string.3 b/doc/man/man3/ldns_duration_create_from_string.3
new file mode 120000
index 000000000000..1440b7b19ae7
--- /dev/null
+++ b/doc/man/man3/ldns_duration_create_from_string.3
@@ -0,0 +1 @@
+ldns_duration_type.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_duration_type.3 b/doc/man/man3/ldns_duration_type.3
new file mode 100644
index 000000000000..a788e62e3bca
--- /dev/null
+++ b/doc/man/man3/ldns_duration_type.3
@@ -0,0 +1,129 @@
+.ad l
+.TH ldns 3 "30 May 2006"
+.SH NAME
+ldns_duration_type, ldns_duration_create, ldns_duration_create_from_string, ldns_duration_cleanup, ldns_duration_compare, ldns_duration2string, ldns_duration2time \- duration type and related functions
+
+.SH SYNOPSIS
+#include <stdint.h>
+.br
+#include <stdbool.h>
+.br
+.PP
+#include <ldns/ldns.h>
+.PP
+ldns_duration_type* ldns_duration_create(void);
+.PP
+ldns_duration_type* ldns_duration_create_from_string(const char* str);
+.PP
+void ldns_duration_cleanup(ldns_duration_type* duration);
+.PP
+int ldns_duration_compare(const ldns_duration_type* d1, const ldns_duration_type* d2);
+.PP
+char* ldns_duration2string(const ldns_duration_type* duration);
+.PP
+time_t ldns_duration2time(const ldns_duration_type* duration);
+.PP
+
+.SH DESCRIPTION
+.HP
+\fIldns_duration_type\fR
+.br
+Duration.
+.br
+
+.br
+struct ldns_duration_struct
+.br
+{
+.br
+ time_t years;
+.br
+ time_t months;
+.br
+ time_t weeks;
+.br
+ time_t days;
+.br
+ time_t hours;
+.br
+ time_t minutes;
+.br
+ time_t seconds;
+.br
+};
+.br
+
+.br
+typedef struct ldns_duration_struct ldns_duration_type;
+.PP
+.HP
+\fIldns_duration_create\fR()
+Create a new 'instant' duration.
+\.br
+Returns ldns_duration_type* created duration
+
+.PP
+.HP
+\fIldns_duration_create_from_string\fR()
+Create a duration from string.
+\.br
+\fBstr\fR: string-format duration
+\.br
+Returns ldns_duration_type* created duration
+
+.PP
+.HP
+\fIldns_duration_cleanup\fR()
+Clean up duration.
+\.br
+\fBduration\fR: duration to be cleaned up
+
+.PP
+.HP
+\fIldns_duration_compare\fR()
+Compare durations.
+\.br
+\fBd1\fR: one duration
+\.br
+\fBd2\fR: another duration
+\.br
+Returns int 0 if equal, -1 if d1 < d2, 1 if d2 < d1
+
+.PP
+.HP
+\fIldns_duration2string\fR()
+Convert a duration to a string.
+\.br
+\fBduration\fR: duration to be converted
+\.br
+Returns char* string-format duration
+
+.PP
+.HP
+\fIldns_duration2time\fR()
+Convert a duration to a time.
+\.br
+\fBduration\fR: duration to be converted
+\.br
+Returns time_t time-format duration
+
+.PP
+.SH AUTHOR
+The ldns team at NLnet Labs.
+
+.SH REPORTING BUGS
+Please report bugs to ldns-team@nlnetlabs.nl or in
+our bugzilla at
+http://www.nlnetlabs.nl/bugs/index.html
+
+.SH COPYRIGHT
+Copyright (c) 2004 - 2006 NLnet Labs.
+.PP
+Licensed under the BSD License. There is NO warranty; not even for
+MERCHANTABILITY or
+FITNESS FOR A PARTICULAR PURPOSE.
+.SH SEE ALSO
+\fBperldoc Net::DNS\fR, \fBRFC1034\fR,
+\fBRFC1035\fR, \fBRFC4033\fR, \fBRFC4034\fR and \fBRFC4035\fR.
+.SH REMARKS
+This manpage was automatically generated from the ldns source code.
diff --git a/doc/man/man3/ldns_fget_token.3 b/doc/man/man3/ldns_fget_token.3
new file mode 100644
index 000000000000..ddf7b50ecce4
--- /dev/null
+++ b/doc/man/man3/ldns_fget_token.3
@@ -0,0 +1,67 @@
+.ad l
+.TH ldns 3 "30 May 2006"
+.SH NAME
+ldns_fget_token, ldns_fskipcs \- get tokens from files
+
+.SH SYNOPSIS
+#include <stdint.h>
+.br
+#include <stdbool.h>
+.br
+.PP
+#include <ldns/ldns.h>
+.PP
+ssize_t ldns_fget_token(FILE *f, char *token, const char *delim, size_t limit);
+.PP
+void ldns_fskipcs(FILE *fp, const char *s);
+.PP
+
+.SH DESCRIPTION
+.HP
+\fIldns_fget_token\fR()
+returns a token/char from the stream \%F.
+This function deals with ( and ) in the stream,
+and ignores them when encountered
+\.br
+\fB*f\fR: the file to read from
+\.br
+\fB*token\fR: the read token is put here
+\.br
+\fB*delim\fR: chars at which the parsing should stop
+\.br
+\fB*limit\fR: how much to read. If 0 the builtin maximum is used
+\.br
+Returns 0 on error of \%EOF of the stream \%F. Otherwise return the length of what is read
+.PP
+.HP
+\fIldns_fskipcs\fR()
+skips all of the characters in the given string in the fp, moving
+the position to the first character that is not in *s.
+\.br
+\fB*fp\fR: file to use
+\.br
+\fB*s\fR: characters to skip
+\.br
+Returns void
+.PP
+.SH AUTHOR
+The ldns team at NLnet Labs.
+
+.SH REPORTING BUGS
+Please report bugs to ldns-team@nlnetlabs.nl or in
+our bugzilla at
+http://www.nlnetlabs.nl/bugs/index.html
+
+.SH COPYRIGHT
+Copyright (c) 2004 - 2006 NLnet Labs.
+.PP
+Licensed under the BSD License. There is NO warranty; not even for
+MERCHANTABILITY or
+FITNESS FOR A PARTICULAR PURPOSE.
+
+.SH SEE ALSO
+\fIldns_buffer\fR.
+And \fBperldoc Net::DNS\fR, \fBRFC1034\fR,
+\fBRFC1035\fR, \fBRFC4033\fR, \fBRFC4034\fR and \fBRFC4035\fR.
+.SH REMARKS
+This manpage was automatically generated from the ldns source code.
diff --git a/doc/man/man3/ldns_fskipcs.3 b/doc/man/man3/ldns_fskipcs.3
new file mode 120000
index 000000000000..d6c5851a4fc1
--- /dev/null
+++ b/doc/man/man3/ldns_fskipcs.3
@@ -0,0 +1 @@
+ldns_fget_token.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_get_errorstr_by_id.3 b/doc/man/man3/ldns_get_errorstr_by_id.3
new file mode 100644
index 000000000000..fdabd7de7c29
--- /dev/null
+++ b/doc/man/man3/ldns_get_errorstr_by_id.3
@@ -0,0 +1,44 @@
+.ad l
+.TH ldns 3 "30 May 2006"
+.SH NAME
+ldns_get_errorstr_by_id, ldns_status \- errors
+
+.SH SYNOPSIS
+#include <stdint.h>
+.br
+#include <stdbool.h>
+.br
+.PP
+#include <ldns/ldns.h>
+.PP
+ ldns_get_errorstr_by_id();
+.PP
+ ldns_status();
+.PP
+
+.SH DESCRIPTION
+.HP
+\fIldns_get_errorstr_by_id\fR()
+.PP
+.HP
+\fIldns_status\fR()
+.PP
+.SH AUTHOR
+The ldns team at NLnet Labs.
+
+.SH REPORTING BUGS
+Please report bugs to ldns-team@nlnetlabs.nl or in
+our bugzilla at
+http://www.nlnetlabs.nl/bugs/index.html
+
+.SH COPYRIGHT
+Copyright (c) 2004 - 2006 NLnet Labs.
+.PP
+Licensed under the BSD License. There is NO warranty; not even for
+MERCHANTABILITY or
+FITNESS FOR A PARTICULAR PURPOSE.
+.SH SEE ALSO
+\fBperldoc Net::DNS\fR, \fBRFC1034\fR,
+\fBRFC1035\fR, \fBRFC4033\fR, \fBRFC4034\fR and \fBRFC4035\fR.
+.SH REMARKS
+This manpage was automatically generated from the ldns source code.
diff --git a/doc/man/man3/ldns_get_rr_class_by_name.3 b/doc/man/man3/ldns_get_rr_class_by_name.3
new file mode 100644
index 000000000000..4e15e6b7bb38
--- /dev/null
+++ b/doc/man/man3/ldns_get_rr_class_by_name.3
@@ -0,0 +1,56 @@
+.ad l
+.TH ldns 3 "30 May 2006"
+.SH NAME
+ldns_get_rr_class_by_name, ldns_get_rr_type_by_name \- lookup class or type by name
+
+.SH SYNOPSIS
+#include <stdint.h>
+.br
+#include <stdbool.h>
+.br
+.PP
+#include <ldns/ldns.h>
+.PP
+ldns_rr_class ldns_get_rr_class_by_name(const char *name);
+.PP
+ldns_rr_type ldns_get_rr_type_by_name(const char *name);
+.PP
+
+.SH DESCRIPTION
+.HP
+\fIldns_get_rr_class_by_name\fR()
+retrieves a class by looking up its name.
+\.br
+\fBname\fR: string with the name
+\.br
+Returns the cass which corresponds with the name
+.PP
+.HP
+\fIldns_get_rr_type_by_name\fR()
+retrieves a rrtype by looking up its name.
+\.br
+\fBname\fR: a string with the name
+\.br
+Returns the type which corresponds with the name
+.PP
+.SH AUTHOR
+The ldns team at NLnet Labs.
+
+.SH REPORTING BUGS
+Please report bugs to ldns-team@nlnetlabs.nl or in
+our bugzilla at
+http://www.nlnetlabs.nl/bugs/index.html
+
+.SH COPYRIGHT
+Copyright (c) 2004 - 2006 NLnet Labs.
+.PP
+Licensed under the BSD License. There is NO warranty; not even for
+MERCHANTABILITY or
+FITNESS FOR A PARTICULAR PURPOSE.
+
+.SH SEE ALSO
+\fIldns_rr\fR, \fIldns_rr_list\fR.
+And \fBperldoc Net::DNS\fR, \fBRFC1034\fR,
+\fBRFC1035\fR, \fBRFC4033\fR, \fBRFC4034\fR and \fBRFC4035\fR.
+.SH REMARKS
+This manpage was automatically generated from the ldns source code.
diff --git a/doc/man/man3/ldns_get_rr_list_addr_by_name.3 b/doc/man/man3/ldns_get_rr_list_addr_by_name.3
new file mode 100644
index 000000000000..ecc5d45d6238
--- /dev/null
+++ b/doc/man/man3/ldns_get_rr_list_addr_by_name.3
@@ -0,0 +1,66 @@
+.ad l
+.TH ldns 3 "30 May 2006"
+.SH NAME
+ldns_get_rr_list_addr_by_name, ldns_get_rr_list_name_by_addr \- get addresses by name or names by address
+
+.SH SYNOPSIS
+#include <stdint.h>
+.br
+#include <stdbool.h>
+.br
+.PP
+#include <ldns/ldns.h>
+.PP
+ldns_rr_list* ldns_get_rr_list_addr_by_name(ldns_resolver *r, const ldns_rdf *name, ldns_rr_class c, uint16_t flags);
+.PP
+ldns_rr_list* ldns_get_rr_list_name_by_addr(ldns_resolver *r, const ldns_rdf *addr, ldns_rr_class c, uint16_t flags);
+.PP
+
+.SH DESCRIPTION
+.HP
+\fIldns_get_rr_list_addr_by_name\fR()
+Ask the resolver about name
+and return all address records
+\.br
+\fBr\fR: the resolver to use
+\.br
+\fBname\fR: the name to look for
+\.br
+\fBc\fR: the class to use
+\.br
+\fBflags\fR: give some optional flags to the query
+.PP
+.HP
+\fIldns_get_rr_list_name_by_addr\fR()
+ask the resolver about the address
+and return the name
+\.br
+\fBr\fR: the resolver to use
+\.br
+\fBaddr\fR: the addr to look for
+\.br
+\fBc\fR: the class to use
+\.br
+\fBflags\fR: give some optional flags to the query
+.PP
+.SH AUTHOR
+The ldns team at NLnet Labs.
+
+.SH REPORTING BUGS
+Please report bugs to ldns-team@nlnetlabs.nl or in
+our bugzilla at
+http://www.nlnetlabs.nl/bugs/index.html
+
+.SH COPYRIGHT
+Copyright (c) 2004 - 2006 NLnet Labs.
+.PP
+Licensed under the BSD License. There is NO warranty; not even for
+MERCHANTABILITY or
+FITNESS FOR A PARTICULAR PURPOSE.
+
+.SH SEE ALSO
+\fIldns_rr_list\fR, \fIldns_rr\fR.
+And \fBperldoc Net::DNS\fR, \fBRFC1034\fR,
+\fBRFC1035\fR, \fBRFC4033\fR, \fBRFC4034\fR and \fBRFC4035\fR.
+.SH REMARKS
+This manpage was automatically generated from the ldns source code.
diff --git a/doc/man/man3/ldns_get_rr_list_hosts_frm_file.3 b/doc/man/man3/ldns_get_rr_list_hosts_frm_file.3
new file mode 100644
index 000000000000..2e5b8ffcd93b
--- /dev/null
+++ b/doc/man/man3/ldns_get_rr_list_hosts_frm_file.3
@@ -0,0 +1,74 @@
+.ad l
+.TH ldns 3 "30 May 2006"
+.SH NAME
+ldns_get_rr_list_hosts_frm_file, ldns_get_rr_list_hosts_frm_fp, ldns_get_rr_list_hosts_frm_fp_l \- parse /etc/hosts file
+
+.SH SYNOPSIS
+#include <stdint.h>
+.br
+#include <stdbool.h>
+.br
+.PP
+#include <ldns/ldns.h>
+.PP
+ldns_rr_list* ldns_get_rr_list_hosts_frm_file(char *filename);
+.PP
+ldns_rr_list* ldns_get_rr_list_hosts_frm_fp(FILE *fp);
+.PP
+ldns_rr_list* ldns_get_rr_list_hosts_frm_fp_l(FILE *fp, int *line_nr);
+.PP
+
+.SH DESCRIPTION
+.HP
+\fIldns_get_rr_list_hosts_frm_file\fR()
+wade through fp (a /etc/hosts like file)
+and return a rr_list containing all the
+defined hosts in there
+\.br
+\fBfilename\fR: the filename to use (\%NULL for /etc/hosts)
+\.br
+Returns ldns_rr_list * with the names
+.PP
+.HP
+\fIldns_get_rr_list_hosts_frm_fp\fR()
+wade through fp (a /etc/hosts like file)
+and return a rr_list containing all the
+defined hosts in there
+\.br
+\fBfp\fR: the file pointer to use
+\.br
+Returns ldns_rr_list * with the names
+.PP
+.HP
+\fIldns_get_rr_list_hosts_frm_fp_l\fR()
+wade through fp (a /etc/hosts like file)
+and return a rr_list containing all the
+defined hosts in there
+\.br
+\fBfp\fR: the file pointer to use
+\.br
+\fBline_nr\fR: pointer to an integer containing the current line number (for debugging purposes)
+\.br
+Returns ldns_rr_list * with the names
+.PP
+.SH AUTHOR
+The ldns team at NLnet Labs.
+
+.SH REPORTING BUGS
+Please report bugs to ldns-team@nlnetlabs.nl or in
+our bugzilla at
+http://www.nlnetlabs.nl/bugs/index.html
+
+.SH COPYRIGHT
+Copyright (c) 2004 - 2006 NLnet Labs.
+.PP
+Licensed under the BSD License. There is NO warranty; not even for
+MERCHANTABILITY or
+FITNESS FOR A PARTICULAR PURPOSE.
+
+.SH SEE ALSO
+\fIldns_rr_list\fR, \fIldns_rr\fR.
+And \fBperldoc Net::DNS\fR, \fBRFC1034\fR,
+\fBRFC1035\fR, \fBRFC4033\fR, \fBRFC4034\fR and \fBRFC4035\fR.
+.SH REMARKS
+This manpage was automatically generated from the ldns source code.
diff --git a/doc/man/man3/ldns_get_rr_list_hosts_frm_fp.3 b/doc/man/man3/ldns_get_rr_list_hosts_frm_fp.3
new file mode 120000
index 000000000000..021232813d46
--- /dev/null
+++ b/doc/man/man3/ldns_get_rr_list_hosts_frm_fp.3
@@ -0,0 +1 @@
+ldns_get_rr_list_hosts_frm_file.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_get_rr_list_hosts_frm_fp_l.3 b/doc/man/man3/ldns_get_rr_list_hosts_frm_fp_l.3
new file mode 120000
index 000000000000..021232813d46
--- /dev/null
+++ b/doc/man/man3/ldns_get_rr_list_hosts_frm_fp_l.3
@@ -0,0 +1 @@
+ldns_get_rr_list_hosts_frm_file.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_get_rr_list_name_by_addr.3 b/doc/man/man3/ldns_get_rr_list_name_by_addr.3
new file mode 120000
index 000000000000..7d07f06cde38
--- /dev/null
+++ b/doc/man/man3/ldns_get_rr_list_name_by_addr.3
@@ -0,0 +1 @@
+ldns_get_rr_list_addr_by_name.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_get_rr_type_by_name.3 b/doc/man/man3/ldns_get_rr_type_by_name.3
new file mode 120000
index 000000000000..bc80c435aa0f
--- /dev/null
+++ b/doc/man/man3/ldns_get_rr_type_by_name.3
@@ -0,0 +1 @@
+ldns_get_rr_class_by_name.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_getaddrinfo.3 b/doc/man/man3/ldns_getaddrinfo.3
new file mode 100644
index 000000000000..2e24ac05a1f0
--- /dev/null
+++ b/doc/man/man3/ldns_getaddrinfo.3
@@ -0,0 +1,54 @@
+.ad l
+.TH ldns 3 "30 May 2006"
+.SH NAME
+ldns_getaddrinfo \- mimic libc getaddrinfo
+
+.SH SYNOPSIS
+#include <stdint.h>
+.br
+#include <stdbool.h>
+.br
+.PP
+#include <ldns/ldns.h>
+.PP
+uint16_t ldns_getaddrinfo(ldns_resolver *res, const ldns_rdf *node, ldns_rr_class c, ldns_rr_list **list);
+.PP
+
+.SH DESCRIPTION
+.HP
+\fIldns_getaddrinfo\fR()
+This function is a wrapper function for ldns_get_rr_list_name_by_addr
+and ldns_get_rr_list_addr_by_name. It's name is from the getaddrinfo()
+library call. It tries to mimic that call, but without the lowlevel
+stuff.
+\.br
+\fBres\fR: The resolver. If this value is \%NULL then a resolver will
+be created by ldns_getaddrinfo.
+\.br
+\fBnode\fR: the name or ip address to look up
+\.br
+\fBc\fR: the class to look in
+\.br
+\fBlist\fR: put the found \%RR's in this list
+\.br
+Returns the number of \%RR found.
+.PP
+.SH AUTHOR
+The ldns team at NLnet Labs.
+
+.SH REPORTING BUGS
+Please report bugs to ldns-team@nlnetlabs.nl or in
+our bugzilla at
+http://www.nlnetlabs.nl/bugs/index.html
+
+.SH COPYRIGHT
+Copyright (c) 2004 - 2006 NLnet Labs.
+.PP
+Licensed under the BSD License. There is NO warranty; not even for
+MERCHANTABILITY or
+FITNESS FOR A PARTICULAR PURPOSE.
+.SH SEE ALSO
+\fBperldoc Net::DNS\fR, \fBRFC1034\fR,
+\fBRFC1035\fR, \fBRFC4033\fR, \fBRFC4034\fR and \fBRFC4035\fR.
+.SH REMARKS
+This manpage was automatically generated from the ldns source code.
diff --git a/doc/man/man3/ldns_init_random.3 b/doc/man/man3/ldns_init_random.3
new file mode 100644
index 000000000000..8f77edf55d8e
--- /dev/null
+++ b/doc/man/man3/ldns_init_random.3
@@ -0,0 +1,41 @@
+.ad l
+.TH ldns 3 "30 May 2006"
+.SH NAME
+ldns_init_random \- seed the random function
+
+.SH SYNOPSIS
+#include <stdint.h>
+.br
+#include <stdbool.h>
+.br
+.PP
+#include <ldns/ldns.h>
+.PP
+ ldns_init_random();
+.PP
+
+.SH DESCRIPTION
+.HP
+\fIldns_init_random\fR()
+.PP
+.SH AUTHOR
+The ldns team at NLnet Labs.
+
+.SH REPORTING BUGS
+Please report bugs to ldns-team@nlnetlabs.nl or in
+our bugzilla at
+http://www.nlnetlabs.nl/bugs/index.html
+
+.SH COPYRIGHT
+Copyright (c) 2004 - 2006 NLnet Labs.
+.PP
+Licensed under the BSD License. There is NO warranty; not even for
+MERCHANTABILITY or
+FITNESS FOR A PARTICULAR PURPOSE.
+
+.SH SEE ALSO
+\fIldns_sign_public\fR, \fIldns_key\fR.
+And \fBperldoc Net::DNS\fR, \fBRFC1034\fR,
+\fBRFC1035\fR, \fBRFC4033\fR, \fBRFC4034\fR and \fBRFC4035\fR.
+.SH REMARKS
+This manpage was automatically generated from the ldns source code.
diff --git a/doc/man/man3/ldns_is_rrset.3 b/doc/man/man3/ldns_is_rrset.3
new file mode 100644
index 000000000000..8c3bfa64ce2d
--- /dev/null
+++ b/doc/man/man3/ldns_is_rrset.3
@@ -0,0 +1,46 @@
+.ad l
+.TH ldns 3 "30 May 2006"
+.SH NAME
+ldns_is_rrset \- is rr_list a rrset
+
+.SH SYNOPSIS
+#include <stdint.h>
+.br
+#include <stdbool.h>
+.br
+.PP
+#include <ldns/ldns.h>
+.PP
+bool ldns_is_rrset(const ldns_rr_list *rr_list);
+.PP
+
+.SH DESCRIPTION
+.HP
+\fIldns_is_rrset\fR()
+checks if an rr_list is a rrset.
+\.br
+\fBrr_list\fR: the rr_list to check
+\.br
+Returns true if it is an rrset otherwise false
+.PP
+.SH AUTHOR
+The ldns team at NLnet Labs.
+
+.SH REPORTING BUGS
+Please report bugs to ldns-team@nlnetlabs.nl or in
+our bugzilla at
+http://www.nlnetlabs.nl/bugs/index.html
+
+.SH COPYRIGHT
+Copyright (c) 2004 - 2006 NLnet Labs.
+.PP
+Licensed under the BSD License. There is NO warranty; not even for
+MERCHANTABILITY or
+FITNESS FOR A PARTICULAR PURPOSE.
+
+.SH SEE ALSO
+\fIldns_rr\fR, \fIldns_rr_list\fR.
+And \fBperldoc Net::DNS\fR, \fBRFC1034\fR,
+\fBRFC1035\fR, \fBRFC4033\fR, \fBRFC4034\fR and \fBRFC4035\fR.
+.SH REMARKS
+This manpage was automatically generated from the ldns source code.
diff --git a/doc/man/man3/ldns_key.3 b/doc/man/man3/ldns_key.3
new file mode 100644
index 000000000000..5b6360aef592
--- /dev/null
+++ b/doc/man/man3/ldns_key.3
@@ -0,0 +1,41 @@
+.ad l
+.TH ldns 3 "30 May 2006"
+.SH NAME
+ldns_key \- ldns_key data structure
+
+.SH SYNOPSIS
+#include <stdint.h>
+.br
+#include <stdbool.h>
+.br
+.PP
+#include <ldns/ldns.h>
+.PP
+ ldns_key();
+.PP
+
+.SH DESCRIPTION
+.HP
+\fIldns_key\fR()
+.PP
+.SH AUTHOR
+The ldns team at NLnet Labs.
+
+.SH REPORTING BUGS
+Please report bugs to ldns-team@nlnetlabs.nl or in
+our bugzilla at
+http://www.nlnetlabs.nl/bugs/index.html
+
+.SH COPYRIGHT
+Copyright (c) 2004 - 2006 NLnet Labs.
+.PP
+Licensed under the BSD License. There is NO warranty; not even for
+MERCHANTABILITY or
+FITNESS FOR A PARTICULAR PURPOSE.
+
+.SH SEE ALSO
+\fIldns_key_new\fR, \fIldns_key_new_frm_algorithm\fR, \fIldns_key_new_frm_fp\fR, \fIldns_key_new_frm_fp_l\fR, \fIldns_key_new_frm_fp_rsa\fR, \fIldns_key_new_frm_fp_rsa_l\fR, \fIldns_key_new_frm_fp_dsa\fR, \fIldns_key_new_frm_fp_dsa_l\fR, \fIldns_key_list_new\fR, \fIldns_key_set_algorithm\fR, \fIldns_key_set_rsa_key\fR, \fIldns_key_set_dsa_key\fR, \fIldns_key_set_hmac_key\fR, \fIldns_key_set_origttl\fR, \fIldns_key_set_inception\fR, \fIldns_key_set_expiration\fR, \fIldns_key_set_pubkey_owner\fR, \fIldns_key_set_keytag\fR, \fIldns_key_set_flags\fR, \fIldns_key_list_set_key_count\fR, \fIldns_key_list_push_key\fR, \fIldns_key_list_pop_key\fR, \fIldns_key_list_key_count\fR, \fIldns_key_list_key\fR, \fIldns_key_rsa_key\fR, \fIldns_key_dsa_key\fR, \fIldns_key_algorithm\fR, \fIldns_key_hmac_key\fR, \fIldns_key_origttl\fR, \fIldns_key_inception\fR, \fIldns_key_expiration\fR, \fIldns_key_keytag\fR, \fIldns_key_pubkey_owner\fR, \fIldns_key_flags\fR, \fIldns_key2rr\fR, \fIldns_key_free\fR, \fIldns_key_deep_free\fR, \fIldns_key_list_free\fR, \fIldns_key_print\fR.
+And \fBperldoc Net::DNS\fR, \fBRFC1034\fR,
+\fBRFC1035\fR, \fBRFC4033\fR, \fBRFC4034\fR and \fBRFC4035\fR.
+.SH REMARKS
+This manpage was automatically generated from the ldns source code.
diff --git a/doc/man/man3/ldns_key2buffer_str.3 b/doc/man/man3/ldns_key2buffer_str.3
new file mode 120000
index 000000000000..7624fd4a5766
--- /dev/null
+++ b/doc/man/man3/ldns_key2buffer_str.3
@@ -0,0 +1 @@
+ldns_pkt2buffer_str.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_key2rr.3 b/doc/man/man3/ldns_key2rr.3
new file mode 100644
index 000000000000..f9eaf638da43
--- /dev/null
+++ b/doc/man/man3/ldns_key2rr.3
@@ -0,0 +1,50 @@
+.ad l
+.TH ldns 3 "30 May 2006"
+.SH NAME
+ldns_key2rr \- convert ldns_key to rr
+
+.SH SYNOPSIS
+#include <stdint.h>
+.br
+#include <stdbool.h>
+.br
+.PP
+#include <ldns/ldns.h>
+.PP
+ldns_rr* ldns_key2rr(const ldns_key *k);
+.PP
+
+.SH DESCRIPTION
+.HP
+\fIldns_key2rr\fR()
+converts a ldns_key to a public key rr
+If the key data exists at an external point, the corresponding
+rdata field must still be added with ldns_rr_rdf_push() to the
+result rr of this function
+
+\.br
+\fBk\fR: the ldns_key to convert
+\.br
+Returns ldns_rr representation of the key
+.PP
+.SH AUTHOR
+The ldns team at NLnet Labs.
+
+.SH REPORTING BUGS
+Please report bugs to ldns-team@nlnetlabs.nl or in
+our bugzilla at
+http://www.nlnetlabs.nl/bugs/index.html
+
+.SH COPYRIGHT
+Copyright (c) 2004 - 2006 NLnet Labs.
+.PP
+Licensed under the BSD License. There is NO warranty; not even for
+MERCHANTABILITY or
+FITNESS FOR A PARTICULAR PURPOSE.
+
+.SH SEE ALSO
+\fIldns_key\fR.
+And \fBperldoc Net::DNS\fR, \fBRFC1034\fR,
+\fBRFC1035\fR, \fBRFC4033\fR, \fBRFC4034\fR and \fBRFC4035\fR.
+.SH REMARKS
+This manpage was automatically generated from the ldns source code.
diff --git a/doc/man/man3/ldns_key2str.3 b/doc/man/man3/ldns_key2str.3
new file mode 120000
index 000000000000..b2208d56a9d7
--- /dev/null
+++ b/doc/man/man3/ldns_key2str.3
@@ -0,0 +1 @@
+ldns_rr2str.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_key_algo_supported.3 b/doc/man/man3/ldns_key_algo_supported.3
new file mode 120000
index 000000000000..cead71684960
--- /dev/null
+++ b/doc/man/man3/ldns_key_algo_supported.3
@@ -0,0 +1 @@
+ldns_key_set_algorithm.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_key_algorithm.3 b/doc/man/man3/ldns_key_algorithm.3
new file mode 120000
index 000000000000..3f6ce86cb231
--- /dev/null
+++ b/doc/man/man3/ldns_key_algorithm.3
@@ -0,0 +1 @@
+ldns_key_list_key_count.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_key_buf2dsa.3 b/doc/man/man3/ldns_key_buf2dsa.3
new file mode 100644
index 000000000000..a046d3019be4
--- /dev/null
+++ b/doc/man/man3/ldns_key_buf2dsa.3
@@ -0,0 +1,58 @@
+.ad l
+.TH ldns 3 "30 May 2006"
+.SH NAME
+ldns_key_buf2dsa, ldns_key_buf2rsa \- convert buffer to openssl key
+
+.SH SYNOPSIS
+#include <stdint.h>
+.br
+#include <stdbool.h>
+.br
+.PP
+#include <ldns/ldns.h>
+.PP
+DSA* ldns_key_buf2dsa(const ldns_buffer *key);
+.PP
+RSA* ldns_key_buf2rsa(const ldns_buffer *key);
+.PP
+
+.SH DESCRIPTION
+.HP
+\fIldns_key_buf2dsa\fR()
+converts a buffer holding key material to a \%DSA key in openssl.
+
+\.br
+\fBkey\fR: the key to convert
+\.br
+Returns a \%DSA * structure with the key material
+.PP
+.HP
+\fIldns_key_buf2rsa\fR()
+converts a buffer holding key material to a \%RSA key in openssl.
+
+\.br
+\fBkey\fR: the key to convert
+\.br
+Returns a \%RSA * structure with the key material
+.PP
+.SH AUTHOR
+The ldns team at NLnet Labs.
+
+.SH REPORTING BUGS
+Please report bugs to ldns-team@nlnetlabs.nl or in
+our bugzilla at
+http://www.nlnetlabs.nl/bugs/index.html
+
+.SH COPYRIGHT
+Copyright (c) 2004 - 2006 NLnet Labs.
+.PP
+Licensed under the BSD License. There is NO warranty; not even for
+MERCHANTABILITY or
+FITNESS FOR A PARTICULAR PURPOSE.
+
+.SH SEE ALSO
+\fIldns_key_rr2ds\fR.
+And \fBperldoc Net::DNS\fR, \fBRFC1034\fR,
+\fBRFC1035\fR, \fBRFC4033\fR, \fBRFC4034\fR and \fBRFC4035\fR.
+.SH REMARKS
+This manpage was automatically generated from the ldns source code.
diff --git a/doc/man/man3/ldns_key_buf2rsa.3 b/doc/man/man3/ldns_key_buf2rsa.3
new file mode 120000
index 000000000000..20e2b4f7563b
--- /dev/null
+++ b/doc/man/man3/ldns_key_buf2rsa.3
@@ -0,0 +1 @@
+ldns_key_buf2dsa.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_key_deep_free.3 b/doc/man/man3/ldns_key_deep_free.3
new file mode 120000
index 000000000000..b98a250d6f63
--- /dev/null
+++ b/doc/man/man3/ldns_key_deep_free.3
@@ -0,0 +1 @@
+ldns_key_free.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_key_dsa_key.3 b/doc/man/man3/ldns_key_dsa_key.3
new file mode 120000
index 000000000000..3f6ce86cb231
--- /dev/null
+++ b/doc/man/man3/ldns_key_dsa_key.3
@@ -0,0 +1 @@
+ldns_key_list_key_count.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_key_expiration.3 b/doc/man/man3/ldns_key_expiration.3
new file mode 120000
index 000000000000..3f6ce86cb231
--- /dev/null
+++ b/doc/man/man3/ldns_key_expiration.3
@@ -0,0 +1 @@
+ldns_key_list_key_count.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_key_flags.3 b/doc/man/man3/ldns_key_flags.3
new file mode 120000
index 000000000000..3f6ce86cb231
--- /dev/null
+++ b/doc/man/man3/ldns_key_flags.3
@@ -0,0 +1 @@
+ldns_key_list_key_count.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_key_free.3 b/doc/man/man3/ldns_key_free.3
new file mode 100644
index 000000000000..a0472a111064
--- /dev/null
+++ b/doc/man/man3/ldns_key_free.3
@@ -0,0 +1,63 @@
+.ad l
+.TH ldns 3 "30 May 2006"
+.SH NAME
+ldns_key_free, ldns_key_deep_free, ldns_key_list_free \- free a ldns_key
+
+.SH SYNOPSIS
+#include <stdint.h>
+.br
+#include <stdbool.h>
+.br
+.PP
+#include <ldns/ldns.h>
+.PP
+void ldns_key_free(ldns_key *key);
+.PP
+void ldns_key_deep_free(ldns_key *key);
+.PP
+void ldns_key_list_free(ldns_key_list *key_list);
+.PP
+
+.SH DESCRIPTION
+.HP
+\fIldns_key_free\fR()
+frees a key structure, but not its internal data structures
+
+\.br
+\fBkey\fR: the key object to free
+.PP
+.HP
+\fIldns_key_deep_free\fR()
+frees a key structure and all its internal data structures, except
+the data set by ldns_key_set_external_key()
+
+\.br
+\fBkey\fR: the key object to free
+.PP
+.HP
+\fIldns_key_list_free\fR()
+Frees a key list structure
+\.br
+\fBkey_list\fR: the key list object to free
+.PP
+.SH AUTHOR
+The ldns team at NLnet Labs.
+
+.SH REPORTING BUGS
+Please report bugs to ldns-team@nlnetlabs.nl or in
+our bugzilla at
+http://www.nlnetlabs.nl/bugs/index.html
+
+.SH COPYRIGHT
+Copyright (c) 2004 - 2006 NLnet Labs.
+.PP
+Licensed under the BSD License. There is NO warranty; not even for
+MERCHANTABILITY or
+FITNESS FOR A PARTICULAR PURPOSE.
+
+.SH SEE ALSO
+\fIldns_key\fR.
+And \fBperldoc Net::DNS\fR, \fBRFC1034\fR,
+\fBRFC1035\fR, \fBRFC4033\fR, \fBRFC4034\fR and \fBRFC4035\fR.
+.SH REMARKS
+This manpage was automatically generated from the ldns source code.
diff --git a/doc/man/man3/ldns_key_hmac_key.3 b/doc/man/man3/ldns_key_hmac_key.3
new file mode 120000
index 000000000000..3f6ce86cb231
--- /dev/null
+++ b/doc/man/man3/ldns_key_hmac_key.3
@@ -0,0 +1 @@
+ldns_key_list_key_count.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_key_inception.3 b/doc/man/man3/ldns_key_inception.3
new file mode 120000
index 000000000000..3f6ce86cb231
--- /dev/null
+++ b/doc/man/man3/ldns_key_inception.3
@@ -0,0 +1 @@
+ldns_key_list_key_count.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_key_keytag.3 b/doc/man/man3/ldns_key_keytag.3
new file mode 120000
index 000000000000..3f6ce86cb231
--- /dev/null
+++ b/doc/man/man3/ldns_key_keytag.3
@@ -0,0 +1 @@
+ldns_key_list_key_count.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_key_list_free.3 b/doc/man/man3/ldns_key_list_free.3
new file mode 120000
index 000000000000..b98a250d6f63
--- /dev/null
+++ b/doc/man/man3/ldns_key_list_free.3
@@ -0,0 +1 @@
+ldns_key_free.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_key_list_key.3 b/doc/man/man3/ldns_key_list_key.3
new file mode 120000
index 000000000000..3f6ce86cb231
--- /dev/null
+++ b/doc/man/man3/ldns_key_list_key.3
@@ -0,0 +1 @@
+ldns_key_list_key_count.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_key_list_key_count.3 b/doc/man/man3/ldns_key_list_key_count.3
new file mode 100644
index 000000000000..27e296b6aa58
--- /dev/null
+++ b/doc/man/man3/ldns_key_list_key_count.3
@@ -0,0 +1,154 @@
+.ad l
+.TH ldns 3 "30 May 2006"
+.SH NAME
+ldns_key_list_key_count, ldns_key_list_key, ldns_key_rsa_key, ldns_key_dsa_key, ldns_key_algorithm, ldns_key_hmac_key, ldns_key_origttl, ldns_key_inception, ldns_key_expiration, ldns_key_keytag, ldns_key_pubkey_owner, ldns_key_flags \- read ldns_keys
+
+.SH SYNOPSIS
+#include <stdint.h>
+.br
+#include <stdbool.h>
+.br
+.PP
+#include <ldns/ldns.h>
+.PP
+size_t ldns_key_list_key_count(const ldns_key_list *key_list);
+.PP
+ldns_key* ldns_key_list_key(const ldns_key_list *key, size_t nr);
+.PP
+RSA* ldns_key_rsa_key(const ldns_key *k);
+.PP
+DSA* ldns_key_dsa_key(const ldns_key *k);
+.PP
+ldns_signing_algorithm ldns_key_algorithm(const ldns_key *k);
+.PP
+unsigned char* ldns_key_hmac_key(const ldns_key *k);
+.PP
+uint32_t ldns_key_origttl(const ldns_key *k);
+.PP
+uint32_t ldns_key_inception(const ldns_key *k);
+.PP
+uint32_t ldns_key_expiration(const ldns_key *k);
+.PP
+uint16_t ldns_key_keytag(const ldns_key *k);
+.PP
+ldns_rdf* ldns_key_pubkey_owner(const ldns_key *k);
+.PP
+uint16_t ldns_key_flags(const ldns_key *k);
+.PP
+
+.SH DESCRIPTION
+.HP
+\fIldns_key_list_key_count\fR()
+returns the number of keys in the key list
+\.br
+\fBkey_list\fR: the key_list
+\.br
+Returns the numbers of keys in the list
+.PP
+.HP
+\fIldns_key_list_key\fR()
+returns a pointer to the key in the list at the given position
+\.br
+\fBkey\fR: the key
+\.br
+\fBnr\fR: the position in the list
+\.br
+Returns the key
+.PP
+.HP
+\fIldns_key_rsa_key\fR()
+returns the (openssl) \%RSA struct contained in the key
+\.br
+\fBk\fR: the key to look in
+\.br
+Returns the \%RSA * structure in the key
+.PP
+.HP
+\fIldns_key_dsa_key\fR()
+returns the (openssl) \%DSA struct contained in the key
+.PP
+.HP
+\fIldns_key_algorithm\fR()
+return the signing alg of the key
+\.br
+\fBk\fR: the key
+\.br
+Returns the algorithm
+.PP
+.HP
+\fIldns_key_hmac_key\fR()
+return the hmac key data
+\.br
+\fBk\fR: the key
+\.br
+Returns the hmac key data
+.PP
+.HP
+\fIldns_key_origttl\fR()
+return the original ttl of the key
+\.br
+\fBk\fR: the key
+\.br
+Returns the original ttl
+.PP
+.HP
+\fIldns_key_inception\fR()
+return the key's inception date
+\.br
+\fBk\fR: the key
+\.br
+Returns the inception date
+.PP
+.HP
+\fIldns_key_expiration\fR()
+return the key's expiration date
+\.br
+\fBk\fR: the key
+\.br
+Returns the expiration date
+.PP
+.HP
+\fIldns_key_keytag\fR()
+return the keytag
+\.br
+\fBk\fR: the key
+\.br
+Returns the keytag
+.PP
+.HP
+\fIldns_key_pubkey_owner\fR()
+return the public key's owner
+\.br
+\fBk\fR: the key
+\.br
+Returns the owner
+.PP
+.HP
+\fIldns_key_flags\fR()
+return the flag of the key
+\.br
+\fBk\fR: the key
+\.br
+Returns the flag
+.PP
+.SH AUTHOR
+The ldns team at NLnet Labs.
+
+.SH REPORTING BUGS
+Please report bugs to ldns-team@nlnetlabs.nl or in
+our bugzilla at
+http://www.nlnetlabs.nl/bugs/index.html
+
+.SH COPYRIGHT
+Copyright (c) 2004 - 2006 NLnet Labs.
+.PP
+Licensed under the BSD License. There is NO warranty; not even for
+MERCHANTABILITY or
+FITNESS FOR A PARTICULAR PURPOSE.
+
+.SH SEE ALSO
+\fIldns_key\fR.
+And \fBperldoc Net::DNS\fR, \fBRFC1034\fR,
+\fBRFC1035\fR, \fBRFC4033\fR, \fBRFC4034\fR and \fBRFC4035\fR.
+.SH REMARKS
+This manpage was automatically generated from the ldns source code.
diff --git a/doc/man/man3/ldns_key_list_new.3 b/doc/man/man3/ldns_key_list_new.3
new file mode 100644
index 000000000000..07b6fbba3ed7
--- /dev/null
+++ b/doc/man/man3/ldns_key_list_new.3
@@ -0,0 +1,39 @@
+.ad l
+.TH ldns 3 "30 May 2006"
+.SH NAME
+ldns_key_list_new \- create a ldns_key_list
+
+.SH SYNOPSIS
+#include <stdint.h>
+.br
+#include <stdbool.h>
+.br
+.PP
+#include <ldns/ldns.h>
+.PP
+ ldns_key_list_new();
+.PP
+
+.SH DESCRIPTION
+.HP
+\fIldns_key_list_new\fR()
+.PP
+.SH AUTHOR
+The ldns team at NLnet Labs.
+
+.SH REPORTING BUGS
+Please report bugs to ldns-team@nlnetlabs.nl or in
+our bugzilla at
+http://www.nlnetlabs.nl/bugs/index.html
+
+.SH COPYRIGHT
+Copyright (c) 2004 - 2006 NLnet Labs.
+.PP
+Licensed under the BSD License. There is NO warranty; not even for
+MERCHANTABILITY or
+FITNESS FOR A PARTICULAR PURPOSE.
+.SH SEE ALSO
+\fBperldoc Net::DNS\fR, \fBRFC1034\fR,
+\fBRFC1035\fR, \fBRFC4033\fR, \fBRFC4034\fR and \fBRFC4035\fR.
+.SH REMARKS
+This manpage was automatically generated from the ldns source code.
diff --git a/doc/man/man3/ldns_key_list_pop_key.3 b/doc/man/man3/ldns_key_list_pop_key.3
new file mode 120000
index 000000000000..ef5cc0b8a08f
--- /dev/null
+++ b/doc/man/man3/ldns_key_list_pop_key.3
@@ -0,0 +1 @@
+ldns_key_list_push_key.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_key_list_push_key.3 b/doc/man/man3/ldns_key_list_push_key.3
new file mode 100644
index 000000000000..08a6598d3924
--- /dev/null
+++ b/doc/man/man3/ldns_key_list_push_key.3
@@ -0,0 +1,58 @@
+.ad l
+.TH ldns 3 "30 May 2006"
+.SH NAME
+ldns_key_list_push_key, ldns_key_list_pop_key \- manipulate ldns_key_list
+
+.SH SYNOPSIS
+#include <stdint.h>
+.br
+#include <stdbool.h>
+.br
+.PP
+#include <ldns/ldns.h>
+.PP
+bool ldns_key_list_push_key(ldns_key_list *key_list, ldns_key *key);
+.PP
+ldns_key* ldns_key_list_pop_key(ldns_key_list *key_list);
+.PP
+
+.SH DESCRIPTION
+.HP
+\fIldns_key_list_push_key\fR()
+pushes a key to a keylist
+\.br
+\fBkey_list\fR: the key_list to push to
+\.br
+\fBkey\fR: the key to push
+\.br
+Returns false on error, otherwise true
+.PP
+.HP
+\fIldns_key_list_pop_key\fR()
+pops the last rr from a keylist
+\.br
+\fBkey_list\fR: the rr_list to pop from
+\.br
+Returns \%NULL if nothing to pop. Otherwise the popped \%RR
+.PP
+.SH AUTHOR
+The ldns team at NLnet Labs.
+
+.SH REPORTING BUGS
+Please report bugs to ldns-team@nlnetlabs.nl or in
+our bugzilla at
+http://www.nlnetlabs.nl/bugs/index.html
+
+.SH COPYRIGHT
+Copyright (c) 2004 - 2006 NLnet Labs.
+.PP
+Licensed under the BSD License. There is NO warranty; not even for
+MERCHANTABILITY or
+FITNESS FOR A PARTICULAR PURPOSE.
+
+.SH SEE ALSO
+\fIldns_key\fR.
+And \fBperldoc Net::DNS\fR, \fBRFC1034\fR,
+\fBRFC1035\fR, \fBRFC4033\fR, \fBRFC4034\fR and \fBRFC4035\fR.
+.SH REMARKS
+This manpage was automatically generated from the ldns source code.
diff --git a/doc/man/man3/ldns_key_list_set_key_count.3 b/doc/man/man3/ldns_key_list_set_key_count.3
new file mode 120000
index 000000000000..cead71684960
--- /dev/null
+++ b/doc/man/man3/ldns_key_list_set_key_count.3
@@ -0,0 +1 @@
+ldns_key_set_algorithm.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_key_new.3 b/doc/man/man3/ldns_key_new.3
new file mode 100644
index 000000000000..c4df39a25d16
--- /dev/null
+++ b/doc/man/man3/ldns_key_new.3
@@ -0,0 +1,139 @@
+.ad l
+.TH ldns 3 "30 May 2006"
+.SH NAME
+ldns_key_new, ldns_key_new_frm_algorithm, ldns_key_new_frm_fp, ldns_key_new_frm_fp_l, ldns_key_new_frm_fp_rsa, ldns_key_new_frm_fp_rsa_l, ldns_key_new_frm_fp_dsa, ldns_key_new_frm_fp_dsa_l \- create a ldns_key
+
+.SH SYNOPSIS
+#include <stdint.h>
+.br
+#include <stdbool.h>
+.br
+.PP
+#include <ldns/ldns.h>
+.PP
+ldns_key* ldns_key_new(void);
+.PP
+ldns_key* ldns_key_new_frm_algorithm(ldns_signing_algorithm a, uint16_t size);
+.PP
+ldns_status ldns_key_new_frm_fp(ldns_key **k, FILE *fp);
+.PP
+ldns_status ldns_key_new_frm_fp_l(ldns_key **k, FILE *fp, int *line_nr);
+.PP
+RSA* ldns_key_new_frm_fp_rsa(FILE *fp);
+.PP
+RSA* ldns_key_new_frm_fp_rsa_l(FILE *fp, int *line_nr);
+.PP
+DSA* ldns_key_new_frm_fp_dsa(FILE *fp);
+.PP
+DSA* ldns_key_new_frm_fp_dsa_l(FILE *fp, int *line_nr);
+.PP
+
+.SH DESCRIPTION
+.HP
+\fIldns_key_new\fR()
+Creates a new empty key structure
+\.br
+Returns a new ldns_key * structure
+.PP
+.HP
+\fIldns_key_new_frm_algorithm\fR()
+Creates a new key based on the algorithm
+
+\.br
+\fBa\fR: The algorithm to use
+\.br
+\fBsize\fR: the number of bytes for the keysize
+\.br
+Returns a new ldns_key structure with the key
+.PP
+.HP
+\fIldns_key_new_frm_fp\fR()
+Creates a new priv key based on the
+contents of the file pointed by fp.
+
+The file should be in Private-key-format v1.x.
+
+\.br
+\fBk\fR: the new ldns_key structure
+\.br
+\fBfp\fR: the file pointer to use
+\.br
+Returns an error or \%LDNS_STATUS_OK
+.PP
+.HP
+\fIldns_key_new_frm_fp_l\fR()
+Creates a new private key based on the
+contents of the file pointed by fp
+
+The file should be in Private-key-format v1.x.
+
+\.br
+\fBk\fR: the new ldns_key structure
+\.br
+\fBfp\fR: the file pointer to use
+\.br
+\fBline_nr\fR: pointer to an integer containing the current line number (for debugging purposes)
+\.br
+Returns an error or \%LDNS_STATUS_OK
+.PP
+.HP
+\fIldns_key_new_frm_fp_rsa\fR()
+frm_fp helper function. This function parses the
+remainder of the (\%RSA) priv. key file generated from bind9
+\.br
+\fBfp\fR: the file to parse
+\.br
+Returns \%NULL on failure otherwise a \%RSA structure
+.PP
+.HP
+\fIldns_key_new_frm_fp_rsa_l\fR()
+frm_fp helper function. This function parses the
+remainder of the (\%RSA) priv. key file generated from bind9
+\.br
+\fBfp\fR: the file to parse
+\.br
+\fBline_nr\fR: pointer to an integer containing the current line number (for debugging purposes)
+\.br
+Returns \%NULL on failure otherwise a \%RSA structure
+.PP
+.HP
+\fIldns_key_new_frm_fp_dsa\fR()
+frm_fp helper function. This function parses the
+remainder of the (\%DSA) priv. key file
+\.br
+\fBfp\fR: the file to parse
+\.br
+Returns \%NULL on failure otherwise a \%RSA structure
+.PP
+.HP
+\fIldns_key_new_frm_fp_dsa_l\fR()
+frm_fp helper function. This function parses the
+remainder of the (\%DSA) priv. key file
+\.br
+\fBfp\fR: the file to parse
+\.br
+\fBline_nr\fR: pointer to an integer containing the current line number (for debugging purposes)
+\.br
+Returns \%NULL on failure otherwise a \%RSA structure
+.PP
+.SH AUTHOR
+The ldns team at NLnet Labs.
+
+.SH REPORTING BUGS
+Please report bugs to ldns-team@nlnetlabs.nl or in
+our bugzilla at
+http://www.nlnetlabs.nl/bugs/index.html
+
+.SH COPYRIGHT
+Copyright (c) 2004 - 2006 NLnet Labs.
+.PP
+Licensed under the BSD License. There is NO warranty; not even for
+MERCHANTABILITY or
+FITNESS FOR A PARTICULAR PURPOSE.
+
+.SH SEE ALSO
+\fIldns_key\fR.
+And \fBperldoc Net::DNS\fR, \fBRFC1034\fR,
+\fBRFC1035\fR, \fBRFC4033\fR, \fBRFC4034\fR and \fBRFC4035\fR.
+.SH REMARKS
+This manpage was automatically generated from the ldns source code.
diff --git a/doc/man/man3/ldns_key_new_frm_algorithm.3 b/doc/man/man3/ldns_key_new_frm_algorithm.3
new file mode 120000
index 000000000000..41446c9acb8e
--- /dev/null
+++ b/doc/man/man3/ldns_key_new_frm_algorithm.3
@@ -0,0 +1 @@
+ldns_key_new.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_key_new_frm_fp.3 b/doc/man/man3/ldns_key_new_frm_fp.3
new file mode 120000
index 000000000000..41446c9acb8e
--- /dev/null
+++ b/doc/man/man3/ldns_key_new_frm_fp.3
@@ -0,0 +1 @@
+ldns_key_new.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_key_new_frm_fp_dsa.3 b/doc/man/man3/ldns_key_new_frm_fp_dsa.3
new file mode 120000
index 000000000000..41446c9acb8e
--- /dev/null
+++ b/doc/man/man3/ldns_key_new_frm_fp_dsa.3
@@ -0,0 +1 @@
+ldns_key_new.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_key_new_frm_fp_dsa_l.3 b/doc/man/man3/ldns_key_new_frm_fp_dsa_l.3
new file mode 120000
index 000000000000..41446c9acb8e
--- /dev/null
+++ b/doc/man/man3/ldns_key_new_frm_fp_dsa_l.3
@@ -0,0 +1 @@
+ldns_key_new.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_key_new_frm_fp_l.3 b/doc/man/man3/ldns_key_new_frm_fp_l.3
new file mode 120000
index 000000000000..41446c9acb8e
--- /dev/null
+++ b/doc/man/man3/ldns_key_new_frm_fp_l.3
@@ -0,0 +1 @@
+ldns_key_new.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_key_new_frm_fp_rsa.3 b/doc/man/man3/ldns_key_new_frm_fp_rsa.3
new file mode 120000
index 000000000000..41446c9acb8e
--- /dev/null
+++ b/doc/man/man3/ldns_key_new_frm_fp_rsa.3
@@ -0,0 +1 @@
+ldns_key_new.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_key_new_frm_fp_rsa_l.3 b/doc/man/man3/ldns_key_new_frm_fp_rsa_l.3
new file mode 120000
index 000000000000..41446c9acb8e
--- /dev/null
+++ b/doc/man/man3/ldns_key_new_frm_fp_rsa_l.3
@@ -0,0 +1 @@
+ldns_key_new.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_key_origttl.3 b/doc/man/man3/ldns_key_origttl.3
new file mode 120000
index 000000000000..3f6ce86cb231
--- /dev/null
+++ b/doc/man/man3/ldns_key_origttl.3
@@ -0,0 +1 @@
+ldns_key_list_key_count.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_key_print.3 b/doc/man/man3/ldns_key_print.3
new file mode 100644
index 000000000000..17351478c555
--- /dev/null
+++ b/doc/man/man3/ldns_key_print.3
@@ -0,0 +1,47 @@
+.ad l
+.TH ldns 3 "30 May 2006"
+.SH NAME
+ldns_key_print \- print a ldns_key
+
+.SH SYNOPSIS
+#include <stdint.h>
+.br
+#include <stdbool.h>
+.br
+.PP
+#include <ldns/ldns.h>
+.PP
+void ldns_key_print(FILE *output, const ldns_key *k);
+.PP
+
+.SH DESCRIPTION
+.HP
+\fIldns_key_print\fR()
+print a private key to the file output
+
+\.br
+\fBoutput\fR: the \%FILE descriptor where to print to
+\.br
+\fBk\fR: the ldns_key to print
+.PP
+.SH AUTHOR
+The ldns team at NLnet Labs.
+
+.SH REPORTING BUGS
+Please report bugs to ldns-team@nlnetlabs.nl or in
+our bugzilla at
+http://www.nlnetlabs.nl/bugs/index.html
+
+.SH COPYRIGHT
+Copyright (c) 2004 - 2006 NLnet Labs.
+.PP
+Licensed under the BSD License. There is NO warranty; not even for
+MERCHANTABILITY or
+FITNESS FOR A PARTICULAR PURPOSE.
+
+.SH SEE ALSO
+\fIldns_key_new\fR, \fIldns_key\fR.
+And \fBperldoc Net::DNS\fR, \fBRFC1034\fR,
+\fBRFC1035\fR, \fBRFC4033\fR, \fBRFC4034\fR and \fBRFC4035\fR.
+.SH REMARKS
+This manpage was automatically generated from the ldns source code.
diff --git a/doc/man/man3/ldns_key_pubkey_owner.3 b/doc/man/man3/ldns_key_pubkey_owner.3
new file mode 120000
index 000000000000..3f6ce86cb231
--- /dev/null
+++ b/doc/man/man3/ldns_key_pubkey_owner.3
@@ -0,0 +1 @@
+ldns_key_list_key_count.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_key_rr2ds.3 b/doc/man/man3/ldns_key_rr2ds.3
new file mode 100644
index 000000000000..5757e5c5a438
--- /dev/null
+++ b/doc/man/man3/ldns_key_rr2ds.3
@@ -0,0 +1,50 @@
+.ad l
+.TH ldns 3 "30 May 2006"
+.SH NAME
+ldns_key_rr2ds \- create DS rr from DNSKEY rr
+
+.SH SYNOPSIS
+#include <stdint.h>
+.br
+#include <stdbool.h>
+.br
+.PP
+#include <ldns/ldns.h>
+.PP
+ldns_rr* ldns_key_rr2ds(const ldns_rr *key, ldns_hash h);
+.PP
+
+.SH DESCRIPTION
+.HP
+\fIldns_key_rr2ds\fR()
+returns a new \%DS rr that represents the given key rr.
+
+\.br
+\fB*key\fR: the key to convert
+\.br
+\fBh\fR: the hash to use LDNS_SHA1/LDNS_SHA256
+
+\.br
+Returns ldns_rr* a new rr pointer to a \%DS
+.PP
+.SH AUTHOR
+The ldns team at NLnet Labs.
+
+.SH REPORTING BUGS
+Please report bugs to ldns-team@nlnetlabs.nl or in
+our bugzilla at
+http://www.nlnetlabs.nl/bugs/index.html
+
+.SH COPYRIGHT
+Copyright (c) 2004 - 2006 NLnet Labs.
+.PP
+Licensed under the BSD License. There is NO warranty; not even for
+MERCHANTABILITY or
+FITNESS FOR A PARTICULAR PURPOSE.
+
+.SH SEE ALSO
+\fIldns_key\fR.
+And \fBperldoc Net::DNS\fR, \fBRFC1034\fR,
+\fBRFC1035\fR, \fBRFC4033\fR, \fBRFC4034\fR and \fBRFC4035\fR.
+.SH REMARKS
+This manpage was automatically generated from the ldns source code.
diff --git a/doc/man/man3/ldns_key_rsa_key.3 b/doc/man/man3/ldns_key_rsa_key.3
new file mode 120000
index 000000000000..3f6ce86cb231
--- /dev/null
+++ b/doc/man/man3/ldns_key_rsa_key.3
@@ -0,0 +1 @@
+ldns_key_list_key_count.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_key_set_algorithm.3 b/doc/man/man3/ldns_key_set_algorithm.3
new file mode 100644
index 000000000000..f0dd76ed0cbf
--- /dev/null
+++ b/doc/man/man3/ldns_key_set_algorithm.3
@@ -0,0 +1,158 @@
+.ad l
+.TH ldns 3 "30 May 2006"
+.SH NAME
+ldns_key_set_algorithm, ldns_key_set_rsa_key, ldns_key_set_dsa_key, ldns_key_set_hmac_key, ldns_key_set_origttl, ldns_key_set_inception, ldns_key_set_expiration, ldns_key_set_pubkey_owner, ldns_key_set_keytag, ldns_key_set_flags, ldns_key_list_set_key_count, ldns_key_algo_supported \- set ldns_key attributes
+
+.SH SYNOPSIS
+#include <stdint.h>
+.br
+#include <stdbool.h>
+.br
+.PP
+#include <ldns/ldns.h>
+.PP
+void ldns_key_set_algorithm(ldns_key *k, ldns_signing_algorithm l);
+.PP
+void ldns_key_set_rsa_key(ldns_key *k, RSA *r);
+.PP
+void ldns_key_set_dsa_key(ldns_key *k, DSA *d);
+.PP
+void ldns_key_set_hmac_key(ldns_key *k, unsigned char *hmac);
+.PP
+void ldns_key_set_origttl(ldns_key *k, uint32_t t);
+.PP
+void ldns_key_set_inception(ldns_key *k, uint32_t i);
+.PP
+void ldns_key_set_expiration(ldns_key *k, uint32_t e);
+.PP
+void ldns_key_set_pubkey_owner(ldns_key *k, ldns_rdf *r);
+.PP
+void ldns_key_set_keytag(ldns_key *k, uint16_t tag);
+.PP
+void ldns_key_set_flags(ldns_key *k, uint16_t flags);
+.PP
+void ldns_key_list_set_key_count(ldns_key_list *key, size_t count);
+.PP
+int ldns_key_algo_supported(int algo);
+.PP
+
+.SH DESCRIPTION
+.HP
+\fIldns_key_set_algorithm\fR()
+Set the key's algorithm
+\.br
+\fBk\fR: the key
+\.br
+\fBl\fR: the algorithm
+.PP
+.HP
+\fIldns_key_set_rsa_key\fR()
+Set the key's rsa data.
+The rsa data should be freed by the user.
+\.br
+\fBk\fR: the key
+\.br
+\fBr\fR: the rsa data
+.PP
+.HP
+\fIldns_key_set_dsa_key\fR()
+Set the key's dsa data
+The dsa data should be freed by the user.
+\.br
+\fBk\fR: the key
+\.br
+\fBd\fR: the dsa data
+.PP
+.HP
+\fIldns_key_set_hmac_key\fR()
+Set the key's hmac data
+\.br
+\fBk\fR: the key
+\.br
+\fBhmac\fR: the raw key data
+.PP
+.HP
+\fIldns_key_set_origttl\fR()
+Set the key's original ttl
+\.br
+\fBk\fR: the key
+\.br
+\fBt\fR: the ttl
+.PP
+.HP
+\fIldns_key_set_inception\fR()
+Set the key's inception date (seconds after epoch)
+\.br
+\fBk\fR: the key
+\.br
+\fBi\fR: the inception
+.PP
+.HP
+\fIldns_key_set_expiration\fR()
+Set the key's expiration date (seconds after epoch)
+\.br
+\fBk\fR: the key
+\.br
+\fBe\fR: the expiration
+.PP
+.HP
+\fIldns_key_set_pubkey_owner\fR()
+Set the key's pubkey owner
+\.br
+\fBk\fR: the key
+\.br
+\fBr\fR: the owner
+.PP
+.HP
+\fIldns_key_set_keytag\fR()
+Set the key's key tag
+\.br
+\fBk\fR: the key
+\.br
+\fBtag\fR: the keytag
+.PP
+.HP
+\fIldns_key_set_flags\fR()
+Set the key's flags
+\.br
+\fBk\fR: the key
+\.br
+\fBflags\fR: the flags
+.PP
+.HP
+\fIldns_key_list_set_key_count\fR()
+Set the keylist's key count to count
+\.br
+\fBkey\fR: the key
+\.br
+\fBcount\fR: the count
+.PP
+.HP
+\fIldns_key_algo_supported\fR()
+See if a key algorithm is supported
+\.br
+\fBalgo\fR: the signing algorithm number.
+\.br
+Returns s true if supported.
+.PP
+.SH AUTHOR
+The ldns team at NLnet Labs.
+
+.SH REPORTING BUGS
+Please report bugs to ldns-team@nlnetlabs.nl or in
+our bugzilla at
+http://www.nlnetlabs.nl/bugs/index.html
+
+.SH COPYRIGHT
+Copyright (c) 2004 - 2006 NLnet Labs.
+.PP
+Licensed under the BSD License. There is NO warranty; not even for
+MERCHANTABILITY or
+FITNESS FOR A PARTICULAR PURPOSE.
+
+.SH SEE ALSO
+\fIldns_key_push_key\fR, \fIldns_key\fR.
+And \fBperldoc Net::DNS\fR, \fBRFC1034\fR,
+\fBRFC1035\fR, \fBRFC4033\fR, \fBRFC4034\fR and \fBRFC4035\fR.
+.SH REMARKS
+This manpage was automatically generated from the ldns source code.
diff --git a/doc/man/man3/ldns_key_set_dsa_key.3 b/doc/man/man3/ldns_key_set_dsa_key.3
new file mode 120000
index 000000000000..cead71684960
--- /dev/null
+++ b/doc/man/man3/ldns_key_set_dsa_key.3
@@ -0,0 +1 @@
+ldns_key_set_algorithm.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_key_set_expiration.3 b/doc/man/man3/ldns_key_set_expiration.3
new file mode 120000
index 000000000000..cead71684960
--- /dev/null
+++ b/doc/man/man3/ldns_key_set_expiration.3
@@ -0,0 +1 @@
+ldns_key_set_algorithm.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_key_set_flags.3 b/doc/man/man3/ldns_key_set_flags.3
new file mode 120000
index 000000000000..cead71684960
--- /dev/null
+++ b/doc/man/man3/ldns_key_set_flags.3
@@ -0,0 +1 @@
+ldns_key_set_algorithm.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_key_set_hmac_key.3 b/doc/man/man3/ldns_key_set_hmac_key.3
new file mode 120000
index 000000000000..cead71684960
--- /dev/null
+++ b/doc/man/man3/ldns_key_set_hmac_key.3
@@ -0,0 +1 @@
+ldns_key_set_algorithm.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_key_set_inception.3 b/doc/man/man3/ldns_key_set_inception.3
new file mode 120000
index 000000000000..cead71684960
--- /dev/null
+++ b/doc/man/man3/ldns_key_set_inception.3
@@ -0,0 +1 @@
+ldns_key_set_algorithm.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_key_set_keytag.3 b/doc/man/man3/ldns_key_set_keytag.3
new file mode 120000
index 000000000000..cead71684960
--- /dev/null
+++ b/doc/man/man3/ldns_key_set_keytag.3
@@ -0,0 +1 @@
+ldns_key_set_algorithm.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_key_set_origttl.3 b/doc/man/man3/ldns_key_set_origttl.3
new file mode 120000
index 000000000000..cead71684960
--- /dev/null
+++ b/doc/man/man3/ldns_key_set_origttl.3
@@ -0,0 +1 @@
+ldns_key_set_algorithm.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_key_set_pubkey_owner.3 b/doc/man/man3/ldns_key_set_pubkey_owner.3
new file mode 120000
index 000000000000..cead71684960
--- /dev/null
+++ b/doc/man/man3/ldns_key_set_pubkey_owner.3
@@ -0,0 +1 @@
+ldns_key_set_algorithm.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_key_set_rsa_key.3 b/doc/man/man3/ldns_key_set_rsa_key.3
new file mode 120000
index 000000000000..cead71684960
--- /dev/null
+++ b/doc/man/man3/ldns_key_set_rsa_key.3
@@ -0,0 +1 @@
+ldns_key_set_algorithm.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_native2rdf_int16.3 b/doc/man/man3/ldns_native2rdf_int16.3
new file mode 120000
index 000000000000..66d860d66295
--- /dev/null
+++ b/doc/man/man3/ldns_native2rdf_int16.3
@@ -0,0 +1 @@
+ldns_native2rdf_int8.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_native2rdf_int16_data.3 b/doc/man/man3/ldns_native2rdf_int16_data.3
new file mode 120000
index 000000000000..66d860d66295
--- /dev/null
+++ b/doc/man/man3/ldns_native2rdf_int16_data.3
@@ -0,0 +1 @@
+ldns_native2rdf_int8.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_native2rdf_int32.3 b/doc/man/man3/ldns_native2rdf_int32.3
new file mode 120000
index 000000000000..66d860d66295
--- /dev/null
+++ b/doc/man/man3/ldns_native2rdf_int32.3
@@ -0,0 +1 @@
+ldns_native2rdf_int8.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_native2rdf_int8.3 b/doc/man/man3/ldns_native2rdf_int8.3
new file mode 100644
index 000000000000..73495978e8ac
--- /dev/null
+++ b/doc/man/man3/ldns_native2rdf_int8.3
@@ -0,0 +1,136 @@
+.ad l
+.TH ldns 3 "30 May 2006"
+.SH NAME
+ldns_native2rdf_int8, ldns_native2rdf_int16, ldns_native2rdf_int32, ldns_native2rdf_int16_data, ldns_rdf2native_int8, ldns_rdf2native_int16, ldns_rdf2native_int32, ldns_rdf2native_sockaddr_storage, ldns_rdf2native_time_t \- rdf numeric conversion functions
+
+.SH SYNOPSIS
+#include <stdint.h>
+.br
+#include <stdbool.h>
+.br
+.PP
+#include <ldns/ldns.h>
+.PP
+ldns_rdf* ldns_native2rdf_int8(ldns_rdf_type type, uint8_t value);
+.PP
+ldns_rdf* ldns_native2rdf_int16(ldns_rdf_type type, uint16_t value);
+.PP
+ldns_rdf* ldns_native2rdf_int32(ldns_rdf_type type, uint32_t value);
+.PP
+ldns_rdf* ldns_native2rdf_int16_data(size_t size, uint8_t *data);
+.PP
+uint8_t ldns_rdf2native_int8(const ldns_rdf *rd);
+.PP
+uint16_t ldns_rdf2native_int16(const ldns_rdf *rd);
+.PP
+uint32_t ldns_rdf2native_int32(const ldns_rdf *rd);
+.PP
+ ldns_rdf2native_sockaddr_storage();
+.PP
+time_t ldns_rdf2native_time_t(const ldns_rdf *rd);
+.PP
+
+.SH DESCRIPTION
+.HP
+\fIldns_native2rdf_int8\fR()
+returns the rdf containing the native uint8_t repr.
+\.br
+\fBtype\fR: the ldns_rdf type to use
+\.br
+\fBvalue\fR: the uint8_t to use
+\.br
+Returns ldns_rdf* with the converted value
+.PP
+.HP
+\fIldns_native2rdf_int16\fR()
+returns the rdf containing the native uint16_t representation.
+\.br
+\fBtype\fR: the ldns_rdf type to use
+\.br
+\fBvalue\fR: the uint16_t to use
+\.br
+Returns ldns_rdf* with the converted value
+.PP
+.HP
+\fIldns_native2rdf_int32\fR()
+returns an rdf that contains the given int32 value.
+
+Because multiple rdf types can contain an int32, the
+type must be specified
+\.br
+\fBtype\fR: the ldns_rdf type to use
+\.br
+\fBvalue\fR: the uint32_t to use
+\.br
+Returns ldns_rdf* with the converted value
+.PP
+.HP
+\fIldns_native2rdf_int16_data\fR()
+returns an int16_data rdf that contains the data in the
+given array, preceded by an int16 specifying the length.
+
+The memory is copied, and an LDNS_RDF_TYPE_INT16DATA is returned
+\.br
+\fBsize\fR: the size of the data
+\.br
+\fB*data\fR: pointer to the actual data
+
+\.br
+Returns ldns_rd* the rdf with the data
+.PP
+.HP
+\fIldns_rdf2native_int8\fR()
+returns the native uint8_t representation from the rdf.
+\.br
+\fBrd\fR: the ldns_rdf to operate on
+\.br
+Returns uint8_t the value extracted
+.PP
+.HP
+\fIldns_rdf2native_int16\fR()
+returns the native uint16_t representation from the rdf.
+\.br
+\fBrd\fR: the ldns_rdf to operate on
+\.br
+Returns uint16_t the value extracted
+.PP
+.HP
+\fIldns_rdf2native_int32\fR()
+returns the native uint32_t representation from the rdf.
+\.br
+\fBrd\fR: the ldns_rdf to operate on
+\.br
+Returns uint32_t the value extracted
+.PP
+.HP
+\fIldns_rdf2native_sockaddr_storage\fR()
+.PP
+.HP
+\fIldns_rdf2native_time_t\fR()
+returns the native time_t representation from the rdf.
+\.br
+\fBrd\fR: the ldns_rdf to operate on
+\.br
+Returns time_t the value extracted (32 bits currently)
+.PP
+.SH AUTHOR
+The ldns team at NLnet Labs.
+
+.SH REPORTING BUGS
+Please report bugs to ldns-team@nlnetlabs.nl or in
+our bugzilla at
+http://www.nlnetlabs.nl/bugs/index.html
+
+.SH COPYRIGHT
+Copyright (c) 2004 - 2006 NLnet Labs.
+.PP
+Licensed under the BSD License. There is NO warranty; not even for
+MERCHANTABILITY or
+FITNESS FOR A PARTICULAR PURPOSE.
+
+.SH SEE ALSO
+\fIldns_rdf\fR.
+And \fBperldoc Net::DNS\fR, \fBRFC1034\fR,
+\fBRFC1035\fR, \fBRFC4033\fR, \fBRFC4034\fR and \fBRFC4035\fR.
+.SH REMARKS
+This manpage was automatically generated from the ldns source code.
diff --git a/doc/man/man3/ldns_octet.3 b/doc/man/man3/ldns_octet.3
new file mode 100644
index 000000000000..8dab5d94302f
--- /dev/null
+++ b/doc/man/man3/ldns_octet.3
@@ -0,0 +1,49 @@
+.ad l
+.TH ldns 3 "30 May 2006"
+.SH NAME
+ldns_octet \- removes escaped from the input
+
+.SH SYNOPSIS
+#include <stdint.h>
+.br
+#include <stdbool.h>
+.br
+.PP
+#include <ldns/ldns.h>
+.PP
+ldns_status ldns_octet(char *word, size_t *length);
+.PP
+
+.SH DESCRIPTION
+.HP
+\fIldns_octet\fR()
+removes \\\\\%DDD, \\\\[space] and other escapes from the input.
+See \%RFC 1035, section 5.1.
+\.br
+\fBword\fR: what to check
+\.br
+\fBlength\fR: the string
+\.br
+Returns ldns_status mesg
+.PP
+.SH AUTHOR
+The ldns team at NLnet Labs.
+
+.SH REPORTING BUGS
+Please report bugs to ldns-team@nlnetlabs.nl or in
+our bugzilla at
+http://www.nlnetlabs.nl/bugs/index.html
+
+.SH COPYRIGHT
+Copyright (c) 2004 - 2006 NLnet Labs.
+.PP
+Licensed under the BSD License. There is NO warranty; not even for
+MERCHANTABILITY or
+FITNESS FOR A PARTICULAR PURPOSE.
+
+.SH SEE ALSO
+\fIldns_rdf\fR.
+And \fBperldoc Net::DNS\fR, \fBRFC1034\fR,
+\fBRFC1035\fR, \fBRFC4033\fR, \fBRFC4034\fR and \fBRFC4035\fR.
+.SH REMARKS
+This manpage was automatically generated from the ldns source code.
diff --git a/doc/man/man3/ldns_pkt.3 b/doc/man/man3/ldns_pkt.3
new file mode 100644
index 000000000000..abd24ef94584
--- /dev/null
+++ b/doc/man/man3/ldns_pkt.3
@@ -0,0 +1,139 @@
+.ad l
+.TH ldns 3 "30 May 2006"
+.SH NAME
+ldns_pkt, ldns_pkt_section, ldns_pkt_type \- request or answer packets types
+
+.SH SYNOPSIS
+#include <stdint.h>
+.br
+#include <stdbool.h>
+.br
+.PP
+#include <ldns/ldns.h>
+.PP
+ ldns_pkt_section();
+.PP
+ ldns_pkt_type();
+.PP
+
+.SH DESCRIPTION
+.HP
+\fIldns_pkt\fR
+.br
+DNS packet
+.br
+
+.br
+This structure contains a complete DNS packet (either a query or an answer)
+.br
+
+.br
+It is the complete representation of what you actually send to a
+.br
+nameserver, and what it sends back (assuming you are the client here).
+.br
+struct ldns_struct_pkt
+.br
+{
+.br
+ \fBHeader section:\fR
+.br
+ ldns_hdr *_header;
+.br
+ /* extra items needed in a packet */
+.br
+ \fBan rdf (A or AAAA) with the IP address of the server it is from:\fR
+.br
+ ldns_rdf *_answerfrom;
+.br
+ \fBTimestamp of the time the packet was sent or created:\fR
+.br
+ struct timeval timestamp;
+.br
+ \fBThe duration of the query this packet is an answer to:\fR
+.br
+ uint32_t _querytime;
+.br
+ \fBThe size of the wire format of the packet in octets:\fR
+.br
+ size_t _size;
+.br
+ \fBOptional tsig rr:\fR
+.br
+ ldns_rr *_tsig_rr;
+.br
+ \fBEDNS0 available buffer size, see RFC2671:\fR
+.br
+ uint16_t _edns_udp_size;
+.br
+ \fBEDNS0 Extended rcode:\fR
+.br
+ uint8_t _edns_extended_rcode;
+.br
+ \fBEDNS Version:\fR
+.br
+ uint8_t _edns_version;
+.br
+ /* OPT pseudo-RR presence flag */
+.br
+ uint8_t _edns_present;
+.br
+ \fBReserved EDNS data bits:\fR
+.br
+ uint16_t _edns_z;
+.br
+ \fBArbitrary EDNS rdata:\fR
+.br
+ ldns_rdf *_edns_data;
+.br
+ \fBStructed EDNS data:\fR
+.br
+ ldns_edns_option_list *_edns_list;
+.br
+ \fBQuestion section:\fR
+.br
+ ldns_rr_list *_question;
+.br
+ \fBAnswer section:\fR
+.br
+ ldns_rr_list *_answer;
+.br
+ \fBAuthority section:\fR
+.br
+ ldns_rr_list *_authority;
+.br
+ \fBAdditional section:\fR
+.br
+ ldns_rr_list *_additional;
+.br
+};
+.br
+typedef struct ldns_struct_pkt ldns_pkt;
+.PP
+.HP
+\fIldns_pkt_section\fR()
+.PP
+.HP
+\fIldns_pkt_type\fR()
+.PP
+.SH AUTHOR
+The ldns team at NLnet Labs.
+
+.SH REPORTING BUGS
+Please report bugs to ldns-team@nlnetlabs.nl or in
+our bugzilla at
+http://www.nlnetlabs.nl/bugs/index.html
+
+.SH COPYRIGHT
+Copyright (c) 2004 - 2006 NLnet Labs.
+.PP
+Licensed under the BSD License. There is NO warranty; not even for
+MERCHANTABILITY or
+FITNESS FOR A PARTICULAR PURPOSE.
+
+.SH SEE ALSO
+\fIldns_pkt_new\fR, \fIldns_pkt_free\fR, \fIldns_pkt_print\fR, \fIldns_pkt_query_new\fR, \fIldns_pkt_query_new_frm_str\fR, \fIldns_pkt_reply_type\fR, \fIldns_pkt_id\fR, \fIldns_pkt_qr\fR, \fIldns_pkt_aa\fR, \fIldns_pkt_tc\fR, \fIldns_pkt_rd\fR, \fIldns_pkt_cd\fR, \fIldns_pkt_ra\fR, \fIldns_pkt_ad\fR, \fIldns_pkt_get_opcode\fR, \fIldns_pkt_get_rcode\fR, \fIldns_pkt_qdcount\fR, \fIldns_pkt_ancount\fR, \fIldns_pkt_nscount\fR, \fIldns_pkt_arcount\fR, \fIldns_pkt_answerfrom\fR, \fIldns_pkt_querytime\fR, \fIldns_pkt_size\fR, \fIldns_pkt_tsig\fR, \fIldns_pkt_question\fR, \fIldns_pkt_answer\fR, \fIldns_pkt_authority\fR, \fIldns_pkt_additional\fR, \fIldns_pkt_get_section_clone\fR, \fIldns_pkt_rr_list_by_name\fR, \fIldns_pkt_rr_list_by_type\fR, \fIldns_pkt_rr_list_by_name_and_type\fR, \fIldns_pkt_set_flags\fR, \fIldns_pkt_set_id\fR, \fIldns_pkt_set_qr\fR, \fIldns_pkt_set_aa\fR, \fIldns_pkt_set_tc\fR, \fIldns_pkt_set_rd\fR, \fIldns_pkt_set_cd\fR, \fIldns_pkt_set_ra\fR, \fIldns_pkt_set_ad\fR, \fIldns_pkt_set_opcode\fR, \fIldns_pkt_set_rcode\fR, \fIldns_pkt_set_qdcount\fR, \fIldns_pkt_set_ancount\fR, \fIldns_pkt_set_nscount\fR, \fIldns_pkt_set_arcount\fR, \fIldns_pkt_set_answerfrom\fR, \fIldns_pkt_set_querytime\fR, \fIldns_pkt_set_size\fR, \fIldns_pkt_set_section_count\fR, \fIldns_pkt_set_tsig\fR, \fIldns_pkt_edns\fR, \fIldns_pkt_edns_udp_size\fR, \fIldns_pkt_edns_extended_rcode\fR, \fIldns_pkt_edns_version\fR, \fIldns_pkt_edns_z\fR, \fIldns_pkt_edns_unassigned\fR, \fIldns_pkt_edns_data\fR, \fIldns_pkt_set_edns_udp_size\fR, \fIldns_pkt_set_edns_extended_rcode\fR, \fIldns_pkt_set_edns_version\fR, \fIldns_pkt_set_edns_z\fR, \fIldns_pkt_set_edns_unassigned\fR, \fIldns_pkt_set_edns_data\fR.
+And \fBperldoc Net::DNS\fR, \fBRFC1034\fR,
+\fBRFC1035\fR, \fBRFC4033\fR, \fBRFC4034\fR and \fBRFC4035\fR.
+.SH REMARKS
+This manpage was automatically generated from the ldns source code.
diff --git a/doc/man/man3/ldns_pkt2buffer_str.3 b/doc/man/man3/ldns_pkt2buffer_str.3
new file mode 100644
index 000000000000..913790a86d13
--- /dev/null
+++ b/doc/man/man3/ldns_pkt2buffer_str.3
@@ -0,0 +1,188 @@
+.ad l
+.TH ldns 3 "30 May 2006"
+.SH NAME
+ldns_pkt2buffer_str, ldns_pktheader2buffer_str, ldns_rr2buffer_str, ldns_rr_list2buffer_str, ldns_rdf2buffer_str, ldns_key2buffer_str, ldns_pkt2buffer_wire, ldns_rr2buffer_wire, ldns_rdf2buffer_wire, ldns_rrsig2buffer_wire, ldns_rr_rdata2buffer_wire \- lower level conversions
+
+.SH SYNOPSIS
+#include <stdint.h>
+.br
+#include <stdbool.h>
+.br
+.PP
+#include <ldns/ldns.h>
+.PP
+ldns_status ldns_pkt2buffer_str(ldns_buffer *output, const ldns_pkt *pkt);
+.PP
+ldns_status ldns_pktheader2buffer_str(ldns_buffer *output, const ldns_pkt *pkt);
+.PP
+ldns_status ldns_rr2buffer_str(ldns_buffer *output, const ldns_rr *rr);
+.PP
+ldns_status ldns_rr_list2buffer_str(ldns_buffer *output, const ldns_rr_list *list);
+.PP
+ldns_status ldns_rdf2buffer_str(ldns_buffer *output, const ldns_rdf *rdf);
+.PP
+ldns_status ldns_key2buffer_str(ldns_buffer *output, const ldns_key *k);
+.PP
+ldns_status ldns_pkt2buffer_wire(ldns_buffer *output, const ldns_pkt *pkt);
+.PP
+ldns_status ldns_rr2buffer_wire(ldns_buffer *output, const ldns_rr *rr, int section);
+.PP
+ldns_status ldns_rdf2buffer_wire(ldns_buffer *output, const ldns_rdf *rdf);
+.PP
+ldns_status ldns_rrsig2buffer_wire(ldns_buffer *output, const ldns_rr *sigrr);
+.PP
+ldns_status ldns_rr_rdata2buffer_wire(ldns_buffer *output, const ldns_rr *rr);
+.PP
+
+.SH DESCRIPTION
+.HP
+\fIldns_pkt2buffer_str\fR()
+Converts the data in the \%DNS packet to presentation
+format (as char *) and appends it to the given buffer
+
+\.br
+\fBoutput\fR: pointer to the buffer to append the data to
+\.br
+\fBpkt\fR: the pointer to the packet to convert
+\.br
+Returns status
+.PP
+.HP
+\fIldns_pktheader2buffer_str\fR()
+Converts the header of a packet to presentation format and appends it to
+the output buffer
+\.br
+\fBoutput\fR: the buffer to append output to
+\.br
+\fBpkt\fR: the packet to convert the header of
+\.br
+Returns ldns_status
+.PP
+.HP
+\fIldns_rr2buffer_str\fR()
+Converts the data in the resource record to presentation
+format (as char *) and appends it to the given buffer.
+The presentation format of \%DNSKEY record is annotated with comments giving
+the id, type and size of the key.
+
+\.br
+\fBoutput\fR: pointer to the buffer to append the data to
+\.br
+\fBrr\fR: the pointer to the rr field to convert
+\.br
+Returns status
+.PP
+.HP
+\fIldns_rr_list2buffer_str\fR()
+Converts a rr_list to presentation format and appends it to
+the output buffer
+\.br
+\fBoutput\fR: the buffer to append output to
+\.br
+\fBlist\fR: the ldns_rr_list to print
+\.br
+Returns ldns_status
+.PP
+.HP
+\fIldns_rdf2buffer_str\fR()
+Converts the data in the rdata field to presentation
+format (as char *) and appends it to the given buffer
+
+\.br
+\fBoutput\fR: pointer to the buffer to append the data to
+\.br
+\fBrdf\fR: the pointer to the rdafa field containing the data
+\.br
+Returns status
+.PP
+.HP
+\fIldns_key2buffer_str\fR()
+Converts the data in the \%DNS packet to presentation
+format (as char *) and appends it to the given buffer
+
+\.br
+\fBoutput\fR: pointer to the buffer to append the data to
+\.br
+\fBk\fR: the pointer to the private key to convert
+\.br
+Returns status
+.PP
+.HP
+\fIldns_pkt2buffer_wire\fR()
+Copies the packet data to the buffer in wire format
+\.br
+\fB*output\fR: buffer to append the result to
+\.br
+\fB*pkt\fR: packet to convert
+\.br
+Returns ldns_status
+.PP
+.HP
+\fIldns_rr2buffer_wire\fR()
+Copies the rr data to the buffer in wire format
+\.br
+\fB*output\fR: buffer to append the result to
+\.br
+\fB*rr\fR: resource record to convert
+\.br
+\fBsection\fR: the section in the packet this rr is supposed to be in
+(to determine whether to add rdata or not)
+\.br
+Returns ldns_status
+.PP
+.HP
+\fIldns_rdf2buffer_wire\fR()
+Copies the rdata data to the buffer in wire format
+\.br
+\fB*output\fR: buffer to append the result to
+\.br
+\fB*rdf\fR: rdata to convert
+\.br
+Returns ldns_status
+.PP
+.HP
+\fIldns_rrsig2buffer_wire\fR()
+Converts a rrsig to wireformat \%BUT \%EXCLUDE the rrsig rdata
+This is needed in \%DNSSEC verification
+\.br
+\fBoutput\fR: buffer to append the result to
+\.br
+\fBsigrr\fR: signature rr to operate on
+\.br
+Returns ldns_status
+.PP
+.HP
+\fIldns_rr_rdata2buffer_wire\fR()
+Converts an rr's rdata to wireformat, while excluding
+the ownername and all the stuff before the rdata.
+This is needed in \%DNSSEC keytag calculation, the ds
+calculation from the key and maybe elsewhere.
+
+\.br
+\fB*output\fR: buffer where to put the result
+\.br
+\fB*rr\fR: rr to operate on
+\.br
+Returns ldns_status
+.PP
+.SH AUTHOR
+The ldns team at NLnet Labs.
+
+.SH REPORTING BUGS
+Please report bugs to ldns-team@nlnetlabs.nl or in
+our bugzilla at
+http://www.nlnetlabs.nl/bugs/index.html
+
+.SH COPYRIGHT
+Copyright (c) 2004 - 2006 NLnet Labs.
+.PP
+Licensed under the BSD License. There is NO warranty; not even for
+MERCHANTABILITY or
+FITNESS FOR A PARTICULAR PURPOSE.
+
+.SH SEE ALSO
+\fIldns_pkt2str\fR, \fIldns_rr2str\fR, \fIldns_rdf2str\fR, \fIldns_rr_list2str\fR, \fIldns_key2str\fR.
+And \fBperldoc Net::DNS\fR, \fBRFC1034\fR,
+\fBRFC1035\fR, \fBRFC4033\fR, \fBRFC4034\fR and \fBRFC4035\fR.
+.SH REMARKS
+This manpage was automatically generated from the ldns source code.
diff --git a/doc/man/man3/ldns_pkt2buffer_wire.3 b/doc/man/man3/ldns_pkt2buffer_wire.3
new file mode 120000
index 000000000000..7624fd4a5766
--- /dev/null
+++ b/doc/man/man3/ldns_pkt2buffer_wire.3
@@ -0,0 +1 @@
+ldns_pkt2buffer_str.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_pkt2str.3 b/doc/man/man3/ldns_pkt2str.3
new file mode 120000
index 000000000000..b2208d56a9d7
--- /dev/null
+++ b/doc/man/man3/ldns_pkt2str.3
@@ -0,0 +1 @@
+ldns_rr2str.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_pkt2wire.3 b/doc/man/man3/ldns_pkt2wire.3
new file mode 120000
index 000000000000..c36af5febfbc
--- /dev/null
+++ b/doc/man/man3/ldns_pkt2wire.3
@@ -0,0 +1 @@
+ldns_rr2wire.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_pkt_aa.3 b/doc/man/man3/ldns_pkt_aa.3
new file mode 120000
index 000000000000..5b1de76a46ee
--- /dev/null
+++ b/doc/man/man3/ldns_pkt_aa.3
@@ -0,0 +1 @@
+ldns_pkt_id.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_pkt_ad.3 b/doc/man/man3/ldns_pkt_ad.3
new file mode 120000
index 000000000000..5b1de76a46ee
--- /dev/null
+++ b/doc/man/man3/ldns_pkt_ad.3
@@ -0,0 +1 @@
+ldns_pkt_id.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_pkt_additional.3 b/doc/man/man3/ldns_pkt_additional.3
new file mode 120000
index 000000000000..5b1de76a46ee
--- /dev/null
+++ b/doc/man/man3/ldns_pkt_additional.3
@@ -0,0 +1 @@
+ldns_pkt_id.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_pkt_ancount.3 b/doc/man/man3/ldns_pkt_ancount.3
new file mode 120000
index 000000000000..5b1de76a46ee
--- /dev/null
+++ b/doc/man/man3/ldns_pkt_ancount.3
@@ -0,0 +1 @@
+ldns_pkt_id.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_pkt_answer.3 b/doc/man/man3/ldns_pkt_answer.3
new file mode 120000
index 000000000000..5b1de76a46ee
--- /dev/null
+++ b/doc/man/man3/ldns_pkt_answer.3
@@ -0,0 +1 @@
+ldns_pkt_id.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_pkt_answerfrom.3 b/doc/man/man3/ldns_pkt_answerfrom.3
new file mode 120000
index 000000000000..5b1de76a46ee
--- /dev/null
+++ b/doc/man/man3/ldns_pkt_answerfrom.3
@@ -0,0 +1 @@
+ldns_pkt_id.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_pkt_arcount.3 b/doc/man/man3/ldns_pkt_arcount.3
new file mode 120000
index 000000000000..5b1de76a46ee
--- /dev/null
+++ b/doc/man/man3/ldns_pkt_arcount.3
@@ -0,0 +1 @@
+ldns_pkt_id.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_pkt_authority.3 b/doc/man/man3/ldns_pkt_authority.3
new file mode 120000
index 000000000000..5b1de76a46ee
--- /dev/null
+++ b/doc/man/man3/ldns_pkt_authority.3
@@ -0,0 +1 @@
+ldns_pkt_id.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_pkt_cd.3 b/doc/man/man3/ldns_pkt_cd.3
new file mode 120000
index 000000000000..5b1de76a46ee
--- /dev/null
+++ b/doc/man/man3/ldns_pkt_cd.3
@@ -0,0 +1 @@
+ldns_pkt_id.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_pkt_edns.3 b/doc/man/man3/ldns_pkt_edns.3
new file mode 100644
index 000000000000..3a6c7e905e77
--- /dev/null
+++ b/doc/man/man3/ldns_pkt_edns.3
@@ -0,0 +1,150 @@
+.ad l
+.TH ldns 3 "30 May 2006"
+.SH NAME
+ldns_pkt_edns, ldns_pkt_edns_udp_size, ldns_pkt_edns_extended_rcode, ldns_pkt_edns_version, ldns_pkt_edns_z, ldns_pkt_edns_data, ldns_pkt_set_edns_udp_size, ldns_pkt_set_edns_extended_rcode, ldns_pkt_set_edns_version, ldns_pkt_set_edns_z, ldns_pkt_set_edns_data \- ldns_pkt ends0 related functions
+
+.SH SYNOPSIS
+#include <stdint.h>
+.br
+#include <stdbool.h>
+.br
+.PP
+#include <ldns/ldns.h>
+.PP
+bool ldns_pkt_edns(const ldns_pkt *packet);
+.PP
+uint16_t ldns_pkt_edns_udp_size(const ldns_pkt *packet);
+.PP
+uint8_t ldns_pkt_edns_extended_rcode(const ldns_pkt *packet);
+.PP
+uint8_t ldns_pkt_edns_version(const ldns_pkt *packet);
+.PP
+uint16_t ldns_pkt_edns_z(const ldns_pkt *packet);
+.PP
+ldns_rdf* ldns_pkt_edns_data(const ldns_pkt *packet);
+.PP
+void ldns_pkt_set_edns_udp_size(ldns_pkt *packet, uint16_t s);
+.PP
+void ldns_pkt_set_edns_extended_rcode(ldns_pkt *packet, uint8_t c);
+.PP
+void ldns_pkt_set_edns_version(ldns_pkt *packet, uint8_t v);
+.PP
+void ldns_pkt_set_edns_z(ldns_pkt *packet, uint16_t z);
+.PP
+void ldns_pkt_set_edns_data(ldns_pkt *packet, ldns_rdf *data);
+.PP
+
+.SH DESCRIPTION
+.HP
+\fIldns_pkt_edns\fR()
+returns true if this packet needs and \%EDNS rr to be sent.
+At the moment the only reason is an expected packet
+size larger than 512 bytes, but for instance dnssec would
+be a good reason too.
+
+\.br
+\fBpacket\fR: the packet to check
+\.br
+Returns true if packet needs edns rr
+.PP
+.HP
+\fIldns_pkt_edns_udp_size\fR()
+return the packet's edns udp size
+\.br
+\fBpacket\fR: the packet
+\.br
+Returns the size
+.PP
+.HP
+\fIldns_pkt_edns_extended_rcode\fR()
+return the packet's edns extended rcode
+\.br
+\fBpacket\fR: the packet
+\.br
+Returns the rcode
+.PP
+.HP
+\fIldns_pkt_edns_version\fR()
+return the packet's edns version
+\.br
+\fBpacket\fR: the packet
+\.br
+Returns the version
+.PP
+.HP
+\fIldns_pkt_edns_z\fR()
+return the packet's edns z value
+\.br
+\fBpacket\fR: the packet
+\.br
+Returns the z value
+.PP
+.HP
+\fIldns_pkt_edns_data\fR()
+return the packet's \%EDNS data
+\.br
+\fBpacket\fR: the packet
+\.br
+Returns the data
+.PP
+.HP
+\fIldns_pkt_set_edns_udp_size\fR()
+Set the packet's edns udp size
+\.br
+\fBpacket\fR: the packet
+\.br
+\fBs\fR: the size
+.PP
+.HP
+\fIldns_pkt_set_edns_extended_rcode\fR()
+Set the packet's edns extended rcode
+\.br
+\fBpacket\fR: the packet
+\.br
+\fBc\fR: the code
+.PP
+.HP
+\fIldns_pkt_set_edns_version\fR()
+Set the packet's edns version
+\.br
+\fBpacket\fR: the packet
+\.br
+\fBv\fR: the version
+.PP
+.HP
+\fIldns_pkt_set_edns_z\fR()
+Set the packet's edns z value
+\.br
+\fBpacket\fR: the packet
+\.br
+\fBz\fR: the value
+.PP
+.HP
+\fIldns_pkt_set_edns_data\fR()
+Set the packet's \%EDNS data
+\.br
+\fBpacket\fR: the packet
+\.br
+\fBdata\fR: the data
+.PP
+.SH AUTHOR
+The ldns team at NLnet Labs.
+
+.SH REPORTING BUGS
+Please report bugs to ldns-team@nlnetlabs.nl or in
+our bugzilla at
+http://www.nlnetlabs.nl/bugs/index.html
+
+.SH COPYRIGHT
+Copyright (c) 2004 - 2006 NLnet Labs.
+.PP
+Licensed under the BSD License. There is NO warranty; not even for
+MERCHANTABILITY or
+FITNESS FOR A PARTICULAR PURPOSE.
+
+.SH SEE ALSO
+\fIldns_pkt\fR.
+And \fBperldoc Net::DNS\fR, \fBRFC1034\fR,
+\fBRFC1035\fR, \fBRFC4033\fR, \fBRFC4034\fR and \fBRFC4035\fR.
+.SH REMARKS
+This manpage was automatically generated from the ldns source code.
diff --git a/doc/man/man3/ldns_pkt_edns_data.3 b/doc/man/man3/ldns_pkt_edns_data.3
new file mode 120000
index 000000000000..91c750b9c74f
--- /dev/null
+++ b/doc/man/man3/ldns_pkt_edns_data.3
@@ -0,0 +1 @@
+ldns_pkt_edns.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_pkt_edns_extended_rcode.3 b/doc/man/man3/ldns_pkt_edns_extended_rcode.3
new file mode 120000
index 000000000000..91c750b9c74f
--- /dev/null
+++ b/doc/man/man3/ldns_pkt_edns_extended_rcode.3
@@ -0,0 +1 @@
+ldns_pkt_edns.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_pkt_edns_udp_size.3 b/doc/man/man3/ldns_pkt_edns_udp_size.3
new file mode 120000
index 000000000000..91c750b9c74f
--- /dev/null
+++ b/doc/man/man3/ldns_pkt_edns_udp_size.3
@@ -0,0 +1 @@
+ldns_pkt_edns.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_pkt_edns_version.3 b/doc/man/man3/ldns_pkt_edns_version.3
new file mode 120000
index 000000000000..91c750b9c74f
--- /dev/null
+++ b/doc/man/man3/ldns_pkt_edns_version.3
@@ -0,0 +1 @@
+ldns_pkt_edns.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_pkt_edns_z.3 b/doc/man/man3/ldns_pkt_edns_z.3
new file mode 120000
index 000000000000..91c750b9c74f
--- /dev/null
+++ b/doc/man/man3/ldns_pkt_edns_z.3
@@ -0,0 +1 @@
+ldns_pkt_edns.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_pkt_free.3 b/doc/man/man3/ldns_pkt_free.3
new file mode 120000
index 000000000000..76d296dc410c
--- /dev/null
+++ b/doc/man/man3/ldns_pkt_free.3
@@ -0,0 +1 @@
+ldns_pkt_new.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_pkt_get_opcode.3 b/doc/man/man3/ldns_pkt_get_opcode.3
new file mode 120000
index 000000000000..5b1de76a46ee
--- /dev/null
+++ b/doc/man/man3/ldns_pkt_get_opcode.3
@@ -0,0 +1 @@
+ldns_pkt_id.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_pkt_get_rcode.3 b/doc/man/man3/ldns_pkt_get_rcode.3
new file mode 120000
index 000000000000..5b1de76a46ee
--- /dev/null
+++ b/doc/man/man3/ldns_pkt_get_rcode.3
@@ -0,0 +1 @@
+ldns_pkt_id.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_pkt_get_section_clone.3 b/doc/man/man3/ldns_pkt_get_section_clone.3
new file mode 120000
index 000000000000..5b1de76a46ee
--- /dev/null
+++ b/doc/man/man3/ldns_pkt_get_section_clone.3
@@ -0,0 +1 @@
+ldns_pkt_id.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_pkt_id.3 b/doc/man/man3/ldns_pkt_id.3
new file mode 100644
index 000000000000..18792e39bd11
--- /dev/null
+++ b/doc/man/man3/ldns_pkt_id.3
@@ -0,0 +1,311 @@
+.ad l
+.TH ldns 3 "30 May 2006"
+.SH NAME
+ldns_pkt_id, ldns_pkt_qr, ldns_pkt_aa, ldns_pkt_tc, ldns_pkt_rd, ldns_pkt_cd, ldns_pkt_ra, ldns_pkt_ad, ldns_pkt_get_opcode, ldns_pkt_get_rcode, ldns_pkt_qdcount, ldns_pkt_ancount, ldns_pkt_nscount, ldns_pkt_arcount, ldns_pkt_answerfrom, ldns_pkt_querytime, ldns_pkt_size, ldns_pkt_tsig, ldns_pkt_question, ldns_pkt_answer, ldns_pkt_authority, ldns_pkt_additional, ldns_pkt_get_section_clone, ldns_pkt_rr_list_by_name, ldns_pkt_rr_list_by_type, ldns_pkt_rr_list_by_name_and_type \- get ldns_pkt attributes
+
+.SH SYNOPSIS
+#include <stdint.h>
+.br
+#include <stdbool.h>
+.br
+.PP
+#include <ldns/ldns.h>
+.PP
+ ldns_pkt_id();
+.PP
+bool ldns_pkt_qr(const ldns_pkt *p);
+.PP
+bool ldns_pkt_aa(const ldns_pkt *p);
+.PP
+bool ldns_pkt_tc(const ldns_pkt *p);
+.PP
+bool ldns_pkt_rd(const ldns_pkt *p);
+.PP
+bool ldns_pkt_cd(const ldns_pkt *p);
+.PP
+bool ldns_pkt_ra(const ldns_pkt *p);
+.PP
+bool ldns_pkt_ad(const ldns_pkt *p);
+.PP
+ldns_pkt_opcode ldns_pkt_get_opcode(const ldns_pkt *p);
+.PP
+ldns_pkt_rcode ldns_pkt_get_rcode(const ldns_pkt *p);
+.PP
+uint16_t ldns_pkt_qdcount(const ldns_pkt *p);
+.PP
+uint16_t ldns_pkt_ancount(const ldns_pkt *p);
+.PP
+uint16_t ldns_pkt_nscount(const ldns_pkt *p);
+.PP
+uint16_t ldns_pkt_arcount(const ldns_pkt *p);
+.PP
+ldns_rdf* ldns_pkt_answerfrom(const ldns_pkt *p);
+.PP
+uint32_t ldns_pkt_querytime(const ldns_pkt *p);
+.PP
+size_t ldns_pkt_size(const ldns_pkt *p);
+.PP
+ldns_rr* ldns_pkt_tsig(const ldns_pkt *p);
+.PP
+ldns_rr_list* ldns_pkt_question(const ldns_pkt *p);
+.PP
+ldns_rr_list* ldns_pkt_answer(const ldns_pkt *p);
+.PP
+ldns_rr_list* ldns_pkt_authority(const ldns_pkt *p);
+.PP
+ldns_rr_list* ldns_pkt_additional(const ldns_pkt *p);
+.PP
+ldns_rr_list* ldns_pkt_get_section_clone(const ldns_pkt *p, ldns_pkt_section s);
+.PP
+ldns_rr_list* ldns_pkt_rr_list_by_name(const ldns_pkt *p, const ldns_rdf *r, ldns_pkt_section s);
+.PP
+ldns_rr_list* ldns_pkt_rr_list_by_type(const ldns_pkt *p, ldns_rr_type t, ldns_pkt_section s);
+.PP
+ldns_rr_list* ldns_pkt_rr_list_by_name_and_type(const ldns_pkt *packet, const ldns_rdf *ownername, ldns_rr_type type, ldns_pkt_section sec);
+.PP
+
+.SH DESCRIPTION
+.HP
+\fIldns_pkt_id\fR()
+.PP
+.HP
+\fIldns_pkt_qr\fR()
+Read the packet's qr bit
+\.br
+\fBp\fR: the packet
+\.br
+Returns value of the bit
+.PP
+.HP
+\fIldns_pkt_aa\fR()
+Read the packet's aa bit
+\.br
+\fBp\fR: the packet
+\.br
+Returns value of the bit
+.PP
+.HP
+\fIldns_pkt_tc\fR()
+Read the packet's tc bit
+\.br
+\fBp\fR: the packet
+\.br
+Returns value of the bit
+.PP
+.HP
+\fIldns_pkt_rd\fR()
+Read the packet's rd bit
+\.br
+\fBp\fR: the packet
+\.br
+Returns value of the bit
+.PP
+.HP
+\fIldns_pkt_cd\fR()
+Read the packet's cd bit
+\.br
+\fBp\fR: the packet
+\.br
+Returns value of the bit
+.PP
+.HP
+\fIldns_pkt_ra\fR()
+Read the packet's ra bit
+\.br
+\fBp\fR: the packet
+\.br
+Returns value of the bit
+.PP
+.HP
+\fIldns_pkt_ad\fR()
+Read the packet's ad bit
+\.br
+\fBp\fR: the packet
+\.br
+Returns value of the bit
+.PP
+.HP
+\fIldns_pkt_get_opcode\fR()
+Read the packet's code
+\.br
+\fBp\fR: the packet
+\.br
+Returns the opcode
+.PP
+.HP
+\fIldns_pkt_get_rcode\fR()
+Return the packet's response code
+\.br
+\fBp\fR: the packet
+\.br
+Returns the response code
+.PP
+.HP
+\fIldns_pkt_qdcount\fR()
+Return the packet's qd count
+\.br
+\fBp\fR: the packet
+\.br
+Returns the qd count
+.PP
+.HP
+\fIldns_pkt_ancount\fR()
+Return the packet's an count
+\.br
+\fBp\fR: the packet
+\.br
+Returns the an count
+.PP
+.HP
+\fIldns_pkt_nscount\fR()
+Return the packet's ns count
+\.br
+\fBp\fR: the packet
+\.br
+Returns the ns count
+.PP
+.HP
+\fIldns_pkt_arcount\fR()
+Return the packet's ar count
+\.br
+\fBp\fR: the packet
+\.br
+Returns the ar count
+.PP
+.HP
+\fIldns_pkt_answerfrom\fR()
+Return the packet's answerfrom
+\.br
+\fBp\fR: packet
+\.br
+Returns the name of the server
+.PP
+.HP
+\fIldns_pkt_querytime\fR()
+Return the packet's querytime
+\.br
+\fBp\fR: the packet
+\.br
+Returns the querytime
+.PP
+.HP
+\fIldns_pkt_size\fR()
+Return the packet's size in bytes
+\.br
+\fBp\fR: the packet
+\.br
+Returns the size
+.PP
+.HP
+\fIldns_pkt_tsig\fR()
+Return the packet's tsig pseudo rr's
+\.br
+\fBp\fR: the packet
+\.br
+Returns the tsig rr
+.PP
+.HP
+\fIldns_pkt_question\fR()
+Return the packet's question section
+\.br
+\fBp\fR: the packet
+\.br
+Returns the section
+.PP
+.HP
+\fIldns_pkt_answer\fR()
+Return the packet's answer section
+\.br
+\fBp\fR: the packet
+\.br
+Returns the section
+.PP
+.HP
+\fIldns_pkt_authority\fR()
+Return the packet's authority section
+\.br
+\fBp\fR: the packet
+\.br
+Returns the section
+.PP
+.HP
+\fIldns_pkt_additional\fR()
+Return the packet's additional section
+\.br
+\fBp\fR: the packet
+\.br
+Returns the section
+.PP
+.HP
+\fIldns_pkt_get_section_clone\fR()
+return all the rr_list's in the packet. Clone the lists, instead
+of returning pointers.
+\.br
+\fBp\fR: the packet to look in
+\.br
+\fBs\fR: what section(s) to return
+\.br
+Returns ldns_rr_list with the rr's or \%NULL if none were found
+.PP
+.HP
+\fIldns_pkt_rr_list_by_name\fR()
+return all the rr with a specific name from a packet. Optionally
+specify from which section in the packet
+\.br
+\fBp\fR: the packet
+\.br
+\fBr\fR: the name
+\.br
+\fBs\fR: the packet's section
+\.br
+Returns a list with the rr's or \%NULL if none were found
+.PP
+.HP
+\fIldns_pkt_rr_list_by_type\fR()
+return all the rr with a specific type from a packet. Optionally
+specify from which section in the packet
+\.br
+\fBp\fR: the packet
+\.br
+\fBt\fR: the type
+\.br
+\fBs\fR: the packet's section
+\.br
+Returns a list with the rr's or \%NULL if none were found
+.PP
+.HP
+\fIldns_pkt_rr_list_by_name_and_type\fR()
+return all the rr with a specific type and type from a packet. Optionally
+specify from which section in the packet
+\.br
+\fBpacket\fR: the packet
+\.br
+\fBownername\fR: the name
+\.br
+\fBtype\fR: the type
+\.br
+\fBsec\fR: the packet's section
+\.br
+Returns a list with the rr's or \%NULL if none were found
+.PP
+.SH AUTHOR
+The ldns team at NLnet Labs.
+
+.SH REPORTING BUGS
+Please report bugs to ldns-team@nlnetlabs.nl or in
+our bugzilla at
+http://www.nlnetlabs.nl/bugs/index.html
+
+.SH COPYRIGHT
+Copyright (c) 2004 - 2006 NLnet Labs.
+.PP
+Licensed under the BSD License. There is NO warranty; not even for
+MERCHANTABILITY or
+FITNESS FOR A PARTICULAR PURPOSE.
+
+.SH SEE ALSO
+\fIldns_pkt\fR.
+And \fBperldoc Net::DNS\fR, \fBRFC1034\fR,
+\fBRFC1035\fR, \fBRFC4033\fR, \fBRFC4034\fR and \fBRFC4035\fR.
+.SH REMARKS
+This manpage was automatically generated from the ldns source code.
diff --git a/doc/man/man3/ldns_pkt_new.3 b/doc/man/man3/ldns_pkt_new.3
new file mode 100644
index 000000000000..c233682eba5c
--- /dev/null
+++ b/doc/man/man3/ldns_pkt_new.3
@@ -0,0 +1,114 @@
+.ad l
+.TH ldns 3 "30 May 2006"
+.SH NAME
+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
+
+.SH SYNOPSIS
+#include <stdint.h>
+.br
+#include <stdbool.h>
+.br
+.PP
+#include <ldns/ldns.h>
+.PP
+ldns_pkt* ldns_pkt_new(void);
+.PP
+void ldns_pkt_free(ldns_pkt *packet);
+.PP
+void ldns_pkt_print(FILE *output, const ldns_pkt *pkt);
+.PP
+ldns_pkt* ldns_pkt_query_new(ldns_rdf *rr_name, ldns_rr_type rr_type, ldns_rr_class rr_class, uint16_t flags);
+.PP
+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);
+.PP
+ldns_pkt_type ldns_pkt_reply_type(const ldns_pkt *p);
+.PP
+
+.SH DESCRIPTION
+.HP
+\fIldns_pkt_new\fR()
+allocates and initializes a ldns_pkt structure.
+\.br
+Returns pointer to the new packet
+.PP
+.HP
+\fIldns_pkt_free\fR()
+frees the packet structure and all data that it contains.
+\.br
+\fBpacket\fR: The packet structure to free
+\.br
+Returns void
+.PP
+.HP
+\fIldns_pkt_print\fR()
+Prints the data in the \%DNS packet to the given file stream
+(in presentation format)
+
+\.br
+\fBoutput\fR: the file stream to print to
+\.br
+\fBpkt\fR: the packet to print
+\.br
+Returns void
+.PP
+.HP
+\fIldns_pkt_query_new\fR()
+creates a packet with a query in it for the given name, type and class.
+\.br
+\fBrr_name\fR: the name to query for (not copied).
+The returned packet will take ownership of rr_name, so the caller should not free it.
+\.br
+\fBrr_type\fR: the type to query for
+\.br
+\fBrr_class\fR: the class to query for
+\.br
+\fBflags\fR: packet flags
+\.br
+Returns ldns_pkt* a pointer to the new pkt
+.PP
+.HP
+\fIldns_pkt_query_new_frm_str\fR()
+creates a query packet for the given name, type, class.
+\.br
+\fBp\fR: the packet to be returned
+\.br
+\fBrr_name\fR: the name to query for (as string)
+\.br
+\fBrr_type\fR: the type to query for
+\.br
+\fBrr_class\fR: the class to query for
+\.br
+\fBflags\fR: packet flags
+\.br
+Returns \%LDNS_STATUS_OK or a ldns_status mesg with the error
+.PP
+.HP
+\fIldns_pkt_reply_type\fR()
+looks inside the packet to determine
+what kind of packet it is, \%AUTH, \%NXDOMAIN, \%REFERRAL, etc.
+\.br
+\fBp\fR: the packet to examine
+\.br
+Returns the type of packet
+.PP
+.SH AUTHOR
+The ldns team at NLnet Labs.
+
+.SH REPORTING BUGS
+Please report bugs to ldns-team@nlnetlabs.nl or in
+our bugzilla at
+http://www.nlnetlabs.nl/bugs/index.html
+
+.SH COPYRIGHT
+Copyright (c) 2004 - 2006 NLnet Labs.
+.PP
+Licensed under the BSD License. There is NO warranty; not even for
+MERCHANTABILITY or
+FITNESS FOR A PARTICULAR PURPOSE.
+
+.SH SEE ALSO
+\fIldns_pkt\fR.
+And \fBperldoc Net::DNS\fR, \fBRFC1034\fR,
+\fBRFC1035\fR, \fBRFC4033\fR, \fBRFC4034\fR and \fBRFC4035\fR.
+.SH REMARKS
+This manpage was automatically generated from the ldns source code.
diff --git a/doc/man/man3/ldns_pkt_nscount.3 b/doc/man/man3/ldns_pkt_nscount.3
new file mode 120000
index 000000000000..5b1de76a46ee
--- /dev/null
+++ b/doc/man/man3/ldns_pkt_nscount.3
@@ -0,0 +1 @@
+ldns_pkt_id.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_pkt_print.3 b/doc/man/man3/ldns_pkt_print.3
new file mode 120000
index 000000000000..76d296dc410c
--- /dev/null
+++ b/doc/man/man3/ldns_pkt_print.3
@@ -0,0 +1 @@
+ldns_pkt_new.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_pkt_qdcount.3 b/doc/man/man3/ldns_pkt_qdcount.3
new file mode 120000
index 000000000000..5b1de76a46ee
--- /dev/null
+++ b/doc/man/man3/ldns_pkt_qdcount.3
@@ -0,0 +1 @@
+ldns_pkt_id.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_pkt_qr.3 b/doc/man/man3/ldns_pkt_qr.3
new file mode 120000
index 000000000000..5b1de76a46ee
--- /dev/null
+++ b/doc/man/man3/ldns_pkt_qr.3
@@ -0,0 +1 @@
+ldns_pkt_id.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_pkt_query_new.3 b/doc/man/man3/ldns_pkt_query_new.3
new file mode 120000
index 000000000000..76d296dc410c
--- /dev/null
+++ b/doc/man/man3/ldns_pkt_query_new.3
@@ -0,0 +1 @@
+ldns_pkt_new.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_pkt_query_new_frm_str.3 b/doc/man/man3/ldns_pkt_query_new_frm_str.3
new file mode 120000
index 000000000000..76d296dc410c
--- /dev/null
+++ b/doc/man/man3/ldns_pkt_query_new_frm_str.3
@@ -0,0 +1 @@
+ldns_pkt_new.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_pkt_querytime.3 b/doc/man/man3/ldns_pkt_querytime.3
new file mode 120000
index 000000000000..5b1de76a46ee
--- /dev/null
+++ b/doc/man/man3/ldns_pkt_querytime.3
@@ -0,0 +1 @@
+ldns_pkt_id.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_pkt_question.3 b/doc/man/man3/ldns_pkt_question.3
new file mode 120000
index 000000000000..5b1de76a46ee
--- /dev/null
+++ b/doc/man/man3/ldns_pkt_question.3
@@ -0,0 +1 @@
+ldns_pkt_id.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_pkt_ra.3 b/doc/man/man3/ldns_pkt_ra.3
new file mode 120000
index 000000000000..5b1de76a46ee
--- /dev/null
+++ b/doc/man/man3/ldns_pkt_ra.3
@@ -0,0 +1 @@
+ldns_pkt_id.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_pkt_rd.3 b/doc/man/man3/ldns_pkt_rd.3
new file mode 120000
index 000000000000..5b1de76a46ee
--- /dev/null
+++ b/doc/man/man3/ldns_pkt_rd.3
@@ -0,0 +1 @@
+ldns_pkt_id.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_pkt_reply_type.3 b/doc/man/man3/ldns_pkt_reply_type.3
new file mode 120000
index 000000000000..76d296dc410c
--- /dev/null
+++ b/doc/man/man3/ldns_pkt_reply_type.3
@@ -0,0 +1 @@
+ldns_pkt_new.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_pkt_rr_list_by_name.3 b/doc/man/man3/ldns_pkt_rr_list_by_name.3
new file mode 120000
index 000000000000..5b1de76a46ee
--- /dev/null
+++ b/doc/man/man3/ldns_pkt_rr_list_by_name.3
@@ -0,0 +1 @@
+ldns_pkt_id.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_pkt_rr_list_by_name_and_type.3 b/doc/man/man3/ldns_pkt_rr_list_by_name_and_type.3
new file mode 120000
index 000000000000..5b1de76a46ee
--- /dev/null
+++ b/doc/man/man3/ldns_pkt_rr_list_by_name_and_type.3
@@ -0,0 +1 @@
+ldns_pkt_id.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_pkt_rr_list_by_type.3 b/doc/man/man3/ldns_pkt_rr_list_by_type.3
new file mode 120000
index 000000000000..5b1de76a46ee
--- /dev/null
+++ b/doc/man/man3/ldns_pkt_rr_list_by_type.3
@@ -0,0 +1 @@
+ldns_pkt_id.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_pkt_section.3 b/doc/man/man3/ldns_pkt_section.3
new file mode 120000
index 000000000000..fdc189a5b579
--- /dev/null
+++ b/doc/man/man3/ldns_pkt_section.3
@@ -0,0 +1 @@
+ldns_pkt.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_pkt_set_aa.3 b/doc/man/man3/ldns_pkt_set_aa.3
new file mode 120000
index 000000000000..b34290ea5e74
--- /dev/null
+++ b/doc/man/man3/ldns_pkt_set_aa.3
@@ -0,0 +1 @@
+ldns_pkt_set_flags.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_pkt_set_ad.3 b/doc/man/man3/ldns_pkt_set_ad.3
new file mode 120000
index 000000000000..b34290ea5e74
--- /dev/null
+++ b/doc/man/man3/ldns_pkt_set_ad.3
@@ -0,0 +1 @@
+ldns_pkt_set_flags.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_pkt_set_ancount.3 b/doc/man/man3/ldns_pkt_set_ancount.3
new file mode 120000
index 000000000000..b34290ea5e74
--- /dev/null
+++ b/doc/man/man3/ldns_pkt_set_ancount.3
@@ -0,0 +1 @@
+ldns_pkt_set_flags.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_pkt_set_answerfrom.3 b/doc/man/man3/ldns_pkt_set_answerfrom.3
new file mode 120000
index 000000000000..b34290ea5e74
--- /dev/null
+++ b/doc/man/man3/ldns_pkt_set_answerfrom.3
@@ -0,0 +1 @@
+ldns_pkt_set_flags.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_pkt_set_arcount.3 b/doc/man/man3/ldns_pkt_set_arcount.3
new file mode 120000
index 000000000000..b34290ea5e74
--- /dev/null
+++ b/doc/man/man3/ldns_pkt_set_arcount.3
@@ -0,0 +1 @@
+ldns_pkt_set_flags.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_pkt_set_cd.3 b/doc/man/man3/ldns_pkt_set_cd.3
new file mode 120000
index 000000000000..b34290ea5e74
--- /dev/null
+++ b/doc/man/man3/ldns_pkt_set_cd.3
@@ -0,0 +1 @@
+ldns_pkt_set_flags.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_pkt_set_edns_data.3 b/doc/man/man3/ldns_pkt_set_edns_data.3
new file mode 120000
index 000000000000..91c750b9c74f
--- /dev/null
+++ b/doc/man/man3/ldns_pkt_set_edns_data.3
@@ -0,0 +1 @@
+ldns_pkt_edns.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_pkt_set_edns_extended_rcode.3 b/doc/man/man3/ldns_pkt_set_edns_extended_rcode.3
new file mode 120000
index 000000000000..91c750b9c74f
--- /dev/null
+++ b/doc/man/man3/ldns_pkt_set_edns_extended_rcode.3
@@ -0,0 +1 @@
+ldns_pkt_edns.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_pkt_set_edns_udp_size.3 b/doc/man/man3/ldns_pkt_set_edns_udp_size.3
new file mode 120000
index 000000000000..91c750b9c74f
--- /dev/null
+++ b/doc/man/man3/ldns_pkt_set_edns_udp_size.3
@@ -0,0 +1 @@
+ldns_pkt_edns.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_pkt_set_edns_version.3 b/doc/man/man3/ldns_pkt_set_edns_version.3
new file mode 120000
index 000000000000..91c750b9c74f
--- /dev/null
+++ b/doc/man/man3/ldns_pkt_set_edns_version.3
@@ -0,0 +1 @@
+ldns_pkt_edns.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_pkt_set_edns_z.3 b/doc/man/man3/ldns_pkt_set_edns_z.3
new file mode 120000
index 000000000000..91c750b9c74f
--- /dev/null
+++ b/doc/man/man3/ldns_pkt_set_edns_z.3
@@ -0,0 +1 @@
+ldns_pkt_edns.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_pkt_set_flags.3 b/doc/man/man3/ldns_pkt_set_flags.3
new file mode 100644
index 000000000000..d38df758e77f
--- /dev/null
+++ b/doc/man/man3/ldns_pkt_set_flags.3
@@ -0,0 +1,240 @@
+.ad l
+.TH ldns 3 "30 May 2006"
+.SH NAME
+ldns_pkt_set_flags, ldns_pkt_set_id, ldns_pkt_set_qr, ldns_pkt_set_aa, ldns_pkt_set_tc, ldns_pkt_set_rd, ldns_pkt_set_cd, ldns_pkt_set_ra, ldns_pkt_set_ad, ldns_pkt_set_opcode, ldns_pkt_set_rcode, ldns_pkt_set_qdcount, ldns_pkt_set_ancount, ldns_pkt_set_nscount, ldns_pkt_set_arcount, ldns_pkt_set_answerfrom, ldns_pkt_set_querytime, ldns_pkt_set_size, ldns_pkt_set_section_count, ldns_pkt_set_tsig \- set ldns_pkt attributes
+
+.SH SYNOPSIS
+#include <stdint.h>
+.br
+#include <stdbool.h>
+.br
+.PP
+#include <ldns/ldns.h>
+.PP
+bool ldns_pkt_set_flags(ldns_pkt *pkt, uint16_t flags);
+.PP
+void ldns_pkt_set_id(ldns_pkt *p, uint16_t id);
+.PP
+void ldns_pkt_set_qr(ldns_pkt *p, bool b);
+.PP
+void ldns_pkt_set_aa(ldns_pkt *p, bool b);
+.PP
+void ldns_pkt_set_tc(ldns_pkt *p, bool b);
+.PP
+void ldns_pkt_set_rd(ldns_pkt *p, bool b);
+.PP
+void ldns_pkt_set_cd(ldns_pkt *p, bool b);
+.PP
+void ldns_pkt_set_ra(ldns_pkt *p, bool b);
+.PP
+void ldns_pkt_set_ad(ldns_pkt *p, bool b);
+.PP
+void ldns_pkt_set_opcode(ldns_pkt *p, ldns_pkt_opcode c);
+.PP
+void ldns_pkt_set_rcode(ldns_pkt *p, uint8_t c);
+.PP
+void ldns_pkt_set_qdcount(ldns_pkt *p, uint16_t c);
+.PP
+void ldns_pkt_set_ancount(ldns_pkt *p, uint16_t c);
+.PP
+void ldns_pkt_set_nscount(ldns_pkt *p, uint16_t c);
+.PP
+void ldns_pkt_set_arcount(ldns_pkt *p, uint16_t c);
+.PP
+void ldns_pkt_set_answerfrom(ldns_pkt *p, ldns_rdf *r);
+.PP
+void ldns_pkt_set_querytime(ldns_pkt *p, uint32_t t);
+.PP
+void ldns_pkt_set_size(ldns_pkt *p, size_t s);
+.PP
+void ldns_pkt_set_section_count(ldns_pkt *p, ldns_pkt_section s, uint16_t x);
+.PP
+void ldns_pkt_set_tsig(ldns_pkt *p, ldns_rr *t);
+.PP
+
+.SH DESCRIPTION
+.HP
+\fIldns_pkt_set_flags\fR()
+sets the flags in a packet.
+\.br
+\fBpkt\fR: the packet to operate on
+\.br
+\fBflags\fR: ORed values: \%LDNS_QR| \%LDNS_AR for instance
+\.br
+Returns true on success otherwise false
+.PP
+.HP
+\fIldns_pkt_set_id\fR()
+Set the packet's id
+\.br
+\fBp\fR: the packet
+\.br
+\fBid\fR: the id to set
+.PP
+.HP
+\fIldns_pkt_set_qr\fR()
+Set the packet's qr bit
+\.br
+\fBp\fR: the packet
+\.br
+\fBb\fR: the value to set (boolean)
+.PP
+.HP
+\fIldns_pkt_set_aa\fR()
+Set the packet's aa bit
+\.br
+\fBp\fR: the packet
+\.br
+\fBb\fR: the value to set (boolean)
+.PP
+.HP
+\fIldns_pkt_set_tc\fR()
+Set the packet's tc bit
+\.br
+\fBp\fR: the packet
+\.br
+\fBb\fR: the value to set (boolean)
+.PP
+.HP
+\fIldns_pkt_set_rd\fR()
+Set the packet's rd bit
+\.br
+\fBp\fR: the packet
+\.br
+\fBb\fR: the value to set (boolean)
+.PP
+.HP
+\fIldns_pkt_set_cd\fR()
+Set the packet's cd bit
+\.br
+\fBp\fR: the packet
+\.br
+\fBb\fR: the value to set (boolean)
+.PP
+.HP
+\fIldns_pkt_set_ra\fR()
+Set the packet's ra bit
+\.br
+\fBp\fR: the packet
+\.br
+\fBb\fR: the value to set (boolean)
+.PP
+.HP
+\fIldns_pkt_set_ad\fR()
+Set the packet's ad bit
+\.br
+\fBp\fR: the packet
+\.br
+\fBb\fR: the value to set (boolean)
+.PP
+.HP
+\fIldns_pkt_set_opcode\fR()
+Set the packet's opcode
+\.br
+\fBp\fR: the packet
+\.br
+\fBc\fR: the opcode
+.PP
+.HP
+\fIldns_pkt_set_rcode\fR()
+Set the packet's response code
+\.br
+\fBp\fR: the packet
+\.br
+\fBc\fR: the rcode
+.PP
+.HP
+\fIldns_pkt_set_qdcount\fR()
+Set the packet's qd count
+\.br
+\fBp\fR: the packet
+\.br
+\fBc\fR: the count
+.PP
+.HP
+\fIldns_pkt_set_ancount\fR()
+Set the packet's an count
+\.br
+\fBp\fR: the packet
+\.br
+\fBc\fR: the count
+.PP
+.HP
+\fIldns_pkt_set_nscount\fR()
+Set the packet's ns count
+\.br
+\fBp\fR: the packet
+\.br
+\fBc\fR: the count
+.PP
+.HP
+\fIldns_pkt_set_arcount\fR()
+Set the packet's arcount
+\.br
+\fBp\fR: the packet
+\.br
+\fBc\fR: the count
+.PP
+.HP
+\fIldns_pkt_set_answerfrom\fR()
+Set the packet's answering server
+\.br
+\fBp\fR: the packet
+\.br
+\fBr\fR: the address
+.PP
+.HP
+\fIldns_pkt_set_querytime\fR()
+Set the packet's query time
+\.br
+\fBp\fR: the packet
+\.br
+\fBt\fR: the querytime in msec
+.PP
+.HP
+\fIldns_pkt_set_size\fR()
+Set the packet's size
+\.br
+\fBp\fR: the packet
+\.br
+\fBs\fR: the size
+.PP
+.HP
+\fIldns_pkt_set_section_count\fR()
+Set a packet's section count to x
+\.br
+\fBp\fR: the packet
+\.br
+\fBs\fR: the section
+\.br
+\fBx\fR: the section count
+.PP
+.HP
+\fIldns_pkt_set_tsig\fR()
+Set the packet's tsig rr
+\.br
+\fBp\fR: the packet
+\.br
+\fBt\fR: the tsig rr
+.PP
+.SH AUTHOR
+The ldns team at NLnet Labs.
+
+.SH REPORTING BUGS
+Please report bugs to ldns-team@nlnetlabs.nl or in
+our bugzilla at
+http://www.nlnetlabs.nl/bugs/index.html
+
+.SH COPYRIGHT
+Copyright (c) 2004 - 2006 NLnet Labs.
+.PP
+Licensed under the BSD License. There is NO warranty; not even for
+MERCHANTABILITY or
+FITNESS FOR A PARTICULAR PURPOSE.
+
+.SH SEE ALSO
+\fIldns_pkt\fR.
+And \fBperldoc Net::DNS\fR, \fBRFC1034\fR,
+\fBRFC1035\fR, \fBRFC4033\fR, \fBRFC4034\fR and \fBRFC4035\fR.
+.SH REMARKS
+This manpage was automatically generated from the ldns source code.
diff --git a/doc/man/man3/ldns_pkt_set_id.3 b/doc/man/man3/ldns_pkt_set_id.3
new file mode 120000
index 000000000000..b34290ea5e74
--- /dev/null
+++ b/doc/man/man3/ldns_pkt_set_id.3
@@ -0,0 +1 @@
+ldns_pkt_set_flags.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_pkt_set_nscount.3 b/doc/man/man3/ldns_pkt_set_nscount.3
new file mode 120000
index 000000000000..b34290ea5e74
--- /dev/null
+++ b/doc/man/man3/ldns_pkt_set_nscount.3
@@ -0,0 +1 @@
+ldns_pkt_set_flags.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_pkt_set_opcode.3 b/doc/man/man3/ldns_pkt_set_opcode.3
new file mode 120000
index 000000000000..b34290ea5e74
--- /dev/null
+++ b/doc/man/man3/ldns_pkt_set_opcode.3
@@ -0,0 +1 @@
+ldns_pkt_set_flags.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_pkt_set_qdcount.3 b/doc/man/man3/ldns_pkt_set_qdcount.3
new file mode 120000
index 000000000000..b34290ea5e74
--- /dev/null
+++ b/doc/man/man3/ldns_pkt_set_qdcount.3
@@ -0,0 +1 @@
+ldns_pkt_set_flags.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_pkt_set_qr.3 b/doc/man/man3/ldns_pkt_set_qr.3
new file mode 120000
index 000000000000..b34290ea5e74
--- /dev/null
+++ b/doc/man/man3/ldns_pkt_set_qr.3
@@ -0,0 +1 @@
+ldns_pkt_set_flags.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_pkt_set_querytime.3 b/doc/man/man3/ldns_pkt_set_querytime.3
new file mode 120000
index 000000000000..b34290ea5e74
--- /dev/null
+++ b/doc/man/man3/ldns_pkt_set_querytime.3
@@ -0,0 +1 @@
+ldns_pkt_set_flags.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_pkt_set_ra.3 b/doc/man/man3/ldns_pkt_set_ra.3
new file mode 120000
index 000000000000..b34290ea5e74
--- /dev/null
+++ b/doc/man/man3/ldns_pkt_set_ra.3
@@ -0,0 +1 @@
+ldns_pkt_set_flags.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_pkt_set_rcode.3 b/doc/man/man3/ldns_pkt_set_rcode.3
new file mode 120000
index 000000000000..b34290ea5e74
--- /dev/null
+++ b/doc/man/man3/ldns_pkt_set_rcode.3
@@ -0,0 +1 @@
+ldns_pkt_set_flags.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_pkt_set_rd.3 b/doc/man/man3/ldns_pkt_set_rd.3
new file mode 120000
index 000000000000..b34290ea5e74
--- /dev/null
+++ b/doc/man/man3/ldns_pkt_set_rd.3
@@ -0,0 +1 @@
+ldns_pkt_set_flags.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_pkt_set_section_count.3 b/doc/man/man3/ldns_pkt_set_section_count.3
new file mode 120000
index 000000000000..b34290ea5e74
--- /dev/null
+++ b/doc/man/man3/ldns_pkt_set_section_count.3
@@ -0,0 +1 @@
+ldns_pkt_set_flags.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_pkt_set_size.3 b/doc/man/man3/ldns_pkt_set_size.3
new file mode 120000
index 000000000000..b34290ea5e74
--- /dev/null
+++ b/doc/man/man3/ldns_pkt_set_size.3
@@ -0,0 +1 @@
+ldns_pkt_set_flags.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_pkt_set_tc.3 b/doc/man/man3/ldns_pkt_set_tc.3
new file mode 120000
index 000000000000..b34290ea5e74
--- /dev/null
+++ b/doc/man/man3/ldns_pkt_set_tc.3
@@ -0,0 +1 @@
+ldns_pkt_set_flags.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_pkt_set_tsig.3 b/doc/man/man3/ldns_pkt_set_tsig.3
new file mode 120000
index 000000000000..b34290ea5e74
--- /dev/null
+++ b/doc/man/man3/ldns_pkt_set_tsig.3
@@ -0,0 +1 @@
+ldns_pkt_set_flags.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_pkt_size.3 b/doc/man/man3/ldns_pkt_size.3
new file mode 120000
index 000000000000..5b1de76a46ee
--- /dev/null
+++ b/doc/man/man3/ldns_pkt_size.3
@@ -0,0 +1 @@
+ldns_pkt_id.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_pkt_tc.3 b/doc/man/man3/ldns_pkt_tc.3
new file mode 120000
index 000000000000..5b1de76a46ee
--- /dev/null
+++ b/doc/man/man3/ldns_pkt_tc.3
@@ -0,0 +1 @@
+ldns_pkt_id.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_pkt_tsig.3 b/doc/man/man3/ldns_pkt_tsig.3
new file mode 120000
index 000000000000..5b1de76a46ee
--- /dev/null
+++ b/doc/man/man3/ldns_pkt_tsig.3
@@ -0,0 +1 @@
+ldns_pkt_id.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_pkt_tsig_sign.3 b/doc/man/man3/ldns_pkt_tsig_sign.3
new file mode 120000
index 000000000000..4ae473502a81
--- /dev/null
+++ b/doc/man/man3/ldns_pkt_tsig_sign.3
@@ -0,0 +1 @@
+ldns_pkt_tsig_verify.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_pkt_tsig_verify.3 b/doc/man/man3/ldns_pkt_tsig_verify.3
new file mode 100644
index 000000000000..648e843f730c
--- /dev/null
+++ b/doc/man/man3/ldns_pkt_tsig_verify.3
@@ -0,0 +1,77 @@
+.ad l
+.TH ldns 3 "30 May 2006"
+.SH NAME
+ldns_pkt_tsig_verify, ldns_pkt_tsig_sign \- tsig signing and verification
+
+.SH SYNOPSIS
+#include <stdint.h>
+.br
+#include <stdbool.h>
+.br
+.PP
+#include <ldns/ldns.h>
+.PP
+bool ldns_pkt_tsig_verify(ldns_pkt *pkt, const uint8_t *wire, size_t wire_size, const char *key_name, const char *key_data, const ldns_rdf *mac);
+.PP
+ldns_status ldns_pkt_tsig_sign(ldns_pkt *pkt, const char *key_name, const char *key_data, uint16_t fudge, const char *algorithm_name, const ldns_rdf *query_mac);
+.PP
+
+.SH DESCRIPTION
+.HP
+\fIldns_pkt_tsig_verify\fR()
+verifies the tsig rr for the given packet and key.
+The wire must be given too because tsig does not sign normalized packets.
+\.br
+\fBpkt\fR: the packet to verify
+\.br
+\fBwire\fR: needed to verify the mac
+\.br
+\fBwire_size\fR: size of wire
+\.br
+\fBkey_name\fR: the name of the shared key
+\.br
+\fBkey_data\fR: the key in base 64 format
+\.br
+\fBmac\fR: original mac
+\.br
+Returns true if tsig is correct, false if not, or if tsig is not set
+.PP
+.HP
+\fIldns_pkt_tsig_sign\fR()
+creates a tsig rr for the given packet and key.
+\.br
+\fBpkt\fR: the packet to sign
+\.br
+\fBkey_name\fR: the name of the shared key
+\.br
+\fBkey_data\fR: the key in base 64 format
+\.br
+\fBfudge\fR: seconds of error permitted in time signed
+\.br
+\fBalgorithm_name\fR: the name of the algorithm used
+\.br
+\fBquery_mac\fR: is added to the digest if not \%NULL (so \%NULL is for signing queries, not \%NULL is for signing answers)
+\.br
+Returns status (\%OK if success)
+.PP
+.SH AUTHOR
+The ldns team at NLnet Labs.
+
+.SH REPORTING BUGS
+Please report bugs to ldns-team@nlnetlabs.nl or in
+our bugzilla at
+http://www.nlnetlabs.nl/bugs/index.html
+
+.SH COPYRIGHT
+Copyright (c) 2004 - 2006 NLnet Labs.
+.PP
+Licensed under the BSD License. There is NO warranty; not even for
+MERCHANTABILITY or
+FITNESS FOR A PARTICULAR PURPOSE.
+
+.SH SEE ALSO
+\fIldns_key\fR.
+And \fBperldoc Net::DNS\fR, \fBRFC1034\fR,
+\fBRFC1035\fR, \fBRFC4033\fR, \fBRFC4034\fR and \fBRFC4035\fR.
+.SH REMARKS
+This manpage was automatically generated from the ldns source code.
diff --git a/doc/man/man3/ldns_pkt_type.3 b/doc/man/man3/ldns_pkt_type.3
new file mode 120000
index 000000000000..fdc189a5b579
--- /dev/null
+++ b/doc/man/man3/ldns_pkt_type.3
@@ -0,0 +1 @@
+ldns_pkt.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_pkt_verify.3 b/doc/man/man3/ldns_pkt_verify.3
new file mode 100644
index 000000000000..e21890beaaff
--- /dev/null
+++ b/doc/man/man3/ldns_pkt_verify.3
@@ -0,0 +1,57 @@
+.ad l
+.TH ldns 3 "30 May 2006"
+.SH NAME
+ldns_pkt_verify \- verify a packet
+
+.SH SYNOPSIS
+#include <stdint.h>
+.br
+#include <stdbool.h>
+.br
+.PP
+#include <ldns/ldns.h>
+.PP
+ldns_status ldns_pkt_verify(const ldns_pkt *p, ldns_rr_type t, const ldns_rdf *o, const ldns_rr_list *k, const ldns_rr_list *s, ldns_rr_list *good_keys);
+.PP
+
+.SH DESCRIPTION
+.HP
+\fIldns_pkt_verify\fR()
+verify a packet
+\.br
+\fBp\fR: the packet
+\.br
+\fBt\fR: the rr set type to check
+\.br
+\fBo\fR: the rr set name to check
+\.br
+\fBk\fR: list of keys
+\.br
+\fBs\fR: list of sigs (may be null)
+\.br
+\fBgood_keys\fR: keys which validated the packet
+\.br
+Returns status
+
+.PP
+.SH AUTHOR
+The ldns team at NLnet Labs.
+
+.SH REPORTING BUGS
+Please report bugs to ldns-team@nlnetlabs.nl or in
+our bugzilla at
+http://www.nlnetlabs.nl/bugs/index.html
+
+.SH COPYRIGHT
+Copyright (c) 2004 - 2006 NLnet Labs.
+.PP
+Licensed under the BSD License. There is NO warranty; not even for
+MERCHANTABILITY or
+FITNESS FOR A PARTICULAR PURPOSE.
+
+.SH SEE ALSO
+\fIldns_verify\fR, \fIldns_sign_public\fR, \fIldns_zone_sign\fR.
+And \fBperldoc Net::DNS\fR, \fBRFC1034\fR,
+\fBRFC1035\fR, \fBRFC4033\fR, \fBRFC4034\fR and \fBRFC4035\fR.
+.SH REMARKS
+This manpage was automatically generated from the ldns source code.
diff --git a/doc/man/man3/ldns_pktheader2buffer_str.3 b/doc/man/man3/ldns_pktheader2buffer_str.3
new file mode 120000
index 000000000000..7624fd4a5766
--- /dev/null
+++ b/doc/man/man3/ldns_pktheader2buffer_str.3
@@ -0,0 +1 @@
+ldns_pkt2buffer_str.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_rdf.3 b/doc/man/man3/ldns_rdf.3
new file mode 100644
index 000000000000..680867f700b9
--- /dev/null
+++ b/doc/man/man3/ldns_rdf.3
@@ -0,0 +1,288 @@
+.ad l
+.TH ldns 3 "30 May 2006"
+.SH NAME
+ldns_rdf, ldns_rdf_type \- rdata field type
+
+.SH SYNOPSIS
+#include <stdint.h>
+.br
+#include <stdbool.h>
+.br
+.PP
+#include <ldns/ldns.h>
+.PP
+
+.SH DESCRIPTION
+.HP
+\fIldns_rdf\fR
+.br
+Resource record data field.
+.br
+
+.br
+The data is a network ordered array of bytes, which size is specified by
+.br
+the (16-bit) size field. To correctly parse it, use the type
+.br
+specified in the (16-bit) type field with a value from \\ref ldns_rdf_type.
+.br
+struct ldns_struct_rdf
+.br
+{
+.br
+ \fBThe size of the data (in octets):\fR
+.br
+ size_t _size;
+.br
+ \fBThe type of the data:\fR
+.br
+ ldns_rdf_type _type;
+.br
+ \fBPointer to the data (raw octets):\fR
+.br
+ void *_data;
+.br
+};
+.br
+typedef struct ldns_struct_rdf ldns_rdf;
+.PP
+.HP
+\fIldns_rdf_type\fR
+.br
+The different types of RDATA fields.
+.br
+enum ldns_enum_rdf_type
+.br
+{
+.br
+ \fBnone:\fR
+.br
+ LDNS_RDF_TYPE_NONE,
+.br
+ \fBdomain name:\fR
+.br
+ LDNS_RDF_TYPE_DNAME,
+.br
+ \fB8 bits:\fR
+.br
+ LDNS_RDF_TYPE_INT8,
+.br
+ \fB16 bits:\fR
+.br
+ LDNS_RDF_TYPE_INT16,
+.br
+ \fB32 bits:\fR
+.br
+ LDNS_RDF_TYPE_INT32,
+.br
+ \fBA record:\fR
+.br
+ LDNS_RDF_TYPE_A,
+.br
+ \fBAAAA record:\fR
+.br
+ LDNS_RDF_TYPE_AAAA,
+.br
+ \fBtxt string:\fR
+.br
+ LDNS_RDF_TYPE_STR,
+.br
+ \fBapl data:\fR
+.br
+ LDNS_RDF_TYPE_APL,
+.br
+ \fBb32 string:\fR
+.br
+ LDNS_RDF_TYPE_B32_EXT,
+.br
+ \fBb64 string:\fR
+.br
+ LDNS_RDF_TYPE_B64,
+.br
+ \fBhex string:\fR
+.br
+ LDNS_RDF_TYPE_HEX,
+.br
+ \fBnsec type codes:\fR
+.br
+ LDNS_RDF_TYPE_NSEC,
+.br
+ \fBa RR type:\fR
+.br
+ LDNS_RDF_TYPE_TYPE,
+.br
+ \fBa class:\fR
+.br
+ LDNS_RDF_TYPE_CLASS,
+.br
+ \fBcertificate algorithm:\fR
+.br
+ LDNS_RDF_TYPE_CERT_ALG,
+.br
+ \fBa key algorithm:\fR
+.br
+ LDNS_RDF_TYPE_ALG,
+.br
+ \fBunknown types:\fR
+.br
+ LDNS_RDF_TYPE_UNKNOWN,
+.br
+ \fBtime (32 bits):\fR
+.br
+ LDNS_RDF_TYPE_TIME,
+.br
+ \fBperiod:\fR
+.br
+ LDNS_RDF_TYPE_PERIOD,
+.br
+ \fBtsig time 48 bits:\fR
+.br
+ LDNS_RDF_TYPE_TSIGTIME,
+.br
+ /** Represents the Public Key Algorithm, HIT and Public Key fields
+.br
+ for the HIP RR types. A HIP specific rdf type is used because of
+.br
+ the unusual layout in wireformat (see RFC 5205 Section 5) */
+.br
+ LDNS_RDF_TYPE_HIP,
+.br
+ /** variable length any type rdata where the length
+.br
+ is specified by the first 2 bytes */
+.br
+ LDNS_RDF_TYPE_INT16_DATA,
+.br
+ \fBprotocol and port bitmaps:\fR
+.br
+ LDNS_RDF_TYPE_SERVICE,
+.br
+ \fBlocation data:\fR
+.br
+ LDNS_RDF_TYPE_LOC,
+.br
+ \fBwell known services:\fR
+.br
+ LDNS_RDF_TYPE_WKS,
+.br
+ \fBNSAP:\fR
+.br
+ LDNS_RDF_TYPE_NSAP,
+.br
+ \fBATMA:\fR
+.br
+ LDNS_RDF_TYPE_ATMA,
+.br
+ \fBIPSECKEY:\fR
+.br
+ LDNS_RDF_TYPE_IPSECKEY,
+.br
+ \fBnsec3 hash salt:\fR
+.br
+ LDNS_RDF_TYPE_NSEC3_SALT,
+.br
+ \fBnsec3 base32 string (with length byte on wire:\fR
+.br
+ LDNS_RDF_TYPE_NSEC3_NEXT_OWNER,
+.br
+
+.br
+ /** 4 shorts represented as 4 * 16 bit hex numbers
+.br
+ * separated by colons. For NID and L64.
+.br
+ */
+.br
+ LDNS_RDF_TYPE_ILNP64,
+.br
+
+.br
+ \fB6 * 8 bit hex numbers separated by dashes. For EUI48.:\fR
+.br
+ LDNS_RDF_TYPE_EUI48,
+.br
+ \fB8 * 8 bit hex numbers separated by dashes. For EUI64.:\fR
+.br
+ LDNS_RDF_TYPE_EUI64,
+.br
+
+.br
+ /** A non-zero sequence of US-ASCII letters and numbers in lower case.
+.br
+ * For CAA.
+.br
+ */
+.br
+ LDNS_RDF_TYPE_TAG,
+.br
+
+.br
+ /** A <character-string> encoding of the value field as specified
+.br
+ * [RFC1035], Section 5.1., encoded as remaining rdata.
+.br
+ * For CAA.
+.br
+ */
+.br
+ LDNS_RDF_TYPE_LONG_STR,
+.br
+
+.br
+ /** Since RFC7218 TLSA records can be given with mnemonics,
+.br
+ * hence these rdata field types. But as with DNSKEYs, the output
+.br
+ * is always numeric.
+.br
+ */
+.br
+ LDNS_RDF_TYPE_CERTIFICATE_USAGE,
+.br
+ LDNS_RDF_TYPE_SELECTOR,
+.br
+ LDNS_RDF_TYPE_MATCHING_TYPE,
+.br
+
+.br
+ \fBdraft-ietf-mboned-driad-amt-discovery *:\fR
+.br
+ LDNS_RDF_TYPE_AMTRELAY,
+.br
+
+.br
+ \fBdraft-ietf-dnsop-svcb-https *:\fR
+.br
+ LDNS_RDF_TYPE_SVCPARAMS,
+.br
+
+.br
+ /* Aliases */
+.br
+ LDNS_RDF_TYPE_BITMAP = LDNS_RDF_TYPE_NSEC
+.br
+};
+.br
+typedef enum ldns_enum_rdf_type ldns_rdf_type;
+.PP
+.SH AUTHOR
+The ldns team at NLnet Labs.
+
+.SH REPORTING BUGS
+Please report bugs to ldns-team@nlnetlabs.nl or in
+our bugzilla at
+http://www.nlnetlabs.nl/bugs/index.html
+
+.SH COPYRIGHT
+Copyright (c) 2004 - 2006 NLnet Labs.
+.PP
+Licensed under the BSD License. There is NO warranty; not even for
+MERCHANTABILITY or
+FITNESS FOR A PARTICULAR PURPOSE.
+
+.SH SEE ALSO
+\fIldns_rdf_set_size\fR, \fIldns_rdf_set_type\fR, \fIldns_rdf_set_data\fR, \fIldns_rdf_size\fR, \fIldns_rdf_get_type\fR, \fIldns_rdf_data\fR, \fIldns_rdf_compare\fR, \fIldns_rdf_new\fR, \fIldns_rdf_clone\fR, \fIldns_rdf_new_frm_data\fR, \fIldns_rdf_new_frm_str\fR, \fIldns_rdf_new_frm_fp\fR, \fIldns_rdf_free\fR, \fIldns_rdf_deep_free\fR, \fIldns_rdf_print\fR, \fIldns_native2rdf_int8\fR, \fIldns_native2rdf_int16\fR, \fIldns_native2rdf_int32\fR, \fIldns_native2rdf_int16_data\fR, \fIldns_rdf2native_int8\fR, \fIldns_rdf2native_int16\fR, \fIldns_rdf2native_int32\fR, \fIldns_rdf2native_sockaddr_storage\fR, \fIldns_rdf2native_time_t\fR, \fIldns_native2rdf_int8\fR, \fIldns_native2rdf_int16\fR, \fIldns_native2rdf_int32\fR, \fIldns_native2rdf_int16_data\fR, \fIldns_rdf2native_int8\fR, \fIldns_rdf2native_int16\fR, \fIldns_rdf2native_int32\fR, \fIldns_rdf2native_sockaddr_storage\fR, \fIldns_rdf2native_time_t\fR, \fIldns_native2rdf_int8\fR, \fIldns_native2rdf_int16\fR, \fIldns_native2rdf_int32\fR, \fIldns_native2rdf_int16_data\fR, \fIldns_rdf2native_int8\fR, \fIldns_rdf2native_int16\fR, \fIldns_rdf2native_int32\fR, \fIldns_rdf2native_sockaddr_storage\fR, \fIldns_rdf2native_time_t\fR.
+And \fBperldoc Net::DNS\fR, \fBRFC1034\fR,
+\fBRFC1035\fR, \fBRFC4033\fR, \fBRFC4034\fR and \fBRFC4035\fR.
+.SH REMARKS
+This manpage was automatically generated from the ldns source code.
diff --git a/doc/man/man3/ldns_rdf2buffer_str.3 b/doc/man/man3/ldns_rdf2buffer_str.3
new file mode 120000
index 000000000000..7624fd4a5766
--- /dev/null
+++ b/doc/man/man3/ldns_rdf2buffer_str.3
@@ -0,0 +1 @@
+ldns_pkt2buffer_str.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_rdf2buffer_str_a.3 b/doc/man/man3/ldns_rdf2buffer_str_a.3
new file mode 100644
index 000000000000..0bdeddd6a82e
--- /dev/null
+++ b/doc/man/man3/ldns_rdf2buffer_str_a.3
@@ -0,0 +1,262 @@
+.ad l
+.TH ldns 3 "30 May 2006"
+.SH NAME
+ldns_rdf2buffer_str_a, ldns_rdf2buffer_str_aaaa, ldns_rdf2buffer_str_str, ldns_rdf2buffer_str_b64, ldns_rdf2buffer_str_hex, ldns_rdf2buffer_str_type, ldns_rdf2buffer_str_class, ldns_rdf2buffer_str_alg, ldns_rdf2buffer_str_loc, ldns_rdf2buffer_str_unknown, ldns_rdf2buffer_str_nsap, ldns_rdf2buffer_str_wks, ldns_rdf2buffer_str_nsec, ldns_rdf2buffer_str_period, ldns_rdf2buffer_str_tsigtime, ldns_rdf2buffer_str_apl, ldns_rdf2buffer_str_int16_data, ldns_rdf2buffer_str_int16, ldns_rdf2buffer_str_ipseckey \- lower level to string conversion functions
+
+.SH SYNOPSIS
+#include <stdint.h>
+.br
+#include <stdbool.h>
+.br
+.PP
+#include <ldns/ldns.h>
+.PP
+ldns_status ldns_rdf2buffer_str_a(ldns_buffer *output, const ldns_rdf *rdf);
+.PP
+ldns_status ldns_rdf2buffer_str_aaaa(ldns_buffer *output, const ldns_rdf *rdf);
+.PP
+ldns_status ldns_rdf2buffer_str_str(ldns_buffer *output, const ldns_rdf *rdf);
+.PP
+ldns_status ldns_rdf2buffer_str_b64(ldns_buffer *output, const ldns_rdf *rdf);
+.PP
+ldns_status ldns_rdf2buffer_str_hex(ldns_buffer *output, const ldns_rdf *rdf);
+.PP
+ldns_status ldns_rdf2buffer_str_type(ldns_buffer *output, const ldns_rdf *rdf);
+.PP
+ldns_status ldns_rdf2buffer_str_class(ldns_buffer *output, const ldns_rdf *rdf);
+.PP
+ldns_status ldns_rdf2buffer_str_alg(ldns_buffer *output, const ldns_rdf *rdf);
+.PP
+ldns_status ldns_rdf2buffer_str_loc(ldns_buffer *output, const ldns_rdf *rdf);
+.PP
+ldns_status ldns_rdf2buffer_str_unknown(ldns_buffer *output, const ldns_rdf *rdf);
+.PP
+ldns_status ldns_rdf2buffer_str_nsap(ldns_buffer *output, const ldns_rdf *rdf);
+.PP
+ldns_status ldns_rdf2buffer_str_wks(ldns_buffer *output, const ldns_rdf *rdf);
+.PP
+ldns_status ldns_rdf2buffer_str_nsec(ldns_buffer *output, const ldns_rdf *rdf);
+.PP
+ldns_status ldns_rdf2buffer_str_period(ldns_buffer *output, const ldns_rdf *rdf);
+.PP
+ldns_status ldns_rdf2buffer_str_tsigtime(ldns_buffer *output, const ldns_rdf *rdf);
+.PP
+ldns_status ldns_rdf2buffer_str_apl(ldns_buffer *output, const ldns_rdf *rdf);
+.PP
+ldns_status ldns_rdf2buffer_str_int16_data(ldns_buffer *output, const ldns_rdf *rdf);
+.PP
+ldns_status ldns_rdf2buffer_str_int16(ldns_buffer *output, const ldns_rdf *rdf);
+.PP
+ldns_status ldns_rdf2buffer_str_ipseckey(ldns_buffer *output, const ldns_rdf *rdf);
+.PP
+
+.SH DESCRIPTION
+.HP
+\fIldns_rdf2buffer_str_a\fR()
+Converts an \%LDNS_RDF_TYPE_A rdata element to string format and adds it to the output buffer
+\.br
+\fB*rdf\fR: The rdata to convert
+\.br
+\fB*output\fR: The buffer to add the data to
+\.br
+Returns \%LDNS_STATUS_OK on success, and error status on failure
+.PP
+.HP
+\fIldns_rdf2buffer_str_aaaa\fR()
+Converts an \%LDNS_RDF_TYPE_AAAA rdata element to string format and adds it to the output buffer
+\.br
+\fB*rdf\fR: The rdata to convert
+\.br
+\fB*output\fR: The buffer to add the data to
+\.br
+Returns \%LDNS_STATUS_OK on success, and error status on failure
+.PP
+.HP
+\fIldns_rdf2buffer_str_str\fR()
+Converts an \%LDNS_RDF_TYPE_STR rdata element to string format and adds it to the output buffer
+\.br
+\fB*rdf\fR: The rdata to convert
+\.br
+\fB*output\fR: The buffer to add the data to
+\.br
+Returns \%LDNS_STATUS_OK on success, and error status on failure
+.PP
+.HP
+\fIldns_rdf2buffer_str_b64\fR()
+Converts an LDNS_RDF_TYPE_B64 rdata element to string format and adds it to the output buffer
+\.br
+\fB*rdf\fR: The rdata to convert
+\.br
+\fB*output\fR: The buffer to add the data to
+\.br
+Returns \%LDNS_STATUS_OK on success, and error status on failure
+.PP
+.HP
+\fIldns_rdf2buffer_str_hex\fR()
+Converts an \%LDNS_RDF_TYPE_HEX rdata element to string format and adds it to the output buffer
+\.br
+\fB*rdf\fR: The rdata to convert
+\.br
+\fB*output\fR: The buffer to add the data to
+\.br
+Returns \%LDNS_STATUS_OK on success, and error status on failure
+.PP
+.HP
+\fIldns_rdf2buffer_str_type\fR()
+Converts an \%LDNS_RDF_TYPE_TYPE rdata element to string format and adds it to the output buffer
+\.br
+\fB*rdf\fR: The rdata to convert
+\.br
+\fB*output\fR: The buffer to add the data to
+\.br
+Returns \%LDNS_STATUS_OK on success, and error status on failure
+.PP
+.HP
+\fIldns_rdf2buffer_str_class\fR()
+Converts an \%LDNS_RDF_TYPE_CLASS rdata element to string format and adds it to the output buffer
+\.br
+\fB*rdf\fR: The rdata to convert
+\.br
+\fB*output\fR: The buffer to add the data to
+\.br
+Returns \%LDNS_STATUS_OK on success, and error status on failure
+.PP
+.HP
+\fIldns_rdf2buffer_str_alg\fR()
+Converts an \%LDNS_RDF_TYPE_ALG rdata element to string format and adds it to the output buffer
+\.br
+\fB*rdf\fR: The rdata to convert
+\.br
+\fB*output\fR: The buffer to add the data to
+\.br
+Returns \%LDNS_STATUS_OK on success, and error status on failure
+.PP
+.HP
+\fIldns_rdf2buffer_str_loc\fR()
+Converts an \%LDNS_RDF_TYPE_LOC rdata element to string format and adds it to the output buffer
+\.br
+\fB*rdf\fR: The rdata to convert
+\.br
+\fB*output\fR: The buffer to add the data to
+\.br
+Returns \%LDNS_STATUS_OK on success, and error status on failure
+.PP
+.HP
+\fIldns_rdf2buffer_str_unknown\fR()
+Converts an \%LDNS_RDF_TYPE_UNKNOWN rdata element to string format and adds it to the output buffer
+\.br
+\fB*rdf\fR: The rdata to convert
+\.br
+\fB*output\fR: The buffer to add the data to
+\.br
+Returns \%LDNS_STATUS_OK on success, and error status on failure
+.PP
+.HP
+\fIldns_rdf2buffer_str_nsap\fR()
+Converts an \%LDNS_RDF_TYPE_NSAP rdata element to string format and adds it to the output buffer
+\.br
+\fB*rdf\fR: The rdata to convert
+\.br
+\fB*output\fR: The buffer to add the data to
+\.br
+Returns \%LDNS_STATUS_OK on success, and error status on failure
+.PP
+.HP
+\fIldns_rdf2buffer_str_wks\fR()
+Converts an \%LDNS_RDF_TYPE_WKS rdata element to string format and adds it to the output buffer
+\.br
+\fB*rdf\fR: The rdata to convert
+\.br
+\fB*output\fR: The buffer to add the data to
+\.br
+Returns \%LDNS_STATUS_OK on success, and error status on failure
+.PP
+.HP
+\fIldns_rdf2buffer_str_nsec\fR()
+Converts an \%LDNS_RDF_TYPE_NSEC rdata element to string format and adds it to the output buffer
+\.br
+\fB*rdf\fR: The rdata to convert
+\.br
+\fB*output\fR: The buffer to add the data to
+\.br
+Returns \%LDNS_STATUS_OK on success, and error status on failure
+.PP
+.HP
+\fIldns_rdf2buffer_str_period\fR()
+Converts an \%LDNS_RDF_TYPE_PERIOD rdata element to string format and adds it to the output buffer
+\.br
+\fB*rdf\fR: The rdata to convert
+\.br
+\fB*output\fR: The buffer to add the data to
+\.br
+Returns \%LDNS_STATUS_OK on success, and error status on failure
+.PP
+.HP
+\fIldns_rdf2buffer_str_tsigtime\fR()
+Converts an \%LDNS_RDF_TYPE_TSIGTIME rdata element to string format and adds it to the output buffer
+\.br
+\fB*rdf\fR: The rdata to convert
+\.br
+\fB*output\fR: The buffer to add the data to
+\.br
+Returns \%LDNS_STATUS_OK on success, and error status on failure
+.PP
+.HP
+\fIldns_rdf2buffer_str_apl\fR()
+Converts an \%LDNS_RDF_TYPE_APL rdata element to string format and adds it to the output buffer
+\.br
+\fB*rdf\fR: The rdata to convert
+\.br
+\fB*output\fR: The buffer to add the data to
+\.br
+Returns \%LDNS_STATUS_OK on success, and error status on failure
+.PP
+.HP
+\fIldns_rdf2buffer_str_int16_data\fR()
+Converts an LDNS_RDF_TYPE_INT16_DATA rdata element to string format and adds it to the output buffer
+\.br
+\fB*rdf\fR: The rdata to convert
+\.br
+\fB*output\fR: The buffer to add the data to
+\.br
+Returns \%LDNS_STATUS_OK on success, and error status on failure
+.PP
+.HP
+\fIldns_rdf2buffer_str_int16\fR()
+Converts an LDNS_RDF_TYPE_INT16 rdata element to string format and adds it to the output buffer
+\.br
+\fB*rdf\fR: The rdata to convert
+\.br
+\fB*output\fR: The buffer to add the data to
+\.br
+Returns \%LDNS_STATUS_OK on success, and error status on failure
+.PP
+.HP
+\fIldns_rdf2buffer_str_ipseckey\fR()
+Converts an \%LDNS_RDF_TYPE_IPSECKEY rdata element to string format and adds it to the output buffer
+\.br
+\fB*rdf\fR: The rdata to convert
+\.br
+\fB*output\fR: The buffer to add the data to
+\.br
+Returns \%LDNS_STATUS_OK on success, and error status on failure
+.PP
+.SH AUTHOR
+The ldns team at NLnet Labs.
+
+.SH REPORTING BUGS
+Please report bugs to ldns-team@nlnetlabs.nl or in
+our bugzilla at
+http://www.nlnetlabs.nl/bugs/index.html
+
+.SH COPYRIGHT
+Copyright (c) 2004 - 2006 NLnet Labs.
+.PP
+Licensed under the BSD License. There is NO warranty; not even for
+MERCHANTABILITY or
+FITNESS FOR A PARTICULAR PURPOSE.
+.SH SEE ALSO
+\fBperldoc Net::DNS\fR, \fBRFC1034\fR,
+\fBRFC1035\fR, \fBRFC4033\fR, \fBRFC4034\fR and \fBRFC4035\fR.
+.SH REMARKS
+This manpage was automatically generated from the ldns source code.
diff --git a/doc/man/man3/ldns_rdf2buffer_str_aaaa.3 b/doc/man/man3/ldns_rdf2buffer_str_aaaa.3
new file mode 120000
index 000000000000..6b3295e58c19
--- /dev/null
+++ b/doc/man/man3/ldns_rdf2buffer_str_aaaa.3
@@ -0,0 +1 @@
+ldns_rdf2buffer_str_a.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_rdf2buffer_str_alg.3 b/doc/man/man3/ldns_rdf2buffer_str_alg.3
new file mode 120000
index 000000000000..6b3295e58c19
--- /dev/null
+++ b/doc/man/man3/ldns_rdf2buffer_str_alg.3
@@ -0,0 +1 @@
+ldns_rdf2buffer_str_a.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_rdf2buffer_str_apl.3 b/doc/man/man3/ldns_rdf2buffer_str_apl.3
new file mode 120000
index 000000000000..6b3295e58c19
--- /dev/null
+++ b/doc/man/man3/ldns_rdf2buffer_str_apl.3
@@ -0,0 +1 @@
+ldns_rdf2buffer_str_a.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_rdf2buffer_str_b64.3 b/doc/man/man3/ldns_rdf2buffer_str_b64.3
new file mode 120000
index 000000000000..6b3295e58c19
--- /dev/null
+++ b/doc/man/man3/ldns_rdf2buffer_str_b64.3
@@ -0,0 +1 @@
+ldns_rdf2buffer_str_a.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_rdf2buffer_str_class.3 b/doc/man/man3/ldns_rdf2buffer_str_class.3
new file mode 120000
index 000000000000..6b3295e58c19
--- /dev/null
+++ b/doc/man/man3/ldns_rdf2buffer_str_class.3
@@ -0,0 +1 @@
+ldns_rdf2buffer_str_a.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_rdf2buffer_str_hex.3 b/doc/man/man3/ldns_rdf2buffer_str_hex.3
new file mode 120000
index 000000000000..6b3295e58c19
--- /dev/null
+++ b/doc/man/man3/ldns_rdf2buffer_str_hex.3
@@ -0,0 +1 @@
+ldns_rdf2buffer_str_a.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_rdf2buffer_str_int16.3 b/doc/man/man3/ldns_rdf2buffer_str_int16.3
new file mode 120000
index 000000000000..6b3295e58c19
--- /dev/null
+++ b/doc/man/man3/ldns_rdf2buffer_str_int16.3
@@ -0,0 +1 @@
+ldns_rdf2buffer_str_a.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_rdf2buffer_str_int16_data.3 b/doc/man/man3/ldns_rdf2buffer_str_int16_data.3
new file mode 120000
index 000000000000..6b3295e58c19
--- /dev/null
+++ b/doc/man/man3/ldns_rdf2buffer_str_int16_data.3
@@ -0,0 +1 @@
+ldns_rdf2buffer_str_a.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_rdf2buffer_str_ipseckey.3 b/doc/man/man3/ldns_rdf2buffer_str_ipseckey.3
new file mode 120000
index 000000000000..6b3295e58c19
--- /dev/null
+++ b/doc/man/man3/ldns_rdf2buffer_str_ipseckey.3
@@ -0,0 +1 @@
+ldns_rdf2buffer_str_a.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_rdf2buffer_str_loc.3 b/doc/man/man3/ldns_rdf2buffer_str_loc.3
new file mode 120000
index 000000000000..6b3295e58c19
--- /dev/null
+++ b/doc/man/man3/ldns_rdf2buffer_str_loc.3
@@ -0,0 +1 @@
+ldns_rdf2buffer_str_a.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_rdf2buffer_str_nsap.3 b/doc/man/man3/ldns_rdf2buffer_str_nsap.3
new file mode 120000
index 000000000000..6b3295e58c19
--- /dev/null
+++ b/doc/man/man3/ldns_rdf2buffer_str_nsap.3
@@ -0,0 +1 @@
+ldns_rdf2buffer_str_a.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_rdf2buffer_str_nsec.3 b/doc/man/man3/ldns_rdf2buffer_str_nsec.3
new file mode 120000
index 000000000000..6b3295e58c19
--- /dev/null
+++ b/doc/man/man3/ldns_rdf2buffer_str_nsec.3
@@ -0,0 +1 @@
+ldns_rdf2buffer_str_a.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_rdf2buffer_str_period.3 b/doc/man/man3/ldns_rdf2buffer_str_period.3
new file mode 120000
index 000000000000..6b3295e58c19
--- /dev/null
+++ b/doc/man/man3/ldns_rdf2buffer_str_period.3
@@ -0,0 +1 @@
+ldns_rdf2buffer_str_a.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_rdf2buffer_str_str.3 b/doc/man/man3/ldns_rdf2buffer_str_str.3
new file mode 120000
index 000000000000..6b3295e58c19
--- /dev/null
+++ b/doc/man/man3/ldns_rdf2buffer_str_str.3
@@ -0,0 +1 @@
+ldns_rdf2buffer_str_a.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_rdf2buffer_str_tsigtime.3 b/doc/man/man3/ldns_rdf2buffer_str_tsigtime.3
new file mode 120000
index 000000000000..6b3295e58c19
--- /dev/null
+++ b/doc/man/man3/ldns_rdf2buffer_str_tsigtime.3
@@ -0,0 +1 @@
+ldns_rdf2buffer_str_a.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_rdf2buffer_str_type.3 b/doc/man/man3/ldns_rdf2buffer_str_type.3
new file mode 120000
index 000000000000..6b3295e58c19
--- /dev/null
+++ b/doc/man/man3/ldns_rdf2buffer_str_type.3
@@ -0,0 +1 @@
+ldns_rdf2buffer_str_a.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_rdf2buffer_str_unknown.3 b/doc/man/man3/ldns_rdf2buffer_str_unknown.3
new file mode 120000
index 000000000000..6b3295e58c19
--- /dev/null
+++ b/doc/man/man3/ldns_rdf2buffer_str_unknown.3
@@ -0,0 +1 @@
+ldns_rdf2buffer_str_a.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_rdf2buffer_str_wks.3 b/doc/man/man3/ldns_rdf2buffer_str_wks.3
new file mode 120000
index 000000000000..6b3295e58c19
--- /dev/null
+++ b/doc/man/man3/ldns_rdf2buffer_str_wks.3
@@ -0,0 +1 @@
+ldns_rdf2buffer_str_a.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_rdf2buffer_wire.3 b/doc/man/man3/ldns_rdf2buffer_wire.3
new file mode 120000
index 000000000000..7624fd4a5766
--- /dev/null
+++ b/doc/man/man3/ldns_rdf2buffer_wire.3
@@ -0,0 +1 @@
+ldns_pkt2buffer_str.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_rdf2native_int16.3 b/doc/man/man3/ldns_rdf2native_int16.3
new file mode 120000
index 000000000000..66d860d66295
--- /dev/null
+++ b/doc/man/man3/ldns_rdf2native_int16.3
@@ -0,0 +1 @@
+ldns_native2rdf_int8.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_rdf2native_int32.3 b/doc/man/man3/ldns_rdf2native_int32.3
new file mode 120000
index 000000000000..66d860d66295
--- /dev/null
+++ b/doc/man/man3/ldns_rdf2native_int32.3
@@ -0,0 +1 @@
+ldns_native2rdf_int8.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_rdf2native_int8.3 b/doc/man/man3/ldns_rdf2native_int8.3
new file mode 120000
index 000000000000..66d860d66295
--- /dev/null
+++ b/doc/man/man3/ldns_rdf2native_int8.3
@@ -0,0 +1 @@
+ldns_native2rdf_int8.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_rdf2native_sockaddr_storage.3 b/doc/man/man3/ldns_rdf2native_sockaddr_storage.3
new file mode 120000
index 000000000000..66d860d66295
--- /dev/null
+++ b/doc/man/man3/ldns_rdf2native_sockaddr_storage.3
@@ -0,0 +1 @@
+ldns_native2rdf_int8.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_rdf2native_time_t.3 b/doc/man/man3/ldns_rdf2native_time_t.3
new file mode 120000
index 000000000000..66d860d66295
--- /dev/null
+++ b/doc/man/man3/ldns_rdf2native_time_t.3
@@ -0,0 +1 @@
+ldns_native2rdf_int8.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_rdf2str.3 b/doc/man/man3/ldns_rdf2str.3
new file mode 120000
index 000000000000..b2208d56a9d7
--- /dev/null
+++ b/doc/man/man3/ldns_rdf2str.3
@@ -0,0 +1 @@
+ldns_rr2str.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_rdf2wire.3 b/doc/man/man3/ldns_rdf2wire.3
new file mode 120000
index 000000000000..c36af5febfbc
--- /dev/null
+++ b/doc/man/man3/ldns_rdf2wire.3
@@ -0,0 +1 @@
+ldns_rr2wire.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_rdf_address_reverse.3 b/doc/man/man3/ldns_rdf_address_reverse.3
new file mode 100644
index 000000000000..10c81a8b4084
--- /dev/null
+++ b/doc/man/man3/ldns_rdf_address_reverse.3
@@ -0,0 +1,47 @@
+.ad l
+.TH ldns 3 "30 May 2006"
+.SH NAME
+ldns_rdf_address_reverse \- reverse an address rdf
+
+.SH SYNOPSIS
+#include <stdint.h>
+.br
+#include <stdbool.h>
+.br
+.PP
+#include <ldns/ldns.h>
+.PP
+ldns_rdf* ldns_rdf_address_reverse(const ldns_rdf *rd);
+.PP
+
+.SH DESCRIPTION
+.HP
+\fIldns_rdf_address_reverse\fR()
+reverses an rdf, only actually useful for \%AAAA and \%A records.
+The returned rdf has the type \%LDNS_RDF_TYPE_DNAME!
+\.br
+\fB*rd\fR: rdf to be reversed
+\.br
+Returns the reversed rdf (a newly created rdf)
+.PP
+.SH AUTHOR
+The ldns team at NLnet Labs.
+
+.SH REPORTING BUGS
+Please report bugs to ldns-team@nlnetlabs.nl or in
+our bugzilla at
+http://www.nlnetlabs.nl/bugs/index.html
+
+.SH COPYRIGHT
+Copyright (c) 2004 - 2006 NLnet Labs.
+.PP
+Licensed under the BSD License. There is NO warranty; not even for
+MERCHANTABILITY or
+FITNESS FOR A PARTICULAR PURPOSE.
+
+.SH SEE ALSO
+\fIldns_rdf\fR.
+And \fBperldoc Net::DNS\fR, \fBRFC1034\fR,
+\fBRFC1035\fR, \fBRFC4033\fR, \fBRFC4034\fR and \fBRFC4035\fR.
+.SH REMARKS
+This manpage was automatically generated from the ldns source code.
diff --git a/doc/man/man3/ldns_rdf_clone.3 b/doc/man/man3/ldns_rdf_clone.3
new file mode 120000
index 000000000000..216967835bd3
--- /dev/null
+++ b/doc/man/man3/ldns_rdf_clone.3
@@ -0,0 +1 @@
+ldns_rdf_new.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_rdf_compare.3 b/doc/man/man3/ldns_rdf_compare.3
new file mode 120000
index 000000000000..8aaa9624e19e
--- /dev/null
+++ b/doc/man/man3/ldns_rdf_compare.3
@@ -0,0 +1 @@
+ldns_rdf_size.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_rdf_data.3 b/doc/man/man3/ldns_rdf_data.3
new file mode 120000
index 000000000000..8aaa9624e19e
--- /dev/null
+++ b/doc/man/man3/ldns_rdf_data.3
@@ -0,0 +1 @@
+ldns_rdf_size.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_rdf_deep_free.3 b/doc/man/man3/ldns_rdf_deep_free.3
new file mode 120000
index 000000000000..216967835bd3
--- /dev/null
+++ b/doc/man/man3/ldns_rdf_deep_free.3
@@ -0,0 +1 @@
+ldns_rdf_new.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_rdf_free.3 b/doc/man/man3/ldns_rdf_free.3
new file mode 120000
index 000000000000..216967835bd3
--- /dev/null
+++ b/doc/man/man3/ldns_rdf_free.3
@@ -0,0 +1 @@
+ldns_rdf_new.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_rdf_get_type.3 b/doc/man/man3/ldns_rdf_get_type.3
new file mode 120000
index 000000000000..8aaa9624e19e
--- /dev/null
+++ b/doc/man/man3/ldns_rdf_get_type.3
@@ -0,0 +1 @@
+ldns_rdf_size.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_rdf_new.3 b/doc/man/man3/ldns_rdf_new.3
new file mode 100644
index 000000000000..d8b7e957fc65
--- /dev/null
+++ b/doc/man/man3/ldns_rdf_new.3
@@ -0,0 +1,140 @@
+.ad l
+.TH ldns 3 "30 May 2006"
+.SH NAME
+ldns_rdf_new, ldns_rdf_clone, ldns_rdf_new_frm_data, ldns_rdf_new_frm_str, ldns_rdf_new_frm_fp, ldns_rdf_free, ldns_rdf_deep_free, ldns_rdf_print \- ldns_rdf creation, destruction and printing
+
+.SH SYNOPSIS
+#include <stdint.h>
+.br
+#include <stdbool.h>
+.br
+.PP
+#include <ldns/ldns.h>
+.PP
+ldns_rdf* ldns_rdf_new(ldns_rdf_type type, size_t size, void *data);
+.PP
+ldns_rdf* ldns_rdf_clone(const ldns_rdf *rd);
+.PP
+ldns_rdf* ldns_rdf_new_frm_data(ldns_rdf_type type, size_t size, const void *data);
+.PP
+ldns_rdf* ldns_rdf_new_frm_str(ldns_rdf_type type, const char *str);
+.PP
+ldns_status ldns_rdf_new_frm_fp(ldns_rdf **r, ldns_rdf_type type, FILE *fp);
+.PP
+void ldns_rdf_free(ldns_rdf *rd);
+.PP
+void ldns_rdf_deep_free(ldns_rdf *rd);
+.PP
+void ldns_rdf_print(FILE *output, const ldns_rdf *rdf);
+.PP
+
+.SH DESCRIPTION
+.HP
+\fIldns_rdf_new\fR()
+allocates a new rdf structure and fills it.
+This function \%DOES \%NOT copy the contents from
+the buffer, unlike ldns_rdf_new_frm_data()
+\.br
+\fBtype\fR: type of the rdf
+\.br
+\fBsize\fR: size of the buffer
+\.br
+\fBdata\fR: pointer to the buffer to be copied
+\.br
+Returns the new rdf structure or \%NULL on failure
+.PP
+.HP
+\fIldns_rdf_clone\fR()
+clones a rdf structure. The data is copied.
+\.br
+\fBrd\fR: rdf to be copied
+\.br
+Returns a new rdf structure
+.PP
+.HP
+\fIldns_rdf_new_frm_data\fR()
+allocates a new rdf structure and fills it.
+This function _does_ copy the contents from
+the buffer, unlike ldns_rdf_new()
+\.br
+\fBtype\fR: type of the rdf
+\.br
+\fBsize\fR: size of the buffer
+\.br
+\fBdata\fR: pointer to the buffer to be copied
+\.br
+Returns the new rdf structure or \%NULL on failure
+.PP
+.HP
+\fIldns_rdf_new_frm_str\fR()
+creates a new rdf from a string.
+\.br
+\fBtype\fR: type to use
+\.br
+\fBstr\fR: string to use
+\.br
+Returns ldns_rdf* or \%NULL in case of an error
+.PP
+.HP
+\fIldns_rdf_new_frm_fp\fR()
+creates a new rdf from a file containing a string.
+\.br
+\fBr\fR: the new rdf
+\.br
+\fBtype\fR: type to use
+\.br
+\fBfp\fR: the file pointer to use
+\.br
+Returns \%LDNS_STATUS_OK or the error
+.PP
+.HP
+\fIldns_rdf_free\fR()
+frees a rdf structure, leaving the
+data pointer intact.
+\.br
+\fBrd\fR: the pointer to be freed
+\.br
+Returns void
+.PP
+.HP
+\fIldns_rdf_deep_free\fR()
+frees a rdf structure _and_ frees the
+data. rdf should be created with _new_frm_data
+\.br
+\fBrd\fR: the rdf structure to be freed
+\.br
+Returns void
+.PP
+.HP
+\fIldns_rdf_print\fR()
+Prints the data in the rdata field to the given file stream
+(in presentation format)
+
+\.br
+\fBoutput\fR: the file stream to print to
+\.br
+\fBrdf\fR: the rdata field to print
+\.br
+Returns void
+.PP
+.SH AUTHOR
+The ldns team at NLnet Labs.
+
+.SH REPORTING BUGS
+Please report bugs to ldns-team@nlnetlabs.nl or in
+our bugzilla at
+http://www.nlnetlabs.nl/bugs/index.html
+
+.SH COPYRIGHT
+Copyright (c) 2004 - 2006 NLnet Labs.
+.PP
+Licensed under the BSD License. There is NO warranty; not even for
+MERCHANTABILITY or
+FITNESS FOR A PARTICULAR PURPOSE.
+
+.SH SEE ALSO
+\fIldns_rdf\fR.
+And \fBperldoc Net::DNS\fR, \fBRFC1034\fR,
+\fBRFC1035\fR, \fBRFC4033\fR, \fBRFC4034\fR and \fBRFC4035\fR.
+.SH REMARKS
+This manpage was automatically generated from the ldns source code.
diff --git a/doc/man/man3/ldns_rdf_new_frm_data.3 b/doc/man/man3/ldns_rdf_new_frm_data.3
new file mode 120000
index 000000000000..216967835bd3
--- /dev/null
+++ b/doc/man/man3/ldns_rdf_new_frm_data.3
@@ -0,0 +1 @@
+ldns_rdf_new.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_rdf_new_frm_fp.3 b/doc/man/man3/ldns_rdf_new_frm_fp.3
new file mode 120000
index 000000000000..216967835bd3
--- /dev/null
+++ b/doc/man/man3/ldns_rdf_new_frm_fp.3
@@ -0,0 +1 @@
+ldns_rdf_new.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_rdf_new_frm_str.3 b/doc/man/man3/ldns_rdf_new_frm_str.3
new file mode 120000
index 000000000000..216967835bd3
--- /dev/null
+++ b/doc/man/man3/ldns_rdf_new_frm_str.3
@@ -0,0 +1 @@
+ldns_rdf_new.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_rdf_print.3 b/doc/man/man3/ldns_rdf_print.3
new file mode 120000
index 000000000000..216967835bd3
--- /dev/null
+++ b/doc/man/man3/ldns_rdf_print.3
@@ -0,0 +1 @@
+ldns_rdf_new.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_rdf_set_data.3 b/doc/man/man3/ldns_rdf_set_data.3
new file mode 120000
index 000000000000..ca08e87fb9d5
--- /dev/null
+++ b/doc/man/man3/ldns_rdf_set_data.3
@@ -0,0 +1 @@
+ldns_rdf_set_size.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_rdf_set_size.3 b/doc/man/man3/ldns_rdf_set_size.3
new file mode 100644
index 000000000000..75f509b811f2
--- /dev/null
+++ b/doc/man/man3/ldns_rdf_set_size.3
@@ -0,0 +1,72 @@
+.ad l
+.TH ldns 3 "30 May 2006"
+.SH NAME
+ldns_rdf_set_size, ldns_rdf_set_type, ldns_rdf_set_data \- set rdf attributes
+
+.SH SYNOPSIS
+#include <stdint.h>
+.br
+#include <stdbool.h>
+.br
+.PP
+#include <ldns/ldns.h>
+.PP
+void ldns_rdf_set_size(ldns_rdf *rd, size_t size);
+.PP
+void ldns_rdf_set_type(ldns_rdf *rd, ldns_rdf_type type);
+.PP
+void ldns_rdf_set_data(ldns_rdf *rd, void *data);
+.PP
+
+.SH DESCRIPTION
+.HP
+\fIldns_rdf_set_size\fR()
+sets the size of the rdf.
+\.br
+\fB*rd\fR: the rdf to operate on
+\.br
+\fBsize\fR: the new size
+\.br
+Returns void
+.PP
+.HP
+\fIldns_rdf_set_type\fR()
+sets the size of the rdf.
+\.br
+\fB*rd\fR: the rdf to operate on
+\.br
+\fBtype\fR: the new type
+\.br
+Returns void
+.PP
+.HP
+\fIldns_rdf_set_data\fR()
+sets the size of the rdf.
+\.br
+\fB*rd\fR: the rdf to operate on
+\.br
+\fB*data\fR: pointer to the new data
+\.br
+Returns void
+.PP
+.SH AUTHOR
+The ldns team at NLnet Labs.
+
+.SH REPORTING BUGS
+Please report bugs to ldns-team@nlnetlabs.nl or in
+our bugzilla at
+http://www.nlnetlabs.nl/bugs/index.html
+
+.SH COPYRIGHT
+Copyright (c) 2004 - 2006 NLnet Labs.
+.PP
+Licensed under the BSD License. There is NO warranty; not even for
+MERCHANTABILITY or
+FITNESS FOR A PARTICULAR PURPOSE.
+
+.SH SEE ALSO
+\fIldns_rdf\fR.
+And \fBperldoc Net::DNS\fR, \fBRFC1034\fR,
+\fBRFC1035\fR, \fBRFC4033\fR, \fBRFC4034\fR and \fBRFC4035\fR.
+.SH REMARKS
+This manpage was automatically generated from the ldns source code.
diff --git a/doc/man/man3/ldns_rdf_set_type.3 b/doc/man/man3/ldns_rdf_set_type.3
new file mode 120000
index 000000000000..ca08e87fb9d5
--- /dev/null
+++ b/doc/man/man3/ldns_rdf_set_type.3
@@ -0,0 +1 @@
+ldns_rdf_set_size.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_rdf_size.3 b/doc/man/man3/ldns_rdf_size.3
new file mode 100644
index 000000000000..4b887b105a32
--- /dev/null
+++ b/doc/man/man3/ldns_rdf_size.3
@@ -0,0 +1,85 @@
+.ad l
+.TH ldns 3 "30 May 2006"
+.SH NAME
+ldns_rdf_size, ldns_rdf_get_type, ldns_rdf_data, ldns_rdf_compare \- get rdf attributes
+
+.SH SYNOPSIS
+#include <stdint.h>
+.br
+#include <stdbool.h>
+.br
+.PP
+#include <ldns/ldns.h>
+.PP
+size_t ldns_rdf_size(const ldns_rdf *rd);
+.PP
+ldns_rdf_type ldns_rdf_get_type(const ldns_rdf *rd);
+.PP
+uint8_t* ldns_rdf_data(const ldns_rdf *rd);
+.PP
+int ldns_rdf_compare(const ldns_rdf *rd1, const ldns_rdf *rd2);
+.PP
+
+.SH DESCRIPTION
+.HP
+\fIldns_rdf_size\fR()
+returns the size of the rdf.
+\.br
+\fB*rd\fR: the rdf to read from
+\.br
+Returns uint16_t with the size
+.PP
+.HP
+\fIldns_rdf_get_type\fR()
+returns the type of the rdf. We need to insert _get_
+here to prevent conflict the the rdf_type \%TYPE.
+\.br
+\fB*rd\fR: the rdf to read from
+\.br
+Returns ldns_rdf_type with the type
+.PP
+.HP
+\fIldns_rdf_data\fR()
+returns the data of the rdf.
+\.br
+\fB*rd\fR: the rdf to read from
+
+\.br
+Returns uint8_t* pointer to the rdf's data
+.PP
+.HP
+\fIldns_rdf_compare\fR()
+compares two rdf's on their wire formats.
+(To order dnames according to rfc4034, use ldns_dname_compare)
+\.br
+\fBrd1\fR: the first one
+\.br
+\fBrd2\fR: the second one
+\.br
+Returns 0 if equal
+\.br
+Returns -1 if rd1 comes before rd2
+\.br
+Returns +1 if rd2 comes before rd1
+.PP
+.SH AUTHOR
+The ldns team at NLnet Labs.
+
+.SH REPORTING BUGS
+Please report bugs to ldns-team@nlnetlabs.nl or in
+our bugzilla at
+http://www.nlnetlabs.nl/bugs/index.html
+
+.SH COPYRIGHT
+Copyright (c) 2004 - 2006 NLnet Labs.
+.PP
+Licensed under the BSD License. There is NO warranty; not even for
+MERCHANTABILITY or
+FITNESS FOR A PARTICULAR PURPOSE.
+
+.SH SEE ALSO
+\fIldns_rdf\fR.
+And \fBperldoc Net::DNS\fR, \fBRFC1034\fR,
+\fBRFC1035\fR, \fBRFC4033\fR, \fBRFC4034\fR and \fBRFC4035\fR.
+.SH REMARKS
+This manpage was automatically generated from the ldns source code.
diff --git a/doc/man/man3/ldns_rdf_type.3 b/doc/man/man3/ldns_rdf_type.3
new file mode 120000
index 000000000000..5e5b4d38b2ae
--- /dev/null
+++ b/doc/man/man3/ldns_rdf_type.3
@@ -0,0 +1 @@
+ldns_rdf.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_rr.3 b/doc/man/man3/ldns_rr.3
new file mode 100644
index 000000000000..aec28941b981
--- /dev/null
+++ b/doc/man/man3/ldns_rr.3
@@ -0,0 +1,623 @@
+.ad l
+.TH ldns 3 "30 May 2006"
+.SH NAME
+ldns_rr, ldns_rr_class, ldns_rr_type, ldns_rr_compress, ldns_rr_list \- types representing dns resource records
+
+.SH SYNOPSIS
+#include <stdint.h>
+.br
+#include <stdbool.h>
+.br
+.PP
+#include <ldns/ldns.h>
+.PP
+
+.SH DESCRIPTION
+.HP
+\fIldns_rr\fR
+.br
+Resource Record
+.br
+
+.br
+This is the basic DNS element that contains actual data
+.br
+
+.br
+From RFC1035:
+.br
+<pre>
+.br
+3.2.1. Format
+.br
+
+.br
+All RRs have the same top level format shown below:
+.br
+
+.br
+ 1 1 1 1 1 1
+.br
+ 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5
+.br
+ +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
+.br
+ | |
+.br
+ / /
+.br
+ / NAME /
+.br
+ | |
+.br
+ +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
+.br
+ | TYPE |
+.br
+ +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
+.br
+ | CLASS |
+.br
+ +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
+.br
+ | TTL |
+.br
+ | |
+.br
+ +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
+.br
+ | RDLENGTH |
+.br
+ +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--|
+.br
+ / RDATA /
+.br
+ / /
+.br
+ +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
+.br
+
+.br
+where:
+.br
+
+.br
+NAME an owner name, i.e., the name of the node to which this
+.br
+ resource record pertains.
+.br
+
+.br
+TYPE two octets containing one of the RR TYPE codes.
+.br
+
+.br
+CLASS two octets containing one of the RR CLASS codes.
+.br
+
+.br
+TTL a 32 bit signed integer that specifies the time interval
+.br
+ that the resource record may be cached before the source
+.br
+ of the information should again be consulted. Zero
+.br
+ values are interpreted to mean that the RR can only be
+.br
+ used for the transaction in progress, and should not be
+.br
+ cached. For example, SOA records are always distributed
+.br
+ with a zero TTL to prohibit caching. Zero values can
+.br
+ also be used for extremely volatile data.
+.br
+
+.br
+RDLENGTH an unsigned 16 bit integer that specifies the length in
+.br
+ octets of the RDATA field.
+.br
+
+.br
+RDATA a variable length string of octets that describes the
+.br
+ resource. The format of this information varies
+.br
+ according to the TYPE and CLASS of the resource record.
+.br
+</pre>
+.br
+
+.br
+The actual amount and type of rdata fields depend on the RR type of the
+.br
+RR, and can be found by using \\ref ldns_rr_descriptor functions.
+.br
+struct ldns_struct_rr
+.br
+{
+.br
+ \fBOwner name, uncompressed:\fR
+.br
+ ldns_rdf *_owner;
+.br
+ \fBTime to live:\fR
+.br
+ uint32_t _ttl;
+.br
+ \fBNumber of data fields:\fR
+.br
+ size_t _rd_count;
+.br
+ \fBthe type of the RR. A, MX etc.:\fR
+.br
+ ldns_rr_type _rr_type;
+.br
+ \fBClass of the resource record.:\fR
+.br
+ ldns_rr_class _rr_class;
+.br
+ /* everything in the rdata is in network order */
+.br
+ \fBThe array of rdata's:\fR
+.br
+ ldns_rdf **_rdata_fields;
+.br
+ /** question rr [it would be nicer if thous is after _rd_count]
+.br
+ ABI change: Fix this in next major release
+.br
+ */
+.br
+ bool _rr_question;
+.br
+};
+.br
+typedef struct ldns_struct_rr ldns_rr;
+.PP
+.HP
+\fIldns_rr_class\fR
+.br
+ The different RR classes.
+.br
+enum ldns_enum_rr_class
+.br
+{
+.br
+ \fBthe Internet:\fR
+.br
+ LDNS_RR_CLASS_IN = 1,
+.br
+ \fBChaos class:\fR
+.br
+ LDNS_RR_CLASS_CH = 3,
+.br
+ \fBHesiod (Dyer 87):\fR
+.br
+ LDNS_RR_CLASS_HS = 4,
+.br
+ \fBNone class, dynamic update:\fR
+.br
+ LDNS_RR_CLASS_NONE = 254,
+.br
+ \fBAny class:\fR
+.br
+ LDNS_RR_CLASS_ANY = 255,
+.br
+
+.br
+ LDNS_RR_CLASS_FIRST = 0,
+.br
+ LDNS_RR_CLASS_LAST = 65535,
+.br
+ LDNS_RR_CLASS_COUNT = LDNS_RR_CLASS_LAST - LDNS_RR_CLASS_FIRST + 1
+.br
+};
+.br
+typedef enum ldns_enum_rr_class ldns_rr_class;
+.PP
+.HP
+\fIldns_rr_type\fR
+.br
+The different RR types.
+.br
+enum ldns_enum_rr_type
+.br
+{
+.br
+ \fBa host address:\fR
+.br
+ LDNS_RR_TYPE_A = 1,
+.br
+ \fBan authoritative name server:\fR
+.br
+ LDNS_RR_TYPE_NS = 2,
+.br
+ \fBa mail destination (Obsolete - use MX):\fR
+.br
+ LDNS_RR_TYPE_MD = 3,
+.br
+ \fBa mail forwarder (Obsolete - use MX):\fR
+.br
+ LDNS_RR_TYPE_MF = 4,
+.br
+ \fBthe canonical name for an alias:\fR
+.br
+ LDNS_RR_TYPE_CNAME = 5,
+.br
+ \fBmarks the start of a zone of authority:\fR
+.br
+ LDNS_RR_TYPE_SOA = 6,
+.br
+ \fBa mailbox domain name (EXPERIMENTAL):\fR
+.br
+ LDNS_RR_TYPE_MB = 7,
+.br
+ \fBa mail group member (EXPERIMENTAL):\fR
+.br
+ LDNS_RR_TYPE_MG = 8,
+.br
+ \fBa mail rename domain name (EXPERIMENTAL):\fR
+.br
+ LDNS_RR_TYPE_MR = 9,
+.br
+ \fBa null RR (EXPERIMENTAL):\fR
+.br
+ LDNS_RR_TYPE_NULL = 10,
+.br
+ \fBa well known service description:\fR
+.br
+ LDNS_RR_TYPE_WKS = 11,
+.br
+ \fBa domain name pointer:\fR
+.br
+ LDNS_RR_TYPE_PTR = 12,
+.br
+ \fBhost information:\fR
+.br
+ LDNS_RR_TYPE_HINFO = 13,
+.br
+ \fBmailbox or mail list information:\fR
+.br
+ LDNS_RR_TYPE_MINFO = 14,
+.br
+ \fBmail exchange:\fR
+.br
+ LDNS_RR_TYPE_MX = 15,
+.br
+ \fBtext strings:\fR
+.br
+ LDNS_RR_TYPE_TXT = 16,
+.br
+ \fBRFC1183:\fR
+.br
+ LDNS_RR_TYPE_RP = 17,
+.br
+ \fBRFC1183:\fR
+.br
+ LDNS_RR_TYPE_AFSDB = 18,
+.br
+ \fBRFC1183:\fR
+.br
+ LDNS_RR_TYPE_X25 = 19,
+.br
+ \fBRFC1183:\fR
+.br
+ LDNS_RR_TYPE_ISDN = 20,
+.br
+ \fBRFC1183:\fR
+.br
+ LDNS_RR_TYPE_RT = 21,
+.br
+ \fBRFC1706:\fR
+.br
+ LDNS_RR_TYPE_NSAP = 22,
+.br
+ \fBRFC1348:\fR
+.br
+ LDNS_RR_TYPE_NSAP_PTR = 23,
+.br
+ \fB2535typecode:\fR
+.br
+ LDNS_RR_TYPE_SIG = 24,
+.br
+ \fB2535typecode:\fR
+.br
+ LDNS_RR_TYPE_KEY = 25,
+.br
+ \fBRFC2163:\fR
+.br
+ LDNS_RR_TYPE_PX = 26,
+.br
+ \fBRFC1712:\fR
+.br
+ LDNS_RR_TYPE_GPOS = 27,
+.br
+ \fBipv6 address:\fR
+.br
+ LDNS_RR_TYPE_AAAA = 28,
+.br
+ \fBLOC record RFC1876:\fR
+.br
+ LDNS_RR_TYPE_LOC = 29,
+.br
+ \fB2535typecode:\fR
+.br
+ LDNS_RR_TYPE_NXT = 30,
+.br
+ \fBdraft-ietf-nimrod-dns-01.txt:\fR
+.br
+ LDNS_RR_TYPE_EID = 31,
+.br
+ \fBdraft-ietf-nimrod-dns-01.txt:\fR
+.br
+ LDNS_RR_TYPE_NIMLOC = 32,
+.br
+ \fBSRV record RFC2782:\fR
+.br
+ LDNS_RR_TYPE_SRV = 33,
+.br
+ \fBhttp://www.jhsoft.com/rfc/af-saa-0069.000.rtf:\fR
+.br
+ LDNS_RR_TYPE_ATMA = 34,
+.br
+ \fBRFC2915:\fR
+.br
+ LDNS_RR_TYPE_NAPTR = 35,
+.br
+ \fBRFC2230:\fR
+.br
+ LDNS_RR_TYPE_KX = 36,
+.br
+ \fBRFC2538:\fR
+.br
+ LDNS_RR_TYPE_CERT = 37,
+.br
+ \fBRFC2874:\fR
+.br
+ LDNS_RR_TYPE_A6 = 38,
+.br
+ \fBRFC2672:\fR
+.br
+ LDNS_RR_TYPE_DNAME = 39,
+.br
+ \fBdnsind-kitchen-sink-02.txt:\fR
+.br
+ LDNS_RR_TYPE_SINK = 40,
+.br
+ \fBOPT record RFC 6891:\fR
+.br
+ LDNS_RR_TYPE_OPT = 41,
+.br
+ \fBRFC3123:\fR
+.br
+ LDNS_RR_TYPE_APL = 42,
+.br
+ \fBRFC4034, RFC3658:\fR
+.br
+ LDNS_RR_TYPE_DS = 43,
+.br
+ \fBSSH Key Fingerprint:\fR
+.br
+ LDNS_RR_TYPE_SSHFP = 44, /* RFC 4255 */
+.br
+ \fBIPsec Key:\fR
+.br
+ LDNS_RR_TYPE_IPSECKEY = 45, /* RFC 4025 */
+.br
+ \fBDNSSEC:\fR
+.br
+ LDNS_RR_TYPE_RRSIG = 46, /* RFC 4034 */
+.br
+ LDNS_RR_TYPE_NSEC = 47, /* RFC 4034 */
+.br
+ LDNS_RR_TYPE_DNSKEY = 48, /* RFC 4034 */
+.br
+
+.br
+ LDNS_RR_TYPE_DHCID = 49, /* RFC 4701 */
+.br
+ /* NSEC3 */
+.br
+ LDNS_RR_TYPE_NSEC3 = 50, /* RFC 5155 */
+.br
+ LDNS_RR_TYPE_NSEC3PARAM = 51, /* RFC 5155 */
+.br
+ LDNS_RR_TYPE_NSEC3PARAMS = 51,
+.br
+ LDNS_RR_TYPE_TLSA = 52, /* RFC 6698 */
+.br
+ LDNS_RR_TYPE_SMIMEA = 53, /* RFC 8162 */
+.br
+
+.br
+ LDNS_RR_TYPE_HIP = 55, /* RFC 5205 */
+.br
+
+.br
+ \fBdraft-reid-dnsext-zs:\fR
+.br
+ LDNS_RR_TYPE_NINFO = 56,
+.br
+ \fBdraft-reid-dnsext-rkey:\fR
+.br
+ LDNS_RR_TYPE_RKEY = 57,
+.br
+ \fBdraft-ietf-dnsop-trust-history:\fR
+.br
+ LDNS_RR_TYPE_TALINK = 58,
+.br
+ LDNS_RR_TYPE_CDS = 59, /* RFC 7344 */
+.br
+ LDNS_RR_TYPE_CDNSKEY = 60, /* RFC 7344 */
+.br
+ LDNS_RR_TYPE_OPENPGPKEY = 61, /* RFC 7929 */
+.br
+ LDNS_RR_TYPE_CSYNC = 62, /* RFC 7477 */
+.br
+ LDNS_RR_TYPE_ZONEMD = 63, /* draft-ietf-dnsop-dns-zone-digest */
+.br
+ LDNS_RR_TYPE_SVCB = 64, /* draft-ietf-dnsop-svcb-https */
+.br
+ LDNS_RR_TYPE_HTTPS = 65, /* draft-ietf-dnsop-svcb-https */
+.br
+
+.br
+ LDNS_RR_TYPE_SPF = 99, /* RFC 4408 */
+.br
+
+.br
+ LDNS_RR_TYPE_UINFO = 100,
+.br
+ LDNS_RR_TYPE_UID = 101,
+.br
+ LDNS_RR_TYPE_GID = 102,
+.br
+ LDNS_RR_TYPE_UNSPEC = 103,
+.br
+
+.br
+ LDNS_RR_TYPE_NID = 104, /* RFC 6742 */
+.br
+ LDNS_RR_TYPE_L32 = 105, /* RFC 6742 */
+.br
+ LDNS_RR_TYPE_L64 = 106, /* RFC 6742 */
+.br
+ LDNS_RR_TYPE_LP = 107, /* RFC 6742 */
+.br
+
+.br
+ LDNS_RR_TYPE_EUI48 = 108, /* RFC 7043 */
+.br
+ LDNS_RR_TYPE_EUI64 = 109, /* RFC 7043 */
+.br
+
+.br
+ LDNS_RR_TYPE_TKEY = 249, /* RFC 2930 */
+.br
+ LDNS_RR_TYPE_TSIG = 250,
+.br
+ LDNS_RR_TYPE_IXFR = 251,
+.br
+ LDNS_RR_TYPE_AXFR = 252,
+.br
+ \fBA request for mailbox-related records (MB, MG or MR):\fR
+.br
+ LDNS_RR_TYPE_MAILB = 253,
+.br
+ \fBA request for mail agent RRs (Obsolete - see MX):\fR
+.br
+ LDNS_RR_TYPE_MAILA = 254,
+.br
+ \fBany type (wildcard):\fR
+.br
+ LDNS_RR_TYPE_ANY = 255,
+.br
+ LDNS_RR_TYPE_URI = 256, /* RFC 7553 */
+.br
+ LDNS_RR_TYPE_CAA = 257, /* RFC 6844 */
+.br
+ LDNS_RR_TYPE_AVC = 258, /* Cisco's DNS-AS RR, see www.dns-as.org */
+.br
+ LDNS_RR_TYPE_DOA = 259, /* draft-durand-doa-over-dns */
+.br
+
+.br
+ \fBdraft-ietf-mboned-driad-amt-discovery *:\fR
+.br
+ LDNS_RR_TYPE_AMTRELAY = 260,
+.br
+
+.br
+ \fBDNSSEC Trust Authorities:\fR
+.br
+ LDNS_RR_TYPE_TA = 32768,
+.br
+ /* RFC 4431, 5074, DNSSEC Lookaside Validation */
+.br
+ LDNS_RR_TYPE_DLV = 32769,
+.br
+
+.br
+ /* type codes from nsec3 experimental phase
+.br
+ LDNS_RR_TYPE_NSEC3 = 65324,
+.br
+ LDNS_RR_TYPE_NSEC3PARAMS = 65325, */
+.br
+ LDNS_RR_TYPE_FIRST = 0,
+.br
+ LDNS_RR_TYPE_LAST = 65535,
+.br
+ LDNS_RR_TYPE_COUNT = LDNS_RR_TYPE_LAST - LDNS_RR_TYPE_FIRST + 1
+.br
+};
+.br
+typedef enum ldns_enum_rr_type ldns_rr_type;
+.PP
+.HP
+\fIldns_rr_compress\fR
+.br
+ Used to specify whether compression is allowed.
+.br
+enum ldns_enum_rr_compress
+.br
+{
+.br
+ \fBcompression is allowed:\fR
+.br
+ LDNS_RR_COMPRESS,
+.br
+ LDNS_RR_NO_COMPRESS
+.br
+};
+.br
+typedef enum ldns_enum_rr_compress ldns_rr_compress;
+.PP
+.HP
+\fIldns_rr_list\fR
+.br
+List or Set of Resource Records
+.br
+
+.br
+Contains a list of rr's <br>
+.br
+No official RFC-like checks are made
+.br
+struct ldns_struct_rr_list
+.br
+{
+.br
+ size_t _rr_count;
+.br
+ size_t _rr_capacity;
+.br
+ ldns_rr **_rrs;
+.br
+};
+.br
+typedef struct ldns_struct_rr_list ldns_rr_list;
+.PP
+.SH AUTHOR
+The ldns team at NLnet Labs.
+
+.SH REPORTING BUGS
+Please report bugs to ldns-team@nlnetlabs.nl or in
+our bugzilla at
+http://www.nlnetlabs.nl/bugs/index.html
+
+.SH COPYRIGHT
+Copyright (c) 2004 - 2006 NLnet Labs.
+.PP
+Licensed under the BSD License. There is NO warranty; not even for
+MERCHANTABILITY or
+FITNESS FOR A PARTICULAR PURPOSE.
+
+.SH SEE ALSO
+\fIldns_rr_new\fR, \fIldns_rr_new_frm_type\fR, \fIldns_rr_new_frm_str\fR, \fIldns_rr_new_frm_fp\fR, \fIldns_rr_free\fR, \fIldns_rr_print\fR, \fIldns_rr_set_owner\fR, \fIldns_rr_set_ttl\fR, \fIldns_rr_set_type\fR, \fIldns_rr_set_rd_count\fR, \fIldns_rr_set_class\fR, \fIldns_rr_set_rdf\fR, \fIldns_rr_push_rdf\fR, \fIldns_rr_pop_rdf\fR, \fIldns_rr_rdf\fR, \fIldns_rr_owner\fR, \fIldns_rr_rd_count\fR, \fIldns_rr_ttl\fR, \fIldns_rr_get_class\fR, \fIldns_rr_list_rr_count\fR, \fIldns_rr_list_set_rr_count\fR, \fIldns_rr_list_new\fR, \fIldns_rr_list_free\fR, \fIldns_rr_list_cat\fR, \fIldns_rr_list_push_rr\fR, \fIldns_rr_list_pop_rr\fR, \fIldns_is_rrset\fR, \fIldns_rr_set_push_rr\fR, \fIldns_rr_set_pop_rr\fR, \fIldns_get_rr_class_by_name\fR, \fIldns_get_rr_type_by_name\fR, \fIldns_rr_list_clone\fR, \fIldns_rr_list_sort\fR, \fIldns_rr_compare\fR, \fIldns_rr_compare_ds\fR, \fIldns_rr_uncompressed_size\fR, \fIldns_rr2canonical\fR, \fIldns_rr_label_count\fR, \fIldns_is_rrset\fR, \fIldns_rr_descriptor\fR, \fIldns_rr_descript\fR.
+And \fBperldoc Net::DNS\fR, \fBRFC1034\fR,
+\fBRFC1035\fR, \fBRFC4033\fR, \fBRFC4034\fR and \fBRFC4035\fR.
+.SH REMARKS
+This manpage was automatically generated from the ldns source code.
diff --git a/doc/man/man3/ldns_rr2buffer_str.3 b/doc/man/man3/ldns_rr2buffer_str.3
new file mode 120000
index 000000000000..7624fd4a5766
--- /dev/null
+++ b/doc/man/man3/ldns_rr2buffer_str.3
@@ -0,0 +1 @@
+ldns_pkt2buffer_str.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_rr2buffer_wire.3 b/doc/man/man3/ldns_rr2buffer_wire.3
new file mode 120000
index 000000000000..7624fd4a5766
--- /dev/null
+++ b/doc/man/man3/ldns_rr2buffer_wire.3
@@ -0,0 +1 @@
+ldns_pkt2buffer_str.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_rr2canonical.3 b/doc/man/man3/ldns_rr2canonical.3
new file mode 100644
index 000000000000..0003feae7ac0
--- /dev/null
+++ b/doc/man/man3/ldns_rr2canonical.3
@@ -0,0 +1,46 @@
+.ad l
+.TH ldns 3 "30 May 2006"
+.SH NAME
+ldns_rr2canonical \- canonicalize a RR
+
+.SH SYNOPSIS
+#include <stdint.h>
+.br
+#include <stdbool.h>
+.br
+.PP
+#include <ldns/ldns.h>
+.PP
+void ldns_rr2canonical(ldns_rr *rr);
+.PP
+
+.SH DESCRIPTION
+.HP
+\fIldns_rr2canonical\fR()
+converts each dname in a rr to its canonical form.
+\.br
+\fBrr\fR: the rr to work on
+\.br
+Returns void
+.PP
+.SH AUTHOR
+The ldns team at NLnet Labs.
+
+.SH REPORTING BUGS
+Please report bugs to ldns-team@nlnetlabs.nl or in
+our bugzilla at
+http://www.nlnetlabs.nl/bugs/index.html
+
+.SH COPYRIGHT
+Copyright (c) 2004 - 2006 NLnet Labs.
+.PP
+Licensed under the BSD License. There is NO warranty; not even for
+MERCHANTABILITY or
+FITNESS FOR A PARTICULAR PURPOSE.
+
+.SH SEE ALSO
+\fIldns_rr\fR, \fIldns_rr_list\fR.
+And \fBperldoc Net::DNS\fR, \fBRFC1034\fR,
+\fBRFC1035\fR, \fBRFC4033\fR, \fBRFC4034\fR and \fBRFC4035\fR.
+.SH REMARKS
+This manpage was automatically generated from the ldns source code.
diff --git a/doc/man/man3/ldns_rr2str.3 b/doc/man/man3/ldns_rr2str.3
new file mode 100644
index 000000000000..afe07b1424b3
--- /dev/null
+++ b/doc/man/man3/ldns_rr2str.3
@@ -0,0 +1,101 @@
+.ad l
+.TH ldns 3 "30 May 2006"
+.SH NAME
+ldns_rr2str, ldns_pkt2str, ldns_rdf2str, ldns_rr_list2str, ldns_key2str \- functions for conversions to string
+
+.SH SYNOPSIS
+#include <stdint.h>
+.br
+#include <stdbool.h>
+.br
+.PP
+#include <ldns/ldns.h>
+.PP
+char* ldns_rr2str(const ldns_rr *rr);
+.PP
+char* ldns_pkt2str(const ldns_pkt *pkt);
+.PP
+char* ldns_rdf2str(const ldns_rdf *rdf);
+.PP
+char* ldns_rr_list2str(const ldns_rr_list *rr_list);
+.PP
+char* ldns_key2str(const ldns_key *k);
+.PP
+
+.SH DESCRIPTION
+.HP
+\fIldns_rr2str\fR()
+Converts the data in the resource record to presentation format and
+returns that as a char *.
+Remember to free it.
+
+\.br
+\fBrr\fR: The rdata field to convert
+\.br
+Returns null terminated char * data, or \%NULL on error
+.PP
+.HP
+\fIldns_pkt2str\fR()
+Converts the data in the \%DNS packet to presentation format and
+returns that as a char *.
+Remember to free it.
+
+\.br
+\fBpkt\fR: The rdata field to convert
+\.br
+Returns null terminated char * data, or \%NULL on error
+.PP
+.HP
+\fIldns_rdf2str\fR()
+Converts the data in the rdata field to presentation format and
+returns that as a char *.
+Remember to free it.
+
+\.br
+\fBrdf\fR: The rdata field to convert
+\.br
+Returns null terminated char * data, or \%NULL on error
+.PP
+.HP
+\fIldns_rr_list2str\fR()
+Converts a list of resource records to presentation format
+and returns that as a char *.
+Remember to free it.
+
+\.br
+\fBrr_list\fR: the rr_list to convert to text
+\.br
+Returns null terminated char * data, or \%NULL on error
+.PP
+.HP
+\fIldns_key2str\fR()
+Converts a private key to the test presentation fmt and
+returns that as a char *.
+Remember to free it.
+
+\.br
+\fBk\fR: the key to convert to text
+\.br
+Returns null terminated char * data, or \%NULL on error
+.PP
+.SH AUTHOR
+The ldns team at NLnet Labs.
+
+.SH REPORTING BUGS
+Please report bugs to ldns-team@nlnetlabs.nl or in
+our bugzilla at
+http://www.nlnetlabs.nl/bugs/index.html
+
+.SH COPYRIGHT
+Copyright (c) 2004 - 2006 NLnet Labs.
+.PP
+Licensed under the BSD License. There is NO warranty; not even for
+MERCHANTABILITY or
+FITNESS FOR A PARTICULAR PURPOSE.
+
+.SH SEE ALSO
+\fIldns_rr_print\fR, \fIldns_rdf_print\fR, \fIldns_pkt_print\fR, \fIldns_rr_list_print\fR, \fIldns_resolver_print\fR, \fIldns_zone_print\fR.
+And \fBperldoc Net::DNS\fR, \fBRFC1034\fR,
+\fBRFC1035\fR, \fBRFC4033\fR, \fBRFC4034\fR and \fBRFC4035\fR.
+.SH REMARKS
+This manpage was automatically generated from the ldns source code.
diff --git a/doc/man/man3/ldns_rr2wire.3 b/doc/man/man3/ldns_rr2wire.3
new file mode 100644
index 000000000000..3f6c4bf17ecc
--- /dev/null
+++ b/doc/man/man3/ldns_rr2wire.3
@@ -0,0 +1,89 @@
+.ad l
+.TH ldns 3 "30 May 2006"
+.SH NAME
+ldns_rr2wire, ldns_pkt2wire, ldns_rdf2wire \- conversion functions
+
+.SH SYNOPSIS
+#include <stdint.h>
+.br
+#include <stdbool.h>
+.br
+.PP
+#include <ldns/ldns.h>
+.PP
+ldns_status ldns_rr2wire(uint8_t **dest, const ldns_rr *rr, int section, size_t *size);
+.PP
+ldns_status ldns_pkt2wire(uint8_t **dest, const ldns_pkt *p, size_t *size);
+.PP
+ldns_status ldns_rdf2wire(uint8_t **dest, const ldns_rdf *rdf, size_t *size);
+.PP
+
+.SH DESCRIPTION
+.HP
+\fIldns_rr2wire\fR()
+Allocates an array of uint8_t at dest, and puts the wireformat of the
+given rr in that array. The result_size value contains the
+length of the array, if it succeeds, and 0 otherwise (in which case
+the function also returns \%NULL)
+
+If the section argument is \%LDNS_SECTION_QUESTION, data like ttl and rdata
+are not put into the result
+
+\.br
+\fBdest\fR: pointer to the array of bytes to be created
+\.br
+\fBrr\fR: the rr to convert
+\.br
+\fBsection\fR: the rr section, determines how the rr is written.
+\.br
+\fBsize\fR: the size of the converted result
+.PP
+.HP
+\fIldns_pkt2wire\fR()
+Allocates an array of uint8_t at dest, and puts the wireformat of the
+given packet in that array. The result_size value contains the
+length of the array, if it succeeds, and 0 otherwise (in which case
+the function also returns \%NULL)
+
+\.br
+\fBdest\fR: pointer to the array of bytes to be created
+\.br
+\fBp\fR: the packet to convert
+\.br
+\fBsize\fR: the size of the converted result
+.PP
+.HP
+\fIldns_rdf2wire\fR()
+Allocates an array of uint8_t at dest, and puts the wireformat of the
+given rdf in that array. The result_size value contains the
+length of the array, if it succeeds, and 0 otherwise (in which case
+the function also returns \%NULL)
+
+\.br
+\fBdest\fR: pointer to the array of bytes to be created
+\.br
+\fBrdf\fR: the rdata field to convert
+\.br
+\fBsize\fR: the size of the converted result
+.PP
+.SH AUTHOR
+The ldns team at NLnet Labs.
+
+.SH REPORTING BUGS
+Please report bugs to ldns-team@nlnetlabs.nl or in
+our bugzilla at
+http://www.nlnetlabs.nl/bugs/index.html
+
+.SH COPYRIGHT
+Copyright (c) 2004 - 2006 NLnet Labs.
+.PP
+Licensed under the BSD License. There is NO warranty; not even for
+MERCHANTABILITY or
+FITNESS FOR A PARTICULAR PURPOSE.
+
+.SH SEE ALSO
+\fIldns_wire2rr\fR, \fIldns_wire2pkt\fR, \fIldns_wire2rdf\fR.
+And \fBperldoc Net::DNS\fR, \fBRFC1034\fR,
+\fBRFC1035\fR, \fBRFC4033\fR, \fBRFC4034\fR and \fBRFC4035\fR.
+.SH REMARKS
+This manpage was automatically generated from the ldns source code.
diff --git a/doc/man/man3/ldns_rr_class.3 b/doc/man/man3/ldns_rr_class.3
new file mode 120000
index 000000000000..270bcc371e2c
--- /dev/null
+++ b/doc/man/man3/ldns_rr_class.3
@@ -0,0 +1 @@
+ldns_rr.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_rr_compare.3 b/doc/man/man3/ldns_rr_compare.3
new file mode 100644
index 000000000000..3ce5b43dc236
--- /dev/null
+++ b/doc/man/man3/ldns_rr_compare.3
@@ -0,0 +1,64 @@
+.ad l
+.TH ldns 3 "30 May 2006"
+.SH NAME
+ldns_rr_compare, ldns_rr_compare_ds \- compare a ldns_rr
+
+.SH SYNOPSIS
+#include <stdint.h>
+.br
+#include <stdbool.h>
+.br
+.PP
+#include <ldns/ldns.h>
+.PP
+int ldns_rr_compare(const ldns_rr *rr1, const ldns_rr *rr2);
+.PP
+bool ldns_rr_compare_ds(const ldns_rr *rr1, const ldns_rr *rr2);
+.PP
+
+.SH DESCRIPTION
+.HP
+\fIldns_rr_compare\fR()
+compares two rrs. The \%TTL is not looked at.
+\.br
+\fBrr1\fR: the first one
+\.br
+\fBrr2\fR: the second one
+\.br
+Returns 0 if equal
+-1 if rr1 comes before rr2
++1 if rr2 comes before rr1
+.PP
+.HP
+\fIldns_rr_compare_ds\fR()
+returns true of the given rr's are equal.
+Also returns true if one record is a \%DS that represents the
+same \%DNSKEY record as the other record
+\.br
+\fBrr1\fR: the first rr
+\.br
+\fBrr2\fR: the second rr
+\.br
+Returns true if equal otherwise false
+.PP
+.SH AUTHOR
+The ldns team at NLnet Labs.
+
+.SH REPORTING BUGS
+Please report bugs to ldns-team@nlnetlabs.nl or in
+our bugzilla at
+http://www.nlnetlabs.nl/bugs/index.html
+
+.SH COPYRIGHT
+Copyright (c) 2004 - 2006 NLnet Labs.
+.PP
+Licensed under the BSD License. There is NO warranty; not even for
+MERCHANTABILITY or
+FITNESS FOR A PARTICULAR PURPOSE.
+
+.SH SEE ALSO
+\fIldns_rr\fR, \fIldns_rr_list\fR.
+And \fBperldoc Net::DNS\fR, \fBRFC1034\fR,
+\fBRFC1035\fR, \fBRFC4033\fR, \fBRFC4034\fR and \fBRFC4035\fR.
+.SH REMARKS
+This manpage was automatically generated from the ldns source code.
diff --git a/doc/man/man3/ldns_rr_compare_ds.3 b/doc/man/man3/ldns_rr_compare_ds.3
new file mode 120000
index 000000000000..1fe5664625cd
--- /dev/null
+++ b/doc/man/man3/ldns_rr_compare_ds.3
@@ -0,0 +1 @@
+ldns_rr_compare.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_rr_compress.3 b/doc/man/man3/ldns_rr_compress.3
new file mode 120000
index 000000000000..270bcc371e2c
--- /dev/null
+++ b/doc/man/man3/ldns_rr_compress.3
@@ -0,0 +1 @@
+ldns_rr.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_rr_descript.3 b/doc/man/man3/ldns_rr_descript.3
new file mode 120000
index 000000000000..596e1e9e3822
--- /dev/null
+++ b/doc/man/man3/ldns_rr_descript.3
@@ -0,0 +1 @@
+ldns_rr_descriptor.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_rr_descriptor.3 b/doc/man/man3/ldns_rr_descriptor.3
new file mode 100644
index 000000000000..64055a995589
--- /dev/null
+++ b/doc/man/man3/ldns_rr_descriptor.3
@@ -0,0 +1,131 @@
+.ad l
+.TH ldns 3 "30 May 2006"
+.SH NAME
+ldns_rr_descriptor, ldns_rr_descript, ldns_rr_descriptor_minimum, ldns_rr_descriptor_maximum, ldns_rr_descriptor_field_type \- rdata field descriptors
+
+.SH SYNOPSIS
+#include <stdint.h>
+.br
+#include <stdbool.h>
+.br
+.PP
+#include <ldns/ldns.h>
+.PP
+const ldns_rr_descriptor* ldns_rr_descript(uint16_t type);
+.PP
+size_t ldns_rr_descriptor_minimum(const ldns_rr_descriptor *descriptor);
+.PP
+size_t ldns_rr_descriptor_maximum(const ldns_rr_descriptor *descriptor);
+.PP
+ldns_rdf_type ldns_rr_descriptor_field_type(const ldns_rr_descriptor *descriptor, size_t field);
+.PP
+
+.SH DESCRIPTION
+.HP
+\fIldns_rr_descriptor\fR
+.br
+Contains all information about resource record types.
+.br
+
+.br
+This structure contains, for all rr types, the rdata fields that are defined.
+.br
+struct ldns_struct_rr_descriptor
+.br
+{
+.br
+ \fBType of the RR that is described here:\fR
+.br
+ ldns_rr_type _type;
+.br
+ \fBTextual name of the RR type.:\fR
+.br
+ const char *_name;
+.br
+ \fBMinimum number of rdata fields in the RRs of this type.:\fR
+.br
+ uint8_t _minimum;
+.br
+ \fBMaximum number of rdata fields in the RRs of this type.:\fR
+.br
+ uint8_t _maximum;
+.br
+ \fBWireformat specification for the rr, i.e. the types of rdata fields in their respective order.:\fR
+.br
+ const ldns_rdf_type *_wireformat;
+.br
+ \fBSpecial rdf types:\fR
+.br
+ ldns_rdf_type _variable;
+.br
+ \fBSpecifies whether compression can be used for dnames in this RR type.:\fR
+.br
+ ldns_rr_compress _compress;
+.br
+ \fBThe number of DNAMEs in the _wireformat string, for parsing.:\fR
+.br
+ uint8_t _dname_count;
+.br
+};
+.br
+typedef struct ldns_struct_rr_descriptor ldns_rr_descriptor;
+.PP
+.HP
+\fIldns_rr_descript\fR()
+returns the resource record descriptor for the given rr type.
+
+\.br
+\fBtype\fR: the type value of the rr type
+\.br
+Returns the ldns_rr_descriptor for this type
+.PP
+.HP
+\fIldns_rr_descriptor_minimum\fR()
+returns the minimum number of rdata fields of the rr type this descriptor describes.
+
+\.br
+\fBdescriptor\fR: for an rr type
+\.br
+Returns the minimum number of rdata fields
+.PP
+.HP
+\fIldns_rr_descriptor_maximum\fR()
+returns the maximum number of rdata fields of the rr type this descriptor describes.
+
+\.br
+\fBdescriptor\fR: for an rr type
+\.br
+Returns the maximum number of rdata fields
+.PP
+.HP
+\fIldns_rr_descriptor_field_type\fR()
+returns the rdf type for the given rdata field number of the rr type for the given descriptor.
+
+\.br
+\fBdescriptor\fR: for an rr type
+\.br
+\fBfield\fR: the field number
+\.br
+Returns the rdf type for the field
+.PP
+.SH AUTHOR
+The ldns team at NLnet Labs.
+
+.SH REPORTING BUGS
+Please report bugs to ldns-team@nlnetlabs.nl or in
+our bugzilla at
+http://www.nlnetlabs.nl/bugs/index.html
+
+.SH COPYRIGHT
+Copyright (c) 2004 - 2006 NLnet Labs.
+.PP
+Licensed under the BSD License. There is NO warranty; not even for
+MERCHANTABILITY or
+FITNESS FOR A PARTICULAR PURPOSE.
+
+.SH SEE ALSO
+\fIldns_rr\fR, \fIldns_rdf\fR.
+And \fBperldoc Net::DNS\fR, \fBRFC1034\fR,
+\fBRFC1035\fR, \fBRFC4033\fR, \fBRFC4034\fR and \fBRFC4035\fR.
+.SH REMARKS
+This manpage was automatically generated from the ldns source code.
diff --git a/doc/man/man3/ldns_rr_descriptor_field_type.3 b/doc/man/man3/ldns_rr_descriptor_field_type.3
new file mode 120000
index 000000000000..596e1e9e3822
--- /dev/null
+++ b/doc/man/man3/ldns_rr_descriptor_field_type.3
@@ -0,0 +1 @@
+ldns_rr_descriptor.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_rr_descriptor_maximum.3 b/doc/man/man3/ldns_rr_descriptor_maximum.3
new file mode 120000
index 000000000000..596e1e9e3822
--- /dev/null
+++ b/doc/man/man3/ldns_rr_descriptor_maximum.3
@@ -0,0 +1 @@
+ldns_rr_descriptor.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_rr_descriptor_minimum.3 b/doc/man/man3/ldns_rr_descriptor_minimum.3
new file mode 120000
index 000000000000..596e1e9e3822
--- /dev/null
+++ b/doc/man/man3/ldns_rr_descriptor_minimum.3
@@ -0,0 +1 @@
+ldns_rr_descriptor.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_rr_dnskey_algorithm.3 b/doc/man/man3/ldns_rr_dnskey_algorithm.3
new file mode 120000
index 000000000000..eb729bb85e0b
--- /dev/null
+++ b/doc/man/man3/ldns_rr_dnskey_algorithm.3
@@ -0,0 +1 @@
+ldns_rr_dnskey_flags.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_rr_dnskey_flags.3 b/doc/man/man3/ldns_rr_dnskey_flags.3
new file mode 100644
index 000000000000..432629f611a4
--- /dev/null
+++ b/doc/man/man3/ldns_rr_dnskey_flags.3
@@ -0,0 +1,124 @@
+.ad l
+.TH ldns 3 "30 May 2006"
+.SH NAME
+ldns_rr_dnskey_flags, ldns_rr_dnskey_set_flags, ldns_rr_dnskey_protocol, ldns_rr_dnskey_set_protocol, ldns_rr_dnskey_algorithm, ldns_rr_dnskey_set_algorithm, ldns_rr_dnskey_key, ldns_rr_dnskey_set_key \- get and set DNSKEY RR rdata fields
+
+.SH SYNOPSIS
+#include <stdint.h>
+.br
+#include <stdbool.h>
+.br
+.PP
+#include <ldns/ldns.h>
+.PP
+ldns_rdf* ldns_rr_dnskey_flags(const ldns_rr *r);
+.PP
+bool ldns_rr_dnskey_set_flags(ldns_rr *r, ldns_rdf *f);
+.PP
+ldns_rdf* ldns_rr_dnskey_protocol(const ldns_rr *r);
+.PP
+bool ldns_rr_dnskey_set_protocol(ldns_rr *r, ldns_rdf *f);
+.PP
+ldns_rdf* ldns_rr_dnskey_algorithm(const ldns_rr *r);
+.PP
+bool ldns_rr_dnskey_set_algorithm(ldns_rr *r, ldns_rdf *f);
+.PP
+ldns_rdf* ldns_rr_dnskey_key(const ldns_rr *r);
+.PP
+bool ldns_rr_dnskey_set_key(ldns_rr *r, ldns_rdf *f);
+.PP
+
+.SH DESCRIPTION
+.HP
+\fIldns_rr_dnskey_flags\fR()
+returns the flags of a \%LDNS_RR_TYPE_DNSKEY rr
+\.br
+\fBr\fR: the resource record
+\.br
+Returns a ldns_rdf* with the flags or \%NULL on failure
+.PP
+.HP
+\fIldns_rr_dnskey_set_flags\fR()
+sets the flags of a \%LDNS_RR_TYPE_DNSKEY rr
+\.br
+\fBr\fR: the rr to use
+\.br
+\fBf\fR: the flags to set
+\.br
+Returns true on success, false otherwise
+.PP
+.HP
+\fIldns_rr_dnskey_protocol\fR()
+returns the protocol of a \%LDNS_RR_TYPE_DNSKEY rr
+\.br
+\fBr\fR: the resource record
+\.br
+Returns a ldns_rdf* with the protocol or \%NULL on failure
+.PP
+.HP
+\fIldns_rr_dnskey_set_protocol\fR()
+sets the protocol of a \%LDNS_RR_TYPE_DNSKEY rr
+\.br
+\fBr\fR: the rr to use
+\.br
+\fBf\fR: the protocol to set
+\.br
+Returns true on success, false otherwise
+.PP
+.HP
+\fIldns_rr_dnskey_algorithm\fR()
+returns the algorithm of a \%LDNS_RR_TYPE_DNSKEY rr
+\.br
+\fBr\fR: the resource record
+\.br
+Returns a ldns_rdf* with the algorithm or \%NULL on failure
+.PP
+.HP
+\fIldns_rr_dnskey_set_algorithm\fR()
+sets the algorithm of a \%LDNS_RR_TYPE_DNSKEY rr
+\.br
+\fBr\fR: the rr to use
+\.br
+\fBf\fR: the algorithm to set
+\.br
+Returns true on success, false otherwise
+.PP
+.HP
+\fIldns_rr_dnskey_key\fR()
+returns the key data of a \%LDNS_RR_TYPE_DNSKEY rr
+\.br
+\fBr\fR: the resource record
+\.br
+Returns a ldns_rdf* with the key data or \%NULL on failure
+.PP
+.HP
+\fIldns_rr_dnskey_set_key\fR()
+sets the key data of a \%LDNS_RR_TYPE_DNSKEY rr
+\.br
+\fBr\fR: the rr to use
+\.br
+\fBf\fR: the key data to set
+\.br
+Returns true on success, false otherwise
+.PP
+.SH AUTHOR
+The ldns team at NLnet Labs.
+
+.SH REPORTING BUGS
+Please report bugs to ldns-team@nlnetlabs.nl or in
+our bugzilla at
+http://www.nlnetlabs.nl/bugs/index.html
+
+.SH COPYRIGHT
+Copyright (c) 2004 - 2006 NLnet Labs.
+.PP
+Licensed under the BSD License. There is NO warranty; not even for
+MERCHANTABILITY or
+FITNESS FOR A PARTICULAR PURPOSE.
+
+.SH SEE ALSO
+\fIldns_rr\fR.
+And \fBperldoc Net::DNS\fR, \fBRFC1034\fR,
+\fBRFC1035\fR, \fBRFC4033\fR, \fBRFC4034\fR and \fBRFC4035\fR.
+.SH REMARKS
+This manpage was automatically generated from the ldns source code.
diff --git a/doc/man/man3/ldns_rr_dnskey_key.3 b/doc/man/man3/ldns_rr_dnskey_key.3
new file mode 120000
index 000000000000..eb729bb85e0b
--- /dev/null
+++ b/doc/man/man3/ldns_rr_dnskey_key.3
@@ -0,0 +1 @@
+ldns_rr_dnskey_flags.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_rr_dnskey_protocol.3 b/doc/man/man3/ldns_rr_dnskey_protocol.3
new file mode 120000
index 000000000000..eb729bb85e0b
--- /dev/null
+++ b/doc/man/man3/ldns_rr_dnskey_protocol.3
@@ -0,0 +1 @@
+ldns_rr_dnskey_flags.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_rr_dnskey_set_algorithm.3 b/doc/man/man3/ldns_rr_dnskey_set_algorithm.3
new file mode 120000
index 000000000000..eb729bb85e0b
--- /dev/null
+++ b/doc/man/man3/ldns_rr_dnskey_set_algorithm.3
@@ -0,0 +1 @@
+ldns_rr_dnskey_flags.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_rr_dnskey_set_flags.3 b/doc/man/man3/ldns_rr_dnskey_set_flags.3
new file mode 120000
index 000000000000..eb729bb85e0b
--- /dev/null
+++ b/doc/man/man3/ldns_rr_dnskey_set_flags.3
@@ -0,0 +1 @@
+ldns_rr_dnskey_flags.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_rr_dnskey_set_key.3 b/doc/man/man3/ldns_rr_dnskey_set_key.3
new file mode 120000
index 000000000000..eb729bb85e0b
--- /dev/null
+++ b/doc/man/man3/ldns_rr_dnskey_set_key.3
@@ -0,0 +1 @@
+ldns_rr_dnskey_flags.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_rr_dnskey_set_protocol.3 b/doc/man/man3/ldns_rr_dnskey_set_protocol.3
new file mode 120000
index 000000000000..eb729bb85e0b
--- /dev/null
+++ b/doc/man/man3/ldns_rr_dnskey_set_protocol.3
@@ -0,0 +1 @@
+ldns_rr_dnskey_flags.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_rr_free.3 b/doc/man/man3/ldns_rr_free.3
new file mode 120000
index 000000000000..b5c80ecde471
--- /dev/null
+++ b/doc/man/man3/ldns_rr_free.3
@@ -0,0 +1 @@
+ldns_rr_new.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_rr_get_class.3 b/doc/man/man3/ldns_rr_get_class.3
new file mode 120000
index 000000000000..7ac87b76db7c
--- /dev/null
+++ b/doc/man/man3/ldns_rr_get_class.3
@@ -0,0 +1 @@
+ldns_rr_rdf.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_rr_label_count.3 b/doc/man/man3/ldns_rr_label_count.3
new file mode 100644
index 000000000000..61cf8e86d972
--- /dev/null
+++ b/doc/man/man3/ldns_rr_label_count.3
@@ -0,0 +1,46 @@
+.ad l
+.TH ldns 3 "30 May 2006"
+.SH NAME
+ldns_rr_label_count \- return ownername label count
+
+.SH SYNOPSIS
+#include <stdint.h>
+.br
+#include <stdbool.h>
+.br
+.PP
+#include <ldns/ldns.h>
+.PP
+uint8_t ldns_rr_label_count(const ldns_rr *rr);
+.PP
+
+.SH DESCRIPTION
+.HP
+\fIldns_rr_label_count\fR()
+counts the number of labels of the ownername.
+\.br
+\fBrr\fR: count the labels of this rr
+\.br
+Returns the number of labels
+.PP
+.SH AUTHOR
+The ldns team at NLnet Labs.
+
+.SH REPORTING BUGS
+Please report bugs to ldns-team@nlnetlabs.nl or in
+our bugzilla at
+http://www.nlnetlabs.nl/bugs/index.html
+
+.SH COPYRIGHT
+Copyright (c) 2004 - 2006 NLnet Labs.
+.PP
+Licensed under the BSD License. There is NO warranty; not even for
+MERCHANTABILITY or
+FITNESS FOR A PARTICULAR PURPOSE.
+
+.SH SEE ALSO
+\fIldns_rr\fR, \fIldns_rr_list\fR.
+And \fBperldoc Net::DNS\fR, \fBRFC1034\fR,
+\fBRFC1035\fR, \fBRFC4033\fR, \fBRFC4034\fR and \fBRFC4035\fR.
+.SH REMARKS
+This manpage was automatically generated from the ldns source code.
diff --git a/doc/man/man3/ldns_rr_list.3 b/doc/man/man3/ldns_rr_list.3
new file mode 120000
index 000000000000..270bcc371e2c
--- /dev/null
+++ b/doc/man/man3/ldns_rr_list.3
@@ -0,0 +1 @@
+ldns_rr.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_rr_list2buffer_str.3 b/doc/man/man3/ldns_rr_list2buffer_str.3
new file mode 120000
index 000000000000..7624fd4a5766
--- /dev/null
+++ b/doc/man/man3/ldns_rr_list2buffer_str.3
@@ -0,0 +1 @@
+ldns_pkt2buffer_str.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_rr_list2str.3 b/doc/man/man3/ldns_rr_list2str.3
new file mode 120000
index 000000000000..b2208d56a9d7
--- /dev/null
+++ b/doc/man/man3/ldns_rr_list2str.3
@@ -0,0 +1 @@
+ldns_rr2str.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_rr_list_cat.3 b/doc/man/man3/ldns_rr_list_cat.3
new file mode 100644
index 000000000000..d986f6f1972f
--- /dev/null
+++ b/doc/man/man3/ldns_rr_list_cat.3
@@ -0,0 +1,71 @@
+.ad l
+.TH ldns 3 "30 May 2006"
+.SH NAME
+ldns_rr_list_cat, ldns_rr_list_push_rr, ldns_rr_list_pop_rr \- ldns_rr_list manipulation
+
+.SH SYNOPSIS
+#include <stdint.h>
+.br
+#include <stdbool.h>
+.br
+.PP
+#include <ldns/ldns.h>
+.PP
+bool ldns_rr_list_cat(ldns_rr_list *left, const ldns_rr_list *right);
+.PP
+bool ldns_rr_list_push_rr(ldns_rr_list *rr_list, const ldns_rr *rr);
+.PP
+ldns_rr* ldns_rr_list_pop_rr(ldns_rr_list *rr_list);
+.PP
+
+.SH DESCRIPTION
+.HP
+\fIldns_rr_list_cat\fR()
+concatenates two ldns_rr_lists together. This modifies
+*left (to extend it and add the pointers from *right).
+\.br
+\fBleft\fR: the leftside
+\.br
+\fBright\fR: the rightside
+\.br
+Returns a left with right concatenated to it
+.PP
+.HP
+\fIldns_rr_list_push_rr\fR()
+pushes an rr to an rrlist.
+\.br
+\fBrr_list\fR: the rr_list to push to
+\.br
+\fBrr\fR: the rr to push
+\.br
+Returns false on error, otherwise true
+.PP
+.HP
+\fIldns_rr_list_pop_rr\fR()
+pops the last rr from an rrlist.
+\.br
+\fBrr_list\fR: the rr_list to pop from
+\.br
+Returns \%NULL if nothing to pop. Otherwise the popped \%RR
+.PP
+.SH AUTHOR
+The ldns team at NLnet Labs.
+
+.SH REPORTING BUGS
+Please report bugs to ldns-team@nlnetlabs.nl or in
+our bugzilla at
+http://www.nlnetlabs.nl/bugs/index.html
+
+.SH COPYRIGHT
+Copyright (c) 2004 - 2006 NLnet Labs.
+.PP
+Licensed under the BSD License. There is NO warranty; not even for
+MERCHANTABILITY or
+FITNESS FOR A PARTICULAR PURPOSE.
+
+.SH SEE ALSO
+\fIldns_rr\fR, \fIldns_rr_list\fR.
+And \fBperldoc Net::DNS\fR, \fBRFC1034\fR,
+\fBRFC1035\fR, \fBRFC4033\fR, \fBRFC4034\fR and \fBRFC4035\fR.
+.SH REMARKS
+This manpage was automatically generated from the ldns source code.
diff --git a/doc/man/man3/ldns_rr_list_clone.3 b/doc/man/man3/ldns_rr_list_clone.3
new file mode 100644
index 000000000000..69cd26ce70f8
--- /dev/null
+++ b/doc/man/man3/ldns_rr_list_clone.3
@@ -0,0 +1,46 @@
+.ad l
+.TH ldns 3 "30 May 2006"
+.SH NAME
+ldns_rr_list_clone \- clone a ldns_rr_list
+
+.SH SYNOPSIS
+#include <stdint.h>
+.br
+#include <stdbool.h>
+.br
+.PP
+#include <ldns/ldns.h>
+.PP
+ldns_rr_list* ldns_rr_list_clone(const ldns_rr_list *rrlist);
+.PP
+
+.SH DESCRIPTION
+.HP
+\fIldns_rr_list_clone\fR()
+clones an rrlist.
+\.br
+\fBrrlist\fR: the rrlist to clone
+\.br
+Returns the cloned rr list
+.PP
+.SH AUTHOR
+The ldns team at NLnet Labs.
+
+.SH REPORTING BUGS
+Please report bugs to ldns-team@nlnetlabs.nl or in
+our bugzilla at
+http://www.nlnetlabs.nl/bugs/index.html
+
+.SH COPYRIGHT
+Copyright (c) 2004 - 2006 NLnet Labs.
+.PP
+Licensed under the BSD License. There is NO warranty; not even for
+MERCHANTABILITY or
+FITNESS FOR A PARTICULAR PURPOSE.
+
+.SH SEE ALSO
+\fIldns_rr\fR, \fIldns_rr_list\fR.
+And \fBperldoc Net::DNS\fR, \fBRFC1034\fR,
+\fBRFC1035\fR, \fBRFC4033\fR, \fBRFC4034\fR and \fBRFC4035\fR.
+.SH REMARKS
+This manpage was automatically generated from the ldns source code.
diff --git a/doc/man/man3/ldns_rr_list_free.3 b/doc/man/man3/ldns_rr_list_free.3
new file mode 120000
index 000000000000..06c4c55f03cf
--- /dev/null
+++ b/doc/man/man3/ldns_rr_list_free.3
@@ -0,0 +1 @@
+ldns_rr_list_new.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_rr_list_new.3 b/doc/man/man3/ldns_rr_list_new.3
new file mode 100644
index 000000000000..8b7ea82e97f6
--- /dev/null
+++ b/doc/man/man3/ldns_rr_list_new.3
@@ -0,0 +1,52 @@
+.ad l
+.TH ldns 3 "30 May 2006"
+.SH NAME
+ldns_rr_list_new, ldns_rr_list_free \- ldns_rr_list creation and destruction
+
+.SH SYNOPSIS
+#include <stdint.h>
+.br
+#include <stdbool.h>
+.br
+.PP
+#include <ldns/ldns.h>
+.PP
+ldns_rr_list* ldns_rr_list_new(void);
+.PP
+void ldns_rr_list_free(ldns_rr_list *rr_list);
+.PP
+
+.SH DESCRIPTION
+.HP
+\fIldns_rr_list_new\fR()
+creates a new rr_list structure.
+\.br
+Returns a new rr_list structure
+.PP
+.HP
+\fIldns_rr_list_free\fR()
+frees an rr_list structure.
+\.br
+\fBrr_list\fR: the list to free
+.PP
+.SH AUTHOR
+The ldns team at NLnet Labs.
+
+.SH REPORTING BUGS
+Please report bugs to ldns-team@nlnetlabs.nl or in
+our bugzilla at
+http://www.nlnetlabs.nl/bugs/index.html
+
+.SH COPYRIGHT
+Copyright (c) 2004 - 2006 NLnet Labs.
+.PP
+Licensed under the BSD License. There is NO warranty; not even for
+MERCHANTABILITY or
+FITNESS FOR A PARTICULAR PURPOSE.
+
+.SH SEE ALSO
+\fIldns_rr\fR, \fIldns_rr_list\fR.
+And \fBperldoc Net::DNS\fR, \fBRFC1034\fR,
+\fBRFC1035\fR, \fBRFC4033\fR, \fBRFC4034\fR and \fBRFC4035\fR.
+.SH REMARKS
+This manpage was automatically generated from the ldns source code.
diff --git a/doc/man/man3/ldns_rr_list_pop_rr.3 b/doc/man/man3/ldns_rr_list_pop_rr.3
new file mode 120000
index 000000000000..8942e3f466ba
--- /dev/null
+++ b/doc/man/man3/ldns_rr_list_pop_rr.3
@@ -0,0 +1 @@
+ldns_rr_list_cat.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_rr_list_push_rr.3 b/doc/man/man3/ldns_rr_list_push_rr.3
new file mode 120000
index 000000000000..8942e3f466ba
--- /dev/null
+++ b/doc/man/man3/ldns_rr_list_push_rr.3
@@ -0,0 +1 @@
+ldns_rr_list_cat.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_rr_list_rr_count.3 b/doc/man/man3/ldns_rr_list_rr_count.3
new file mode 100644
index 000000000000..7e5f157ff6db
--- /dev/null
+++ b/doc/man/man3/ldns_rr_list_rr_count.3
@@ -0,0 +1,58 @@
+.ad l
+.TH ldns 3 "30 May 2006"
+.SH NAME
+ldns_rr_list_rr_count, ldns_rr_list_set_rr_count \- get and set ldns_rr_list length
+
+.SH SYNOPSIS
+#include <stdint.h>
+.br
+#include <stdbool.h>
+.br
+.PP
+#include <ldns/ldns.h>
+.PP
+size_t ldns_rr_list_rr_count(const ldns_rr_list *rr_list);
+.PP
+void ldns_rr_list_set_rr_count(ldns_rr_list *rr_list, size_t count);
+.PP
+
+.SH DESCRIPTION
+.HP
+\fIldns_rr_list_rr_count\fR()
+returns the number of rr's in an rr_list.
+\.br
+\fBrr_list\fR: the rr_list to read from
+\.br
+Returns the number of rr's
+.PP
+.HP
+\fIldns_rr_list_set_rr_count\fR()
+sets the number of rr's in an rr_list.
+\.br
+\fBrr_list\fR: the rr_list to set the count on
+\.br
+\fBcount\fR: the number of rr in this list
+\.br
+Returns void
+.PP
+.SH AUTHOR
+The ldns team at NLnet Labs.
+
+.SH REPORTING BUGS
+Please report bugs to ldns-team@nlnetlabs.nl or in
+our bugzilla at
+http://www.nlnetlabs.nl/bugs/index.html
+
+.SH COPYRIGHT
+Copyright (c) 2004 - 2006 NLnet Labs.
+.PP
+Licensed under the BSD License. There is NO warranty; not even for
+MERCHANTABILITY or
+FITNESS FOR A PARTICULAR PURPOSE.
+
+.SH SEE ALSO
+\fIldns_rr\fR, \fIldns_rr_list\fR.
+And \fBperldoc Net::DNS\fR, \fBRFC1034\fR,
+\fBRFC1035\fR, \fBRFC4033\fR, \fBRFC4034\fR and \fBRFC4035\fR.
+.SH REMARKS
+This manpage was automatically generated from the ldns source code.
diff --git a/doc/man/man3/ldns_rr_list_set_rr_count.3 b/doc/man/man3/ldns_rr_list_set_rr_count.3
new file mode 120000
index 000000000000..34a0d778968d
--- /dev/null
+++ b/doc/man/man3/ldns_rr_list_set_rr_count.3
@@ -0,0 +1 @@
+ldns_rr_list_rr_count.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_rr_list_sort.3 b/doc/man/man3/ldns_rr_list_sort.3
new file mode 100644
index 000000000000..84c6d5add0dc
--- /dev/null
+++ b/doc/man/man3/ldns_rr_list_sort.3
@@ -0,0 +1,46 @@
+.ad l
+.TH ldns 3 "30 May 2006"
+.SH NAME
+ldns_rr_list_sort \- sort a ldns_rr_list
+
+.SH SYNOPSIS
+#include <stdint.h>
+.br
+#include <stdbool.h>
+.br
+.PP
+#include <ldns/ldns.h>
+.PP
+void ldns_rr_list_sort(ldns_rr_list *unsorted);
+.PP
+
+.SH DESCRIPTION
+.HP
+\fIldns_rr_list_sort\fR()
+sorts an rr_list (canonical wire format). the sorting is done inband.
+\.br
+\fBunsorted\fR: the rr_list to be sorted
+\.br
+Returns void
+.PP
+.SH AUTHOR
+The ldns team at NLnet Labs.
+
+.SH REPORTING BUGS
+Please report bugs to ldns-team@nlnetlabs.nl or in
+our bugzilla at
+http://www.nlnetlabs.nl/bugs/index.html
+
+.SH COPYRIGHT
+Copyright (c) 2004 - 2006 NLnet Labs.
+.PP
+Licensed under the BSD License. There is NO warranty; not even for
+MERCHANTABILITY or
+FITNESS FOR A PARTICULAR PURPOSE.
+
+.SH SEE ALSO
+\fIldns_rr\fR, \fIldns_rr_list\fR.
+And \fBperldoc Net::DNS\fR, \fBRFC1034\fR,
+\fBRFC1035\fR, \fBRFC4033\fR, \fBRFC4034\fR and \fBRFC4035\fR.
+.SH REMARKS
+This manpage was automatically generated from the ldns source code.
diff --git a/doc/man/man3/ldns_rr_mx_exchange.3 b/doc/man/man3/ldns_rr_mx_exchange.3
new file mode 120000
index 000000000000..d216954869df
--- /dev/null
+++ b/doc/man/man3/ldns_rr_mx_exchange.3
@@ -0,0 +1 @@
+ldns_rr_mx_preference.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_rr_mx_preference.3 b/doc/man/man3/ldns_rr_mx_preference.3
new file mode 100644
index 000000000000..0727fe5e898e
--- /dev/null
+++ b/doc/man/man3/ldns_rr_mx_preference.3
@@ -0,0 +1,54 @@
+.ad l
+.TH ldns 3 "30 May 2006"
+.SH NAME
+ldns_rr_mx_preference, ldns_rr_mx_exchange \- get MX RR rdata fields
+
+.SH SYNOPSIS
+#include <stdint.h>
+.br
+#include <stdbool.h>
+.br
+.PP
+#include <ldns/ldns.h>
+.PP
+ldns_rdf* ldns_rr_mx_preference(const ldns_rr *r);
+.PP
+ldns_rdf* ldns_rr_mx_exchange(const ldns_rr *r);
+.PP
+
+.SH DESCRIPTION
+.HP
+\fIldns_rr_mx_preference\fR()
+returns the mx pref. of a \%LDNS_RR_TYPE_MX rr
+\.br
+\fBr\fR: the resource record
+\.br
+Returns a ldns_rdf* with the preference or \%NULL on failure
+.PP
+.HP
+\fIldns_rr_mx_exchange\fR()
+returns the mx host of a \%LDNS_RR_TYPE_MX rr
+\.br
+\fBr\fR: the resource record
+\.br
+Returns a ldns_rdf* with the name of the \%MX host or \%NULL on failure
+.PP
+.SH AUTHOR
+The ldns team at NLnet Labs.
+
+.SH REPORTING BUGS
+Please report bugs to ldns-team@nlnetlabs.nl or in
+our bugzilla at
+http://www.nlnetlabs.nl/bugs/index.html
+
+.SH COPYRIGHT
+Copyright (c) 2004 - 2006 NLnet Labs.
+.PP
+Licensed under the BSD License. There is NO warranty; not even for
+MERCHANTABILITY or
+FITNESS FOR A PARTICULAR PURPOSE.
+.SH SEE ALSO
+\fBperldoc Net::DNS\fR, \fBRFC1034\fR,
+\fBRFC1035\fR, \fBRFC4033\fR, \fBRFC4034\fR and \fBRFC4035\fR.
+.SH REMARKS
+This manpage was automatically generated from the ldns source code.
diff --git a/doc/man/man3/ldns_rr_new.3 b/doc/man/man3/ldns_rr_new.3
new file mode 100644
index 000000000000..8855c7251c6d
--- /dev/null
+++ b/doc/man/man3/ldns_rr_new.3
@@ -0,0 +1,123 @@
+.ad l
+.TH ldns 3 "30 May 2006"
+.SH NAME
+ldns_rr_new, ldns_rr_new_frm_type, ldns_rr_new_frm_str, ldns_rr_new_frm_fp, ldns_rr_free, ldns_rr_print \- ldns_rr creation, destruction and printing
+
+.SH SYNOPSIS
+#include <stdint.h>
+.br
+#include <stdbool.h>
+.br
+.PP
+#include <ldns/ldns.h>
+.PP
+ldns_rr* ldns_rr_new(void);
+.PP
+ldns_rr* ldns_rr_new_frm_type(ldns_rr_type t);
+.PP
+ldns_status ldns_rr_new_frm_str(ldns_rr **n, const char *str, uint32_t default_ttl, const ldns_rdf *origin, ldns_rdf **prev);
+.PP
+ldns_status ldns_rr_new_frm_fp(ldns_rr **rr, FILE *fp, uint32_t *default_ttl, ldns_rdf **origin, ldns_rdf **prev);
+.PP
+void ldns_rr_free(ldns_rr *rr);
+.PP
+void ldns_rr_print(FILE *output, const ldns_rr *rr);
+.PP
+
+.SH DESCRIPTION
+.HP
+\fIldns_rr_new\fR()
+creates a new rr structure.
+\.br
+Returns ldns_rr *
+.PP
+.HP
+\fIldns_rr_new_frm_type\fR()
+creates a new rr structure, based on the given type.
+alloc enough space to hold all the rdf's
+.PP
+.HP
+\fIldns_rr_new_frm_str\fR()
+creates an rr from a string.
+The string should be a fully filled-in rr, like
+ownername &lt;space&gt; \%TTL &lt;space&gt; \%CLASS &lt;space&gt;
+\%TYPE &lt;space&gt; \%RDATA.
+\.br
+\fBn\fR: the rr to return
+\.br
+\fBstr\fR: the string to convert
+\.br
+\fBdefault_ttl\fR: default ttl value for the rr.
+If 0 \%DEF_TTL will be used
+\.br
+\fBorigin\fR: when the owner is relative add this.
+The caller must ldns_rdf_deep_free it.
+\.br
+\fBprev\fR: the previous ownername. if this value is not \%NULL,
+the function overwrites this with the ownername found in this
+string. The caller must then ldns_rdf_deep_free it.
+\.br
+Returns a status msg describing an error or \%LDNS_STATUS_OK
+.PP
+.HP
+\fIldns_rr_new_frm_fp\fR()
+creates a new rr from a file containing a string.
+\.br
+\fBrr\fR: the new rr
+\.br
+\fBfp\fR: the file pointer to use
+\.br
+\fBdefault_ttl\fR: pointer to a default ttl for the rr. If \%NULL \%DEF_TTL will be used
+the pointer will be updated if the file contains a $\%TTL directive
+\.br
+\fBorigin\fR: when the owner is relative add this
+the pointer will be updated if the file contains a $\%ORIGIN directive
+The caller must ldns_rdf_deep_free it.
+\.br
+\fBprev\fR: when the owner is whitespaces use this as the * ownername
+the pointer will be updated after the call
+The caller must ldns_rdf_deep_free it.
+\.br
+Returns a ldns_status with an error or \%LDNS_STATUS_OK
+.PP
+.HP
+\fIldns_rr_free\fR()
+frees an \%RR structure
+\.br
+\fB*rr\fR: the \%RR to be freed
+\.br
+Returns void
+.PP
+.HP
+\fIldns_rr_print\fR()
+Prints the data in the resource record to the given file stream
+(in presentation format)
+
+\.br
+\fBoutput\fR: the file stream to print to
+\.br
+\fBrr\fR: the resource record to print
+\.br
+Returns void
+.PP
+.SH AUTHOR
+The ldns team at NLnet Labs.
+
+.SH REPORTING BUGS
+Please report bugs to ldns-team@nlnetlabs.nl or in
+our bugzilla at
+http://www.nlnetlabs.nl/bugs/index.html
+
+.SH COPYRIGHT
+Copyright (c) 2004 - 2006 NLnet Labs.
+.PP
+Licensed under the BSD License. There is NO warranty; not even for
+MERCHANTABILITY or
+FITNESS FOR A PARTICULAR PURPOSE.
+
+.SH SEE ALSO
+\fIldns_rr\fR, \fIldns_rr_list\fR.
+And \fBperldoc Net::DNS\fR, \fBRFC1034\fR,
+\fBRFC1035\fR, \fBRFC4033\fR, \fBRFC4034\fR and \fBRFC4035\fR.
+.SH REMARKS
+This manpage was automatically generated from the ldns source code.
diff --git a/doc/man/man3/ldns_rr_new_frm_fp.3 b/doc/man/man3/ldns_rr_new_frm_fp.3
new file mode 120000
index 000000000000..b5c80ecde471
--- /dev/null
+++ b/doc/man/man3/ldns_rr_new_frm_fp.3
@@ -0,0 +1 @@
+ldns_rr_new.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_rr_new_frm_str.3 b/doc/man/man3/ldns_rr_new_frm_str.3
new file mode 120000
index 000000000000..b5c80ecde471
--- /dev/null
+++ b/doc/man/man3/ldns_rr_new_frm_str.3
@@ -0,0 +1 @@
+ldns_rr_new.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_rr_new_frm_type.3 b/doc/man/man3/ldns_rr_new_frm_type.3
new file mode 120000
index 000000000000..b5c80ecde471
--- /dev/null
+++ b/doc/man/man3/ldns_rr_new_frm_type.3
@@ -0,0 +1 @@
+ldns_rr_new.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_rr_ns_nsdname.3 b/doc/man/man3/ldns_rr_ns_nsdname.3
new file mode 100644
index 000000000000..547e6dab1c74
--- /dev/null
+++ b/doc/man/man3/ldns_rr_ns_nsdname.3
@@ -0,0 +1,44 @@
+.ad l
+.TH ldns 3 "30 May 2006"
+.SH NAME
+ldns_rr_ns_nsdname \- get dname rdata field from NS RR
+
+.SH SYNOPSIS
+#include <stdint.h>
+.br
+#include <stdbool.h>
+.br
+.PP
+#include <ldns/ldns.h>
+.PP
+ldns_rdf* ldns_rr_ns_nsdname(const ldns_rr *r);
+.PP
+
+.SH DESCRIPTION
+.HP
+\fIldns_rr_ns_nsdname\fR()
+returns the name of a \%LDNS_RR_TYPE_NS rr
+\.br
+\fBr\fR: the resource record
+\.br
+Returns a ldns_rdf* with the name or \%NULL on failure
+.PP
+.SH AUTHOR
+The ldns team at NLnet Labs.
+
+.SH REPORTING BUGS
+Please report bugs to ldns-team@nlnetlabs.nl or in
+our bugzilla at
+http://www.nlnetlabs.nl/bugs/index.html
+
+.SH COPYRIGHT
+Copyright (c) 2004 - 2006 NLnet Labs.
+.PP
+Licensed under the BSD License. There is NO warranty; not even for
+MERCHANTABILITY or
+FITNESS FOR A PARTICULAR PURPOSE.
+.SH SEE ALSO
+\fBperldoc Net::DNS\fR, \fBRFC1034\fR,
+\fBRFC1035\fR, \fBRFC4033\fR, \fBRFC4034\fR and \fBRFC4035\fR.
+.SH REMARKS
+This manpage was automatically generated from the ldns source code.
diff --git a/doc/man/man3/ldns_rr_owner.3 b/doc/man/man3/ldns_rr_owner.3
new file mode 120000
index 000000000000..7ac87b76db7c
--- /dev/null
+++ b/doc/man/man3/ldns_rr_owner.3
@@ -0,0 +1 @@
+ldns_rr_rdf.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_rr_pop_rdf.3 b/doc/man/man3/ldns_rr_pop_rdf.3
new file mode 120000
index 000000000000..605449a1f521
--- /dev/null
+++ b/doc/man/man3/ldns_rr_pop_rdf.3
@@ -0,0 +1 @@
+ldns_rr_push_rdf.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_rr_print.3 b/doc/man/man3/ldns_rr_print.3
new file mode 120000
index 000000000000..b5c80ecde471
--- /dev/null
+++ b/doc/man/man3/ldns_rr_print.3
@@ -0,0 +1 @@
+ldns_rr_new.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_rr_push_rdf.3 b/doc/man/man3/ldns_rr_push_rdf.3
new file mode 100644
index 000000000000..877213b1154a
--- /dev/null
+++ b/doc/man/man3/ldns_rr_push_rdf.3
@@ -0,0 +1,60 @@
+.ad l
+.TH ldns 3 "30 May 2006"
+.SH NAME
+ldns_rr_push_rdf, ldns_rr_pop_rdf \- push and pop rdata fields
+
+.SH SYNOPSIS
+#include <stdint.h>
+.br
+#include <stdbool.h>
+.br
+.PP
+#include <ldns/ldns.h>
+.PP
+bool ldns_rr_push_rdf(ldns_rr *rr, const ldns_rdf *f);
+.PP
+ldns_rdf* ldns_rr_pop_rdf(ldns_rr *rr);
+.PP
+
+.SH DESCRIPTION
+.HP
+\fIldns_rr_push_rdf\fR()
+sets rd_field member, it will be
+placed in the next available spot.
+\.br
+\fB*rr\fR: rr to operate on
+\.br
+\fB*f\fR: the data field member to set
+\.br
+Returns bool
+.PP
+.HP
+\fIldns_rr_pop_rdf\fR()
+removes a rd_field member, it will be
+popped from the last position.
+\.br
+\fB*rr\fR: rr to operate on
+\.br
+Returns rdf which was popped (null if nothing)
+.PP
+.SH AUTHOR
+The ldns team at NLnet Labs.
+
+.SH REPORTING BUGS
+Please report bugs to ldns-team@nlnetlabs.nl or in
+our bugzilla at
+http://www.nlnetlabs.nl/bugs/index.html
+
+.SH COPYRIGHT
+Copyright (c) 2004 - 2006 NLnet Labs.
+.PP
+Licensed under the BSD License. There is NO warranty; not even for
+MERCHANTABILITY or
+FITNESS FOR A PARTICULAR PURPOSE.
+
+.SH SEE ALSO
+\fIldns_rr\fR, \fIldns_rr_list\fR.
+And \fBperldoc Net::DNS\fR, \fBRFC1034\fR,
+\fBRFC1035\fR, \fBRFC4033\fR, \fBRFC4034\fR and \fBRFC4035\fR.
+.SH REMARKS
+This manpage was automatically generated from the ldns source code.
diff --git a/doc/man/man3/ldns_rr_rd_count.3 b/doc/man/man3/ldns_rr_rd_count.3
new file mode 120000
index 000000000000..7ac87b76db7c
--- /dev/null
+++ b/doc/man/man3/ldns_rr_rd_count.3
@@ -0,0 +1 @@
+ldns_rr_rdf.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_rr_rdata2buffer_wire.3 b/doc/man/man3/ldns_rr_rdata2buffer_wire.3
new file mode 120000
index 000000000000..7624fd4a5766
--- /dev/null
+++ b/doc/man/man3/ldns_rr_rdata2buffer_wire.3
@@ -0,0 +1 @@
+ldns_pkt2buffer_str.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_rr_rdf.3 b/doc/man/man3/ldns_rr_rdf.3
new file mode 100644
index 000000000000..fa34a5acb88b
--- /dev/null
+++ b/doc/man/man3/ldns_rr_rdf.3
@@ -0,0 +1,88 @@
+.ad l
+.TH ldns 3 "30 May 2006"
+.SH NAME
+ldns_rr_rdf, ldns_rr_owner, ldns_rr_rd_count, ldns_rr_ttl, ldns_rr_get_class \- access rdata fields on ldns_rr
+
+.SH SYNOPSIS
+#include <stdint.h>
+.br
+#include <stdbool.h>
+.br
+.PP
+#include <ldns/ldns.h>
+.PP
+ldns_rdf* ldns_rr_rdf(const ldns_rr *rr, size_t nr);
+.PP
+ldns_rdf* ldns_rr_owner(const ldns_rr *rr);
+.PP
+size_t ldns_rr_rd_count(const ldns_rr *rr);
+.PP
+uint32_t ldns_rr_ttl(const ldns_rr *rr);
+.PP
+ldns_rr_class ldns_rr_get_class(const ldns_rr *rr);
+.PP
+
+.SH DESCRIPTION
+.HP
+\fIldns_rr_rdf\fR()
+returns the rdata field member counter.
+\.br
+\fB*rr\fR: rr to operate on
+\.br
+\fBnr\fR: the number of the rdf to return
+\.br
+Returns ldns_rdf *
+.PP
+.HP
+\fIldns_rr_owner\fR()
+returns the owner name of an rr structure.
+\.br
+\fB*rr\fR: rr to operate on
+\.br
+Returns ldns_rdf *
+.PP
+.HP
+\fIldns_rr_rd_count\fR()
+returns the rd_count of an rr structure.
+\.br
+\fB*rr\fR: the rr to read from
+\.br
+Returns the rd count of the rr
+.PP
+.HP
+\fIldns_rr_ttl\fR()
+returns the ttl of an rr structure.
+\.br
+\fB*rr\fR: the rr to read from
+\.br
+Returns the ttl of the rr
+.PP
+.HP
+\fIldns_rr_get_class\fR()
+returns the class of the rr.
+\.br
+\fB*rr\fR: the rr to read from
+\.br
+Returns the class of the rr
+.PP
+.SH AUTHOR
+The ldns team at NLnet Labs.
+
+.SH REPORTING BUGS
+Please report bugs to ldns-team@nlnetlabs.nl or in
+our bugzilla at
+http://www.nlnetlabs.nl/bugs/index.html
+
+.SH COPYRIGHT
+Copyright (c) 2004 - 2006 NLnet Labs.
+.PP
+Licensed under the BSD License. There is NO warranty; not even for
+MERCHANTABILITY or
+FITNESS FOR A PARTICULAR PURPOSE.
+
+.SH SEE ALSO
+\fIldns_rr\fR, \fIldns_rr_list\fR.
+And \fBperldoc Net::DNS\fR, \fBRFC1034\fR,
+\fBRFC1035\fR, \fBRFC4033\fR, \fBRFC4034\fR and \fBRFC4035\fR.
+.SH REMARKS
+This manpage was automatically generated from the ldns source code.
diff --git a/doc/man/man3/ldns_rr_rrsig_algorithm.3 b/doc/man/man3/ldns_rr_rrsig_algorithm.3
new file mode 120000
index 000000000000..e1efe3b2cec9
--- /dev/null
+++ b/doc/man/man3/ldns_rr_rrsig_algorithm.3
@@ -0,0 +1 @@
+ldns_rr_rrsig_typecovered.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_rr_rrsig_expiration.3 b/doc/man/man3/ldns_rr_rrsig_expiration.3
new file mode 120000
index 000000000000..e1efe3b2cec9
--- /dev/null
+++ b/doc/man/man3/ldns_rr_rrsig_expiration.3
@@ -0,0 +1 @@
+ldns_rr_rrsig_typecovered.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_rr_rrsig_inception.3 b/doc/man/man3/ldns_rr_rrsig_inception.3
new file mode 120000
index 000000000000..e1efe3b2cec9
--- /dev/null
+++ b/doc/man/man3/ldns_rr_rrsig_inception.3
@@ -0,0 +1 @@
+ldns_rr_rrsig_typecovered.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_rr_rrsig_keytag.3 b/doc/man/man3/ldns_rr_rrsig_keytag.3
new file mode 120000
index 000000000000..e1efe3b2cec9
--- /dev/null
+++ b/doc/man/man3/ldns_rr_rrsig_keytag.3
@@ -0,0 +1 @@
+ldns_rr_rrsig_typecovered.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_rr_rrsig_labels.3 b/doc/man/man3/ldns_rr_rrsig_labels.3
new file mode 120000
index 000000000000..e1efe3b2cec9
--- /dev/null
+++ b/doc/man/man3/ldns_rr_rrsig_labels.3
@@ -0,0 +1 @@
+ldns_rr_rrsig_typecovered.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_rr_rrsig_origttl.3 b/doc/man/man3/ldns_rr_rrsig_origttl.3
new file mode 120000
index 000000000000..e1efe3b2cec9
--- /dev/null
+++ b/doc/man/man3/ldns_rr_rrsig_origttl.3
@@ -0,0 +1 @@
+ldns_rr_rrsig_typecovered.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_rr_rrsig_set_algorithm.3 b/doc/man/man3/ldns_rr_rrsig_set_algorithm.3
new file mode 120000
index 000000000000..e1efe3b2cec9
--- /dev/null
+++ b/doc/man/man3/ldns_rr_rrsig_set_algorithm.3
@@ -0,0 +1 @@
+ldns_rr_rrsig_typecovered.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_rr_rrsig_set_expiration.3 b/doc/man/man3/ldns_rr_rrsig_set_expiration.3
new file mode 120000
index 000000000000..e1efe3b2cec9
--- /dev/null
+++ b/doc/man/man3/ldns_rr_rrsig_set_expiration.3
@@ -0,0 +1 @@
+ldns_rr_rrsig_typecovered.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_rr_rrsig_set_inception.3 b/doc/man/man3/ldns_rr_rrsig_set_inception.3
new file mode 120000
index 000000000000..e1efe3b2cec9
--- /dev/null
+++ b/doc/man/man3/ldns_rr_rrsig_set_inception.3
@@ -0,0 +1 @@
+ldns_rr_rrsig_typecovered.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_rr_rrsig_set_keytag.3 b/doc/man/man3/ldns_rr_rrsig_set_keytag.3
new file mode 120000
index 000000000000..e1efe3b2cec9
--- /dev/null
+++ b/doc/man/man3/ldns_rr_rrsig_set_keytag.3
@@ -0,0 +1 @@
+ldns_rr_rrsig_typecovered.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_rr_rrsig_set_labels.3 b/doc/man/man3/ldns_rr_rrsig_set_labels.3
new file mode 120000
index 000000000000..e1efe3b2cec9
--- /dev/null
+++ b/doc/man/man3/ldns_rr_rrsig_set_labels.3
@@ -0,0 +1 @@
+ldns_rr_rrsig_typecovered.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_rr_rrsig_set_origttl.3 b/doc/man/man3/ldns_rr_rrsig_set_origttl.3
new file mode 120000
index 000000000000..e1efe3b2cec9
--- /dev/null
+++ b/doc/man/man3/ldns_rr_rrsig_set_origttl.3
@@ -0,0 +1 @@
+ldns_rr_rrsig_typecovered.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_rr_rrsig_set_sig.3 b/doc/man/man3/ldns_rr_rrsig_set_sig.3
new file mode 120000
index 000000000000..e1efe3b2cec9
--- /dev/null
+++ b/doc/man/man3/ldns_rr_rrsig_set_sig.3
@@ -0,0 +1 @@
+ldns_rr_rrsig_typecovered.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_rr_rrsig_set_signame.3 b/doc/man/man3/ldns_rr_rrsig_set_signame.3
new file mode 120000
index 000000000000..e1efe3b2cec9
--- /dev/null
+++ b/doc/man/man3/ldns_rr_rrsig_set_signame.3
@@ -0,0 +1 @@
+ldns_rr_rrsig_typecovered.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_rr_rrsig_set_typecovered.3 b/doc/man/man3/ldns_rr_rrsig_set_typecovered.3
new file mode 120000
index 000000000000..e1efe3b2cec9
--- /dev/null
+++ b/doc/man/man3/ldns_rr_rrsig_set_typecovered.3
@@ -0,0 +1 @@
+ldns_rr_rrsig_typecovered.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_rr_rrsig_sig.3 b/doc/man/man3/ldns_rr_rrsig_sig.3
new file mode 120000
index 000000000000..e1efe3b2cec9
--- /dev/null
+++ b/doc/man/man3/ldns_rr_rrsig_sig.3
@@ -0,0 +1 @@
+ldns_rr_rrsig_typecovered.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_rr_rrsig_signame.3 b/doc/man/man3/ldns_rr_rrsig_signame.3
new file mode 120000
index 000000000000..e1efe3b2cec9
--- /dev/null
+++ b/doc/man/man3/ldns_rr_rrsig_signame.3
@@ -0,0 +1 @@
+ldns_rr_rrsig_typecovered.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_rr_rrsig_typecovered.3 b/doc/man/man3/ldns_rr_rrsig_typecovered.3
new file mode 100644
index 000000000000..50667b5f1c10
--- /dev/null
+++ b/doc/man/man3/ldns_rr_rrsig_typecovered.3
@@ -0,0 +1,232 @@
+.ad l
+.TH ldns 3 "30 May 2006"
+.SH NAME
+ldns_rr_rrsig_typecovered, ldns_rr_rrsig_set_typecovered, ldns_rr_rrsig_algorithm, ldns_rr_rrsig_set_algorithm, ldns_rr_rrsig_labels, ldns_rr_rrsig_set_labels, ldns_rr_rrsig_origttl, ldns_rr_rrsig_set_origttl, ldns_rr_rrsig_expiration, ldns_rr_rrsig_set_expiration, ldns_rr_rrsig_inception, ldns_rr_rrsig_set_inception, ldns_rr_rrsig_keytag, ldns_rr_rrsig_set_keytag, ldns_rr_rrsig_signame, ldns_rr_rrsig_set_signame, ldns_rr_rrsig_sig, ldns_rr_rrsig_set_sig \- get and set RRSIG RR rdata fields
+
+.SH SYNOPSIS
+#include <stdint.h>
+.br
+#include <stdbool.h>
+.br
+.PP
+#include <ldns/ldns.h>
+.PP
+ldns_rdf* ldns_rr_rrsig_typecovered(const ldns_rr *r);
+.PP
+bool ldns_rr_rrsig_set_typecovered(ldns_rr *r, ldns_rdf *f);
+.PP
+ldns_rdf* ldns_rr_rrsig_algorithm(const ldns_rr *r);
+.PP
+bool ldns_rr_rrsig_set_algorithm(ldns_rr *r, ldns_rdf *f);
+.PP
+ldns_rdf* ldns_rr_rrsig_labels(const ldns_rr *r);
+.PP
+bool ldns_rr_rrsig_set_labels(ldns_rr *r, ldns_rdf *f);
+.PP
+ldns_rdf* ldns_rr_rrsig_origttl(const ldns_rr *r);
+.PP
+bool ldns_rr_rrsig_set_origttl(ldns_rr *r, ldns_rdf *f);
+.PP
+ldns_rdf* ldns_rr_rrsig_expiration(const ldns_rr *r);
+.PP
+bool ldns_rr_rrsig_set_expiration(ldns_rr *r, ldns_rdf *f);
+.PP
+ldns_rdf* ldns_rr_rrsig_inception(const ldns_rr *r);
+.PP
+bool ldns_rr_rrsig_set_inception(ldns_rr *r, ldns_rdf *f);
+.PP
+ldns_rdf* ldns_rr_rrsig_keytag(const ldns_rr *r);
+.PP
+bool ldns_rr_rrsig_set_keytag(ldns_rr *r, ldns_rdf *f);
+.PP
+ldns_rdf* ldns_rr_rrsig_signame(const ldns_rr *r);
+.PP
+bool ldns_rr_rrsig_set_signame(ldns_rr *r, ldns_rdf *f);
+.PP
+ldns_rdf* ldns_rr_rrsig_sig(const ldns_rr *r);
+.PP
+bool ldns_rr_rrsig_set_sig(ldns_rr *r, ldns_rdf *f);
+.PP
+
+.SH DESCRIPTION
+.HP
+\fIldns_rr_rrsig_typecovered\fR()
+returns the type covered of a \%LDNS_RR_TYPE_RRSIG rr
+\.br
+\fBr\fR: the resource record
+\.br
+Returns a ldns_rdf* with the type covered or \%NULL on failure
+.PP
+.HP
+\fIldns_rr_rrsig_set_typecovered\fR()
+sets the typecovered of a \%LDNS_RR_TYPE_RRSIG rr
+\.br
+\fBr\fR: the rr to use
+\.br
+\fBf\fR: the typecovered to set
+\.br
+Returns true on success, false otherwise
+.PP
+.HP
+\fIldns_rr_rrsig_algorithm\fR()
+returns the algorithm of a \%LDNS_RR_TYPE_RRSIG \%RR
+\.br
+\fBr\fR: the resource record
+\.br
+Returns a ldns_rdf* with the algorithm or \%NULL on failure
+.PP
+.HP
+\fIldns_rr_rrsig_set_algorithm\fR()
+sets the algorithm of a \%LDNS_RR_TYPE_RRSIG rr
+\.br
+\fBr\fR: the rr to use
+\.br
+\fBf\fR: the algorithm to set
+\.br
+Returns true on success, false otherwise
+.PP
+.HP
+\fIldns_rr_rrsig_labels\fR()
+returns the number of labels of a \%LDNS_RR_TYPE_RRSIG \%RR
+\.br
+\fBr\fR: the resource record
+\.br
+Returns a ldns_rdf* with the number of labels or \%NULL on failure
+.PP
+.HP
+\fIldns_rr_rrsig_set_labels\fR()
+sets the number of labels of a \%LDNS_RR_TYPE_RRSIG rr
+\.br
+\fBr\fR: the rr to use
+\.br
+\fBf\fR: the number of labels to set
+\.br
+Returns true on success, false otherwise
+.PP
+.HP
+\fIldns_rr_rrsig_origttl\fR()
+returns the original \%TTL of a \%LDNS_RR_TYPE_RRSIG \%RR
+\.br
+\fBr\fR: the resource record
+\.br
+Returns a ldns_rdf* with the original \%TTL or \%NULL on failure
+.PP
+.HP
+\fIldns_rr_rrsig_set_origttl\fR()
+sets the original \%TTL of a \%LDNS_RR_TYPE_RRSIG rr
+\.br
+\fBr\fR: the rr to use
+\.br
+\fBf\fR: the original \%TTL to set
+\.br
+Returns true on success, false otherwise
+.PP
+.HP
+\fIldns_rr_rrsig_expiration\fR()
+returns the expiration time of a \%LDNS_RR_TYPE_RRSIG \%RR
+\.br
+\fBr\fR: the resource record
+\.br
+Returns a ldns_rdf* with the expiration time or \%NULL on failure
+.PP
+.HP
+\fIldns_rr_rrsig_set_expiration\fR()
+sets the expiration date of a \%LDNS_RR_TYPE_RRSIG rr
+\.br
+\fBr\fR: the rr to use
+\.br
+\fBf\fR: the expiration date to set
+\.br
+Returns true on success, false otherwise
+.PP
+.HP
+\fIldns_rr_rrsig_inception\fR()
+returns the inception time of a \%LDNS_RR_TYPE_RRSIG \%RR
+\.br
+\fBr\fR: the resource record
+\.br
+Returns a ldns_rdf* with the inception time or \%NULL on failure
+.PP
+.HP
+\fIldns_rr_rrsig_set_inception\fR()
+sets the inception date of a \%LDNS_RR_TYPE_RRSIG rr
+\.br
+\fBr\fR: the rr to use
+\.br
+\fBf\fR: the inception date to set
+\.br
+Returns true on success, false otherwise
+.PP
+.HP
+\fIldns_rr_rrsig_keytag\fR()
+returns the keytag of a \%LDNS_RR_TYPE_RRSIG \%RR
+\.br
+\fBr\fR: the resource record
+\.br
+Returns a ldns_rdf* with the keytag or \%NULL on failure
+.PP
+.HP
+\fIldns_rr_rrsig_set_keytag\fR()
+sets the keytag of a \%LDNS_RR_TYPE_RRSIG rr
+\.br
+\fBr\fR: the rr to use
+\.br
+\fBf\fR: the keytag to set
+\.br
+Returns true on success, false otherwise
+.PP
+.HP
+\fIldns_rr_rrsig_signame\fR()
+returns the signers name of a \%LDNS_RR_TYPE_RRSIG \%RR
+\.br
+\fBr\fR: the resource record
+\.br
+Returns a ldns_rdf* with the signers name or \%NULL on failure
+.PP
+.HP
+\fIldns_rr_rrsig_set_signame\fR()
+sets the signers name of a \%LDNS_RR_TYPE_RRSIG rr
+\.br
+\fBr\fR: the rr to use
+\.br
+\fBf\fR: the signers name to set
+\.br
+Returns true on success, false otherwise
+.PP
+.HP
+\fIldns_rr_rrsig_sig\fR()
+returns the signature data of a \%LDNS_RR_TYPE_RRSIG \%RR
+\.br
+\fBr\fR: the resource record
+\.br
+Returns a ldns_rdf* with the signature data or \%NULL on failure
+.PP
+.HP
+\fIldns_rr_rrsig_set_sig\fR()
+sets the signature data of a \%LDNS_RR_TYPE_RRSIG rr
+\.br
+\fBr\fR: the rr to use
+\.br
+\fBf\fR: the signature data to set
+\.br
+Returns true on success, false otherwise
+.PP
+.SH AUTHOR
+The ldns team at NLnet Labs.
+
+.SH REPORTING BUGS
+Please report bugs to ldns-team@nlnetlabs.nl or in
+our bugzilla at
+http://www.nlnetlabs.nl/bugs/index.html
+
+.SH COPYRIGHT
+Copyright (c) 2004 - 2006 NLnet Labs.
+.PP
+Licensed under the BSD License. There is NO warranty; not even for
+MERCHANTABILITY or
+FITNESS FOR A PARTICULAR PURPOSE.
+.SH SEE ALSO
+\fBperldoc Net::DNS\fR, \fBRFC1034\fR,
+\fBRFC1035\fR, \fBRFC4033\fR, \fBRFC4034\fR and \fBRFC4035\fR.
+.SH REMARKS
+This manpage was automatically generated from the ldns source code.
diff --git a/doc/man/man3/ldns_rr_set_class.3 b/doc/man/man3/ldns_rr_set_class.3
new file mode 120000
index 000000000000..ae969a4cd614
--- /dev/null
+++ b/doc/man/man3/ldns_rr_set_class.3
@@ -0,0 +1 @@
+ldns_rr_set_owner.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_rr_set_owner.3 b/doc/man/man3/ldns_rr_set_owner.3
new file mode 100644
index 000000000000..7b256cfbdd81
--- /dev/null
+++ b/doc/man/man3/ldns_rr_set_owner.3
@@ -0,0 +1,111 @@
+.ad l
+.TH ldns 3 "30 May 2006"
+.SH NAME
+ldns_rr_set_owner, ldns_rr_set_ttl, ldns_rr_set_type, ldns_rr_set_rd_count, ldns_rr_set_class, ldns_rr_set_rdf \- set ldns_rr attributes
+
+.SH SYNOPSIS
+#include <stdint.h>
+.br
+#include <stdbool.h>
+.br
+.PP
+#include <ldns/ldns.h>
+.PP
+void ldns_rr_set_owner(ldns_rr *rr, ldns_rdf *owner);
+.PP
+void ldns_rr_set_ttl(ldns_rr *rr, uint32_t ttl);
+.PP
+void ldns_rr_set_type(ldns_rr *rr, ldns_rr_type rr_type);
+.PP
+void ldns_rr_set_rd_count(ldns_rr *rr, size_t count);
+.PP
+void ldns_rr_set_class(ldns_rr *rr, ldns_rr_class rr_class);
+.PP
+ldns_rdf* ldns_rr_set_rdf(ldns_rr *rr, const ldns_rdf *f, size_t position);
+.PP
+
+.SH DESCRIPTION
+.HP
+\fIldns_rr_set_owner\fR()
+sets the owner in the rr structure.
+\.br
+\fB*rr\fR: rr to operate on
+\.br
+\fB*owner\fR: set to this owner
+\.br
+Returns void
+.PP
+.HP
+\fIldns_rr_set_ttl\fR()
+sets the ttl in the rr structure.
+\.br
+\fB*rr\fR: rr to operate on
+\.br
+\fBttl\fR: set to this ttl
+\.br
+Returns void
+.PP
+.HP
+\fIldns_rr_set_type\fR()
+sets the type in the rr.
+\.br
+\fB*rr\fR: rr to operate on
+\.br
+\fBrr_type\fR: set to this type
+\.br
+Returns void
+.PP
+.HP
+\fIldns_rr_set_rd_count\fR()
+sets the rd_count in the rr.
+\.br
+\fB*rr\fR: rr to operate on
+\.br
+\fBcount\fR: set to this count
+\.br
+Returns void
+.PP
+.HP
+\fIldns_rr_set_class\fR()
+sets the class in the rr.
+\.br
+\fB*rr\fR: rr to operate on
+\.br
+\fBrr_class\fR: set to this class
+\.br
+Returns void
+.PP
+.HP
+\fIldns_rr_set_rdf\fR()
+sets a rdf member, it will be set on the
+position given. The old value is returned, like pop.
+\.br
+\fB*rr\fR: the rr to operate on
+\.br
+\fB*f\fR: the rdf to set
+\.br
+\fBposition\fR: the position the set the rdf
+\.br
+Returns the old value in the rr, \%NULL on failure
+.PP
+.SH AUTHOR
+The ldns team at NLnet Labs.
+
+.SH REPORTING BUGS
+Please report bugs to ldns-team@nlnetlabs.nl or in
+our bugzilla at
+http://www.nlnetlabs.nl/bugs/index.html
+
+.SH COPYRIGHT
+Copyright (c) 2004 - 2006 NLnet Labs.
+.PP
+Licensed under the BSD License. There is NO warranty; not even for
+MERCHANTABILITY or
+FITNESS FOR A PARTICULAR PURPOSE.
+
+.SH SEE ALSO
+\fIldns_rr\fR, \fIldns_rr_list\fR.
+And \fBperldoc Net::DNS\fR, \fBRFC1034\fR,
+\fBRFC1035\fR, \fBRFC4033\fR, \fBRFC4034\fR and \fBRFC4035\fR.
+.SH REMARKS
+This manpage was automatically generated from the ldns source code.
diff --git a/doc/man/man3/ldns_rr_set_pop_rr.3 b/doc/man/man3/ldns_rr_set_pop_rr.3
new file mode 120000
index 000000000000..a83182325950
--- /dev/null
+++ b/doc/man/man3/ldns_rr_set_pop_rr.3
@@ -0,0 +1 @@
+ldns_rr_set_push_rr.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_rr_set_push_rr.3 b/doc/man/man3/ldns_rr_set_push_rr.3
new file mode 100644
index 000000000000..62a005a32bd0
--- /dev/null
+++ b/doc/man/man3/ldns_rr_set_push_rr.3
@@ -0,0 +1,60 @@
+.ad l
+.TH ldns 3 "30 May 2006"
+.SH NAME
+ldns_rr_set_push_rr, ldns_rr_set_pop_rr \- push and pop rr on a rrset
+
+.SH SYNOPSIS
+#include <stdint.h>
+.br
+#include <stdbool.h>
+.br
+.PP
+#include <ldns/ldns.h>
+.PP
+bool ldns_rr_set_push_rr(ldns_rr_list *rr_list, ldns_rr *rr);
+.PP
+ldns_rr* ldns_rr_set_pop_rr(ldns_rr_list *rr_list);
+.PP
+
+.SH DESCRIPTION
+.HP
+\fIldns_rr_set_push_rr\fR()
+pushes an rr to an rrset (which really are rr_list's).
+\.br
+\fB*rr_list\fR: the rrset to push the rr to
+\.br
+\fB*rr\fR: the rr to push
+\.br
+Returns true if the push succeeded otherwise false
+.PP
+.HP
+\fIldns_rr_set_pop_rr\fR()
+pops the last rr from an rrset. This function is there only
+for the symmetry.
+\.br
+\fBrr_list\fR: the rr_list to pop from
+\.br
+Returns \%NULL if nothing to pop. Otherwise the popped \%RR
+
+.PP
+.SH AUTHOR
+The ldns team at NLnet Labs.
+
+.SH REPORTING BUGS
+Please report bugs to ldns-team@nlnetlabs.nl or in
+our bugzilla at
+http://www.nlnetlabs.nl/bugs/index.html
+
+.SH COPYRIGHT
+Copyright (c) 2004 - 2006 NLnet Labs.
+.PP
+Licensed under the BSD License. There is NO warranty; not even for
+MERCHANTABILITY or
+FITNESS FOR A PARTICULAR PURPOSE.
+
+.SH SEE ALSO
+\fIldns_rr\fR, \fIldns_rr_list\fR.
+And \fBperldoc Net::DNS\fR, \fBRFC1034\fR,
+\fBRFC1035\fR, \fBRFC4033\fR, \fBRFC4034\fR and \fBRFC4035\fR.
+.SH REMARKS
+This manpage was automatically generated from the ldns source code.
diff --git a/doc/man/man3/ldns_rr_set_rd_count.3 b/doc/man/man3/ldns_rr_set_rd_count.3
new file mode 120000
index 000000000000..ae969a4cd614
--- /dev/null
+++ b/doc/man/man3/ldns_rr_set_rd_count.3
@@ -0,0 +1 @@
+ldns_rr_set_owner.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_rr_set_rdf.3 b/doc/man/man3/ldns_rr_set_rdf.3
new file mode 120000
index 000000000000..ae969a4cd614
--- /dev/null
+++ b/doc/man/man3/ldns_rr_set_rdf.3
@@ -0,0 +1 @@
+ldns_rr_set_owner.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_rr_set_ttl.3 b/doc/man/man3/ldns_rr_set_ttl.3
new file mode 120000
index 000000000000..ae969a4cd614
--- /dev/null
+++ b/doc/man/man3/ldns_rr_set_ttl.3
@@ -0,0 +1 @@
+ldns_rr_set_owner.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_rr_set_type.3 b/doc/man/man3/ldns_rr_set_type.3
new file mode 120000
index 000000000000..ae969a4cd614
--- /dev/null
+++ b/doc/man/man3/ldns_rr_set_type.3
@@ -0,0 +1 @@
+ldns_rr_set_owner.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_rr_ttl.3 b/doc/man/man3/ldns_rr_ttl.3
new file mode 120000
index 000000000000..7ac87b76db7c
--- /dev/null
+++ b/doc/man/man3/ldns_rr_ttl.3
@@ -0,0 +1 @@
+ldns_rr_rdf.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_rr_type.3 b/doc/man/man3/ldns_rr_type.3
new file mode 120000
index 000000000000..270bcc371e2c
--- /dev/null
+++ b/doc/man/man3/ldns_rr_type.3
@@ -0,0 +1 @@
+ldns_rr.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_rr_uncompressed_size.3 b/doc/man/man3/ldns_rr_uncompressed_size.3
new file mode 100644
index 000000000000..be6858408dbe
--- /dev/null
+++ b/doc/man/man3/ldns_rr_uncompressed_size.3
@@ -0,0 +1,46 @@
+.ad l
+.TH ldns 3 "30 May 2006"
+.SH NAME
+ldns_rr_uncompressed_size \- calculates the uncompressed size of an RR
+
+.SH SYNOPSIS
+#include <stdint.h>
+.br
+#include <stdbool.h>
+.br
+.PP
+#include <ldns/ldns.h>
+.PP
+size_t ldns_rr_uncompressed_size(const ldns_rr *r);
+.PP
+
+.SH DESCRIPTION
+.HP
+\fIldns_rr_uncompressed_size\fR()
+calculates the uncompressed size of an \%RR.
+\.br
+\fBr\fR: the rr to operate on
+\.br
+Returns size of the rr
+.PP
+.SH AUTHOR
+The ldns team at NLnet Labs.
+
+.SH REPORTING BUGS
+Please report bugs to ldns-team@nlnetlabs.nl or in
+our bugzilla at
+http://www.nlnetlabs.nl/bugs/index.html
+
+.SH COPYRIGHT
+Copyright (c) 2004 - 2006 NLnet Labs.
+.PP
+Licensed under the BSD License. There is NO warranty; not even for
+MERCHANTABILITY or
+FITNESS FOR A PARTICULAR PURPOSE.
+
+.SH SEE ALSO
+\fIldns_rr\fR, \fIldns_rr_list\fR.
+And \fBperldoc Net::DNS\fR, \fBRFC1034\fR,
+\fBRFC1035\fR, \fBRFC4033\fR, \fBRFC4034\fR and \fBRFC4035\fR.
+.SH REMARKS
+This manpage was automatically generated from the ldns source code.
diff --git a/doc/man/man3/ldns_rrsig2buffer_wire.3 b/doc/man/man3/ldns_rrsig2buffer_wire.3
new file mode 120000
index 000000000000..7624fd4a5766
--- /dev/null
+++ b/doc/man/man3/ldns_rrsig2buffer_wire.3
@@ -0,0 +1 @@
+ldns_pkt2buffer_str.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_send.3 b/doc/man/man3/ldns_send.3
new file mode 100644
index 000000000000..69876aac36dc
--- /dev/null
+++ b/doc/man/man3/ldns_send.3
@@ -0,0 +1,41 @@
+.ad l
+.TH ldns 3 "30 May 2006"
+.SH NAME
+ldns_send \- send a packet
+
+.SH SYNOPSIS
+#include <stdint.h>
+.br
+#include <stdbool.h>
+.br
+.PP
+#include <ldns/ldns.h>
+.PP
+ ldns_send();
+.PP
+
+.SH DESCRIPTION
+.HP
+\fIldns_send\fR()
+.PP
+.SH AUTHOR
+The ldns team at NLnet Labs.
+
+.SH REPORTING BUGS
+Please report bugs to ldns-team@nlnetlabs.nl or in
+our bugzilla at
+http://www.nlnetlabs.nl/bugs/index.html
+
+.SH COPYRIGHT
+Copyright (c) 2004 - 2006 NLnet Labs.
+.PP
+Licensed under the BSD License. There is NO warranty; not even for
+MERCHANTABILITY or
+FITNESS FOR A PARTICULAR PURPOSE.
+
+.SH SEE ALSO
+\fIldns_pkt\fR, \fIldns_resolver\fR.
+And \fBperldoc Net::DNS\fR, \fBRFC1034\fR,
+\fBRFC1035\fR, \fBRFC4033\fR, \fBRFC4034\fR and \fBRFC4035\fR.
+.SH REMARKS
+This manpage was automatically generated from the ldns source code.
diff --git a/doc/man/man3/ldns_sign_public.3 b/doc/man/man3/ldns_sign_public.3
new file mode 100644
index 000000000000..dd091c4985cb
--- /dev/null
+++ b/doc/man/man3/ldns_sign_public.3
@@ -0,0 +1,48 @@
+.ad l
+.TH ldns 3 "30 May 2006"
+.SH NAME
+ldns_sign_public \- sign an rrset
+
+.SH SYNOPSIS
+#include <stdint.h>
+.br
+#include <stdbool.h>
+.br
+.PP
+#include <ldns/ldns.h>
+.PP
+ldns_rr_list* ldns_sign_public(ldns_rr_list *rrset, ldns_key_list *keys);
+.PP
+
+.SH DESCRIPTION
+.HP
+\fIldns_sign_public\fR()
+Sign an rrset
+\.br
+\fBrrset\fR: the rrset
+\.br
+\fBkeys\fR: the keys to use
+\.br
+Returns a rr_list with the signatures
+.PP
+.SH AUTHOR
+The ldns team at NLnet Labs.
+
+.SH REPORTING BUGS
+Please report bugs to ldns-team@nlnetlabs.nl or in
+our bugzilla at
+http://www.nlnetlabs.nl/bugs/index.html
+
+.SH COPYRIGHT
+Copyright (c) 2004 - 2006 NLnet Labs.
+.PP
+Licensed under the BSD License. There is NO warranty; not even for
+MERCHANTABILITY or
+FITNESS FOR A PARTICULAR PURPOSE.
+
+.SH SEE ALSO
+\fIldns_sign_public_dsa\fR, \fIldns_sign_public_rsamd5\fR, \fIldns_sign_public_rsasha1\fR, \fIldns_verify\fR, \fIldns_verify_rrsig\fR, \fIldns_key\fR.
+And \fBperldoc Net::DNS\fR, \fBRFC1034\fR,
+\fBRFC1035\fR, \fBRFC4033\fR, \fBRFC4034\fR and \fBRFC4035\fR.
+.SH REMARKS
+This manpage was automatically generated from the ldns source code.
diff --git a/doc/man/man3/ldns_sign_public_dsa.3 b/doc/man/man3/ldns_sign_public_dsa.3
new file mode 100644
index 000000000000..94409f121e21
--- /dev/null
+++ b/doc/man/man3/ldns_sign_public_dsa.3
@@ -0,0 +1,73 @@
+.ad l
+.TH ldns 3 "30 May 2006"
+.SH NAME
+ldns_sign_public_dsa, ldns_sign_public_rsamd5, ldns_sign_public_rsasha1 \- sign buffer
+
+.SH SYNOPSIS
+#include <stdint.h>
+.br
+#include <stdbool.h>
+.br
+.PP
+#include <ldns/ldns.h>
+.PP
+ldns_rdf* ldns_sign_public_dsa(ldns_buffer *to_sign, DSA *key);
+.PP
+ldns_rdf* ldns_sign_public_rsamd5(ldns_buffer *to_sign, RSA *key);
+.PP
+ldns_rdf* ldns_sign_public_rsasha1(ldns_buffer *to_sign, RSA *key);
+.PP
+
+.SH DESCRIPTION
+.HP
+\fIldns_sign_public_dsa\fR()
+Sign a buffer with the \%DSA key (hash with SHA1)
+
+\.br
+\fBto_sign\fR: The ldns_buffer containing raw data that is to be signed
+\.br
+\fBkey\fR: The \%DSA key structure to sign with
+\.br
+Returns a ldns_rdf for the \%RRSIG ldns_rr
+.PP
+.HP
+\fIldns_sign_public_rsamd5\fR()
+Sign a buffer with the \%RSA key (hash with MD5)
+\.br
+\fBto_sign\fR: buffer with the data
+\.br
+\fBkey\fR: the key to use
+\.br
+Returns a ldns_rdf with the signed data
+.PP
+.HP
+\fIldns_sign_public_rsasha1\fR()
+Sign a buffer with the \%RSA key (hash with SHA1)
+\.br
+\fBto_sign\fR: buffer with the data
+\.br
+\fBkey\fR: the key to use
+\.br
+Returns a ldns_rdf with the signed data
+.PP
+.SH AUTHOR
+The ldns team at NLnet Labs.
+
+.SH REPORTING BUGS
+Please report bugs to ldns-team@nlnetlabs.nl or in
+our bugzilla at
+http://www.nlnetlabs.nl/bugs/index.html
+
+.SH COPYRIGHT
+Copyright (c) 2004 - 2006 NLnet Labs.
+.PP
+Licensed under the BSD License. There is NO warranty; not even for
+MERCHANTABILITY or
+FITNESS FOR A PARTICULAR PURPOSE.
+
+.SH SEE ALSO
+\fIldns_sign_public\fR.
+And \fBperldoc Net::DNS\fR, \fBRFC1034\fR,
+\fBRFC1035\fR, \fBRFC4033\fR, \fBRFC4034\fR and \fBRFC4035\fR.
+.SH REMARKS
+This manpage was automatically generated from the ldns source code.
diff --git a/doc/man/man3/ldns_sign_public_rsamd5.3 b/doc/man/man3/ldns_sign_public_rsamd5.3
new file mode 120000
index 000000000000..5733c48b2ec8
--- /dev/null
+++ b/doc/man/man3/ldns_sign_public_rsamd5.3
@@ -0,0 +1 @@
+ldns_sign_public_dsa.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_sign_public_rsasha1.3 b/doc/man/man3/ldns_sign_public_rsasha1.3
new file mode 120000
index 000000000000..5733c48b2ec8
--- /dev/null
+++ b/doc/man/man3/ldns_sign_public_rsasha1.3
@@ -0,0 +1 @@
+ldns_sign_public_dsa.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_status.3 b/doc/man/man3/ldns_status.3
new file mode 120000
index 000000000000..738e3a18c1ac
--- /dev/null
+++ b/doc/man/man3/ldns_status.3
@@ -0,0 +1 @@
+ldns_get_errorstr_by_id.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_str2period.3 b/doc/man/man3/ldns_str2period.3
new file mode 100644
index 000000000000..b78acbf4c351
--- /dev/null
+++ b/doc/man/man3/ldns_str2period.3
@@ -0,0 +1,46 @@
+.ad l
+.TH ldns 3 "30 May 2006"
+.SH NAME
+ldns_str2period \- converts a ttl value (like 5d2h) to a long
+
+.SH SYNOPSIS
+#include <stdint.h>
+.br
+#include <stdbool.h>
+.br
+.PP
+#include <ldns/ldns.h>
+.PP
+uint32_t ldns_str2period(const char *nptr, const char **endptr);
+.PP
+
+.SH DESCRIPTION
+.HP
+\fIldns_str2period\fR()
+converts a ttl value (like 5d2h) to a long.
+\.br
+\fBnptr\fR: the start of the string
+\.br
+\fBendptr\fR: points to the last char in case of error
+\.br
+Returns the convert duration value
+.PP
+.SH AUTHOR
+The ldns team at NLnet Labs.
+
+.SH REPORTING BUGS
+Please report bugs to ldns-team@nlnetlabs.nl or in
+our bugzilla at
+http://www.nlnetlabs.nl/bugs/index.html
+
+.SH COPYRIGHT
+Copyright (c) 2004 - 2006 NLnet Labs.
+.PP
+Licensed under the BSD License. There is NO warranty; not even for
+MERCHANTABILITY or
+FITNESS FOR A PARTICULAR PURPOSE.
+.SH SEE ALSO
+\fBperldoc Net::DNS\fR, \fBRFC1034\fR,
+\fBRFC1035\fR, \fBRFC4033\fR, \fBRFC4034\fR and \fBRFC4035\fR.
+.SH REMARKS
+This manpage was automatically generated from the ldns source code.
diff --git a/doc/man/man3/ldns_tcp_connect.3 b/doc/man/man3/ldns_tcp_connect.3
new file mode 120000
index 000000000000..2f88fceb4604
--- /dev/null
+++ b/doc/man/man3/ldns_tcp_connect.3
@@ -0,0 +1 @@
+ldns_tcp_send_query.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_tcp_read_wire.3 b/doc/man/man3/ldns_tcp_read_wire.3
new file mode 120000
index 000000000000..2f88fceb4604
--- /dev/null
+++ b/doc/man/man3/ldns_tcp_read_wire.3
@@ -0,0 +1 @@
+ldns_tcp_send_query.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_tcp_send_query.3 b/doc/man/man3/ldns_tcp_send_query.3
new file mode 100644
index 000000000000..f551c3892851
--- /dev/null
+++ b/doc/man/man3/ldns_tcp_send_query.3
@@ -0,0 +1,51 @@
+.ad l
+.TH ldns 3 "30 May 2006"
+.SH NAME
+ldns_tcp_send_query, ldns_tcp_read_wire, ldns_tcp_connect \- tcp queries
+
+.SH SYNOPSIS
+#include <stdint.h>
+.br
+#include <stdbool.h>
+.br
+.PP
+#include <ldns/ldns.h>
+.PP
+ ldns_tcp_send_query();
+.PP
+ ldns_tcp_read_wire();
+.PP
+ ldns_tcp_connect();
+.PP
+
+.SH DESCRIPTION
+.HP
+\fIldns_tcp_send_query\fR()
+.PP
+.HP
+\fIldns_tcp_read_wire\fR()
+.PP
+.HP
+\fIldns_tcp_connect\fR()
+.PP
+.SH AUTHOR
+The ldns team at NLnet Labs.
+
+.SH REPORTING BUGS
+Please report bugs to ldns-team@nlnetlabs.nl or in
+our bugzilla at
+http://www.nlnetlabs.nl/bugs/index.html
+
+.SH COPYRIGHT
+Copyright (c) 2004 - 2006 NLnet Labs.
+.PP
+Licensed under the BSD License. There is NO warranty; not even for
+MERCHANTABILITY or
+FITNESS FOR A PARTICULAR PURPOSE.
+
+.SH SEE ALSO
+\fIldns_send\fR, \fIldns_pkt\fR, \fIldns_resolver\fR.
+And \fBperldoc Net::DNS\fR, \fBRFC1034\fR,
+\fBRFC1035\fR, \fBRFC4033\fR, \fBRFC4034\fR and \fBRFC4035\fR.
+.SH REMARKS
+This manpage was automatically generated from the ldns source code.
diff --git a/doc/man/man3/ldns_update_adcount.3 b/doc/man/man3/ldns_update_adcount.3
new file mode 120000
index 000000000000..cddae856831f
--- /dev/null
+++ b/doc/man/man3/ldns_update_adcount.3
@@ -0,0 +1 @@
+ldns_update_zocount.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_update_pkt_new.3 b/doc/man/man3/ldns_update_pkt_new.3
new file mode 100644
index 000000000000..50482bf84de5
--- /dev/null
+++ b/doc/man/man3/ldns_update_pkt_new.3
@@ -0,0 +1,55 @@
+.ad l
+.TH ldns 3 "30 May 2006"
+.SH NAME
+ldns_update_pkt_new \- create an update packet
+
+.SH SYNOPSIS
+#include <stdint.h>
+.br
+#include <stdbool.h>
+.br
+.PP
+#include <ldns/ldns.h>
+.PP
+ldns_pkt* ldns_update_pkt_new(ldns_rdf *zone_rdf, ldns_rr_class clas, const ldns_rr_list *pr_rrlist, const ldns_rr_list *up_rrlist, const ldns_rr_list *ad_rrlist);
+.PP
+
+.SH DESCRIPTION
+.HP
+\fIldns_update_pkt_new\fR()
+create an update packet from zone name, class and the rr lists
+\.br
+\fBzone_rdf\fR: name of the zone
+The returned packet will take ownership of zone_rdf, so the caller should not free it
+\.br
+\fBclas\fR: zone class
+\.br
+\fBpr_rrlist\fR: list of Prerequisite Section RRs
+\.br
+\fBup_rrlist\fR: list of Updates Section RRs
+\.br
+\fBad_rrlist\fR: list of Additional Data Section RRs (currently unused)
+\.br
+Returns the new packet
+.PP
+.SH AUTHOR
+The ldns team at NLnet Labs.
+
+.SH REPORTING BUGS
+Please report bugs to ldns-team@nlnetlabs.nl or in
+our bugzilla at
+http://www.nlnetlabs.nl/bugs/index.html
+
+.SH COPYRIGHT
+Copyright (c) 2004 - 2006 NLnet Labs.
+.PP
+Licensed under the BSD License. There is NO warranty; not even for
+MERCHANTABILITY or
+FITNESS FOR A PARTICULAR PURPOSE.
+
+.SH SEE ALSO
+\fIldns_update_pkt_tsig_add\fR, \fIldns_update_pkt_tsig_add\fR, \fIldns_update_zocount\fR, \fIldns_update_prcount\fR, \fIldns_update_upcount\fR, \fIldns_update_adcount\fR, \fIldns_update_set_zocount\fR, \fIldns_update_set_prcount\fR, \fIldns_update_set_upcount\fR, \fIldns_update_set_adcount\fR.
+And \fBperldoc Net::DNS\fR, \fBRFC1034\fR,
+\fBRFC1035\fR, \fBRFC4033\fR, \fBRFC4034\fR and \fBRFC4035\fR.
+.SH REMARKS
+This manpage was automatically generated from the ldns source code.
diff --git a/doc/man/man3/ldns_update_pkt_tsig_add.3 b/doc/man/man3/ldns_update_pkt_tsig_add.3
new file mode 100644
index 000000000000..8246c505430d
--- /dev/null
+++ b/doc/man/man3/ldns_update_pkt_tsig_add.3
@@ -0,0 +1,50 @@
+.ad l
+.TH ldns 3 "30 May 2006"
+.SH NAME
+ldns_update_pkt_tsig_add \- add resolver's tsig credentials to an ldns_pkt
+
+.SH SYNOPSIS
+#include <stdint.h>
+.br
+#include <stdbool.h>
+.br
+.PP
+#include <ldns/ldns.h>
+.PP
+ldns_status ldns_update_pkt_tsig_add(ldns_pkt *p, const ldns_resolver *r);
+.PP
+
+.SH DESCRIPTION
+.HP
+\fIldns_update_pkt_tsig_add\fR()
+add tsig credentials to
+a packet from a resolver
+\.br
+\fBp\fR: packet to copy to
+\.br
+\fBr\fR: resolver to copy from
+
+\.br
+Returns status whether successful or not
+.PP
+.SH AUTHOR
+The ldns team at NLnet Labs.
+
+.SH REPORTING BUGS
+Please report bugs to ldns-team@nlnetlabs.nl or in
+our bugzilla at
+http://www.nlnetlabs.nl/bugs/index.html
+
+.SH COPYRIGHT
+Copyright (c) 2004 - 2006 NLnet Labs.
+.PP
+Licensed under the BSD License. There is NO warranty; not even for
+MERCHANTABILITY or
+FITNESS FOR A PARTICULAR PURPOSE.
+
+.SH SEE ALSO
+\fIldns_update_pkt_new\fR.
+And \fBperldoc Net::DNS\fR, \fBRFC1034\fR,
+\fBRFC1035\fR, \fBRFC4033\fR, \fBRFC4034\fR and \fBRFC4035\fR.
+.SH REMARKS
+This manpage was automatically generated from the ldns source code.
diff --git a/doc/man/man3/ldns_update_prcount.3 b/doc/man/man3/ldns_update_prcount.3
new file mode 120000
index 000000000000..cddae856831f
--- /dev/null
+++ b/doc/man/man3/ldns_update_prcount.3
@@ -0,0 +1 @@
+ldns_update_zocount.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_update_set_adcount.3 b/doc/man/man3/ldns_update_set_adcount.3
new file mode 120000
index 000000000000..021a1df3cfa4
--- /dev/null
+++ b/doc/man/man3/ldns_update_set_adcount.3
@@ -0,0 +1 @@
+ldns_update_set_zocount.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_update_set_prcount.3 b/doc/man/man3/ldns_update_set_prcount.3
new file mode 120000
index 000000000000..021a1df3cfa4
--- /dev/null
+++ b/doc/man/man3/ldns_update_set_prcount.3
@@ -0,0 +1 @@
+ldns_update_set_zocount.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_update_set_upcount.3 b/doc/man/man3/ldns_update_set_upcount.3
new file mode 120000
index 000000000000..021a1df3cfa4
--- /dev/null
+++ b/doc/man/man3/ldns_update_set_upcount.3
@@ -0,0 +1 @@
+ldns_update_set_zocount.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_update_set_zocount.3 b/doc/man/man3/ldns_update_set_zocount.3
new file mode 100644
index 000000000000..65b6db35b808
--- /dev/null
+++ b/doc/man/man3/ldns_update_set_zocount.3
@@ -0,0 +1,71 @@
+.ad l
+.TH ldns 3 "30 May 2006"
+.SH NAME
+ldns_update_set_zocount, ldns_update_set_prcount, ldns_update_set_upcount, ldns_update_set_adcount \- set the update packet counters
+
+.SH SYNOPSIS
+#include <stdint.h>
+.br
+#include <stdbool.h>
+.br
+.PP
+#include <ldns/ldns.h>
+.PP
+ ldns_update_set_zocount();
+.PP
+void ldns_update_set_prcount(ldns_pkt *p, uint16_t c);
+.PP
+void ldns_update_set_upcount(ldns_pkt *p, uint16_t c);
+.PP
+void ldns_update_set_adcount(ldns_pkt *p, uint16_t c);
+.PP
+
+.SH DESCRIPTION
+.HP
+\fIldns_update_set_zocount\fR()
+.PP
+.HP
+\fIldns_update_set_prcount\fR()
+Set the pr count
+\.br
+\fBp\fR: the packet
+\.br
+\fBc\fR: the pr count to set
+.PP
+.HP
+\fIldns_update_set_upcount\fR()
+Set the up count
+\.br
+\fBp\fR: the packet
+\.br
+\fBc\fR: the up count to set
+.PP
+.HP
+\fIldns_update_set_adcount\fR()
+Set the ad count
+\.br
+\fBp\fR: the packet
+\.br
+\fBc\fR: the ad count to set
+.PP
+.SH AUTHOR
+The ldns team at NLnet Labs.
+
+.SH REPORTING BUGS
+Please report bugs to ldns-team@nlnetlabs.nl or in
+our bugzilla at
+http://www.nlnetlabs.nl/bugs/index.html
+
+.SH COPYRIGHT
+Copyright (c) 2004 - 2006 NLnet Labs.
+.PP
+Licensed under the BSD License. There is NO warranty; not even for
+MERCHANTABILITY or
+FITNESS FOR A PARTICULAR PURPOSE.
+
+.SH SEE ALSO
+\fIldns_update_pkt_new\fR.
+And \fBperldoc Net::DNS\fR, \fBRFC1034\fR,
+\fBRFC1035\fR, \fBRFC4033\fR, \fBRFC4034\fR and \fBRFC4035\fR.
+.SH REMARKS
+This manpage was automatically generated from the ldns source code.
diff --git a/doc/man/man3/ldns_update_upcount.3 b/doc/man/man3/ldns_update_upcount.3
new file mode 120000
index 000000000000..cddae856831f
--- /dev/null
+++ b/doc/man/man3/ldns_update_upcount.3
@@ -0,0 +1 @@
+ldns_update_zocount.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_update_zocount.3 b/doc/man/man3/ldns_update_zocount.3
new file mode 100644
index 000000000000..46a2f1537ce1
--- /dev/null
+++ b/doc/man/man3/ldns_update_zocount.3
@@ -0,0 +1,71 @@
+.ad l
+.TH ldns 3 "30 May 2006"
+.SH NAME
+ldns_update_zocount, ldns_update_prcount, ldns_update_upcount, ldns_update_adcount \- return update packet counters
+
+.SH SYNOPSIS
+#include <stdint.h>
+.br
+#include <stdbool.h>
+.br
+.PP
+#include <ldns/ldns.h>
+.PP
+uint16_t ldns_update_zocount(const ldns_pkt *p);
+.PP
+uint16_t ldns_update_prcount(const ldns_pkt *p);
+.PP
+uint16_t ldns_update_upcount(const ldns_pkt *p);
+.PP
+ ldns_update_adcount();
+.PP
+
+.SH DESCRIPTION
+.HP
+\fIldns_update_zocount\fR()
+Get the zo count
+\.br
+\fBp\fR: the packet
+\.br
+Returns the zo count
+.PP
+.HP
+\fIldns_update_prcount\fR()
+Get the zo count
+\.br
+\fBp\fR: the packet
+\.br
+Returns the pr count
+.PP
+.HP
+\fIldns_update_upcount\fR()
+Get the zo count
+\.br
+\fBp\fR: the packet
+\.br
+Returns the up count
+.PP
+.HP
+\fIldns_update_adcount\fR()
+.PP
+.SH AUTHOR
+The ldns team at NLnet Labs.
+
+.SH REPORTING BUGS
+Please report bugs to ldns-team@nlnetlabs.nl or in
+our bugzilla at
+http://www.nlnetlabs.nl/bugs/index.html
+
+.SH COPYRIGHT
+Copyright (c) 2004 - 2006 NLnet Labs.
+.PP
+Licensed under the BSD License. There is NO warranty; not even for
+MERCHANTABILITY or
+FITNESS FOR A PARTICULAR PURPOSE.
+
+.SH SEE ALSO
+\fIldns_update_pkt_new\fR.
+And \fBperldoc Net::DNS\fR, \fBRFC1034\fR,
+\fBRFC1035\fR, \fBRFC4033\fR, \fBRFC4034\fR and \fBRFC4035\fR.
+.SH REMARKS
+This manpage was automatically generated from the ldns source code.
diff --git a/doc/man/man3/ldns_verify.3 b/doc/man/man3/ldns_verify.3
new file mode 100644
index 000000000000..e1804ab0d841
--- /dev/null
+++ b/doc/man/man3/ldns_verify.3
@@ -0,0 +1,127 @@
+.ad l
+.TH ldns 3 "30 May 2006"
+.SH NAME
+ldns_verify, ldns_verify_rrsig, ldns_verify_rrsig_keylist, ldns_verify_rrsig_keylist_notime, ldns_verify_notime \- verify rrsigs
+
+.SH SYNOPSIS
+#include <stdint.h>
+.br
+#include <stdbool.h>
+.br
+.PP
+#include <ldns/ldns.h>
+.PP
+ldns_status ldns_verify(ldns_rr_list *rrset, ldns_rr_list *rrsig, const ldns_rr_list *keys, ldns_rr_list *good_keys);
+.PP
+ldns_status ldns_verify_rrsig(ldns_rr_list *rrset, ldns_rr *rrsig, ldns_rr *key);
+.PP
+ldns_status ldns_verify_rrsig_keylist(ldns_rr_list *rrset, ldns_rr *rrsig, const ldns_rr_list *keys, ldns_rr_list *good_keys);
+.PP
+ldns_status ldns_verify_rrsig_keylist_notime(const ldns_rr_list *rrset, const ldns_rr *rrsig, const ldns_rr_list *keys, ldns_rr_list *good_keys);
+.PP
+ldns_status ldns_verify_notime(ldns_rr_list *rrset, ldns_rr_list *rrsig, const ldns_rr_list *keys, ldns_rr_list *good_keys);
+.PP
+
+.SH DESCRIPTION
+.HP
+\fIldns_verify\fR()
+Verifies a list of signatures for one rrset.
+
+\.br
+\fBrrset\fR: the rrset to verify
+\.br
+\fBrrsig\fR: a list of signatures to check
+\.br
+\fBkeys\fR: a list of keys to check with
+\.br
+\fBgood_keys\fR: if this is a (initialized) list, the pointer to keys
+from keys that validate one of the signatures
+are added to it
+\.br
+Returns status \%LDNS_STATUS_OK if there is at least one correct key
+.PP
+.HP
+\fIldns_verify_rrsig\fR()
+verify an rrsig with 1 key
+\.br
+\fBrrset\fR: the rrset
+\.br
+\fBrrsig\fR: the rrsig to verify
+\.br
+\fBkey\fR: the key to use
+\.br
+Returns status message whether verification succeeded.
+.PP
+.HP
+\fIldns_verify_rrsig_keylist\fR()
+Verifies an rrsig. All keys in the keyset are tried.
+\.br
+\fBrrset\fR: the rrset to check
+\.br
+\fBrrsig\fR: the signature of the rrset
+\.br
+\fBkeys\fR: the keys to try
+\.br
+\fBgood_keys\fR: if this is a (initialized) list, the pointer to keys
+from keys that validate one of the signatures
+are added to it
+\.br
+Returns a list of keys which validate the rrsig + rrset. Returns
+status \%LDNS_STATUS_OK if at least one key matched. Else an error.
+.PP
+.HP
+\fIldns_verify_rrsig_keylist_notime\fR()
+Verifies an rrsig. All keys in the keyset are tried. Time is not checked.
+\.br
+\fBrrset\fR: the rrset to check
+\.br
+\fBrrsig\fR: the signature of the rrset
+\.br
+\fBkeys\fR: the keys to try
+\.br
+\fBgood_keys\fR: if this is a (initialized) list, the pointer to keys
+from keys that validate one of the signatures
+are added to it
+\.br
+Returns a list of keys which validate the rrsig + rrset. Returns
+status \%LDNS_STATUS_OK if at least one key matched. Else an error.
+.PP
+.HP
+\fIldns_verify_notime\fR()
+Verifies a list of signatures for one rrset, but disregard the time.
+Inception and Expiration are not checked.
+
+\.br
+\fBrrset\fR: the rrset to verify
+\.br
+\fBrrsig\fR: a list of signatures to check
+\.br
+\fBkeys\fR: a list of keys to check with
+\.br
+\fBgood_keys\fR: if this is a (initialized) list, the pointer to keys
+from keys that validate one of the signatures
+are added to it
+\.br
+Returns status \%LDNS_STATUS_OK if there is at least one correct key
+.PP
+.SH AUTHOR
+The ldns team at NLnet Labs.
+
+.SH REPORTING BUGS
+Please report bugs to ldns-team@nlnetlabs.nl or in
+our bugzilla at
+http://www.nlnetlabs.nl/bugs/index.html
+
+.SH COPYRIGHT
+Copyright (c) 2004 - 2006 NLnet Labs.
+.PP
+Licensed under the BSD License. There is NO warranty; not even for
+MERCHANTABILITY or
+FITNESS FOR A PARTICULAR PURPOSE.
+
+.SH SEE ALSO
+\fIldns_verify_rrsig_evp\fR, \fIldns_verify_rrsig_dsa\fR, \fIldns_verify_rrsig_rsasha1\fR, \fIldns_verify_rrsig_rsamd5\fR, \fIldns_sign_public\fR, \fIldns_zone_sign\fR, \fIldns_key\fR.
+And \fBperldoc Net::DNS\fR, \fBRFC1034\fR,
+\fBRFC1035\fR, \fBRFC4033\fR, \fBRFC4034\fR and \fBRFC4035\fR.
+.SH REMARKS
+This manpage was automatically generated from the ldns source code.
diff --git a/doc/man/man3/ldns_verify_notime.3 b/doc/man/man3/ldns_verify_notime.3
new file mode 120000
index 000000000000..c5978245821a
--- /dev/null
+++ b/doc/man/man3/ldns_verify_notime.3
@@ -0,0 +1 @@
+ldns_verify.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_verify_rrsig.3 b/doc/man/man3/ldns_verify_rrsig.3
new file mode 120000
index 000000000000..c5978245821a
--- /dev/null
+++ b/doc/man/man3/ldns_verify_rrsig.3
@@ -0,0 +1 @@
+ldns_verify.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_verify_rrsig_dsa.3 b/doc/man/man3/ldns_verify_rrsig_dsa.3
new file mode 100644
index 000000000000..6e4880feebb5
--- /dev/null
+++ b/doc/man/man3/ldns_verify_rrsig_dsa.3
@@ -0,0 +1,78 @@
+.ad l
+.TH ldns 3 "30 May 2006"
+.SH NAME
+ldns_verify_rrsig_dsa, ldns_verify_rrsig_rsasha1, ldns_verify_rrsig_rsamd5 \- verify signature data buffers
+
+.SH SYNOPSIS
+#include <stdint.h>
+.br
+#include <stdbool.h>
+.br
+.PP
+#include <ldns/ldns.h>
+.PP
+ldns_status ldns_verify_rrsig_dsa(ldns_buffer *sig, ldns_buffer *rrset, ldns_buffer *key);
+.PP
+ldns_status ldns_verify_rrsig_rsasha1(ldns_buffer *sig, ldns_buffer *rrset, ldns_buffer *key);
+.PP
+ldns_status ldns_verify_rrsig_rsamd5(ldns_buffer *sig, ldns_buffer *rrset, ldns_buffer *key);
+.PP
+
+.SH DESCRIPTION
+.HP
+\fIldns_verify_rrsig_dsa\fR()
+verifies a buffer with signature data (\%DSA) for a buffer with rrset data
+with a buffer with key data.
+
+\.br
+\fBsig\fR: the signature data
+\.br
+\fBrrset\fR: the rrset data, sorted and processed for verification
+\.br
+\fBkey\fR: the key data
+.PP
+.HP
+\fIldns_verify_rrsig_rsasha1\fR()
+verifies a buffer with signature data (RSASHA1) for a buffer with rrset data
+with a buffer with key data.
+
+\.br
+\fBsig\fR: the signature data
+\.br
+\fBrrset\fR: the rrset data, sorted and processed for verification
+\.br
+\fBkey\fR: the key data
+.PP
+.HP
+\fIldns_verify_rrsig_rsamd5\fR()
+verifies a buffer with signature data (RSAMD5) for a buffer with rrset data
+with a buffer with key data.
+
+\.br
+\fBsig\fR: the signature data
+\.br
+\fBrrset\fR: the rrset data, sorted and processed for verification
+\.br
+\fBkey\fR: the key data
+.PP
+.SH AUTHOR
+The ldns team at NLnet Labs.
+
+.SH REPORTING BUGS
+Please report bugs to ldns-team@nlnetlabs.nl or in
+our bugzilla at
+http://www.nlnetlabs.nl/bugs/index.html
+
+.SH COPYRIGHT
+Copyright (c) 2004 - 2006 NLnet Labs.
+.PP
+Licensed under the BSD License. There is NO warranty; not even for
+MERCHANTABILITY or
+FITNESS FOR A PARTICULAR PURPOSE.
+
+.SH SEE ALSO
+\fIldns_key\fR, \fIldns_sign_public\fR, \fIldns_zone_sign\fR, \fIldns_verify\fR, \fIldns_verify_rrsig\fR.
+And \fBperldoc Net::DNS\fR, \fBRFC1034\fR,
+\fBRFC1035\fR, \fBRFC4033\fR, \fBRFC4034\fR and \fBRFC4035\fR.
+.SH REMARKS
+This manpage was automatically generated from the ldns source code.
diff --git a/doc/man/man3/ldns_verify_rrsig_keylist.3 b/doc/man/man3/ldns_verify_rrsig_keylist.3
new file mode 120000
index 000000000000..c5978245821a
--- /dev/null
+++ b/doc/man/man3/ldns_verify_rrsig_keylist.3
@@ -0,0 +1 @@
+ldns_verify.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_verify_rrsig_keylist_notime.3 b/doc/man/man3/ldns_verify_rrsig_keylist_notime.3
new file mode 120000
index 000000000000..c5978245821a
--- /dev/null
+++ b/doc/man/man3/ldns_verify_rrsig_keylist_notime.3
@@ -0,0 +1 @@
+ldns_verify.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_verify_rrsig_rsamd5.3 b/doc/man/man3/ldns_verify_rrsig_rsamd5.3
new file mode 120000
index 000000000000..495cd31e9ff5
--- /dev/null
+++ b/doc/man/man3/ldns_verify_rrsig_rsamd5.3
@@ -0,0 +1 @@
+ldns_verify_rrsig_dsa.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_verify_rrsig_rsasha1.3 b/doc/man/man3/ldns_verify_rrsig_rsasha1.3
new file mode 120000
index 000000000000..495cd31e9ff5
--- /dev/null
+++ b/doc/man/man3/ldns_verify_rrsig_rsasha1.3
@@ -0,0 +1 @@
+ldns_verify_rrsig_dsa.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_version.3 b/doc/man/man3/ldns_version.3
new file mode 100644
index 000000000000..e4866928b4a2
--- /dev/null
+++ b/doc/man/man3/ldns_version.3
@@ -0,0 +1,39 @@
+.ad l
+.TH ldns 3 "30 May 2006"
+.SH NAME
+ldns_version \- return library version
+
+.SH SYNOPSIS
+#include <stdint.h>
+.br
+#include <stdbool.h>
+.br
+.PP
+#include <ldns/ldns.h>
+.PP
+ ldns_version();
+.PP
+
+.SH DESCRIPTION
+.HP
+\fIldns_version\fR()
+.PP
+.SH AUTHOR
+The ldns team at NLnet Labs.
+
+.SH REPORTING BUGS
+Please report bugs to ldns-team@nlnetlabs.nl or in
+our bugzilla at
+http://www.nlnetlabs.nl/bugs/index.html
+
+.SH COPYRIGHT
+Copyright (c) 2004 - 2006 NLnet Labs.
+.PP
+Licensed under the BSD License. There is NO warranty; not even for
+MERCHANTABILITY or
+FITNESS FOR A PARTICULAR PURPOSE.
+.SH SEE ALSO
+\fBperldoc Net::DNS\fR, \fBRFC1034\fR,
+\fBRFC1035\fR, \fBRFC4033\fR, \fBRFC4034\fR and \fBRFC4035\fR.
+.SH REMARKS
+This manpage was automatically generated from the ldns source code.
diff --git a/doc/man/man3/ldns_wire2dname.3 b/doc/man/man3/ldns_wire2dname.3
new file mode 120000
index 000000000000..4609c2b1203b
--- /dev/null
+++ b/doc/man/man3/ldns_wire2dname.3
@@ -0,0 +1 @@
+ldns_wire2rr.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_wire2pkt.3 b/doc/man/man3/ldns_wire2pkt.3
new file mode 120000
index 000000000000..4609c2b1203b
--- /dev/null
+++ b/doc/man/man3/ldns_wire2pkt.3
@@ -0,0 +1 @@
+ldns_wire2rr.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_wire2rdf.3 b/doc/man/man3/ldns_wire2rdf.3
new file mode 120000
index 000000000000..4609c2b1203b
--- /dev/null
+++ b/doc/man/man3/ldns_wire2rdf.3
@@ -0,0 +1 @@
+ldns_wire2rr.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_wire2rr.3 b/doc/man/man3/ldns_wire2rr.3
new file mode 100644
index 000000000000..b4ebb0c9718c
--- /dev/null
+++ b/doc/man/man3/ldns_wire2rr.3
@@ -0,0 +1,123 @@
+.ad l
+.TH ldns 3 "30 May 2006"
+.SH NAME
+ldns_wire2rr, ldns_wire2pkt, ldns_wire2rdf, ldns_wire2dname \- convert from wire format to host type
+
+.SH SYNOPSIS
+#include <stdint.h>
+.br
+#include <stdbool.h>
+.br
+.PP
+#include <ldns/ldns.h>
+.PP
+ldns_status ldns_wire2rr(ldns_rr **rr, const uint8_t *wire, size_t max, size_t *pos, ldns_pkt_section section);
+.PP
+ldns_status ldns_wire2pkt(ldns_pkt **packet, const uint8_t *data, size_t len);
+.PP
+ldns_status ldns_wire2rdf(ldns_rr *rr, const uint8_t *wire, size_t max, size_t *pos);
+.PP
+ldns_status ldns_wire2dname(ldns_rdf **dname, const uint8_t *wire, size_t max, size_t *pos);
+.PP
+
+.SH DESCRIPTION
+.HP
+\fIldns_wire2rr\fR()
+converts the data on the uint8_t bytearray (in wire format) to a \%DNS
+resource record.
+This function will initialize and allocate memory space for the rr
+structure.
+The length of the wiredata of this rr is added to the *pos value.
+
+\.br
+\fBrr\fR: pointer to the structure to hold the rdata value
+\.br
+\fBwire\fR: pointer to the buffer with the data
+\.br
+\fBmax\fR: the length of the data buffer (in bytes)
+\.br
+\fBpos\fR: the position of the rr in the buffer (ie. the number of bytes
+from the start of the buffer)
+\.br
+\fBsection\fR: the section in the packet the rr is meant for
+\.br
+Returns \%LDNS_STATUS_OK if everything succeeds, error otherwise
+.PP
+.HP
+\fIldns_wire2pkt\fR()
+converts the data on the uint8_t bytearray (in wire format) to a \%DNS packet.
+This function will initialize and allocate memory space for the packet
+structure.
+
+\.br
+\fBpacket\fR: pointer to the structure to hold the packet
+\.br
+\fBdata\fR: pointer to the buffer with the data
+\.br
+\fBlen\fR: the length of the data buffer (in bytes)
+\.br
+Returns \%LDNS_STATUS_OK if everything succeeds, error otherwise
+.PP
+.HP
+\fIldns_wire2rdf\fR()
+converts the data on the uint8_t bytearray (in wire format) to \%DNS
+rdata fields, and adds them to the list of rdfs of the given rr.
+This function will initialize and allocate memory space for the dname
+structures.
+The length of the wiredata of these rdfs is added to the *pos value.
+
+All rdfs belonging to the \%RR are read; the rr should have no rdfs
+yet. An error is returned if the format cannot be parsed.
+
+\.br
+\fBrr\fR: pointer to the ldns_rr structure to hold the rdata value
+\.br
+\fBwire\fR: pointer to the buffer with the data
+\.br
+\fBmax\fR: the length of the data buffer (in bytes)
+\.br
+\fBpos\fR: the position of the rdf in the buffer (ie. the number of bytes
+from the start of the buffer)
+\.br
+Returns \%LDNS_STATUS_OK if everything succeeds, error otherwise
+.PP
+.HP
+\fIldns_wire2dname\fR()
+converts the data on the uint8_t bytearray (in wire format) to a \%DNS
+dname rdata field. This function will initialize and allocate memory
+space for the dname structure. The length of the wiredata of this rdf
+is added to the *pos value.
+
+\.br
+\fBdname\fR: pointer to the structure to hold the rdata value
+\.br
+\fBwire\fR: pointer to the buffer with the data
+\.br
+\fBmax\fR: the length of the data buffer (in bytes)
+\.br
+\fBpos\fR: the position of the rdf in the buffer (ie. the number of bytes
+from the start of the buffer)
+\.br
+Returns \%LDNS_STATUS_OK if everything succeeds, error otherwise
+.PP
+.SH AUTHOR
+The ldns team at NLnet Labs.
+
+.SH REPORTING BUGS
+Please report bugs to ldns-team@nlnetlabs.nl or in
+our bugzilla at
+http://www.nlnetlabs.nl/bugs/index.html
+
+.SH COPYRIGHT
+Copyright (c) 2004 - 2006 NLnet Labs.
+.PP
+Licensed under the BSD License. There is NO warranty; not even for
+MERCHANTABILITY or
+FITNESS FOR A PARTICULAR PURPOSE.
+
+.SH SEE ALSO
+\fIldns_rr2wire\fR, \fIldns_pkt2wire\fR, \fIldns_rdf2wire\fR, \fIldns_dname2wire\fR.
+And \fBperldoc Net::DNS\fR, \fBRFC1034\fR,
+\fBRFC1035\fR, \fBRFC4033\fR, \fBRFC4034\fR and \fBRFC4035\fR.
+.SH REMARKS
+This manpage was automatically generated from the ldns source code.
diff --git a/doc/man/man3/ldns_zone.3 b/doc/man/man3/ldns_zone.3
new file mode 100644
index 000000000000..1c83234d6077
--- /dev/null
+++ b/doc/man/man3/ldns_zone.3
@@ -0,0 +1,154 @@
+.ad l
+.TH ldns 3 "30 May 2006"
+.SH NAME
+ldns_zone, ldns_zone_new, ldns_zone_free, ldns_zone_deep_free, ldns_zone_new_frm_fp, ldns_zone_new_frm_fp_l, ldns_zone_print, ldns_zone_print_fmt \- ldns_zone creation, destruction and printing
+
+.SH SYNOPSIS
+#include <stdint.h>
+.br
+#include <stdbool.h>
+.br
+.PP
+#include <ldns/ldns.h>
+.PP
+ldns_zone * ldns_zone_new(void);
+.PP
+void ldns_zone_free(ldns_zone *zone);
+.PP
+void ldns_zone_deep_free(ldns_zone *zone);
+.PP
+ldns_status ldns_zone_new_frm_fp(ldns_zone **z, FILE *fp, const ldns_rdf *origin, uint32_t ttl, ldns_rr_class c);
+.PP
+ldns_status ldns_zone_new_frm_fp_l(ldns_zone **z, FILE *fp, const ldns_rdf *origin, uint32_t ttl, ldns_rr_class c, int *line_nr);
+.PP
+void ldns_zone_print(FILE *output, const ldns_zone *z);
+.PP
+void ldns_zone_print_fmt(FILE *output, const ldns_output_format *fmt, const ldns_zone *z);
+.PP
+
+.SH DESCRIPTION
+.HP
+\fIldns_zone\fR
+.br
+DNS Zone
+.br
+
+.br
+A list of RR's with some
+.br
+extra information which comes from the SOA RR
+.br
+Note: nothing has been done to make this efficient (yet).
+.br
+struct ldns_struct_zone
+.br
+{
+.br
+ \fBthe soa defines a zone:\fR
+.br
+ ldns_rr *_soa;
+.br
+ /* basically a zone is a list of rr's */
+.br
+ ldns_rr_list *_rrs;
+.br
+ /* we could change this to be a b-tree etc etc todo */
+.br
+};
+.br
+typedef struct ldns_struct_zone ldns_zone;
+.PP
+.HP
+\fIldns_zone_new\fR()
+create a new ldns_zone structure
+\.br
+Returns a pointer to a ldns_zone structure
+.PP
+.HP
+\fIldns_zone_free\fR()
+Frees the allocated memory for the zone, and the rr_list structure in it
+\.br
+\fBzone\fR: the zone to free
+.PP
+.HP
+\fIldns_zone_deep_free\fR()
+Frees the allocated memory for the zone, the soa rr in it,
+and the rr_list structure in it, including the rr's in that. etc.
+\.br
+\fBzone\fR: the zone to free
+.PP
+.HP
+\fIldns_zone_new_frm_fp\fR()
+Create a new zone from a file
+\.br
+\fBz\fR: the new zone
+\.br
+\fB*fp\fR: the filepointer to use
+\.br
+\fB*origin\fR: the zones' origin
+\.br
+\fBttl\fR: default ttl to use
+\.br
+\fBc\fR: default class to use (\%IN)
+
+\.br
+Returns ldns_status mesg with an error or \%LDNS_STATUS_OK
+.PP
+.HP
+\fIldns_zone_new_frm_fp_l\fR()
+Create a new zone from a file, keep track of the line numbering
+\.br
+\fBz\fR: the new zone
+\.br
+\fB*fp\fR: the filepointer to use
+\.br
+\fB*origin\fR: the zones' origin
+\.br
+\fBttl\fR: default ttl to use
+\.br
+\fBc\fR: default class to use (\%IN)
+\.br
+\fBline_nr\fR: used for error msg, to get to the line number
+
+\.br
+Returns ldns_status mesg with an error or \%LDNS_STATUS_OK
+.PP
+.HP
+\fIldns_zone_print\fR()
+Print a zone structure * to output. Note the \%SOA record
+is included in this output
+\.br
+\fBoutput\fR: the fd to print to
+\.br
+\fBz\fR: the zone to print
+.PP
+.HP
+\fIldns_zone_print_fmt\fR()
+Print a zone structure * to output. Note the \%SOA record
+is included in this output
+\.br
+\fBoutput\fR: the fd to print to
+\.br
+\fBfmt\fR: format of the textual representation
+\.br
+\fBz\fR: the zone to print
+.PP
+.SH AUTHOR
+The ldns team at NLnet Labs.
+
+.SH REPORTING BUGS
+Please report bugs to ldns-team@nlnetlabs.nl or in
+our bugzilla at
+http://www.nlnetlabs.nl/bugs/index.html
+
+.SH COPYRIGHT
+Copyright (c) 2004 - 2006 NLnet Labs.
+.PP
+Licensed under the BSD License. There is NO warranty; not even for
+MERCHANTABILITY or
+FITNESS FOR A PARTICULAR PURPOSE.
+.SH SEE ALSO
+\fBperldoc Net::DNS\fR, \fBRFC1034\fR,
+\fBRFC1035\fR, \fBRFC4033\fR, \fBRFC4034\fR and \fBRFC4035\fR.
+.SH REMARKS
+This manpage was automatically generated from the ldns source code.
diff --git a/doc/man/man3/ldns_zone_deep_free.3 b/doc/man/man3/ldns_zone_deep_free.3
new file mode 120000
index 000000000000..4cec49a3263f
--- /dev/null
+++ b/doc/man/man3/ldns_zone_deep_free.3
@@ -0,0 +1 @@
+ldns_zone.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_zone_free.3 b/doc/man/man3/ldns_zone_free.3
new file mode 120000
index 000000000000..4cec49a3263f
--- /dev/null
+++ b/doc/man/man3/ldns_zone_free.3
@@ -0,0 +1 @@
+ldns_zone.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_zone_glue_rr_list.3 b/doc/man/man3/ldns_zone_glue_rr_list.3
new file mode 120000
index 000000000000..cc8febf823dd
--- /dev/null
+++ b/doc/man/man3/ldns_zone_glue_rr_list.3
@@ -0,0 +1 @@
+ldns_zone_sort.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_zone_new.3 b/doc/man/man3/ldns_zone_new.3
new file mode 120000
index 000000000000..4cec49a3263f
--- /dev/null
+++ b/doc/man/man3/ldns_zone_new.3
@@ -0,0 +1 @@
+ldns_zone.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_zone_new_frm_fp.3 b/doc/man/man3/ldns_zone_new_frm_fp.3
new file mode 120000
index 000000000000..4cec49a3263f
--- /dev/null
+++ b/doc/man/man3/ldns_zone_new_frm_fp.3
@@ -0,0 +1 @@
+ldns_zone.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_zone_new_frm_fp_l.3 b/doc/man/man3/ldns_zone_new_frm_fp_l.3
new file mode 120000
index 000000000000..4cec49a3263f
--- /dev/null
+++ b/doc/man/man3/ldns_zone_new_frm_fp_l.3
@@ -0,0 +1 @@
+ldns_zone.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_zone_print.3 b/doc/man/man3/ldns_zone_print.3
new file mode 120000
index 000000000000..4cec49a3263f
--- /dev/null
+++ b/doc/man/man3/ldns_zone_print.3
@@ -0,0 +1 @@
+ldns_zone.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_zone_print_fmt.3 b/doc/man/man3/ldns_zone_print_fmt.3
new file mode 120000
index 000000000000..4cec49a3263f
--- /dev/null
+++ b/doc/man/man3/ldns_zone_print_fmt.3
@@ -0,0 +1 @@
+ldns_zone.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_zone_push_rr.3 b/doc/man/man3/ldns_zone_push_rr.3
new file mode 100644
index 000000000000..5b1a45353253
--- /dev/null
+++ b/doc/man/man3/ldns_zone_push_rr.3
@@ -0,0 +1,62 @@
+.ad l
+.TH ldns 3 "30 May 2006"
+.SH NAME
+ldns_zone_push_rr, ldns_zone_push_rr_list \- add rr's to a ldns_zone
+
+.SH SYNOPSIS
+#include <stdint.h>
+.br
+#include <stdbool.h>
+.br
+.PP
+#include <ldns/ldns.h>
+.PP
+bool ldns_zone_push_rr(ldns_zone *z, ldns_rr *rr);
+.PP
+bool ldns_zone_push_rr_list(ldns_zone *z, const ldns_rr_list *list);
+.PP
+
+.SH DESCRIPTION
+.HP
+\fIldns_zone_push_rr\fR()
+push an single rr to a zone structure. This function use pointer
+copying, so the rr_list structure inside z is modified!
+\.br
+\fBz\fR: the zone to add to
+\.br
+\fBrr\fR: the rr to add
+\.br
+Returns a true on success otherwise false
+.PP
+.HP
+\fIldns_zone_push_rr_list\fR()
+push an rrlist to a zone structure. This function use pointer
+copying, so the rr_list structure inside z is modified!
+\.br
+\fBz\fR: the zone to add to
+\.br
+\fBlist\fR: the list to add
+\.br
+Returns a true on success otherwise false
+.PP
+.SH AUTHOR
+The ldns team at NLnet Labs.
+
+.SH REPORTING BUGS
+Please report bugs to ldns-team@nlnetlabs.nl or in
+our bugzilla at
+http://www.nlnetlabs.nl/bugs/index.html
+
+.SH COPYRIGHT
+Copyright (c) 2004 - 2006 NLnet Labs.
+.PP
+Licensed under the BSD License. There is NO warranty; not even for
+MERCHANTABILITY or
+FITNESS FOR A PARTICULAR PURPOSE.
+
+.SH SEE ALSO
+\fIldns_zone\fR.
+And \fBperldoc Net::DNS\fR, \fBRFC1034\fR,
+\fBRFC1035\fR, \fBRFC4033\fR, \fBRFC4034\fR and \fBRFC4035\fR.
+.SH REMARKS
+This manpage was automatically generated from the ldns source code.
diff --git a/doc/man/man3/ldns_zone_push_rr_list.3 b/doc/man/man3/ldns_zone_push_rr_list.3
new file mode 120000
index 000000000000..6be4604e768d
--- /dev/null
+++ b/doc/man/man3/ldns_zone_push_rr_list.3
@@ -0,0 +1 @@
+ldns_zone_push_rr.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_zone_rr_count.3 b/doc/man/man3/ldns_zone_rr_count.3
new file mode 100644
index 000000000000..ef4082f276af
--- /dev/null
+++ b/doc/man/man3/ldns_zone_rr_count.3
@@ -0,0 +1,46 @@
+.ad l
+.TH ldns 3 "30 May 2006"
+.SH NAME
+ldns_zone_rr_count \- get ldns_zone size
+
+.SH SYNOPSIS
+#include <stdint.h>
+.br
+#include <stdbool.h>
+.br
+.PP
+#include <ldns/ldns.h>
+.PP
+size_t ldns_zone_rr_count(const ldns_zone *z);
+.PP
+
+.SH DESCRIPTION
+.HP
+\fIldns_zone_rr_count\fR()
+Returns the number of resource records in the zone, \%NOT counting the \%SOA record
+\.br
+\fBz\fR: the zone to read from
+\.br
+Returns the number of rr's in the zone
+.PP
+.SH AUTHOR
+The ldns team at NLnet Labs.
+
+.SH REPORTING BUGS
+Please report bugs to ldns-team@nlnetlabs.nl or in
+our bugzilla at
+http://www.nlnetlabs.nl/bugs/index.html
+
+.SH COPYRIGHT
+Copyright (c) 2004 - 2006 NLnet Labs.
+.PP
+Licensed under the BSD License. There is NO warranty; not even for
+MERCHANTABILITY or
+FITNESS FOR A PARTICULAR PURPOSE.
+
+.SH SEE ALSO
+\fIldns_zone\fR.
+And \fBperldoc Net::DNS\fR, \fBRFC1034\fR,
+\fBRFC1035\fR, \fBRFC4033\fR, \fBRFC4034\fR and \fBRFC4035\fR.
+.SH REMARKS
+This manpage was automatically generated from the ldns source code.
diff --git a/doc/man/man3/ldns_zone_rrs.3 b/doc/man/man3/ldns_zone_rrs.3
new file mode 100644
index 000000000000..8e6df6dbae4c
--- /dev/null
+++ b/doc/man/man3/ldns_zone_rrs.3
@@ -0,0 +1,58 @@
+.ad l
+.TH ldns 3 "30 May 2006"
+.SH NAME
+ldns_zone_rrs, ldns_zone_soa \- ldns_zone get content
+
+.SH SYNOPSIS
+#include <stdint.h>
+.br
+#include <stdbool.h>
+.br
+.PP
+#include <ldns/ldns.h>
+.PP
+ldns_rr_list * ldns_zone_rrs(const ldns_zone *z);
+.PP
+ldns_rr * ldns_zone_soa(const ldns_zone *z);
+.PP
+
+.SH DESCRIPTION
+.HP
+\fIldns_zone_rrs\fR()
+Get a list of a zone's content. Note that the \%SOA
+isn't included in this list. You need to get the
+with ldns_zone_soa.
+\.br
+\fBz\fR: the zone to read from
+\.br
+Returns the rrs from this zone
+.PP
+.HP
+\fIldns_zone_soa\fR()
+Return the soa record of a zone
+\.br
+\fBz\fR: the zone to read from
+\.br
+Returns the soa record in the zone
+.PP
+.SH AUTHOR
+The ldns team at NLnet Labs.
+
+.SH REPORTING BUGS
+Please report bugs to ldns-team@nlnetlabs.nl or in
+our bugzilla at
+http://www.nlnetlabs.nl/bugs/index.html
+
+.SH COPYRIGHT
+Copyright (c) 2004 - 2006 NLnet Labs.
+.PP
+Licensed under the BSD License. There is NO warranty; not even for
+MERCHANTABILITY or
+FITNESS FOR A PARTICULAR PURPOSE.
+
+.SH SEE ALSO
+\fIldns_zone ldns_zone_set_rrs\fR.
+And \fBperldoc Net::DNS\fR, \fBRFC1034\fR,
+\fBRFC1035\fR, \fBRFC4033\fR, \fBRFC4034\fR and \fBRFC4035\fR.
+.SH REMARKS
+This manpage was automatically generated from the ldns source code.
diff --git a/doc/man/man3/ldns_zone_set_rrs.3 b/doc/man/man3/ldns_zone_set_rrs.3
new file mode 100644
index 000000000000..b09c33d89188
--- /dev/null
+++ b/doc/man/man3/ldns_zone_set_rrs.3
@@ -0,0 +1,56 @@
+.ad l
+.TH ldns 3 "30 May 2006"
+.SH NAME
+ldns_zone_set_rrs, ldns_zone_set_soa \- ldns_zone set content
+
+.SH SYNOPSIS
+#include <stdint.h>
+.br
+#include <stdbool.h>
+.br
+.PP
+#include <ldns/ldns.h>
+.PP
+void ldns_zone_set_rrs(ldns_zone *z, ldns_rr_list *rrlist);
+.PP
+void ldns_zone_set_soa(ldns_zone *z, ldns_rr *soa);
+.PP
+
+.SH DESCRIPTION
+.HP
+\fIldns_zone_set_rrs\fR()
+Set the zone's contents
+\.br
+\fBz\fR: the zone to put the new soa in
+\.br
+\fBrrlist\fR: the rrlist to use
+.PP
+.HP
+\fIldns_zone_set_soa\fR()
+Set the zone's soa record
+\.br
+\fBz\fR: the zone to put the new soa in
+\.br
+\fBsoa\fR: the soa to set
+.PP
+.SH AUTHOR
+The ldns team at NLnet Labs.
+
+.SH REPORTING BUGS
+Please report bugs to ldns-team@nlnetlabs.nl or in
+our bugzilla at
+http://www.nlnetlabs.nl/bugs/index.html
+
+.SH COPYRIGHT
+Copyright (c) 2004 - 2006 NLnet Labs.
+.PP
+Licensed under the BSD License. There is NO warranty; not even for
+MERCHANTABILITY or
+FITNESS FOR A PARTICULAR PURPOSE.
+
+.SH SEE ALSO
+\fIldns_zone\fR, \fIldns_zone_rrs\fR, \fIldns_zone_soa\fR.
+And \fBperldoc Net::DNS\fR, \fBRFC1034\fR,
+\fBRFC1035\fR, \fBRFC4033\fR, \fBRFC4034\fR and \fBRFC4035\fR.
+.SH REMARKS
+This manpage was automatically generated from the ldns source code.
diff --git a/doc/man/man3/ldns_zone_set_soa.3 b/doc/man/man3/ldns_zone_set_soa.3
new file mode 120000
index 000000000000..6d4c20b54ef6
--- /dev/null
+++ b/doc/man/man3/ldns_zone_set_soa.3
@@ -0,0 +1 @@
+ldns_zone_set_rrs.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_zone_sign.3 b/doc/man/man3/ldns_zone_sign.3
new file mode 100644
index 000000000000..21e8c155527b
--- /dev/null
+++ b/doc/man/man3/ldns_zone_sign.3
@@ -0,0 +1,68 @@
+.ad l
+.TH ldns 3 "30 May 2006"
+.SH NAME
+ldns_zone_sign, ldns_zone_sign_nsec3 \- dnssec sign a zone
+
+.SH SYNOPSIS
+#include <stdint.h>
+.br
+#include <stdbool.h>
+.br
+.PP
+#include <ldns/ldns.h>
+.PP
+ldns_zone* ldns_zone_sign(const ldns_zone *zone, ldns_key_list *key_list);
+.PP
+ldns_zone* ldns_zone_sign_nsec3(ldns_zone *zone, ldns_key_list *key_list, uint8_t algorithm, uint8_t flags, uint16_t iterations, uint8_t salt_length, uint8_t *salt);
+.PP
+
+.SH DESCRIPTION
+.HP
+\fIldns_zone_sign\fR()
+Signs the zone, and returns a newly allocated signed zone
+\.br
+\fBzone\fR: the zone to sign
+\.br
+\fBkey_list\fR: list of keys to sign with
+\.br
+Returns signed zone
+.PP
+.HP
+\fIldns_zone_sign_nsec3\fR()
+Signs the zone with NSEC3, and returns a newly allocated signed zone
+\.br
+\fBzone\fR: the zone to sign
+\.br
+\fBkey_list\fR: list of keys to sign with
+\.br
+\fBalgorithm\fR: the NSEC3 hashing algorithm to use
+\.br
+\fBflags\fR: NSEC3 flags
+\.br
+\fBiterations\fR: the number of NSEC3 hash iterations to use
+\.br
+\fBsalt_length\fR: the length (in octets) of the NSEC3 salt
+\.br
+\fBsalt\fR: the NSEC3 salt data
+\.br
+Returns signed zone
+.PP
+.SH AUTHOR
+The ldns team at NLnet Labs.
+
+.SH REPORTING BUGS
+Please report bugs to ldns-team@nlnetlabs.nl or in
+our bugzilla at
+http://www.nlnetlabs.nl/bugs/index.html
+
+.SH COPYRIGHT
+Copyright (c) 2004 - 2006 NLnet Labs.
+.PP
+Licensed under the BSD License. There is NO warranty; not even for
+MERCHANTABILITY or
+FITNESS FOR A PARTICULAR PURPOSE.
+.SH SEE ALSO
+\fBperldoc Net::DNS\fR, \fBRFC1034\fR,
+\fBRFC1035\fR, \fBRFC4033\fR, \fBRFC4034\fR and \fBRFC4035\fR.
+.SH REMARKS
+This manpage was automatically generated from the ldns source code.
diff --git a/doc/man/man3/ldns_zone_sign_nsec3.3 b/doc/man/man3/ldns_zone_sign_nsec3.3
new file mode 120000
index 000000000000..9af7f2ae149a
--- /dev/null
+++ b/doc/man/man3/ldns_zone_sign_nsec3.3
@@ -0,0 +1 @@
+ldns_zone_sign.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_zone_soa.3 b/doc/man/man3/ldns_zone_soa.3
new file mode 120000
index 000000000000..8f0905d74801
--- /dev/null
+++ b/doc/man/man3/ldns_zone_soa.3
@@ -0,0 +1 @@
+ldns_zone_rrs.3 \ No newline at end of file
diff --git a/doc/man/man3/ldns_zone_sort.3 b/doc/man/man3/ldns_zone_sort.3
new file mode 100644
index 000000000000..7e0ab53d8133
--- /dev/null
+++ b/doc/man/man3/ldns_zone_sort.3
@@ -0,0 +1,62 @@
+.ad l
+.TH ldns 3 "30 May 2006"
+.SH NAME
+ldns_zone_sort, ldns_zone_glue_rr_list \- sort a zone and get the glue records
+
+.SH SYNOPSIS
+#include <stdint.h>
+.br
+#include <stdbool.h>
+.br
+.PP
+#include <ldns/ldns.h>
+.PP
+void ldns_zone_sort(ldns_zone *zone);
+.PP
+ldns_rr_list* ldns_zone_glue_rr_list(const ldns_zone *z);
+.PP
+
+.SH DESCRIPTION
+.HP
+\fIldns_zone_sort\fR()
+Sort the rrs in a zone, with the current impl. this is slow
+\.br
+\fBzone\fR: the zone to sort
+.PP
+.HP
+\fIldns_zone_glue_rr_list\fR()
+Retrieve all resource records from the zone that are glue
+records. The resulting list does are pointer references
+to the zone's data.
+
+Due to the current zone implementation (as a list of rr's), this
+function is extremely slow. Another (probably better) way to do this
+is to use an ldns_dnssec_zone structure and the
+ldns_dnssec_mark_and_get_glue() function.
+
+\.br
+\fBz\fR: the zone to look for glue
+\.br
+Returns the rr_list with the glue
+.PP
+.SH AUTHOR
+The ldns team at NLnet Labs.
+
+.SH REPORTING BUGS
+Please report bugs to ldns-team@nlnetlabs.nl or in
+our bugzilla at
+http://www.nlnetlabs.nl/bugs/index.html
+
+.SH COPYRIGHT
+Copyright (c) 2004 - 2006 NLnet Labs.
+.PP
+Licensed under the BSD License. There is NO warranty; not even for
+MERCHANTABILITY or
+FITNESS FOR A PARTICULAR PURPOSE.
+
+.SH SEE ALSO
+\fIldns_zone\fR.
+And \fBperldoc Net::DNS\fR, \fBRFC1034\fR,
+\fBRFC1035\fR, \fBRFC4033\fR, \fBRFC4034\fR and \fBRFC4035\fR.
+.SH REMARKS
+This manpage was automatically generated from the ldns source code.